3

私のアプリケーションは、itext# を使用して PDF ドキュメントを生成しています。ファイルは問題なく開き、Foxit Readerでは正しく表示されますが、Adobe 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();行の前に行を追加すると、 FoxitAcrobatwriter.Close();の両方で表示されるようになりました。

itext# の重要な点は、オブジェクトが適切に閉じられるように細心の注意を払うことだと思います。これはおそらく、移植されたライブラリであり、ゼロから .NET 用に構築されたライブラリではないことを反映しています。

于 2010-11-10T04:04:06.920 に答える
2

一部の PDF リーダーは、さまざまな分野で他のリーダーよりも寛容です。Foxit はおそらく、サポートしていない pdf のビットを無視します。水を濁らせるためだけに、アクロバットのさまざまなバージョンがさまざまなものにチョークします。問題の PDF が表示されていないため、当て推量しかありません。

于 2010-11-10T03:28:06.363 に答える