我有一个包含多个运送标签的文件,每页2个(我无法选择此格式)。我正在尝试修改文件,以便每个标签都可以在4x6标签打印机上打印。
我有一个问题是将pdf页面的内容复制到另一个页面,以便我可以裁剪每个页面不同的区域以生成2个页面,其中一个页面包含原始页面中的每个标签。我目前的代码如下:
string filename = "Package.pdf";
using (var existingFileStream = new FileStream(filename, FileMode.Open))
{
var pdfReader = new PdfReader(existingFileStream);
using (FileStream output = new FileStream("Mod_package.pdf", FileMode.Create, FileAccess.Write))
{
using (PdfStamper pdfStamper = new PdfStamper(pdfReader, output))
{
int originalpages = pdfReader.NumberOfPages;
for(int page = 1; page <=originalpages; page++)
{
Rectangle rect = pdfReader.GetCropBox(page);
pdfStamper.InsertPage(page * 2, rect);
}
for(int page = 2; page <=pdfReader.NumberOfPages; page=page+2)
{
//I want to insert the content from pdf page 1 into
//page 2, page 3 into page 4 etc etc.
}
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
//The basic jyst of how I'm cropping
//This will be modified to use an even/odd page scheme
Rectangle rect = pdfReader.GetCropBox(page);
rect.Bottom = rect.Bottom / 2;
pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect));
rect = pdfReader.GetCropBox(page);
rect.Top = rect.Top / 2;
pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect));
}
}
}
pdfReader.Close();
}
如果我有一些奇怪的ITextSharp代码,我将不胜感激任何有关如何完成此任务的建议和道歉......我对它相对较新。
答案 0 :(得分:2)
它认为,只要我花时间发布问题,我就会找到答案。在上面的代码中,我插入了以下内容:
pdfStamper.ReplacePage(pdfReader, page - 1, page);
在第二个for循环中,第1页的内容转移到第2,3页等4等。