我的应用程序正在使用 itext# 生成 PDF 文档。这些文件可以正常打开并在Foxit Reader中正确显示,但在Adobe Acrobat中会出现以下错误:
There was an error processing page. There was a problem reading this document (109).
为什么文件会在一个打开而不是另一个?
我的应用程序正在使用 itext# 生成 PDF 文档。这些文件可以正常打开并在Foxit Reader中正确显示,但在Adobe Acrobat中会出现以下错误:
There was an error processing page. There was a problem reading this document (109).
为什么文件会在一个打开而不是另一个?
这是我的代码:
var document = new Document(_pageSize, PageMargin, PageMargin, PageMargin, PageMargin);
var writer = PdfWriter.GetInstance(document, output);
writer.CloseStream = false;
writer.PageEvent = new Footer(HeaderFont, _defaultFont.BaseFont, report.Name);
document.Open();
if (report.Results.Any())
document.Add(CreateTable(report.Results, report.Types, report.RootType));
else
document.Add(new Paragraph("No results", _defaultFont));
writer.Close();
document.Close();
在行前添加行后writer.Close();
,它现在同时显示在Foxit和Acrobat中。
我想 itext# 的关键是要非常小心正确关闭对象。这可能反映了它是一个移植的库,而不是从头开始为 .NET 构建的库。
一些 pdf 阅读器在各个方面比其他阅读器更宽容。Foxit 可能会忽略它不支持的 pdf 中的位。不同版本的杂技演员在不同的事情上窒息,只是为了搅浑水。如果没有看到有问题的 PDF,我们所拥有的只是猜测。