3

我的应用程序正在使用 itext# 生成 PDF 文档。这些文件可以正常打开并在Foxit Reader中正确显示,但在Adob​​e Acrobat中会出现以下错误:

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

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

4

2 回答 2

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();,它现在同时显示在FoxitAcrobat中。

我想 itext# 的关键是要非常小心正确关闭对象。这可能反映了它是一个移植的库,而不是从头开始为 .NET 构建的库。

于 2010-11-10T04:04:06.920 回答
2

一些 pdf 阅读器在各个方面比其他阅读器更宽容。Foxit 可能会忽略它不支持的 pdf 中的位。不同版本的杂技演员在不同的事情上窒息,只是为了搅浑水。如果没有看到有问题的 PDF,我们所拥有的只是猜测。

于 2010-11-10T03:28:06.363 回答