File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed
main/java/org/apache/pdfbox/multipdf
test/java/org/apache/pdfbox/multipdf Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change 2323import java .util .LinkedHashMap ;
2424import java .util .List ;
2525import java .util .Map ;
26+ import java .util .Optional ;
2627import java .util .Set ;
2728
2829import org .apache .logging .log4j .Logger ;
@@ -236,7 +237,13 @@ private void cloneStructureTree(PDDocument destinationDocument) throws IOExcepti
236237 dstNumberTreeNode .setNumbers (dstNumberTreeAsMap );
237238 dstStructureTreeRoot .setParentTree (dstNumberTreeNode );
238239
239- dstStructureTreeRoot .setParentTreeNextKey (srcStructureTreeRoot .getParentTreeNextKey ());
240+ // get highest key + 1
241+ Optional <Integer > max = dstNumberTreeAsMap .keySet ().stream ().max (Integer ::compareTo );
242+ if (max .isPresent ())
243+ {
244+ dstStructureTreeRoot .setParentTreeNextKey (max .get () + 1 );
245+ }
246+
240247 dstStructureTreeRoot .setClassMap (srcStructureTreeRoot .getClassMap ());
241248 cloneRoleMap (srcStructureTreeRoot , dstStructureTreeRoot );
242249 cloneIDTree (srcStructureTreeRoot , dstStructureTreeRoot );
Original file line number Diff line number Diff line change @@ -663,6 +663,7 @@ void checkWithNumberTree(PDDocument document) throws IOException
663663 {
664664 PDDocumentCatalog documentCatalog = document .getDocumentCatalog ();
665665 PDNumberTreeNode parentTree = documentCatalog .getStructureTreeRoot ().getParentTree ();
666+ assertNotEquals (-1 , documentCatalog .getStructureTreeRoot ().getParentTreeNextKey ());
666667 Map <Integer , COSObjectable > numberTreeAsMap = PDFMergerUtility .getNumberTreeAsMap (parentTree );
667668 Set <Integer > keySet = numberTreeAsMap .keySet ();
668669 PDAcroForm acroForm = documentCatalog .getAcroForm ();
You can’t perform that action at this time.
0 commit comments