Package com.tom_roush.pdfbox.multipdf
Class Splitter
- java.lang.Object
-
- com.tom_roush.pdfbox.multipdf.Splitter
-
public class Splitter extends Object
Split a document into several other documents.
-
-
Constructor Summary
Constructors Constructor Description Splitter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PDDocumentcreateNewDocument()Create a new document to write the split contents to.protected PDDocumentgetDestinationDocument()The source PDF document.protected PDDocumentgetSourceDocument()The source PDF document.protected voidprocessPage(PDPage page)Interface to start processing a new page.voidsetEndPage(int end)This will set the end page.voidsetSplitAtPage(int split)This will tell the splitting algorithm where to split the pages.voidsetStartPage(int start)This will set the start page.List<PDDocument>split(PDDocument document)This will take a document and split into several other documents.protected booleansplitAtPage(int pageNumber)Check if it is necessary to create a new document.
-
-
-
Method Detail
-
split
public List<PDDocument> split(PDDocument document) throws IOException
This will take a document and split into several other documents.- Parameters:
document- The document to split.- Returns:
- A list of all the split documents.
- Throws:
IOException- If there is an IOError
-
setSplitAtPage
public void setSplitAtPage(int split)
This will tell the splitting algorithm where to split the pages. The default is 1, so every page will become a new document. If it was two then each document would contain 2 pages. If the source document had 5 pages it would split into 3 new documents, 2 documents containing 2 pages and 1 document containing one page.- Parameters:
split- The number of pages each split document should contain.- Throws:
IllegalArgumentException- if the page is smaller than one.
-
setStartPage
public void setStartPage(int start)
This will set the start page.- Parameters:
start- the start page- Throws:
IllegalArgumentException- if the start page is smaller than one.
-
setEndPage
public void setEndPage(int end)
This will set the end page.- Parameters:
end- the end page- Throws:
IllegalArgumentException- if the end page is smaller than one.
-
splitAtPage
protected boolean splitAtPage(int pageNumber)
Check if it is necessary to create a new document. By default a split occurs at every page. If you wanted to split based on some complex logic then you could override this method. For example.protected void splitAtPage() { // will split at pages with prime numbers only return isPrime(pageNumber); }- Parameters:
pageNumber- the page number to be checked as splitting page- Returns:
- true If a new document should be created.
-
createNewDocument
protected PDDocument createNewDocument() throws IOException
Create a new document to write the split contents to.- Returns:
- the newly created PDDocument.
- Throws:
IOException- If there is an problem creating the new document.
-
processPage
protected void processPage(PDPage page) throws IOException
Interface to start processing a new page.- Parameters:
page- The page that is about to get processed.- Throws:
IOException- If there is an error creating the new document.
-
getSourceDocument
protected final PDDocument getSourceDocument()
The source PDF document.- Returns:
- the pdf to be splitted
-
getDestinationDocument
protected final PDDocument getDestinationDocument()
The source PDF document.- Returns:
- current destination pdf
-
-