这两天碰到了一个根据模板导出pdf的需求,研究了几天以后,发现网上的资料不太齐全,主要是没找到既根据模板导出,又可以动态增加页数的例子。只能通过各种资料结合来实现这个需求了(其实是懒得看iText英文文档,这个以后得改过来)。
下面先来说下pdf导出主要的两种方式:
1.直接使用iText的api,写出原生的pdf文档,但是样式和排版很难控制,比较方便的是,可以动态的添加文档数据,还可以增加页数等操作。关于样式和排版可以通过结合XmlWorker,从HTML模板生成PDF。
2.根据pdf模板导出,这里会涉及到使用adobe acrobat这个软件。通过adobe acrobat来制作表单域,然后在应用程序里动态向表单域添加数据。
(1)在adobe acrobat中打开一个pdf文档,然后点击右侧的“准备表单”,选择文件后点击“开始”
图片步骤为:
(2).在页面上新建表单域,可以通过右键-属性,修改表单域的设置,这里新建了两个name为“title”和“img”的文本域
(3).将设置了表单域的pdf文档保存即可
3.现在就是开始写java代码了,首先需要在pom文件里引入两个itext的jar包,如下所示:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
</depe