You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "michele valdinoci (JIRA)" <ji...@apache.org> on 2019/07/30 14:12:00 UTC

[jira] [Updated] (PDFBOX-4614) Duplicated text content in template

     [ https://issues.apache.org/jira/browse/PDFBOX-4614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

michele valdinoci updated PDFBOX-4614:
--------------------------------------
    Attachment: output.pdf

> Duplicated text content in template
> -----------------------------------
>
>                 Key: PDFBOX-4614
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4614
>             Project: PDFBox
>          Issue Type: Bug
>            Reporter: michele valdinoci
>            Priority: Major
>             Fix For: 2.0.16
>
>         Attachments: input.pdf, output.pdf
>
>
> I'm trying to create a pdf, starting from another on, using "template" techinque to optimize output size when pages is repeated. I will print text values with PDPageContentStream for each page. From the second import of first page, all written texts are duplicated also in page 1!
> In this sample I compose pdf with input page in sequence: 1, 2, 1 finally 2. First and third output page have same texts ("page 1" and "page 3"!):
> {{boolean addPage = true;}}
>  {{PDDocument ipdf = PDDocument.load(new File("input.pdf"));}}
>  {{PDDocument opdf = new PDDocument();}}
>  {{PDPage pag1 = null;}}
>  {{COSDictionary dic1 = null;}}
>  {{if (addPage) {}}
>  \{{ dic1 = new COSDictionary(ipdf.getPage(0).getCOSObject());}}
>  \{{ pag1 = new PDPage(dic1);}}
>  \{{ System.out.println(pag1.getArtBox().toString());}}
>  \{{ System.out.println(pag1.getBBox().toString());}}
>  {{} else {}}
>  \{{ pag1 = opdf.importPage(ipdf.getPage(0));}}
>  {{}}}
>  {{// STREAM 1}}
>  {{PDPageContentStream stream = new PDPageContentStream(opdf, pag1, AppendMode.APPEND, true, true);}}
>  {{stream.setNonStrokingColor(Color.BLUE);}}
>  {{stream.beginText();}}
>  {{stream.setFont(PDType1Font.HELVETICA, 15f);}}
>  {{stream.newLineAtOffset(10, 780);}}
>  {{stream.showText("pag 1");}}
>  {{stream.endText();}}
>  {{stream.close();}}{{opdf.addPage(pag1);}}{{PDPage pag2;}}
>  {{if (addPage) {}}
>  \{{ COSDictionary dic2 = new COSDictionary(ipdf.getPage(1).getCOSObject());}}
>  \{{ pag2 = new PDPage(dic2);}}
>  \{{ opdf.addPage(pag2);}}
>  {{} else {}}
>  \{{ pag2 = opdf.importPage(ipdf.getPage(1));}}
>  \{{} }}
>  {{// STREAM 2}}
>  {{PDPageContentStream stream2 = new PDPageContentStream(opdf, pag2, AppendMode.APPEND, true, true);}}
>  {{stream2.setNonStrokingColor(Color.BLUE);}}
>  {{stream2.beginText();}}
>  {{stream2.setFont(PDType1Font.HELVETICA, 15f);}}
>  {{stream2.newLineAtOffset(10, 760);}}
>  {{stream2.showText("pag 2");}}
>  {{stream2.endText();}}
>  {{stream2.close();}}{{PDPage pag3;}}
>  {{COSDictionary dic3;}}
>  {{if (addPage) {}}
>  \{{ dic3 = new COSDictionary(ipdf.getPage(0).getCOSObject());}}
>  \{{ pag3 = new PDPage(dic3);}}
>  \{{ opdf.addPage(pag3);}}
>  {{} else {}}
>  \{{ pag3 = opdf.importPage(ipdf.getPage(0));}}
>  {{}}}
>  {{// STREAM 3}}
>  {{PDPageContentStream stream3 = new PDPageContentStream(opdf, pag3, AppendMode.APPEND, true, true);}}
>  {{stream3.setNonStrokingColor(Color.BLUE);}}
>  {{stream3.beginText();}}
>  {{stream3.setFont(PDType1Font.HELVETICA, 15f);}}
>  {{stream3.newLineAtOffset(10, 730);}}
>  {{stream3.showText("pag 3");}}
>  {{stream3.endText();}}
>  {{stream3.close();}}{{PDPage pag4;}}
>  {{if (addPage) {}}
>  \{{ COSDictionary dic4 = new COSDictionary(ipdf.getPage(1).getCOSObject());}}
>  \{{ pag4 = new PDPage(dic4);}}
>  \{{ opdf.addPage(pag4);}}
>  {{} else {}}
>  \{{ pag4 = opdf.importPage(ipdf.getPage(1));}}
>  {{}}}
>  {{// STREAM 4}}
>  {{PDPageContentStream stream4 = new PDPageContentStream(opdf, pag4, AppendMode.APPEND, true, true);}}
>  {{stream4.setNonStrokingColor(Color.BLUE);}}
>  {{stream4.beginText();}}
>  {{stream4.setFont(PDType1Font.HELVETICA, 15f);}}
>  {{stream4.newLineAtOffset(10, 730);}}
>  {{stream4.showText("pag 4");}}
>  {{stream4.endText();}}
>  {{stream4.close();}}{{opdf.save("out.pdf");}}{{ipdf.close();}}
>  {{opdf.close();}}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org