我正在尝试使用iTextSharp获取单页PDF并在多页PDF的每页之后插入该页面。目前,我使用旧版本的Aspose将叠加和支持应用于单页和多页PDF文件。使用它很简单,但我试图摆脱第三方控件,所以我试图用iTextSharp替换它一个库。我有覆盖部分工作完美,但添加一个支持者让我得到多页PDF文件。
例如,多页PDF有页面p1,p2,p3,p4等。我需要它在每页之后插入一个名为backer的PDF页面,如p1,backer,p2,backer,p3,backer,p4,支持者。
这应该是我想的简单易行,但我找不到任何文档或示例,并且证明是困难的。
那里有人有这样做的例子吗?
答案 0 :(得分:1)
如果支持者页面不包含任何注释,您可以执行以下任务:
string sourceMultiPage = PATH_OF_THE_MULTIPAGE_PDF;
string sourceSinglePage = PATH_OF_THE_SINGLEPAGE_PDF;
string dest = PATH_OF_THE_RESULT;
using (PdfReader readerSingle = new PdfReader(sourceSinglePage))
using (PdfReader readerMulti = new PdfReader(sourceMultiPage))
using (PdfStamper stamper = new PdfStamper(readerMulti, new FileStream(dest, FileMode.Create)))
{
PdfImportedPage singlePage = stamper.GetImportedPage(readerSingle, 1);
Rectangle pageRect = readerSingle.GetPageSizeWithRotation(1);
for (int page = readerMulti.NumberOfPages + 1; page > 1; page--)
{
stamper.InsertPage(page, pageRect);
stamper.GetOverContent(page).AddTemplate(singlePage, pageRect.Left, pageRect.Bottom);
}
}