iText7 Java环境配置
方式1:Maven引入(推荐)
iText的核心库可以从Maven中央仓库中找到。使用Maven配置包依赖是很容易的。
全部引入
在项目的pom.xml
配置文件中添加properties
标签配置。如果已有properties
标签,只需添加标签内部的内容。
<properties>
<itext.version>RELEASE</itext.version>
</properties>
pom.xml
中添加下面列出的dependencies
标签配置。如果已有dependencies
标签,只需添加标签内部的内容。
<dependencies>
<!-- 引入完整iText 7模块 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>${itext.version}</version>
<type>pom</type>
</dependency>
</dependencies>
properties
标签中的itext.version
指定了库的版本。RELEASE表示使用最新版的iText库。如果需要使用特定版本的库,可以在这里显式地指定。
部分引入
通常情况下,完整引入可以满足绝大部分的需要。不过,有的时候,我们只希望引入需要使用的库。这一节将介绍部分引入pom.xml
的配置方式。
与完整引入一样,iText版本在properties
标签中定义。将下面的配置添加到pom.xml
中。如果已存在properties
标签,只需添加内部的内容。
<properties>
<itext.version>RELEASE</itext.version>
</properties>
pom.xml中的依赖包配置和完整引入有不同。iText-core库由多个模块构成,我们必须引入的模块是kernel、io和layout,其余的模块可以根据实际需要引入。下面列出的是完整引入所有模块的配置,我们可以实际需要删掉不需要引入的库的配置项。
<properties>
<itext.version>RELEASE</itext.version>
</properties>
<dependencies>
<!-- 必需 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 必需 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 必需 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 表单相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>forms</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- PDF/A相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdfa</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 数字签名相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>sign</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 条形码相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>barcodes</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 亚洲字体相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- 断字分词(hyphenation)相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>hyph</artifactId>
<version>${itext.version}</version>
</dependency>
</dependencies>
properties
标签中的itext.version
指定了库的版本。RELEASE表示使用最新版的iText库。如果需要使用特定版本的库,可以在这里显式地指定。
方式2:链接Jar包进入Classpath
这种方法比较原始,不过适用于任何Java项目。
首先我们需要下载iText库的Jar包,推荐在官方GitHub的发布版本页面(英语)上下载。英语不好的小伙伴们可以使用这个链接直接下载7.1.9版本的Jar包压缩包。下载后,解压压缩包,可以看到一系列Jar包,如下图所示。
如果我们想引入全部的Jar包,只需要将这些文件放置到classpath目录下即可。
如果我们只想引入部分功能的Jar包,我们需要将kernel、io、layout三个Jar包以及我们想引入功能对应的Jar包放在classpath下。每个Jar包负责的功能如下所示。
- barcodes:条形码相关
- font-asian:亚洲字体(如中文字体)相关
- forms:表单相关
- hyph:断字分词(hyphenation)相关
- io:必需,文件输入输出相关
- kernel:必需,核心功能
- layout:必需,排版相关
- pdfa:PDF/A相关
- sign:数组签名相关
- svg:svg绘制相关
对于IDE管理的项目,我们可以通过配置项目依赖库的方式,摆脱Jar包显式地放在classpath目录的限制。例如,在IDEA的Project Structure配置中,我们可以在Library中添加iText库Jar存放的路径。
方式3:Gradle引入iText G
如果项目采用Gradle进行管理(例如安卓项目),我们需要引入iText G库来满足需要。iText G库只使用Google规定的白名单Java包,像awt、nio库被其他方法所替代。Gradle引入iText G非常简单。在配置文件中添加如下配置。
dependencies {
compile 'com.itextpdf:itextg:5.5.10'
}
从版本号上我们会发现,iText G只支持到了核心库版本5,版本7未作支持。
测试:创建第一个iText PDF文件
在项目中建立一个新的类文件,这里起名叫做FirstTest。程序实例如下。
package com.lch.itext;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import java.io.FileNotFoundException;
public class FirstTest {
public static void main(String[] args) throws FileNotFoundException {
// 初始化PDF writer
PdfWriter writer = new PdfWriter("./FirstTest.pdf");
// 初始化PDF document
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
// 向document中添加一个段落,段落中有一句话
document.add(new Paragraph("This is the first test!"));
// 关闭document
document.close();
}
}
执行主方法,我们可以在项目的根目录下得到一个新建的FirstTest.pdf文件。如果打开文件看到了如下图所示的效果,那么恭喜你完成了iText基础环境的搭建。
[…] 按照《iText7 Java环境配置》配置好了iText运行环境 […]
[…] 按照《iText7 Java环境配置》配置好了iText运行环境 […]
[…] 按照《iText7 Java环境配置》配置好了iText运行环境 […]