【java】itext pdf 分页

importjava.io.FileOutputStream;

importcom.lowagie.text.Document;

importcom.lowagie.text.Element;

importcom.lowagie.text.ExceptionConverter;

importcom.lowagie.text.Font;

importcom.lowagie.text.PageSize;

importcom.lowagie.text.Paragraph;

importcom.lowagie.text.pdf.BaseFont;

importcom.lowagie.text.pdf.PdfContentByte;

importcom.lowagie.text.pdf.PdfPageEventHelper;

importcom.lowagie.text.pdf.PdfTemplate;

importcom.lowagie.text.pdf.PdfWriter;

public classPdfExport extendsPdfPageEventHelper {

        publicPdfTemplate tpl;

        publicBaseFont bf;

        public static voidmain String[] args) {

            Document document = newDocument PageSize.A4, 20, 20, 20, 20);

            try{

                PdfWriter writer = PdfWriter.getInstancedocument, newFileOutputStream “D:\\HelloItext.pdf”) );

                writer.setPageEvent newPdfExport) );

                BaseFont bfChinese = BaseFont.createFont”STSong-Light”, “UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);

                document.open);

                Paragraph title = newParagraph “测试内容。。。。”, newFont bfChinese,15) );

                title.setAlignment Element.ALIGN_CENTER);

                document.add title);

            } catchException de) {

                de.printStackTrace);

            }

            document.close);

        }

        public voidonOpenDocument PdfWriter writer, Documentdocument) {

            try{

                tpl= writer.getDirectContent).createTemplate100, 100);

                bf= BaseFont.createFont”STSong-Light”, “UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);

            } catchException e) {

                throw newExceptionConverter e);

            }

        }

        public voidonEndPage PdfWriter writer, Documentdocument) {

            //在每页结束的时候把“第x页”信息写道模版指定位置

            PdfContentByte cb =writer.getDirectContent);

            cb.saveState);

            String text = “第”+writer.getPageNumber) + “页,共”;

            cb.beginText);

            cb.setFontAndSize bf, 8);

            cb.setTextMatrix 460, 786); //定位“第x页,共” 在具体的页面调试时候需要更改这xy的坐标

            cb.showText text);

            cb.endText);

            cb.addTemplate tpl, 492, 786); //定位“y页” 在具体的页面调试时候需要更改这xy的坐标

            cb.saveState);

            cb.stroke);

            cb.restoreState);

            cb.closePath);//sanityCheck);

        }

        public voidonCloseDocument PdfWriter writer, Documentdocument) {

            //关闭document的时候获取总页数,并把总页数按模版写道之前预留的位置

            tpl.beginText);

            tpl.setFontAndSize bf, 8);

            tpl.showText Integer.toStringwriter.getPageNumber) – 1) + “页”);

            tpl.endText);

            tpl.closePath);//sanityCheck);

        }

}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注