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:09:00 UTC
[jira] [Created] (PDFBOX-4614) Duplicated text content in template
michele valdinoci created PDFBOX-4614:
-----------------------------------------
Summary: 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
Fix For: 2.0.16
Attachments: input.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