Author: tilman
Date: Sat May 17 13:14:01 2025
New Revision: 1925628
URL: http://svn.apache.org/viewvc?rev=1925628&view=rev
Log:
PDFBOX-6009: recalculate ParentTreeNextKey because it might be missing
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java?rev=1925628&r1=1925627&r2=1925628&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
Sat May 17 13:14:01 2025
@@ -236,7 +236,20 @@ public class Splitter
dstNumberTreeNode.setNumbers(dstNumberTreeAsMap);
dstStructureTreeRoot.setParentTree(dstNumberTreeNode);
-
dstStructureTreeRoot.setParentTreeNextKey(srcStructureTreeRoot.getParentTreeNextKey());
+ // get highest key + 1
+ int maxKey = -1;
+ for (int key : dstNumberTreeAsMap.keySet())
+ {
+ if (key > maxKey)
+ {
+ maxKey = key;
+ }
+ }
+ if (maxKey != -1)
+ {
+ dstStructureTreeRoot.setParentTreeNextKey(maxKey + 1);
+ }
+
dstStructureTreeRoot.setClassMap(srcStructureTreeRoot.getClassMap());
cloneRoleMap(srcStructureTreeRoot, dstStructureTreeRoot);
cloneIDTree(srcStructureTreeRoot, dstStructureTreeRoot);
Modified:
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java?rev=1925628&r1=1925627&r2=1925628&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Sat May 17 13:14:01 2025
@@ -71,6 +71,7 @@ import org.apache.pdfbox.pdmodel.interac
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.text.PDFMarkedContentExtractor;
import org.junit.Assert;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThrows;
import org.junit.function.ThrowingRunnable;
@@ -640,6 +641,7 @@ public class PDFMergerUtilityTest extend
{
PDDocumentCatalog documentCatalog = document.getDocumentCatalog();
PDNumberTreeNode parentTree =
documentCatalog.getStructureTreeRoot().getParentTree();
+ assertNotEquals(-1,
documentCatalog.getStructureTreeRoot().getParentTreeNextKey());
Map<Integer, COSObjectable> numberTreeAsMap =
PDFMergerUtility.getNumberTreeAsMap(parentTree);
Set<Integer> keySet = numberTreeAsMap.keySet();
PDAcroForm acroForm = documentCatalog.getAcroForm();