Author: tilman
Date: Wed Aug 13 07:38:55 2025
New Revision: 1927779

Log:
PDFBOX-6049: add test + test files

Added:
   
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-ExpectedResult.pdf
   (contents, props changed)
   
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-Overlay.pdf
   (contents, props changed)
   
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-Source.pdf
   (contents, props changed)
Modified:
   pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/OverlayTest.java

Modified: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/OverlayTest.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/OverlayTest.java   
    Wed Aug 13 07:38:49 2025        (r1927778)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/OverlayTest.java   
    Wed Aug 13 07:38:55 2025        (r1927779)
@@ -24,6 +24,7 @@ import java.awt.image.BufferedImage;
 import java.awt.image.DataBufferInt;
 import java.io.File;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -49,7 +50,7 @@ class OverlayTest
 {
     private static final File IN_DIR = new 
File("src/test/resources/org/apache/pdfbox/multipdf");
     private static final File OUT_DIR = new File("target/test-output/overlay");
-    
+
     @BeforeAll
     static void setUp()
     {
@@ -108,6 +109,25 @@ class OverlayTest
                                         new File(OUT_DIR, 
"Overlayed-with-rot270.pdf"));
             }
         }
+        new File(OUT_DIR, "OverlayTestBaseRot0_4Pages.pdf").delete();
+    }
+
+    @Test
+    void testOverlayOnRotatedSourcePages() throws IOException
+    {
+        try (Overlay overlay = new Overlay())
+        {
+            overlay.setInputFile(IN_DIR + "/PDFBOX-6049-Source.pdf");
+            overlay.setDefaultOverlayFile(IN_DIR + "/PDFBOX-6049-Overlay.pdf");
+            overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
+            overlay.setAdjustRotation(true);
+            try (PDDocument resultDoc = 
overlay.overlay(Collections.emptyMap()))
+            {
+                resultDoc.save(OUT_DIR + "/PDFBOX-6049-Result.pdf");
+            }
+            checkIdenticalRendering(new File(IN_DIR + 
"/PDFBOX-6049-ExpectedResult.pdf"), new File(OUT_DIR, 
"PDFBOX-6049-Result.pdf"));
+            new File(OUT_DIR, "PDFBOX-6049-Result.pdf").delete();
+        }
     }
 
     private void testRotatedOverlay(int rotation) throws IOException
@@ -136,28 +156,26 @@ class OverlayTest
 
     private void checkIdenticalRendering(File modelFile, File resultFile) 
throws IOException
     {
-        BufferedImage modelImage;
-        try (PDDocument modelDocument = Loader.loadPDF(modelFile))
+        try (PDDocument modelDocument = Loader.loadPDF(modelFile);
+             PDDocument resultDocument = Loader.loadPDF(resultFile))
         {
-            modelImage = new PDFRenderer(modelDocument).renderImage(0);
-        }
-
-        BufferedImage resultImage;
-        try (PDDocument resultDocument = Loader.loadPDF(resultFile))
-        {
-            resultImage = new PDFRenderer(resultDocument).renderImage(0);
-        }
-
-        // compare images
-        assertEquals(modelImage.getWidth(), resultImage.getWidth());
-        assertEquals(modelImage.getHeight(), resultImage.getHeight());
-        assertEquals(modelImage.getType(), resultImage.getType());
+            assertEquals(modelDocument.getNumberOfPages(), 
resultDocument.getNumberOfPages());
+            for (int page = 0; page < modelDocument.getNumberOfPages(); ++page)
+            {
+                BufferedImage modelImage = new 
PDFRenderer(modelDocument).renderImage(page);
+                BufferedImage resultImage = new 
PDFRenderer(resultDocument).renderImage(page);
 
-        DataBufferInt modelDataBuffer = (DataBufferInt) 
modelImage.getRaster().getDataBuffer();
-        DataBufferInt resultDataBuffer = (DataBufferInt) 
resultImage.getRaster().getDataBuffer();
+                // compare images
+                assertEquals(modelImage.getWidth(), resultImage.getWidth());
+                assertEquals(modelImage.getHeight(), resultImage.getHeight());
+                assertEquals(modelImage.getType(), resultImage.getType());
 
-        assertArrayEquals(modelDataBuffer.getData(), 
resultDataBuffer.getData());
+                DataBufferInt modelDataBuffer = (DataBufferInt) 
modelImage.getRaster().getDataBuffer();
+                DataBufferInt resultDataBuffer = (DataBufferInt) 
resultImage.getRaster().getDataBuffer();
 
+                assertArrayEquals(modelDataBuffer.getData(), 
resultDataBuffer.getData());
+            }
+        }
         resultFile.delete();
     }
     

Added: 
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-ExpectedResult.pdf
==============================================================================
Binary file. No diff available.

Added: 
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-Overlay.pdf
==============================================================================
Binary file. No diff available.

Added: 
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/multipdf/PDFBOX-6049-Source.pdf
==============================================================================
Binary file. No diff available.

Reply via email to