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

        }

}


目录
相关文章
|
8天前
|
Web App开发 SQL Java
javaweb实现分页(二)
javaweb实现分页(二)
23 1
|
8天前
|
Web App开发 Java 关系型数据库
java中部的分页实现(二)
java中部的分页实现(二)
20 1
|
8天前
|
SQL 关系型数据库 MySQL
javaweb中实现分页,持续更新……
javaweb中实现分页,持续更新……
26 1
|
8天前
|
Java
java Itext创建pdf
java Itext创建pdf
41 0
|
8天前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
29 1
|
7天前
|
存储 关系型数据库 MySQL
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
|
7天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
8天前
|
前端开发 UED
🌟前端分页加载/懒加载预览PDF🌟
🌟前端分页加载/懒加载预览PDF🌟
|
8天前
|
Java Linux 数据安全/隐私保护
Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
【2月更文挑战第3天】Java 将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
136 0
|
8天前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
64 0