Duarte Alexandre created PDFBOX-1504:
----------------------------------------
Summary: Split document issue
Key: PDFBOX-1504
URL: https://issues.apache.org/jira/browse/PDFBOX-1504
Project: PDFBox
Issue Type: Bug
Affects Versions: 1.7.1
Reporter: Duarte Alexandre
I've seen a bug trying to split pages of a pdf document.
For example, I got a 5 pages pdf document and I try to create a document with
pages 4 to 5.
I set startPage to 3 and endPage to 5 (also tried to set page number to 3) but
it creates a document with pages 3 to 4 and a other one with page 5.
I analysed a little bit the problem and it looks like it comes from the value
of pageNumber variable in Splitter.class.
This is how I solved it (rewriting 3 methods) :
@Override
protected void processPages(List pages) throws IOException {
Iterator iter = pages.iterator();
while( iter.hasNext() ) {
PDPage page = (PDPage)iter.next();
pageNumber++;
if (pageNumber >= getStartPage() && pageNumber <= getEndPage())
{
processNextPage( page );
}
else {
if (pageNumber > getEndPage()) {
break;
}
}
}
}
@Override
protected void processNextPage( PDPage page ) throws IOException {
createNewDocumentIfNecessary();
PDPage imported = currentDocument.importPage( page );
imported.setCropBox( page.findCropBox() );
imported.setMediaBox( page.findMediaBox() );
// only the resources of the page will be copied
imported.setResources( page.getResources() );
imported.setRotation( page.findRotation() );
}
@Override
protected boolean isNewDocNecessary() {
return (pageNumber % getSplitAtPage() == 0 && pageNumber !=
getEndPage()) || currentDocument == null;
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira