应无所住,而生其|

onejay

园龄:3年8个月粉丝:0关注:0

【Java】修改生成的PDF的表格中文字的字体

背景

需求是修改PDF中某些字的颜色

 

解决方法

  1. 现有代码用的是com.itextpdf依赖,因此查看此依赖中是否有设置的方法
  2. 发现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 中国大陆许可协议进行许可。

posted @   onejay  阅读(447)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起