公司OA项目即将上线,需要一系列请假、加班和财务等PDF报表的支持!
1.引入maven依赖
<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian(字体) -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf(核心) -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on(加密) -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.60</version>
</dependency>
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-core(三方工具类) -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>${hutool}</version>
</dependency>
2.iText生成报表
2.1 生成基本报表
// 创建document
Document document = new Document();
// 生成pdfWriter实例
PdfWriter.getInstance(document, new FileOutputStream("myPDF.pdf"));
// 打开文档
document.open();
// 添加文档内容
document.add(new Paragraph("Hello World"));
// 关闭文档
document.close();
2.2 文档加密
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(file));
// pdf文件加密
pdfWriter.setEncryption("123456".getBytes(), "888888".getBytes(