Reputation: 1
I am trying to use iTextSharp to take a single page PDF and insert that page after each page of multiple page PDF. Currently I use an old version of Aspose to apply overlays and backers to single page and multipage PDF file. Using it is simple, but I'm trying to get rid of third party controls so I am trying to replace it a library using iTextSharp. I have the overlay part working perfectly, but the adding a backer is getting me on multipage PDF files.
For instance the multipage PDF has pages p1, p2, p3, p4 etc. I need it to have a single page PDF called backer inserted after every page as in p1, backer, p2, backer, p3, backer, p4, backer.
This should be something simple to do I would think, but I can't find any documentation or examples and it is proving to be difficult.
Does anybody out there have an example of how this is done?
Upvotes: 0
Views: 329
Reputation: 95898
If the backer page does not contain any annotations, you can implement your task like this:
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);
}
}
Upvotes: 1