【Java】修改生成的PDF的表格中文字的字体
背景
需求是修改PDF中某些字的颜色
解决方法
- 现有代码用的是com.itextpdf依赖,因此查看此依赖中是否有设置的方法
- 发现setFieldProperty()方法
首先导入依赖(如果已经导入则不需要导入,本项目版本是5.5.10)
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
使用setFieldProperty()方法
第一个参数是表格名字:表格名字可以用Adobe Acrobat DC这个软件打开PDF查看。
第二个参数是修改这个表格的什么属性:textcolor指的是文本颜色。
第三个参数是修改这个表格第二个参数的值:第三个参数要求BaseColor类型
第四个参数传空即可
我需要将表格的文本改为灰色,因此如下编写该方法
// fileName
String fileName = "abc.pdf";
//填充创建pdf
PdfReader reader = new PdfReader("/pdf模板的路径");
// 创建生成pdf的目录
String root = dyhCfgProperties.getDyhTempPath();
if (!new File(root).exists()) {
new File(root).mkdirs();
}
//取出报表模板中的所有字段
PdfStamper stamp = new PdfStamper(reader, Files.newOutputStream(new File(root, fileName).toPath()));
AcroFields form = stamp.getAcroFields();
……
……
form.setFieldProperty("${表格名字}","textcolor", BaseColor.LIGHT_GRAY, null);
附录:
setFieldProperty()的doc注释


浙公网安备 33010602011771号