Itext7填充PDF表单中文无法显示,‘凉’不显示问题

Itext7填充PDF表单中文无法显示,‘凉’不显示问题

  1. 添加依赖
<!-- pdf处理依赖包 -->
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itext7-core</artifactId>
			<version>7.0.3</version>
			<type>pom</type>
		</dependency>
  1. 下载中文字库msyh.ttc(直接在百度搜索msyh.ttc进行下载解压,可以放在工程下)

在这里插入图片描述

  1. 代码
/**
 *静态方法填充pdf表单
 * src  模板路径
 * dest  生成后新的pdf路径
 * font
 * data 表单填充的数据
 */
public static void createPDF(String src, String dest, String font, Map<String, Object> data) throws IOException {
        // 创建pdf文件
        PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
        // 创建中文字体,使用自定义中文库(font: msyh.ttc所在路径,我放在resources下,
		// 可以通过:String font = this.getClass().getClassLoader().getResource("/").getPath() + "msyh.ttc";获取所在路径)
        PdfFont f2 = PdfFontFactory.createFont(font + ",0", PdfEncodings.IDENTITY_H, true);
        // 获取pdf模板中的表单信息
        PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
        // 设置表单填充值
        Map<String, PdfFormField> fields = form.getFormFields();
        for (String key : data.keySet()) {
            fields.get(key).setValue(data.get(key).toString()).setFont(f2);
        }
        // 设置表单不可编辑
        form.flattenFields();
        // 关闭编辑
        pdf.close();
    }

附:生成pdf表单可以使用 Adobe Acrobat 9 Pro
在这里插入图片描述
参考:链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值