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

Reply via email to