DocToPdfConverter省略Page/NumberPages字段

本文关键字:NumberPages 字段 Page 省略 DocToPdfConverter | 更新日期: 2023-09-27 18:00:06

在我们的应用程序中,我们有几个文档导出,它们是通过读取Word文档、替换一些占位符生成的,然后直接返回修改后的Word文档,或者使用Syncfusion DocIO及其DocToPdfConverter将其转换为PDF并返回。到目前为止还不错。

问题是,在生成的PDF中,只有空白文本,而不是页码。

例如,如果单词文档包含

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

生成的PDF将包含

[/]

转换代码如下(bytes是以前生成的word文档,它仍然包含Page/Numberpages字段):

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文件。不幸的是,由于各种原因,这不是一个选项。

DocToPdfConverter省略Page/NumberPages字段

我怀疑提到的Page字段和NumPage字段丢失问题可能是由于以下代码引起的。

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

因此,请删除上述代码,并检查问题是否已解决。如果您仍然面临问题,那么您可以通过联系我们的支持团队support@syncfusion.com以解决问题。

我们现在使用Winnovive Word To PDF Converter for.NET,它不仅在这种情况下,而且在Syncfusion转换器出错的其他几种情况下,都能实现我们想要的功能。