Itext简介
iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。
准备工作
第一步,使用Word编辑一个模板(template.docx),然后另存为PDF文件(template.pdf)
word模板
第二步,使用pdf编辑工具(Adobe Acrobat Pro)打开template.pdf,点击准备表单,增加变量文本域
编辑pdf模板
这样一个pdf模板就准备好了
功能实现
- 添加maven依赖,本教程基于Itext5实现
- 创建实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
static class Leave {
private String name;
private String year;
private String month;
private String day;
private String reason;
private String beginDate;
private String endDate;
private String phone;
}
- 创建工具类
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
public class ReflectPdfUtil {
public static
- 创建测试类
public class Test {
public static void main(String[] args) throws Exception {
Leave leave = Leave.builder().name("张三").year("2021").month("03").day("10").reason("身体不适").beginDate("2021-03-11").endDate("2021-03-12").phone("13800000000").build();
createPdf(leave, "test-demo/data/template.pdf", "test-demo/data/张三的请假条.pdf");
}
}
最终效果
效果图