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

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

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

شنبه, 07 اردیبهشت 1398 13:47

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

سلام

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

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

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

یکشنبه, 08 اردیبهشت 1398 07:52

سلام

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

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

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

یکشنبه, 08 اردیبهشت 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;

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

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

سلام

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

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

دوشنبه, 09 اردیبهشت 1398 11:18

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

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

دوشنبه, 09 اردیبهشت 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;

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

دوشنبه, 09 اردیبهشت 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 هم ندیدم جایی 
بابت راهنماییتون هم ممنون
دوشنبه, 09 اردیبهشت 1398 14:52

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

دوشنبه, 09 اردیبهشت 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>

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید