2016-08-04 82 views
1

在我們的應用程序中,我們通過讀取Word文檔生成幾個文檔導出,替換一些佔位符,然後直接返回修改後的Word文檔或使用Syncfusion DocIO將其轉換爲PDF,他們的DocToPdfConverter並返回。 目前爲止這麼好。DocToPdfConverter忽略Page/NumPages字段

問題是在生成的PDF而不是頁碼中只有空白文本。

例如如果字文檔包含

[Field:Page/Field:NumPages](即[5/7])

生成的PDF將代替含有

[/]

轉換代碼看起來像這樣(bytes是以前生成的word文檔,它仍包含頁/ NUMPAGES字段):

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; 
} 

我失去了一些東西明顯或者這實際上是在轉換器中的錯誤,如果它確實是一個錯誤,是否有任何已知的解決方法還是不錯的替代品(最好是免費,但不一定如此)?

我也嘗試添加在轉換之前以下,但無濟於事:

wordDoc.UpdateDocumentFields(); 
wordDoc.UpdateWordCount(); 
wordDoc.UpdateWordCount(performlayout: true); 
wordDoc.UpdateTableOfContents(); 

編輯

通過一些玩弄我發現了一個可能的解決方法似乎是編輯生成轉換它之前Word中的.docx文件。不幸的是,由於各種原因,這不是一種選擇。

回答

2

我懷疑提到Page字段和NumPage字段丟失的問題可能會由於下面的代碼引發。

wordDoc.UpdateDocumentFields(); 
    wordDoc.UpdateWordCount(); 
    wordDoc.UpdateTableOfContents(); 

所以請刪除上面的代碼,並檢查問題是否解決。如果您仍然遇到問題,那麼您可以通過[email protected]與我們的支持團隊聯繫以解決問題。

+0

這些行實際上是試圖解決這個問題。原始代碼不包含它們。我會更新這個問題。 – Nuffin

+0

這些可能是控件中的錯誤。如果你想解決這個問題,請聯繫[email protected] – Vijay