私たちのアプリケーションでは、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に変換してから変換してください。残念ながら、これはさまざまな理由でオプションではありません。
これらの行は実際問題を解決するための試みでした。元のコードにはそれらが含まれていませんでした。私は質問を更新します。 – Nuffin
これらはコントロールのバグである可能性があります。この問題を解決したい場合は[email protected]までご連絡ください。 – Vijay