2014-03-27 106 views
0

我有一個300頁的PDF文件。我想從我選擇的頁面創建一個新的PDF文件現有的PDF文件。在PDFBOX中創建PDF文件(從現有的pdf文件)

我創建了一個空白的PDF文件(使用PDFBox的)是這樣的:

// Create a new empty document 
PDDocument document = new PDDocument(); 

// Create a new blank page and add it to the document 
PDPage blankPage = new PDPage(); 
document.addPage(blankPage); 

// Save the newly created document 
document.save("BlankPage.pdf"); 

這該是多麼我從PDF文件閱讀的頁面。

PDDocument doc = PDDocument.load("Hello World.pdf"); 
PDPage firstPage = (PDPage) doc.getDocumentCatalog().getAllPages().get(67); 

我的問題是,如何將'firstpage'的內容獲取到「blankPage.pdf」中。 如果我可以選擇第一頁的x,y座標(重疊的地方),它會更好。

P.S. 我的Hello World文件的頁面大小不是A4。每個頁面更像是一個帶有文本和形狀的縮略圖。因此,A4上可以覆蓋。此外,我不想將文件轉換爲圖像,然後在onlay,我想整個pdf文件被粘貼(不先轉換爲圖像)

回答

0

事實證明,iText可以做同樣的事情。以下是該代碼:

PdfReader reader = new PdfReader("Hello World.pdf"); 

      Document document = new Document(PageSize.A4); 
      PdfWriter writer = PdfWriter.getInstance(document, 
        new FileOutputStream("RESULT.PDF")); 
      document.open(); 
      PdfContentByte canvas = writer.getDirectContent(); 
      PdfImportedPage page; 








      for (int i = 3; i <=6; i++) { 
       page = writer.getImportedPage(reader, i); 
       canvas.addTemplate(page, 1f, 0, 0, 1, 0, i*30-250); 

      } 
      document.close();