我正在用Apache PDFBox编写一个简单的Java应用程序.我有几个PDF,其中最后一页是前几页中内容的索引.
我需要索引(最后一页)成为PDF文件的第一页.
可能吗?
我还发现http://itextpdf.com/库听起来比Apache PDFBox好,但在这种情况下我不知道我是否可以做我需要的东西
或者也许我可以使用这个:http://saaspose.com/docs/display/pdf/How+to+Move+Page+within+a+Pdf+Document+%28Java+SDK%29
我使用的是 PDFBox 版本 2.0.0。以下是将最后一页移动到第一个位置的方法:
public static PDDocument moveLastPageToFirst(PDDocument documentToRearrangePages) {
PDPageTree allPages = documentToRearrangePages.getDocumentCatalog().getPages();
if (allPages.getCount() > 1) {
PDPage lastPage = allPages.get(allPages.getCount() - 1);
allPages.remove(allPages.getCount() - 1);
PDPage firstPage = allPages.get(0);
allPages.insertBefore(lastPage, firstPage);
}
return documentToRearrangePages;
}
Run Code Online (Sandbox Code Playgroud)
使用PDFBox,您可以将原始PDF打开到PDDocument中,然后使用getDocumentCatalog().getAllPages()来获取页面列表.按所需顺序重新排列列表,并将每个页面写出到新文档.
PDDocument newDoc = new PDDocument();
PDDocument oldDoc = PDDocument.load (args[0]);
List allPages = oldDoc.getDocumentCatalog().getAllPages();
// Code to rearrange the list goes here
for ( int curPageCnt = 0; curPageCnt < allPages.size(); curPageCnt++ )
{
newDoc.addPage( ( PDPage )allPages.get ( curPageCnt ) );
} // end for
Run Code Online (Sandbox Code Playgroud)