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 2018/04/19 17:42:37 UTC

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

Author: tilman
Date: Thu Apr 19 17:42:37 2018
New Revision: 1829579

URL: http://svn.apache.org/viewvc?rev=1829579&view=rev
Log:
PDFBOX-4071: add comment

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=1829579&r1=1829578&r2=1829579&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 Thu Apr 19 17:42:37 2018
@@ -529,6 +529,24 @@ public class PDFMergerUtility
             }
             else
             {
+//                System.out.println(srcNames);
+//                System.out.println(srcNames.getDests());
+//                System.out.println(srcNames.getDests().getNames());
+//                Map<String, PDPageDestination> names1 = srcNames.getDests().getNames();
+//                Map<String, PDPageDestination> names2 = destNames.getDests().getNames();
+//                if (names1 != null)
+//                    System.out.println(names1.keySet());
+//                else
+//                {
+//                    List<PDNameTreeNode<PDPageDestination>> kids = srcNames.getDests().getKids();
+//                    for (PDNameTreeNode<PDPageDestination> kid : kids)
+//                    {
+//                       
+//                    System.out.println(kid.getNames().keySet());
+//                    }
+//                    
+//                }
+//                System.out.println(names2.keySet());
                 cloner.cloneMerge(srcNames, destNames);
             }
         }
@@ -707,6 +725,8 @@ public class PDFMergerUtility
             }
             if (mergeStructTree)
             {
+                // add the value of the destination ParentTreeNextKey to every source element 
+                // StructParent(s) value so that these don't overlap with the existing values
                 updateStructParentEntries(newPage, destParentTreeNextKey);
                 objMapping.put(page.getCOSObject(), newPage.getCOSObject());
                 List<PDAnnotation> oldAnnots = page.getAnnotations();
@@ -981,24 +1001,24 @@ public class PDFMergerUtility
             {
                 parentTreeEntry.setItem(COSName.OBJ, objMapping.get(obj));
             }
-            else
-            {
-                // PDFBOX-3999: clone objects that are not in mapping to make sure that
-                // these don't remain attached to the source document
-                COSBase item = parentTreeEntry.getItem(COSName.OBJ);
-                if (item instanceof COSObject)
-                {
-                    LOG.debug("clone potential orphan object in structure tree: " + item +
-                            ", type: " + ((COSDictionary) obj).getNameAsString(COSName.TYPE));
-                }
-                else
-                {
-                    // don't display because of stack overflow
-                    LOG.debug("clone potential orphan object in structure tree, type: " +
-                            ((COSDictionary) obj).getNameAsString(COSName.TYPE));
-                }
-                parentTreeEntry.setItem(COSName.OBJ, cloner.cloneForNewDocument(obj));
-            }
+//            else
+//            {
+//                // PDFBOX-3999: clone objects that are not in mapping to make sure that
+//                // these don't remain attached to the source document
+//                COSBase item = parentTreeEntry.getItem(COSName.OBJ);
+//                if (item instanceof COSObject)
+//                {
+//                    LOG.warn("clone potential orphan object in structure tree: " + item +
+//                            ", type: " + ((COSDictionary) obj).getNameAsString(COSName.TYPE));
+//                }
+//                else
+//                {
+//                    // don't display because of stack overflow
+//                    LOG.warn("clone potential orphan object in structure tree, type: " +
+//                            ((COSDictionary) obj).getNameAsString(COSName.TYPE));
+//                }
+//                parentTreeEntry.setItem(COSName.OBJ, cloner.cloneForNewDocument(obj));
+//            }
         }
         COSBase kSubEntry = parentTreeEntry.getDictionaryObject(COSName.K);
         if (kSubEntry instanceof COSArray)