[ 
https://issues.apache.org/jira/browse/PDFBOX-1533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14054799#comment-14054799
 ] 

Maruan Sahyoun commented on PDFBOX-1533:
----------------------------------------

a potential workaround is to put

{code:java}
        @SuppressWarnings("unchecked")
        Set<COSBase> set = new LinkedHashSet<COSBase>((Collection<COSBase>) 
kids.toList());

        if (kids.size() != set.size()) {
            kids = new COSArray();
            kids.addAll(Collections.unmodifiableSet(set));
        }
{code}

into PDPageNode.getAllKids(). I’d need to test that for potential side effects.

> When merging certain PDF's several odd looking empty pages occure in the 
> result
> -------------------------------------------------------------------------------
>
>                 Key: PDFBOX-1533
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1533
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 1.7.1, 1.8.4
>            Reporter: Christian Connert
>         Attachments: sample_pdf.zip
>
>
> Unfortunately I cannot attach a input file for this case as it contains 
> confidential customer data, but I'll try to explain the problem in depth so 
> you hopefully are able to track it down.
> When we merge certain PDF's with the PDFMergerUtility the result contains 
> several empty pages at the end of the document. It seems like that only 
> certain pdf versions are effected (i.p.: 1.5 (Acrobat 6.x)). 
> I tracked the problem down to the the following part in the appendDocument 
> method of the PDFMergerUtility:
> {code}
>  //finally append the pages
>         List<PDPage> pages = srcCatalog.getAllPages();
>         Iterator<PDPage> pageIter = pages.iterator();
>         while( pageIter.hasNext() )
>         {
>             PDPage page = pageIter.next();
>             PDPage newPage =
>                 new PDPage( (COSDictionary)cloner.cloneForNewDocument( 
> page.getCOSDictionary() ) );
>             newPage.setCropBox( page.findCropBox() );
>             newPage.setMediaBox( page.findMediaBox() );
>             newPage.setRotation( page.findRotation() );
>             destination.addPage( newPage );
>         }
> {code}
> The problem is that call to srcCatalog.getAllPages(); returns for example 6 
> PDPage objects, but for the same input document, the call to 
> source.getNumberOfPages() returns only 2. Thus we add 4 odd empty pages to 
> the result document.
> I hope this description is good enough to figure out the problem. Don't 
> hesitate to ask for further details.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to