【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注释
本文作者:onejay
本文链接:https://www.cnblogs.com/onejay/p/17503216.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步