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 2024/01/29 14:55:07 UTC
svn commit: r1915448 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Author: tilman
Date: Mon Jan 29 14:55:07 2024
New Revision: 1915448
URL: http://svn.apache.org/viewvc?rev=1915448&view=rev
Log:
PDFBOX-2725: add splitting test
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java?rev=1915448&r1=1915447&r2=1915448&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java Mon Jan 29 14:55:07 2024
@@ -1006,4 +1006,29 @@ class PDFMergerUtilityTest
assertNotEquals(-1, pageTree.indexOf(page), "Page is not in the page tree");
}
}
+
+ @Test
+ void testSplitWithStructureTree() throws IOException
+ {
+ try (PDDocument doc = Loader.loadPDF(new File(SRCDIR, "PDFBOX-4417-001031.pdf")))
+ {
+ Splitter splitter = new Splitter();
+ splitter.setStartPage(1);
+ splitter.setEndPage(2);
+ splitter.setSplitAtPage(2);
+ List<PDDocument> splitResult = splitter.split(doc);
+ assertEquals(1, splitResult.size());
+ try (PDDocument dstDoc = splitResult.get(0))
+ {
+ assertEquals(2, dstDoc.getNumberOfPages());
+ checkForPageOrphans(dstDoc);
+ // these tests just verify the status quo. Changes should be checked visually with
+ // a PDF viewer that can display structural information.
+ PDStructureTreeRoot structureTreeRoot = dstDoc.getDocumentCatalog().getStructureTreeRoot();
+ assertEquals(126, PDFMergerUtility.getIDTreeAsMap(structureTreeRoot.getIDTree()).size());
+ assertEquals(2, PDFMergerUtility.getNumberTreeAsMap(structureTreeRoot.getParentTree()).size());
+ assertEquals(6, structureTreeRoot.getRoleMap().size());
+ }
+ }
+ }
}