【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();

        }

}


目录
相关文章
|
3月前
|
存储 安全 算法
Java 集合面试题 PDF 下载及高频考点解析
本文围绕Java集合面试题展开,详细解析了集合框架的基本概念、常见集合类的特点与应用场景。内容涵盖`ArrayList`与`LinkedList`的区别、`HashSet`与`TreeSet`的对比、`HashMap`与`ConcurrentHashMap`的线程安全性分析等。通过技术方案与应用实例,帮助读者深入理解集合类的特性和使用场景,提升解决实际开发问题的能力。文末附带资源链接,供进一步学习参考。
89 4
|
4月前
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
107 9
|
IDE Java 编译器
使用Java分割PDF文件
使用Java分割PDF文件
290 1
|
Java
java处理pdf代码
java处理pdf代码
92 0
|
11月前
|
Java 程序员 调度
Java|PageHelper 怎么自作主张帮我分页?
没有调用 PageHelper.startPage,查询怎么也被自动分页了?
75 2
|
11月前
|
存储 Java API
如何使用 Java 中的 API 更改 PDF 纸张大小
如何使用 Java 中的 API 更改 PDF 纸张大小
204 11
|
11月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
3456 1
|
11月前
|
Java
Java PDF模板生成PDF
Java PDF模板生成PDF
221 1
|
Java
Java编程思想(面向对象)第四版PDF分享
探索《Java编程思想》第四版,理解Java不仅是特性集合,更是解决问题的强大工具。本书深入设计层面,构建编程思维模型,助你逐步精通Java。[阅读更多](https://zhangfeidezhu.com/?p=355) ![Java编程思想](https://ucc.alicdn.com/pic/developer-ecology/nrw3f3oqlpmag_c8ff959a921545f1bbabcefd37f029cf.png)
128 1
Java编程思想(面向对象)第四版PDF分享
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
1599 6