2016-08-04 2 views
1

私たちのアプリケーションでは、Word文書を読み込んでいくつかのプレースホルダーを置き換えた後、修正されたWord文書を直接返すか、Syncfusion DocIOを使用してPDFに変換して、彼らのDocToPdfConverterと返す。 これまでのところとても良いです。DocToPdfConverterはページ/ NumPagesフィールドを省略します

問題は、ページ番号ではなく生成されたPDFでは空白のテキストしかないことです。

ワード文書が含まれている場合

[Field:Page/Field:NumPages](すなわち[5月7日])

生成されたPDFが代わりに含まれています

[/]

変換コードは次のようになります(bytesは以前に生成された単語文書です。まだページ/ 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(); 

EDIT

いくつかプレイして私は1つの可能な回避策は、生成を編集することであると考えられることが判明周り.docxファイルをWordに変換してから変換してください。残念ながら、これはさまざまな理由でオプションではありません。

答えて

0

ここでは、を使用します。これは、この場合だけでなく、Syncfusionコンバータが不正になったカップルの他のケースでも欲しいものです。

2

私は次のコードのためにページフィールドとNumPageフィールドが欠けていた問題が提起されていると思われます。

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

上記のコードをすみやかに削除し、問題が解決したかどうかを確認してください。それでも問題が解決しない場合は、サポートチーム([email protected])に連絡して問題を解決できます。

+0

これらの行は実際問題を解決するための試みでした。元のコードにはそれらが含まれていませんでした。私は質問を更新します。 – Nuffin

+0

これらはコントロールのバグである可能性があります。この問題を解決したい場合は[email protected]までご連絡ください。 – Vijay

関連する問題