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 2019/01/01 10:07:35 UTC

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

Author: tilman
Date: Tue Jan  1 10:07:34 2019
New Revision: 1850082

URL: http://svn.apache.org/viewvc?rev=1850082&view=rev
Log:
PDFBOX-4419: merge MarkInfo

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=1850082&r1=1850081&r2=1850082&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 Tue Jan  1 10:07:34 2019
@@ -697,9 +697,7 @@ public class PDFMergerUtility
         int destParentTreeNextKey = -1;
         Map<Integer, COSObjectable> srcNumberTreeAsMap = null;
         Map<Integer, COSObjectable> destNumberTreeAsMap = null;
-        PDMarkInfo destMark = destCatalog.getMarkInfo();
         PDStructureTreeRoot destStructTree = destCatalog.getStructureTreeRoot();
-        PDMarkInfo srcMark = srcCatalog.getMarkInfo();
         PDStructureTreeRoot srcStructTree = srcCatalog.getStructureTreeRoot();
         if (destStructTree != null)
         {
@@ -805,7 +803,26 @@ public class PDFMergerUtility
             mergeKEntries(cloner, srcStructTree, destStructTree);
             mergeRoleMap(srcStructTree, destStructTree);
             mergeIDTree(cloner, srcStructTree, destStructTree);
+            mergeMarkInfo(destCatalog, srcCatalog);
+        }
+    }
+
+    private void mergeMarkInfo(PDDocumentCatalog destCatalog, PDDocumentCatalog srcCatalog)
+    {
+        PDMarkInfo destMark = destCatalog.getMarkInfo();
+        PDMarkInfo srcMark = srcCatalog.getMarkInfo();
+        if (destMark == null)
+        {
+            destMark = new PDMarkInfo();
+        }
+        if (srcMark == null)
+        {
+            srcMark = new PDMarkInfo();
         }
+        destMark.setMarked(true);
+        destMark.setSuspect(srcMark.isSuspect() || destMark.isSuspect());
+        destMark.setSuspect(srcMark.usesUserProperties() || destMark.usesUserProperties());
+        destCatalog.setMarkInfo(destMark);
     }
 
     private void mergeKEntries(PDFCloneUtility cloner,