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.