我想在现有PDF文件中添加索引页面。并将页码添加到pdf文件的页面 所有建议的解决方案都指向创建新的pdf并将现有的pdf文件与新的pdf文件合并。
还有其他办法吗? 此外,我不想使用itext,因为它不能免费用于商业用途。
答案 0 :(得分:1)
根据您对原始问题的评论,您认为在PDFBox中
添加新页面&内容,您需要创建一个新的pdf添加新内容,然后合并现有的pdf。我想避免合并步骤。重命名不是问题
你可能想尝试这样的事情:
PDDocument doc = PDDocument.load(new FileInputStream(new File("original.pdf")));
PDPage page = new PDPage();
// fill page
doc.addPage(page);
doc.save("original-plus-page.pdf");
编辑:在对答案的评论中,问题出现了如何在特定索引(页码)处插入新页面。要做到这一点,显然{{em> 1}}必须以某种方式改变。
最初这个doc.addPage(page)
方法定义如下:
PDDocument
我们只需要一个类似的功能,它不仅仅是/**
* This will add a page to the document. This is a convenience method, that
* will add the page to the root of the hierarchy and set the parent of the
* page to the root.
*
* @param page The page to add to the document.
*/
public void addPage( PDPage page )
{
PDPageNode rootPages = getDocumentCatalog().getPages();
rootPages.getKids().add( page );
page.setParent( rootPages );
rootPages.updateCount();
}
页面给孩子,而是将它添加到给定的索引。因此,我们的代码中的以下辅助方法将执行:
add
如果您现在替换
行public static void addPage(PDDocument doc, int index, PDPage page)
{
PDPageNode rootPages = doc.getDocumentCatalog().getPages();
rootPages.getKids().add(index, page);
page.setParent(rootPages);
rootPages.updateCount();
}
在原始答案的代码中
doc.addPage(page);
预先添加空白页面。