You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/05/20 20:42:07 UTC

svn commit: r1680651 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Author: tilman
Date: Wed May 20 18:42:06 2015
New Revision: 1680651

URL: http://svn.apache.org/r1680651
Log:
PDFBOX-2808: add each outline item individually when merging

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1680651&r1=1680650&r2=1680651&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Wed May 20 18:42:06 2015
@@ -350,11 +350,15 @@ public class PDFMergerUtility
             }
             else
             {
-                PDOutlineItem first = srcOutline.getFirstChild();
-                if (first != null)
+                for (PDOutlineItem item : srcOutline.children())
                 {
-                    PDOutlineItem clonedFirst = new PDOutlineItem((COSDictionary) cloner.cloneForNewDocument(first));
-                    destOutline.addLast(clonedFirst);
+                    // get each child, clone its dictionary, remove siblings info,
+                    // append outline item created from there
+                    COSDictionary clonedDict = (COSDictionary) cloner.cloneForNewDocument(item);
+                    clonedDict.removeItem(COSName.PREV);
+                    clonedDict.removeItem(COSName.NEXT);
+                    PDOutlineItem clonedItem = new PDOutlineItem(clonedDict);
+                    destOutline.addLast(clonedItem);
                 }
             }
         }