سلام
من آخر اون کد تبدیل ورد به HTML رو خودم درستش کردم و الان مشکلم اینه حروف فارسی رو علامت سوال میکنه
میخوام تو Code Behind این تبدیل و Encoding رو انجام بدم و بعد بفرستم تو بانک و سمت کاربر برای نمایش ولی به مشکل خوردم
راهنمایی لطفا
سلام
لطفا سوال هایمان را واضح و دقیق بپرسیم و از ایجاد معما پرهیز کنیم!
شما نه کدت را نوشته ای و نه خطا و اروری را اشاره کرده ای و نه حتا جملات فارسی ات را به نثر روان و قابل فهم نوشته ای برادر
لطفا سوالت را بازنویسی کن تا درک بهتری از سوال داشته باشیم
سوال تصویر داره و واضح هستش
من نگفتم خطا دارم
تصویر داره نشون میده حروف فارسی رو علامت سوال کرده
پرسیدم چه کنم قبل ارسال به بانک این علامت سوالا مشکلش حل بشه
نیازی به کد نیست یه رشته ای دارم میفرستم سمت کاربر که علامت سواله همین
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;
اینم کدش حالا بفرمایید راهنمایی
سلام
بنده از اینکه سوال بسیار واضح شما را متوجه نشدم عذرخواهی می کنم و مجدد عذرخواهی می کنم که تقاضاکردم برای رفع مشکل شما کدهاتون را ببینم!!!!
با توجه به این که طبق فرموده ی خودتون هیچ خطایی صورت نگرفته و مشکل حاضر هم طبق فرموده ی خودتون کاملا واضح است لذا شما را به خداوند منان می سپارم. والسلام/
بلد نیستی جواب نده اجبارت نکردن ، که بعدشم بیای تیکه بندازی
یه آقای مدائنی جواباش خوب بود و کاربردی که وقت ندارن و نیستن اینجا بعد مدائنی هم من تا الان جواب سوالی رو نگرفتم
با سلام خدمت شما دوست عزیز،
مشکلی که کد بالا وجود داره مربوط به 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;
از اینکه سایت ما رو برای مطرح کردن سوالاتتون انتخاب کردید بسیار سپاسگذاریم و براتون آرزوی موفقیت میکنم.
Install-Package Microsoft.Office.Core -Version 12.0.0
این پکیج رو نصب کردم ولی باز نشد اون Core رو نمیشناسه و خطا میده
آقا اوکی شد یک دنیا ممنون خیلی خیلی خیلی لطف کردی نجاتم دادی بدجور
من از پکیج های زیر برای مثال بالا استفاده کردم و نتیجه صحیح گرفتم :
<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>
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)