org.apache.pdfbox.util
Class Splitter

java.lang.Object
  extended by org.apache.pdfbox.util.Splitter

public class Splitter
extends Object

Split a document into several other documents.

Version:
$Revision: 1.7 $
Author:
Mario Ivankovits ([email protected]), Ben Litchfield

Field Summary
protected  PDDocument currentDocument
          The current PDF document that contains the splitted page.
protected  int pageNumber
          The current page number that we are processing, zero based.
protected  PDDocument pdfDocument
          The source PDF document.
 
Constructor Summary
Splitter()
           
 
Method Summary
protected  void createNewDocument()
          Create a new document to write the splitted contents to.
protected  void createNewDocumentIfNecessary()
          Interface method, you can control where a document gets split by implementing this method.
 int getEndPage()
          This will return the end page.
 int getSplitAtPage()
          This will return how many pages each split document will contain.
 int getStartPage()
          This will return the start page.
protected  boolean isNewDocNecessary()
          Check if it is necessary to create a new document.
protected  void processNextPage(PDPage page)
          Interface to start processing a new page.
protected  void processPages(List pages)
          Interface method to handle the start of the page processing.
 void setEndPage(int end)
          This will set the end page.
 void setSplitAtPage(int split)
          This will tell the splitting algorithm where to split the pages.
 void setStartPage(int start)
          This will set the start page.
 List<PDDocument> split(PDDocument document)
          This will take a document and split into several other documents.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pdfDocument

protected PDDocument pdfDocument
The source PDF document.


currentDocument

protected PDDocument currentDocument
The current PDF document that contains the splitted page.


pageNumber

protected int pageNumber
The current page number that we are processing, zero based.

Constructor Detail

Splitter

public Splitter()
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 to then each document would contain 2 pages. So it 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.

getSplitAtPage

public int getSplitAtPage()
This will return how many pages each split document will contain.

Returns:
The split parameter.

setStartPage

public void setStartPage(int start)
This will set the start page.

Parameters:
start - the start page

getStartPage

public int getStartPage()
This will return the start page.

Returns:
The start page.

setEndPage

public void setEndPage(int end)
This will set the end page.

Parameters:
end - the end page

getEndPage

public int getEndPage()
This will return the end page.

Returns:
The end page.

processPages

protected void processPages(List pages)
                     throws IOException
Interface method to handle the start of the page processing.

Parameters:
pages - The list of pages from the source document.
Throws:
IOException - If an IO error occurs.

createNewDocumentIfNecessary

protected void createNewDocumentIfNecessary()
                                     throws IOException
Interface method, you can control where a document gets split by implementing this method. 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 createNewDocumentIfNecessary() { if( isPrime( pageNumber ) ) { super.createNewDocumentIfNecessary(); } }

Throws:
IOException - If there is an error creating the new document.

isNewDocNecessary

protected boolean isNewDocNecessary()
Check if it is necessary to create a new document.

Returns:
true If a new document should be created.

createNewDocument

protected void createNewDocument()
                          throws IOException
Create a new document to write the splitted contents to.

Throws:
IOException - If there is an problem creating the new document.

processNextPage

protected void processNextPage(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.


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.