| 1 package reports; 2 3 import java.io.ByteArrayOutputStream ; 4 import com.lowagie.text.*; 5 import com.lowagie.text.pdf.*; 6 import dinamica.*; 7 8 18 public class PageXofY extends AbstractPDFOutput 19 { 20 21 PdfTemplate tpl = null; 22 BaseFont bf = null; 23 PdfContentByte cb = null; 24 25 protected void createPDF(GenericTransaction data, ByteArrayOutputStream buf) 26 throws Throwable  27 { 28 29 Document doc = new Document(PageSize.LETTER, 57,57,57,57); 31 PdfWriter docWriter = PdfWriter.getInstance(doc, buf); 32 doc.open(); 33 34 docWriter.setPageEvent(new PageEvents()); 36 bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); 37 cb = docWriter.getDirectContent(); 38 tpl = cb.createTemplate(20, 14); 39 40 doc.add(new Paragraph("This is page 1")); 41 doc.newPage(); 42 43 doc.add(new Paragraph("This is page 2")); 44 doc.newPage(); 45 46 doc.add(new Paragraph("This is page 3")); 47 doc.newPage(); 48 49 doc.add(new Paragraph("This is page 4")); 50 doc.newPage(); 51 52 doc.close(); 53 54 } 55 56 class PageEvents extends PdfPageEventHelper 57 { 58 59 63 public void onCloseDocument(PdfWriter writer, Document document) 64 { 65 int pageNum = writer.getPageNumber() - 1; 68 tpl.beginText(); 69 tpl.setFontAndSize(bf, 10); 70 tpl.showText(String.valueOf(pageNum)); 71 tpl.endText(); 72 73 } 74 75 79 public void onEndPage(PdfWriter writer, Document document) 80 { 81 82 String footer = writer.getPageNumber() + " of "; 86 float tWidth = bf.getWidthPoint(footer, 10); 87 float extraSpace = bf.getWidthPoint("00", 10); 88 float ty = document.bottom() - 14; float tx = document.right() - tWidth - extraSpace; 91 cb.beginText(); 93 cb.setFontAndSize(bf, 10); 94 cb.showTextAligned(PdfContentByte.ALIGN_LEFT, footer, tx, ty, 0); 95 cb.endText(); 96 97 cb.addTemplate(tpl, document.right() - extraSpace, ty); 99 100 } 101 102 } 103 104 } 105 | Popular Tags |