Java ApachePDFBox:将最后一页移动到第一页

Java ApachePDFBox:将最后一页移动到第一页,java,apache,pdf,Java,Apache,Pdf,我正在用ApachePDFBox编写一个简单的Java应用程序。 我有几个PDF,其中最后一页是前几页内容的索引 我需要索引(最后一页)成为PDF文件的第一页 可能吗 我还发现了比ApachePDFBox更好的库,但是在这种情况下,我也不知道我是否可以做我需要的事情 或者我可以使用这个:使用PDFBox,您可以将原始PDF打开到PDDocument中,然后使用getDocumentCatalog().getAllPages()获取页面列表。按照您想要的顺序重新排列列表,并将每一页写到新文档中

我正在用ApachePDFBox编写一个简单的Java应用程序。 我有几个PDF,其中最后一页是前几页内容的索引

我需要索引(最后一页)成为PDF文件的第一页

可能吗

我还发现了比ApachePDFBox更好的库,但是在这种情况下,我也不知道我是否可以做我需要的事情


或者我可以使用这个:

使用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
PDDocument newDoc=newpddocument();
PDDocument oldDoc=PDDocument.load(args[0]);
List allPages=oldDoc.getDocumentCatalog().getAllPages();
//重新排列列表的代码如下所示
对于(int curPageCnt=0;curPageCnt
我正在使用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;
}

当前的PDFBox版本是1.8.13和2.0.7。使用boxable库在PDF文档中构建表时特别需要。参考