我們使用itextsharp從多個PDF文件創建單個PDF。如何將新頁面插入到文件中已有多個頁面的PDF文件中?當我使用添加頁面時,它將覆蓋現有頁面,並只保存所選的1頁。使用itextsharp將頁面插入到現有PDF中
這裏是我使用的網頁添加到現有的PDF的代碼:
PdfReader reader = new PdfReader(sourcePdfPath);
Document document = new Document(reader.GetPageSizeWithRotation(1));
PdfCopy pdfCopy = new PdfCopy(document, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create));
MemoryStream memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.AddDocListener(writer);
document.Open();
for (int p = 1; p <= reader.NumberOfPages; p++)
{
if (pagesToExtract.FindIndex(s => s == p) == -1) continue;
document.SetPageSize(reader.GetPageSize(p));
document.NewPage();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage pageImport = writer.GetImportedPage(reader, p);
int rot = reader.GetPageRotation(p);
if (rot == 90 || rot == 270)
{
cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(p).Height);
}
else
{
cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0);
}
pdfCopy.AddPage(pageImport);
}
pdfCopy.Close();
我想從源PDF只有某些網頁,並將它們添加到現有的PDF。唯一的問題是它不會將其添加到現有的PDF中,而只是將其寫入。 –
@Rob:出於某種原因,我沒有從原始問題中得知。您的問題是否需要重新編寫爲將源文檔中的某些(包括全部)頁面合併到一個文件中?這意味着現有PDF成爲所有頁面所需的源之一? –