我有一個程序,需要幾個pdf(甚至1000+),並將它們合併成一個pdf。iTextSharp pdf合併後臺問題
該程序完美地工作,但我面臨一個假脫機錯誤。
如果我用Acrobat打開合併的PDF並打印它,而不是發送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();
謝謝你的提示。另外,它也解決了假脫機問題;)。我不記得這幾年我使用它的代碼的來源,但很高興知道我不會再使用PdfWriter:D –