Author: lehmi
Date: Thu Dec 18 07:12:46 2025
New Revision: 1930698

Log:
PDFBOX-6036: rename test to reference the correct ticket, add test for writing 
without compression

Modified:
   
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSWriterTest.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSWriterTest.java
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSWriterTest.java
     Thu Dec 18 06:49:09 2025        (r1930697)
+++ 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/COSWriterTest.java
     Thu Dec 18 07:12:46 2025        (r1930698)
@@ -153,8 +153,14 @@ class COSWriterTest
         }
     }
 
+    /**
+     * Test if overlapping object numbers are eliminated when merging pdfs.
+     * 
+     * @throws IOException
+     * @throws URISyntaxException
+     */
     @Test
-    void testPDFBox5752() throws IOException, URISyntaxException
+    void testPDFBox6036() throws IOException, URISyntaxException
     {
         URL emptyURL = new URI(
                 
"https://issues.apache.org/jira/secure/attachment/13066015/empty.pdf";).toURL();
@@ -167,21 +173,40 @@ class COSWriterTest
             emptyPDF = IOUtils.toByteArray(isEmpty);
             roboPDF = IOUtils.toByteArray(isRobo);
         }
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        // write merge result using compressed streams
+        ByteArrayOutputStream baosCompressed = new ByteArrayOutputStream();
         try (PDDocument targetDoc = Loader.loadPDF(emptyPDF);
                 PDDocument doc2 = Loader.loadPDF(roboPDF))
         {
             PDPage sourcePage = doc2.getPage(0);
             targetDoc.importPage(sourcePage);
-            targetDoc.save(baos);
+            targetDoc.save(baosCompressed);
         }
-        try (PDDocument targetDoc = Loader.loadPDF(baos.toByteArray()))
+        try (PDDocument targetDoc = 
Loader.loadPDF(baosCompressed.toByteArray()))
         {
             
assertNotNull(targetDoc.getDocumentCatalog().getStructureTreeRoot());
             PDResources res = targetDoc.getPage(1).getResources();
             assertEquals("BCDEEE+Roboto-Regular", 
res.getFont(COSName.getPDFName("F1")).getName());
             assertEquals("BCDFEE+Roboto-Regular", 
res.getFont(COSName.getPDFName("F2")).getName());
         }
+
+        // write merge result without compressed streams
+        ByteArrayOutputStream baosUncompressed = new ByteArrayOutputStream();
+        try (PDDocument targetDoc = Loader.loadPDF(emptyPDF);
+                PDDocument doc2 = Loader.loadPDF(roboPDF))
+        {
+            PDPage sourcePage = doc2.getPage(0);
+            targetDoc.importPage(sourcePage);
+            targetDoc.save(baosUncompressed, 
CompressParameters.NO_COMPRESSION);
+        }
+        try (PDDocument targetDoc = 
Loader.loadPDF(baosUncompressed.toByteArray()))
+        {
+            
assertNotNull(targetDoc.getDocumentCatalog().getStructureTreeRoot());
+            PDResources res = targetDoc.getPage(1).getResources();
+            assertEquals("BCDEEE+Roboto-Regular", 
res.getFont(COSName.getPDFName("F1")).getName());
+            assertEquals("BCDFEE+Roboto-Regular", 
res.getFont(COSName.getPDFName("F2")).getName());
+        }
+
     }
 
 }

Reply via email to