#c# #asp.net #ms-word #spire.doc
#c# #asp.net #ms-word #spire.doc
Вопрос:
В моем коде я нахожу и заменяю некоторые конкретные слова в файле Word, используя Spire.Doc
и экспортируя в PDF-файл, используя Microsoft.Office.Interop.Word
пакеты, которые отлично работают для меня на локальном сервере, но не работают на размещенном сервере AWS в ASP.Net
[Работа на локальном]
[Изображение сервера имеет грамматическую проблему]
//doc creation
Spire.Doc.Document doc = new Spire.Doc.Document(Server.MapPath("~/Download/demo.docx"));
doc.Replace("todayDate", DateTime.Now.Date.ToString("dd-MM-yyyy"), true, true);
doc.Replace("App_Name", AppName, true, true);
doc.Replace("App_Date", App_Date, true, true);
doc.Replace("Sales_Name", SalesName, true, true);
doc.Replace("App_Address", App_Address, true, true);
doc.Replace("Sales_Address", Sales_Address, true, true);
doc.Replace("csNO", csNO, true, true);
doc.Replace("tnmntNO", TenamentNO, true, true);
doc.SaveToFile(string.Concat(Server.MapPath("~/hukam/"), App_id, ".docx"), FileFormat.Auto);
doc.Close();
//pdf genration
using Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;
Word._Application oword = new Word.Application();
oword.Visible = false;
object oMissing = System.Reflection.Missing.Value;
object isVisible = true;
object readOnly = false;
object oInput = string.Concat(Server.MapPath("~/hukam/"), App_id, ".docx");
string oOutput = string.Concat(Server.MapPath("~/hukam/"), App_id, ".pdf");
Word._Document oDoc = oword.Documents.Open(oInput,oMissing,readOnly,oMissing);
oDoc.Activate();
oDoc.EmbedTrueTypeFonts = true;
if (oDoc.Paragraphs.Count > 0)
{
foreach (Paragraph p in oDoc.Paragraphs)
{
p.Range.Font.Name = "Shruti";
}
}
if (oDoc.Footnotes.Count > 0)
{
foreach (Footnote fn in oDoc.Footnotes)
{
fn.Range.Font.Name = "Shruti";
}
}
oDoc.ExportAsFixedFormat(oOutput, WdExportFormat.wdExportFormatPDF);
oDoc.Close();
oword.Quit();
Ответ №1:
Я попытался решить эту проблему, изменив часть кода, и у меня все получилось. Здесь я публикую ответ. Может быть кому-то полезно.
Spire.Doc.Document doc = new Spire.Doc.Document(Server.MapPath("~/Download/demo.docx"));
doc.Replace("todayDate", DateTime.Now.Date.ToString("dd-MM-yyyy"), true, true);
doc.Replace("App_Name", AppName, true, true);
doc.Replace("App_Date", App_Date, true, true);
doc.Replace("Sales_Name", SalesName, true, true);
doc.Replace("App_Address", App_Address, true, true);
doc.Replace("Sales_Address", Sales_Address, true, true);
doc.Replace("csNO", csNO, true, true);
doc.Replace("tnmntNO", TenamentNO, true, true);
doc.Replace("txtNondh", txtNon, true, true);
doc.SaveToFile(string.Concat(Server.MapPath("~/hukam/"), App_ID, ".docx"), FileFormat.Auto);
doc.Close();
//creating PDF
RichEditDocumentServer wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument(string.Concat(Server.MapPath("~/hukam/"), App_ID, ".docx"), DocumentFormat.OpenXml);
//Specify export options:
PdfExportOptions options = new PdfExportOptions();
options.DocumentOptions.Author = "ArpitPatel";
options.Compressed = false;
options.ImageQuality = PdfJpegImageQuality.Highest;
//Export the document to the stream:
using (FileStream pdfFileStream = new FileStream(string.Concat(Server.MapPath("hukam/"), App_ID, ".pdf"), FileMode.Create))
{
wordProcessor.ExportToPdf(pdfFileStream, options);
}
Спасибо и с уважением