مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mohammadd

عضویت از 1395/12/08

تبدیل علامت سوال به کاراتر فارسی در ASP

  • شنبه 7 اردیبهشت 1398
  • 13:47
تشکر میکنم

سلام

من آخر اون کد تبدیل ورد به HTML رو خودم درستش کردم و الان مشکلم اینه حروف فارسی رو علامت سوال میکنه

میخوام تو Code Behind این تبدیل و Encoding رو انجام بدم و بعد بفرستم تو بانک و سمت کاربر برای نمایش ولی به مشکل خوردم

راهنمایی لطفا

پاسخ های این پرسش

تعداد پاسخ ها : 8 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • یکشنبه 8 اردیبهشت 1398
  • 07:52

سلام

لطفا سوال هایمان  را واضح و دقیق بپرسیم و از ایجاد معما پرهیز کنیم!

شما نه کدت را نوشته ای و نه خطا و اروری را اشاره کرده ای و نه حتا جملات فارسی ات را به نثر روان و قابل فهم نوشته ای برادر

لطفا سوالت را بازنویسی کن تا درک بهتری از سوال داشته باشیم

کاربر سایت

mohammadd

عضویت از 1395/12/08

  • یکشنبه 8 اردیبهشت 1398
  • 10:19

سوال تصویر داره و واضح هستش

من نگفتم خطا دارم

تصویر داره نشون میده حروف فارسی رو علامت سوال کرده

پرسیدم چه کنم قبل ارسال به بانک این علامت سوالا مشکلش حل بشه

نیازی به کد نیست یه رشته ای دارم میفرستم سمت کاربر که علامت سواله همین

object documentFormat = 8;
        string randomName = DateTime.Now.Ticks.ToString();
        object htmlFilePath = Server.MapPath("~/Temp/") + randomName + ".htm";
        string directoryPath = Server.MapPath("~/Temp/") + randomName + "_files";
        object fileSavePath = Server.MapPath("~/Temp/") + Path.GetFileName(FileUpload1.PostedFile.FileName);

        //If Directory not present, create it.
        if (!Directory.Exists(Server.MapPath("~/Temp/")))
        {
            Directory.CreateDirectory(Server.MapPath("~/Temp/"));
        }

        //Upload the word document and save to Temp folder.
        FileUpload1.PostedFile.SaveAs(fileSavePath.ToString());

        //Open the word document in background.
        _Application applicationclass = new Application();
        applicationclass.Documents.Open(ref fileSavePath);
        applicationclass.Visible = false;
        Document document = applicationclass.ActiveDocument;

        //Save the word document as HTML file.
        document.SaveAs(ref htmlFilePath, ref documentFormat);

        //Close the word document.
        document.Close();

        //Read the saved Html File.
        string wordHTML = System.IO.File.ReadAllText(htmlFilePath.ToString());

        //Loop and replace the Image Path.
        foreach (Match match in Regex.Matches(wordHTML, "<v:imagedata.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase))
        {
            wordHTML = Regex.Replace(wordHTML, match.Groups[1].Value, "Temp/" + match.Groups[1].Value);
        }

        //Delete the Uploaded Word File.
        System.IO.File.Delete(fileSavePath.ToString());

        dvWord.InnerHtml = wordHTML;

اینم کدش حالا بفرمایید راهنمایی

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • دوشنبه 9 اردیبهشت 1398
  • 09:39

سلام

بنده از اینکه سوال بسیار واضح شما را متوجه نشدم عذرخواهی می کنم  و مجدد عذرخواهی می کنم که تقاضاکردم برای رفع مشکل شما کدهاتون را ببینم!!!!

با توجه به این که طبق فرموده ی خودتون هیچ خطایی صورت نگرفته و مشکل حاضر هم طبق فرموده ی خودتون کاملا واضح است لذا شما را به خداوند منان می سپارم. والسلام/

کاربر سایت

mohammadd

عضویت از 1395/12/08

  • دوشنبه 9 اردیبهشت 1398
  • 11:18

بلد نیستی جواب نده اجبارت نکردن ، که بعدشم بیای تیکه بندازی

یه آقای مدائنی جواباش خوب بود و کاربردی که وقت ندارن و نیستن اینجا بعد مدائنی هم من تا الان جواب سوالی رو نگرفتم 

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • دوشنبه 9 اردیبهشت 1398
  • 12:11

با سلام خدمت شما دوست عزیز،

مشکلی که کد بالا وجود داره مربوط به Encoding فایل می باشد ، شما می بایست قبل از  ذخیره کردن فایل html اِنکُد utf-8 را بروی فایل تنظیم کنید. دو خط زیر کامل کننده کد شماست.

//Update file and set UTF8 Encoding for it
document.Fields.Update();
document.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;

در ادامه کد کامل شده شما را قرار میدهم :

                object documentFormat = 8;
                string randomName = DateTime.Now.Ticks.ToString();
                object htmlFilePath = Server.MapPath("~/Temp/") + randomName + ".htm";
                string directoryPath = Server.MapPath("~/Temp/") + randomName + "_files";
                object fileSavePath = Server.MapPath("~/Temp/") + Path.GetFileName(FileUpload1.PostedFile.FileName);

                //If Directory not present, create it.
                if (!Directory.Exists(Server.MapPath("~/Temp/")))
                {
                    Directory.CreateDirectory(Server.MapPath("~/Temp/"));
                }

                //Upload the word document and save to Temp folder.
                FileUpload1.PostedFile.SaveAs(fileSavePath.ToString());

                //Open the word document in background.
                _Application applicationclass = new Application();
                applicationclass.Documents.Open(ref fileSavePath);
                applicationclass.Visible = false;
                Document document = applicationclass.ActiveDocument;

                //Update file and set UTF8 Encoding for it
                document.Fields.Update();
                document.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;

                //Save the word document as HTML file.
                document.SaveAs(ref htmlFilePath, ref documentFormat);

                //Close the word document.
                document.Close();

                //Read the saved Html File.
                string wordHTML = System.IO.File.ReadAllText(htmlFilePath.ToString());

                //Loop and replace the Image Path.
                foreach (Match match in Regex.Matches(wordHTML, "<v:imagedata.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase))
                {
                    wordHTML = Regex.Replace(wordHTML, match.Groups[1].Value, "Temp/" + match.Groups[1].Value);
                }

                //Delete the Uploaded Word File.
                System.IO.File.Delete(fileSavePath.ToString());

                dvWord.InnerHtml = wordHTML;

از اینکه سایت ما رو برای مطرح کردن سوالاتتون انتخاب کردید بسیار سپاسگذاریم و براتون آرزوی موفقیت میکنم.

کاربر سایت

mohammadd

عضویت از 1395/12/08

  • دوشنبه 9 اردیبهشت 1398
  • 14:14

 Install-Package Microsoft.Office.Core -Version 12.0.0 

این پکیج رو نصب کردم ولی باز نشد اون Core رو نمیشناسه و خطا میده

Error 58 The type or namespace name 'Core' does not exist in the namespace 'Microsoft.Office' (are you missing an assembly reference?) 
اینم متن حطاش هست میدونم باید Office core رو Dll رو نصب کنم ولی با اون کد ناگت نشد و فایل dll هم ندیدم جایی 
بابت راهنماییتون هم ممنون
کاربر سایت

mohammadd

عضویت از 1395/12/08

  • دوشنبه 9 اردیبهشت 1398
  • 14:52

آقا اوکی شد یک دنیا ممنون خیلی خیلی خیلی لطف کردی نجاتم دادی بدجورheart

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • دوشنبه 9 اردیبهشت 1398
  • 15:23

من از پکیج های زیر برای مثال بالا استفاده کردم و نتیجه صحیح گرفتم :

<packages>
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3" targetFramework="net452" />
  <package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net452" developmentDependency="true" />
  <package id="Microsoft.Office.Interop.Word" version="15.0.4797.1003" targetFramework="net452" />
</packages>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)