java - iTextPDF - Second PDF file generated displays text from First generated PDF file -
i using itextpdf generate pdfs getting data text inputs.
when run application , create first pdf, generated expected.
then change values , generate another, problem arises. last entry displayed on first pdf printed on top of first entry of second generated pdf.
not sure why happening? being saved buffer or something, not sure.
here code generating pdf:
public class exportticket implements action{ pdfpcell titlecell = new pdfpcell(); pdfpcell contentcell = new pdfpcell(); public string performaction(httpservletrequest request) throws pewexception { // creating document (itextpdf) document document = new document(); pdfwriter.getinstance(document, new fileoutputstream("ticket_" + ticketno + ".pdf")); // fonts font headingfont = new font(font.fontfamily.undefined, 10, font.bold, basecolor.black); // open document write document.open(); // table creation pdfptable table = new pdfptable(2); table.settotalwidth(200); table.setwidths(new int[]{ 5, 10 }); table.sethorizontalalignment(element.align_left); // add ticket number contentcell.addelement(new chunk("ticket number: " + ticketno, headingfont)); contentcell.setcolspan(2); table.addcell(contentcell); // add table document & close document document.add(table) document.close(); } } please see attached images output, first 1 displays first file generation , second 1 displays 2nd file generation,
first generated pdf file ticket number: 20170034
second generated pdf file ticket number: 20170035
you have strange priorities. think should save processing time creating pdfpcell once (in spite of fact need new instance), waste processing time creating font on , on again (while reuse it).
this improved version of class (i assumed ticketno request):
public class exportticket implements action{ // fonts font headingfont = new font(font.fontfamily.undefined, 10, font.bold, basecolor.black); public string performaction(httpservletrequest request) throws pewexception { string ticketno = request.getparameter("ticketno"); document document = new document(); pdfwriter.getinstance(document, new fileoutputstream("ticket_" + ticketno + ".pdf")); // open document write document.open(); // table creation pdfptable table = new pdfptable(2); table.settotalwidth(200); table.setwidths(new int[]{ 5, 10 }); table.sethorizontalalignment(element.align_left); // add ticket number pdfpcell contentcell = new pdfpcell() contentcell.addelement(new chunk("ticket number: " + ticketno, headingfont)); contentcell.setcolspan(2); table.addcell(contentcell); // add table document & close document document.add(table) document.close(); } }
Comments
Post a Comment