Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.pdfbox.util
Class Splitter

    java.lang.Object
      org.pdfbox.util.Splitter

public class Splitter
extends Object

Split a document into several other documents.

Version:
  $Revision: 1.6 $
Author:
  Mario Ivankovits (mario@ops.co.at), Ben Litchfield (ben@benlitchfield.com)

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` | `getSplitAtPage()` This will return how many pages each split document will contain.
`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` | `setSplitAtPage(int split)` This will tell the splitting algorithm where to split the pages.
`List` | `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 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.

### 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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD