In unserer Anwendung haben wir ein paar Dokumente exportieren, die durch das Lesen eines Word-Dokuments generiert werden, ersetzt eine Anzahl von Platzhaltern und dann entweder das geänderte Wort Dokument direkt oder Konvertierung in PDF mit Syncfusion DocIO und ihre DocToPdfConverter
und zurück, dass. So weit so gut.DocToPdfConverter weglassen Seite/NumPages Felder
Das Problem ist, dass in der generierten PDF statt Seitenzahlen nur leerer Text ist.
z.B. Wenn das Wort Dokument
[
Field:Page
/Field:NumPages
] (dh [5/7])
die erzeugte PDF wird stattdessen enthält enthalten
[/]
Der Conversion-Code sieht so aus (bytes
ist das zuvor generierte Word-Dokument, das noch enthält die Seite/Numpages Felder):
private string ReturnPdf(string fileName, byte[] bytes)
{
using (var wordStream = new MemoryStream(bytes))
{
var wordDoc = new WordDocument(wordStream);
var converter = new DocToPDFConverter();
PdfDocument pdfDoc = converter.ConvertToPDF(wordDoc);
// return directly in http response instead of uploading to blob storage and returning link for one-time usage
pdfDoc.Save(Path.ChangeExtension(Path.GetFileName(fileName), ".pdf"), HttpContext.Current.Response, HttpReadType.Save);
}
return null;
}
Bin ich etwas offensichtlich oder fehlt dies tatsächlich um einen Fehler in den Konverter, und wenn es in der Tat ein Problem ist, gibt es bekannte Abhilfen oder gute Alternativen (vorzugsweise kostenlos , aber nicht unbedingt so)?
Ich habe auch versucht, vor der Umwandlung die folgende Zugabe, ohne Erfolg:
wordDoc.UpdateDocumentFields();
wordDoc.UpdateWordCount();
wordDoc.UpdateWordCount(performlayout: true);
wordDoc.UpdateTableOfContents();
EDIT
Wie durch ein Herumspielen fand ich heraus, dass eine mögliche Abhilfe zu sein scheint die erzeugte zu bearbeiten .docx-Datei in Word vor dem Konvertieren. Leider ist das aus verschiedenen Gründen nicht möglich.
Diese Zeilen waren eigentlich ein Versuch, das Problem zu lösen. Der ursprüngliche Code enthielt sie nicht. Ich werde die Frage aktualisieren. – Nuffin
Dies kann ein Fehler in der Steuerung sein. Wenn Sie dieses Problem lösen möchten, wenden Sie sich bitte an [email protected] – Vijay