【java】itext pdf 分页

简介: importjava.io.FileOutputStream;   importcom.lowagie.text.Document; importcom.lowagie.text.Element; importcom.

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.getInstance(document, 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);

 

            } catch(Exception de) {

                de.printStackTrace();

            }

 

            document.close();

        }

 

        public voidonOpenDocument (PdfWriter writer, Documentdocument) {

            try{

                tpl= writer.getDirectContent().createTemplate(100, 100);

                bf= BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

 

            } catch(Exception 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.toString(writer.getPageNumber() - 1) + "页");

            tpl.endText();

            tpl.closePath();//sanityCheck();

        }

}


目录
相关文章
|
4月前
|
XML 人工智能 Java
java实现PDF 电子签章
本文介绍了使用Java将Word文档转换为PDF并添加水印、签名和盖章的方法。通过Apache POI读取Word内容,结合OpenPDF生成PDF文件,并利用PdfPageEvent接口实现页面水印与签名功能。代码示例清晰展示了转换流程及关键实现细节。
275 0
|
5月前
|
存储 安全 算法
Java 集合面试题 PDF 下载及高频考点解析
本文围绕Java集合面试题展开,详细解析了集合框架的基本概念、常见集合类的特点与应用场景。内容涵盖`ArrayList`与`LinkedList`的区别、`HashSet`与`TreeSet`的对比、`HashMap`与`ConcurrentHashMap`的线程安全性分析等。通过技术方案与应用实例,帮助读者深入理解集合类的特性和使用场景,提升解决实际开发问题的能力。文末附带资源链接,供进一步学习参考。
143 4
|
6月前
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
184 9
|
IDE Java 编译器
使用Java分割PDF文件
使用Java分割PDF文件
348 1
|
Java
java处理pdf代码
java处理pdf代码
104 0
|
Java 程序员 调度
Java|PageHelper 怎么自作主张帮我分页?
没有调用 PageHelper.startPage,查询怎么也被自动分页了?
108 2
|
存储 Java API
如何使用 Java 中的 API 更改 PDF 纸张大小
如何使用 Java 中的 API 更改 PDF 纸张大小
256 11
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
4034 1
|
Java
Java PDF模板生成PDF
Java PDF模板生成PDF
250 1
|
Java
Java编程思想(面向对象)第四版PDF分享
探索《Java编程思想》第四版,理解Java不仅是特性集合,更是解决问题的强大工具。本书深入设计层面,构建编程思维模型,助你逐步精通Java。[阅读更多](https://zhangfeidezhu.com/?p=355) ![Java编程思想](https://ucc.alicdn.com/pic/developer-ecology/nrw3f3oqlpmag_c8ff959a921545f1bbabcefd37f029cf.png)
160 1
Java编程思想(面向对象)第四版PDF分享

热门文章

最新文章