使用itext#生成的PDF文档在Foxit中打开,但不在Acrobat中打开

时间:2010-11-10 02:05:59

标签: pdf itextsharp acrobat foxit

我的应用程序是使用itext#生成PDF文档。文件打开正常并在福昕阅读器中正确显示,但在 Adob​​e Acrobat 中出现错误:

There was an error processing page. There was a problem reading this document (109).

为什么文件会在一个文件中打开而在另一个文件中打开?

2 个答案:

答案 0 :(得分:6)

这是我的代码:

        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构建的库。

答案 1 :(得分:2)

某些pdf阅读器在各个领域比其他人更宽容。 Foxit可能会忽略它不支持的pdf中的位。不同版本的杂技演员窒息不同的东西,只是为了浑水。如果没有看到有问题的PDF,我们所有的就是猜测。