Java-PDF-利用IText进行PDF的输出(一)

时间:2024-03-27 11:09:09

编者注:本博客只做个人学习用,方便查漏补缺,不作任何商业用途。如博客中的内容有侵略到您的知识产权,请及时联系我删除。

        由于项目中的需要,因此需要对各种报表进行处理,在网上查阅各种资料后,最终选择通过IText来进行PDF的生成。IText是一种生成PDF报表的Java组件,主要用于在企业的管理系统中对报表进行处理和输出。本章节作为引入篇,主要介绍IText生成PDF文件的五个基础步骤,以及其中涉及的几个主要的Class中的一些方法的解释。

关于开发环境:

        开发工具:IDEA;项目管理工具:Maven;JDK:1.8;系统:Windows7

开始前准备

        构建Maven项目,并引入IText所需jar包,主要的Maven依赖项如下:

       Java-PDF-利用IText进行PDF的输出(一)

利用IText创建PDF的五个基础步骤

1.创建com.itextpdf.text.Document对象:

    Document document = new Document();

2.创建com.itextpdf.text.pdf.PdfWriter对象

    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("path"));

3.打开当前的Document对象

    document.open();

4.为当前的Document对象添加内容

    document.add(new Paragraph("Hello World");

5.关闭Document对象

    document.close();

重点类解析

(一)com.itextpdf.text.Document类

该类是IText中用于定义PDF文档的类,其有三个构造函数:

1.第一个构造函数默认以A4页面作为参数,并调用第二个构造函数,设置了页面边距值

Java-PDF-利用IText进行PDF的输出(一)

2.第二个构造函数用户可自定义页面大小,并默认以每边36磅页边距为参数调用第三个构造函数

Java-PDF-利用IText进行PDF的输出(一)

3.第三个构造函数用户可自定义页面大小以及页面边距,并设置了其他相关默认值

Java-PDF-利用IText进行PDF的输出(一)

除了对应的构造函数之外,我们还发现了构造函数参数中出现的几个可以由用于*设定的参数值,下面我们也来介绍一下这些参数值:

1.页面尺寸设置Rectangle

Rectangle类实现了com.itextpdf.text.Element类,其中定义了跟页面相关的属性,如border/backgroundColor等,其中除了几个final变量不能自己定义外,其他都都可以根据自己的需要来设置值。

例如:创建一个细长的蓝色背景的页面

Rectangle pageSize = new Rectangle(144, 720);

//pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);

pageSize.setBorderColor(newBaseColor(0xFF, 0xFF, 0xDE));

Document document = new Document(pageSize);

除了这种方式之外,你还可以用com.itextpdf.text.PageSize类来创建自己所需的页面大小。PageSize类中定义了一系列的Rectangle类型的常量,并且这些常量是static的,因此你可以直接通过类名调用,非常方便。

例如:设置一个A4页面

Document document = new Document(PageSize.A4);