Author: ssteiner Date: Tue Oct 12 14:33:18 2021 New Revision: 1894166 URL: http://svn.apache.org/viewvc?rev=1894166&view=rev Log: FOP-2928: PDFDocumentGraphics2D does not clear content on nextPage() Thanks to J Frank
Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/svg/PDFDocumentGraphics2D.java xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/pdf/PDFDocumentGraphics2DTestCase.java Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/svg/PDFDocumentGraphics2D.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/svg/PDFDocumentGraphics2D.java?rev=1894166&r1=1894165&r2=1894166&view=diff ============================================================================== --- xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/svg/PDFDocumentGraphics2D.java (original) +++ xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/svg/PDFDocumentGraphics2D.java Tue Oct 12 14:33:18 2021 @@ -286,6 +286,7 @@ public class PDFDocumentGraphics2D exten this.pdfDoc.addObject(annots); } this.pdfDoc.addObject(pdfContext.getCurrentPage()); + currentStream = null; pdfContext.clearCurrentPage(); } Modified: xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/pdf/PDFDocumentGraphics2DTestCase.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/pdf/PDFDocumentGraphics2DTestCase.java?rev=1894166&r1=1894165&r2=1894166&view=diff ============================================================================== --- xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/pdf/PDFDocumentGraphics2DTestCase.java (original) +++ xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/pdf/PDFDocumentGraphics2DTestCase.java Tue Oct 12 14:33:18 2021 @@ -27,9 +27,12 @@ import java.awt.Graphics2D; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.xmlgraphics.java2d.GraphicContext; import org.apache.xmlgraphics.util.UnitConv; import org.apache.fop.svg.PDFDocumentGraphics2D; @@ -48,7 +51,7 @@ public class PDFDocumentGraphics2DTestCa public void smokeTest() throws Exception { ByteArrayOutputStream baout = new ByteArrayOutputStream(); PDFDocumentGraphics2D g2d = new PDFDocumentGraphics2D(false); - g2d.setGraphicContext(new org.apache.xmlgraphics.java2d.GraphicContext()); + g2d.setGraphicContext(new GraphicContext()); //Set up the document size Dimension pageSize = new Dimension( @@ -90,4 +93,31 @@ public class PDFDocumentGraphics2DTestCa pdfString.substring(pdfString.length() - 6), "%%EOF\n"); } + @Test + public void checkContentNotRepeatedAcrossPage() throws Exception { + ByteArrayOutputStream baout = new ByteArrayOutputStream(); + PDFDocumentGraphics2D gPDF = new PDFDocumentGraphics2D(false); + Dimension pageSize = new Dimension( + (int) Math.ceil(UnitConv.mm2pt(210)), + (int) Math.ceil(UnitConv.mm2pt(297))); //page size A4 (in pt) + gPDF.setupDocument(baout, pageSize.width, pageSize.height); + gPDF.setupDefaultFontInfo(); + gPDF.setGraphicContext(new GraphicContext()); + for (int i = 0; i < 4; i++) { + gPDF.drawString("PageOUTPUT " + i, getInch(1), getInch(1 + i * 0.2)); + assertTrue(gPDF.getString().contains("PageOUTPUT " + i)); + if (i > 1) { + int previousValue = i - 1; + assertFalse(gPDF.getString().contains("PageOUTPUT " + previousValue)); + } + gPDF.nextPage(); + } + gPDF.finish(); + } + + private int getInch(double p) { + final int point = 72; + final int dpiScale = 4; + return (int) (p * point * dpiScale); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org