我有一个300页的PDF文件。我想从我选择的页面中创建一个新的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);
我的问题是,如何获取“第一页”的内容。进入" blankPage.pdf"。 如果我可以选择第一页的x,y坐标(它将被覆盖的位置),那就更好了。
P.S。 我的Hello World文件的页面大小不是A4。每个页面更像是带有文本和形状的缩略图。因此,A4上可以覆盖。此外,我不想将文件转换为图像然后onverlay,我希望将整个pdf文件按原样粘贴(不先转换为图像)
答案 0 :(得分: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();