Mega Code Archive

 
Categories / Java Tutorial / PDF
 

Pdf Page Event Helper

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.ExceptionConverter; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfPageEventHelper; import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfWriter; public class MainClass extends PdfPageEventHelper {   protected PdfTemplate total;   protected BaseFont helv;   public void onOpenDocument(PdfWriter writer, Document document) {     total = writer.getDirectContent().createTemplate(100, 100);     total.setBoundingBox(new Rectangle(-20, -20, 100, 100));     try {       helv = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);     } catch (Exception e) {       throw new ExceptionConverter(e);     }   }   public void onEndPage(PdfWriter writer, Document document) {     PdfContentByte cb = writer.getDirectContent();     cb.saveState();     String text = "Page " + writer.getPageNumber() + " of ";     cb.beginText();     cb.setFontAndSize(helv, 12);     cb.showText(text);     cb.endText();     cb.restoreState();   }   public void onCloseDocument(PdfWriter writer, Document document) {     total.beginText();     total.setFontAndSize(helv, 12);     total.setTextMatrix(0, 0);     total.showText(String.valueOf(writer.getPageNumber() - 1));     total.endText();   }   public static void main(String[] args) throws Exception {     Document document = new Document();     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));     writer.setPageEvent(new MainClass());     document.open();     Paragraph p = new Paragraph();     for (int k = 1; k <= 3000; ++k) {       p.add(new Phrase("test"));     }     p.setAlignment(Element.ALIGN_JUSTIFIED);     for (int k = 1; k <= 12; ++k) {       document.add(p);     }     document.close();   } }