我已到处寻找这个,但无法找到有效的答案。我有2个输入PDF(只有2)。如何在iTextSharp中添加PDF到另一个PDF?
我想将PDF2添加到PDF1(新页面)的底部,然后输出为PDF3。
任何人都可以提供帮助,如果你提交任何代码,如果它在vb.net将是伟大的。
我已到处寻找这个,但无法找到有效的答案。我有2个输入PDF(只有2)。如何在iTextSharp中添加PDF到另一个PDF?
我想将PDF2添加到PDF1(新页面)的底部,然后输出为PDF3。
任何人都可以提供帮助,如果你提交任何代码,如果它在vb.net将是伟大的。
可以使用"ITextSharp"
合并PDS ...这里是我想自己在我最近的项目很好的例子......你可以从它那里得到好主意......
Pdf Merge Issue in ItextSharp (After Merging Pdfs don't retain their Values)
我会建议使用PdfWriter.GetImportedPage ...
例如:
'' Create your blank PDF
Dim pdfDoc As Document = New Document(New Rectangle(0, 0, width, height))
Dim pdfWriter As PdfWriter = pdfWriter.GetInstance(pdfDoc, New FileStream("yourPDF.pdf", FileMode.OpenOrCreate))
pdfDoc.Open()
'' Create a reader to read in your PDF 2
Dim bgReader As PdfReader = New PdfReader("pdf2.pdf"))
Dim bg As PdfImportedPage = pdfWriter.GetImportedPage(bgReader, 1)
'' add the template beneath content
pdfWriter.DirectContentUnder.AddTemplate(bg, 0, 0)
'' now do the same for PDF1
bgReader = new PdfReader("pdf1.pdf")
bg = pdfWriter.GetImportedPage(bgReader,1)
pdfWriter.DirectContentUnder.AddTemplate(bg,0,0)
'' don't forget to close the doc which will save it
pdfDoc.Close()
这几方面做一个..没有测试过合作德,但应该不会太远了:)
编辑:
见,据我所知,你不能真正改变PDF1。您必须创建由PDF1和PDF2组成的PDF3。因此,上面这是我们实际做的。
你可以做的另一件事是加载在形成你的主文档的基础的文档中,然后创建一个你将写入的PDFStamper。所以假设PDF1是你的主要。现在
Dim reader as PdfReader = New PdfReader("pathToPDF1")
Dim stamper as new PdfStamper(reader, New FileStream("PathToSaveYourNewPdfTo.pdf"), IO.FileMode.Create)
,如果你想添加这个模板下,然后调用GetUnderContent阅读内容PDF2
Dim bgReader As PdfReader = New PdfReader("pdf2.pdf"))
Dim bg As PdfImportedPage = pdfWriter.GetImportedPage(bgReader, 1)
。在我的代码示例中,可以通过提供X和Y坐标为'0,0'来定位你想要的位置。记住这些坐标来自PDF上的左下角。
'' add the template beneath content, 1 indicates pagenumber of the doc you loaded in
stamper.GetUnderContent(1).AddTemplate(bg, 0, 0)
如果你想添加到您的模板的顶部,那么你打电话GetOverContent并且可以使用相同的定位属性
stamper.GetOverContent(1).AddTemplate(bg, 0, 0)
不知道我缺少在您的意见别的东西..? ...
你好,谢谢你,它的作品,但它只是增加了新的文件到当前的顶部,所以它实际上重叠的第一个文件,我遇到的问题是获取新的页面,apped第一个,你知道如何做到这一点? – connersz
好吧,提到的文件似乎是腐败的,并解释了这个问题。现在的问题是,我似乎只是添加了第一个以上的新PDF,即使交换后它们:-S – connersz
好吧,我将编辑这个答案,其中有一些不同的代码... – Darren