DocToPdfConverter 省略 Page/NumPages 个字段
DocToPdfConverter omitting Page/NumPages fields
在我们的应用程序中,我们有几个文档导出,它们是通过读取 Word 文档生成的,替换一些占位符,然后直接 return 修改后的 word 文档或使用 Syncfusion DocIO 将其转换为 PDF 和他们 DocToPdfConverter
和 return 那。
到目前为止一切顺利。
问题是在生成的 PDF 中只有空白文本而不是页码。
例如如果word文档包含
[Field:Page
/ Field:NumPages
] (i.e. [5 / 7])
生成的 PDF 将改为包含
[ / ]
转换代码是这样的(bytes
是之前生成的word文档,仍然包含Page/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 文件。不幸的是,由于各种原因,这不是一个选择。
我怀疑提到的 Page 字段和 NumPage 字段丢失问题可能是由于以下代码引起的。
wordDoc.UpdateDocumentFields();
wordDoc.UpdateWordCount();
wordDoc.UpdateTableOfContents();
所以请删除上面的代码并检查问题是否已解决。如果您仍然遇到问题,那么您可以通过 support@syncfusion.com 联系我们的支持团队来解决问题。
我们现在使用 Winnovative Word To PDF Converter for .NET,它不仅在这种情况下而且在 Syncfusion 转换器搞砸的其他几个情况下都完全符合我们的要求。
在我们的应用程序中,我们有几个文档导出,它们是通过读取 Word 文档生成的,替换一些占位符,然后直接 return 修改后的 word 文档或使用 Syncfusion DocIO 将其转换为 PDF 和他们 DocToPdfConverter
和 return 那。
到目前为止一切顺利。
问题是在生成的 PDF 中只有空白文本而不是页码。
例如如果word文档包含
[
Field:Page
/Field:NumPages
] (i.e. [5 / 7])
生成的 PDF 将改为包含
[ / ]
转换代码是这样的(bytes
是之前生成的word文档,仍然包含Page/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 文件。不幸的是,由于各种原因,这不是一个选择。
我怀疑提到的 Page 字段和 NumPage 字段丢失问题可能是由于以下代码引起的。
wordDoc.UpdateDocumentFields();
wordDoc.UpdateWordCount();
wordDoc.UpdateTableOfContents();
所以请删除上面的代码并检查问题是否已解决。如果您仍然遇到问题,那么您可以通过 support@syncfusion.com 联系我们的支持团队来解决问题。
我们现在使用 Winnovative Word To PDF Converter for .NET,它不仅在这种情况下而且在 Syncfusion 转换器搞砸的其他几个情况下都完全符合我们的要求。