iTextSharp で ObjectDisposedException が発生する

iTextSharp でPDFを作成しようとしていて、丁寧に Close メソッドを呼び出したところ、System.ObjectDisposedException (既にオブジェクトは破棄)が発生する…

よくよく調べてたら PdfWriter のインスタンスではなく、Document のインスタンスを CloseDocument する必要があった。Close ではなく、CloseDocument。

var doc = new Document();
var writer = PdfWriter.GetInstance(doc, ... );

//// ダメな例
//writer.Close();

// OKな例
doc.CloseDocument();

StreamWriter とかをよく使っていると、なんとなくPdfWriterをCloseしてしまう。

なお、CloseDocument の代わりに Close を使うと「Already Closed」のエラーが発生する。