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

Reply via email to