我已到處尋找這個,但無法找到有效的答案。我有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