2016-08-04 16 views
1

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.

Antwort

2

Ich vermute, erwähnte Seite Feld und NumPage Feld fehlte Problem kann aufgrund der folgenden Codes ausgelöst werden.

Also bitte entfernen Sie die obigen Codes und prüfen Sie, ob das Problem gelöst wurde oder nicht. Wenn Sie weiterhin Probleme haben, können Sie unser Support-Team unter [email protected] kontaktieren, um das Problem zu beheben.

+0

Diese Zeilen waren eigentlich ein Versuch, das Problem zu lösen. Der ursprüngliche Code enthielt sie nicht. Ich werde die Frage aktualisieren. – Nuffin

+0

Dies kann ein Fehler in der Steuerung sein. Wenn Sie dieses Problem lösen möchten, wenden Sie sich bitte an [email protected] – Vijay