Split PDFs in Java
To split a document, you can use the Document Editor. This example shows splitting a document into two files: “A.pdf” and “B.pdf”.
-
Create a
DocumentEditor
object from the original document:final PdfDocument document = PdfDocument.open(new FileDataProvider(new File("documentToSplit.pdf"))); final DocumentEditor documentEditor = document.createDocumentEditor();
-
Identify which pages should be in document “A” and use
removePages
to remove the pages that remain:// Identify the pages that need to be split. final int[] pagesToSplit = new int[] {3, 4, 5}; documentEditor.RemovePages(pagesToSplit);
-
Save document “A” to a new location:
// Save the document to an output file. final String filename = "A.pdf"; documentEditor.saveDocument(new FileDataProvider(new File(filename)));
-
Using a function such as the one below will make this process simpler:
void exportSectionOfDocument(String originalDocument, String outputDocument, int[] pagesToExport) { final PdfDocument document = PdfDocument.open(new FileDataProvider(new File(originalDocument))); final DocumentEditor documentEditor = document.createDocumentEditor(); // Search the document for pages that should not be exported and add them to // a `pagesToRemove` set. final Set<Integer> pagesToRemove = new HashSet<>(); for (int i = 0; i < document.getPageCount(); i++) { if (Arrays.binarySearch(pagesToExport, i) < 0) { pagesToRemove.add(i); } } documentEditor.removePages(pagesToRemove); // Save the new document to the specified output location. documentEditor.saveDocument(new FileDataProvider(new File(outputDocument))); }
-
Repeat the steps for document “B”:
exportSectionOfDocument("documentToSplit.pdf", "B.pdf", new int[] {0, 1, 2});