私はいくつかのpdf(1000以上)を取り、それらを単一のpdfにマージするプログラムを持っています。
プログラムは完璧に動作しますが、スプール エラーが発生しました。
マージされた pdf を Acrobat で開いて印刷すると、n ページの単一スプールをプリンターに送信する代わりに、元の pdf の数と同じ数のスプールが送信され、プリンターの処理が非常に遅くなります。
これはクラスの要約です
Document document = new Document ( iTextSharp.text.PageSize.A4 );
PdfWriter writer = PdfWriter.GetInstance ( document, new FileStream ( outputFilename, FileMode.Create ) );
writer.SetFullCompression();
document.Open();
PdfContentByte cb = writer.DirectContent;
foreach( var file in files ) {
PdfReader reader = new PdfReader ( file );
int n = reader.NumberOfPages;
int i = 0;
while ( i < n)
{
i++;
document.SetPageSize ( reader.GetPageSizeWithRotation ( i ) );
document.NewPage();
page = writer.GetImportedPage ( reader, i );
rotation = reader.GetPageRotation ( i );
cb.AddTemplate ( page, 1f, 0, 0, 1f, 0, 0 );
}
}
document.Close();