[ 
https://issues.apache.org/jira/browse/FOP-2928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17392404#comment-17392404
 ] 

Brian Scott commented on FOP-2928:
----------------------------------

This code works with FOP 1.1, but creates duplicated text with FOP 2.5

{{package test;

import java.awt.geom.AffineTransform;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import org.apache.fop.pdf.PDFInfo;
import org.apache.fop.svg.PDFDocumentGraphics2D;

public class TestPDF {
        
        static int DPIscale=4;
        static public final int PT=72;
        static public int inch(double p) {
                return (int)(p*PT*DPIscale);
        }

        public static void main(String[] args) {
                try {
                        FileOutputStream os=new FileOutputStream("test.pdf");
                        
                        AffineTransform tx=new AffineTransform();
                        PDFDocumentGraphics2D gPDF=new 
PDFDocumentGraphics2D(false);
                        gPDF.setupDocument(os, (int)(inch(11)/DPIscale), 
(int)(inch(8.5)/DPIscale));
                        gPDF.setDeviceDPI(PT);
                        gPDF.setupDefaultFontInfo();
                        PDFInfo info= gPDF.getPDFDocument().getInfo();
                                info.setProducer("from TestPDF");
                                info.setCreationDate(new 
Date(System.currentTimeMillis()));
                        gPDF.setGraphicContext(new 
org.apache.xmlgraphics.java2d.GraphicContext());
                        tx.scale(1.0/DPIscale, 1.0/DPIscale);
                        gPDF.setTransform(tx);
                        
                        for (int i = 0; i < 20; i++) {
                                gPDF.drawString("Page "+i, inch(1), 
inch(1+i*0.2));
                                gPDF.nextPage();
                        }
                        
                        gPDF.finish();
                        os.close();

                
                
                
                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                
        }

}
}}

> PDFDocumentGraphics2D does not clear content on nextPage()
> ----------------------------------------------------------
>
>                 Key: FOP-2928
>                 URL: https://issues.apache.org/jira/browse/FOP-2928
>             Project: FOP
>          Issue Type: Bug
>          Components: renderer/pdf
>    Affects Versions: 2.2, 2.4
>            Reporter: Jürgen Ebert
>            Priority: Major
>              Labels: easyfix
>
> When switching to a new page using PDFDocumentGraphics2D#nextPage() the 
> current content is added to the PDF document but it is not cleared. Therefore 
> the same content will be repeated on the next page.
> nextPage() calls closePage() which adds this.getString() to the PDFStream.
> this.getString() simply returns the content of currentStream, a StringWriter. 
> The content of currentStream is never cleared and the reference is never set 
> to null. Therefore it will be appended to and it will be added again when the 
> next nextPage() or closePage() or therefore finish() is called.
> A work-arround is to manually set the value of currentStream to null using 
> reflection.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to