前言
最近有一个需求,调第三方接口发送的文件要求加盖签章,多页的文件首页+骑缝,签章接口是系统公用的cfca接口,这里不多描述,现在的问题是判断pdf文件的页数,大于一页,首页章+骑缝章,等于一页,首页章。
需求已经明确,看下实现吧!
一、itextpdf包?
com.itextpdf 是一个 Java 库,主要用于创建和操作 PDF 文档。这个库提供了许多功能,包括但不限于:
- 创建 PDF 文件:你可以使用 com.itextpdf 库来创建新的 PDF 文件。
- 添加内容:你可以添加文本、图像、表格等到 PDF 文件中。
- 设置格式:例如,你可以设置字体、颜色、大小等。
- 操作页面:例如,添加或删除页面,旋转页面等。
- 安全性:可以为 PDF 文件设置密码、限制打印、复制或注释等权限。
- 交互性:你可以添加交互性元素,例如书签、链接、按钮等。
- 高级特性:例如,处理 PDF 文件中的表单字段,处理数字签名等
二、使用步骤
1.引入库
代码如下(示例):
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
2.读入数据页数
注:filePath 是文件服务器oss地址
代码如下(示例):
/**
* 获取PDF总页数
*
* @param filePath 文件存储路径
* @return PDF 总页数
* @throws IOException
*/
public static int getPDFPages(String filePath) {
int pageNum = 0;
try {
log.info("当前文件的路径为:{}",filePath);
PdfReader pdfReader = new PdfReader(filePath);
pageNum = pdfReader.getNumberOfPages();
pdfReader.close();
}catch (Exception e) {
log.error("获取页码数报错,当前文件: {},{}",filePath,e);
}
return pageNum;
}
总结
很多pdf工具类,选择合适自己的即可。