1

iTextSharp NuGet パッケージを v. 5.3.3 から 5.4.2に更新した後、System.InvalidOperationException: Already closed例外が発生します。

これは、次のように呼び出すと発生します。

Document doc = new Document(PageSize.A4);
.
.
.

doc.Close(); // Document is already closed hence the exception

このコードは で問題なく動作していたことに注意することが重要iTextSharp 5.3.3です。

その行にコメントすると、PDF生成されましたが、Adobe Reader または Windows 8 に組み込まれている PDF リーダーで開くことができないiTextSharp破損したファイルが出力され始めました。PDF

4

2 に答える 2

1

Visual Studio でコードを操作し、IntelliSense を利用して、Documentオブジェクトで可能なさまざまなメソッドを調べました。という追加のメソッドがあることがわかったCloseDocument()ので、次の行を変更しました。

doc.Close();

doc.CloseDocument();

何だと思いますか?物事は再び働き始めました。もう例外はありません。素晴らしい!

将来この同じ問題に遭遇する可能性のある人に役立つことを願っています...


まあまあ...さまざまな入力オプションを試した後、再び例外が発生し始めました...

私は明示的に呼び出していました:

pdfReader.Close();

メソッド内AppendToDocument。これは、 を呼び出す前に発生してdoc.Close();いました。上記の行にコメントするだけで、例外はなくなりました。

于 2013-07-02T19:55:30.510 に答える