java 操作pdf 不能显示itext生成的PDF文件文本域内容问题

本文详细介绍了使用Java操作PDF文件并解决中文显示问题的方法。通过创建特定的中文字体,确保在PDF文件中填入的数据能够正确显示中文字符,避免乱码问题。适用于需要在PDF文档中插入中文信息的各种应用场景。
摘要由CSDN通过智能技术生成

 问题:java 操作pdf  填入数据后,生成新pdf无法显示中文。

.........

try {
    PdfReader reader = new PdfReader(path);//读模板文件
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(tempPath));//复制模板文件
    AcroFields s = stamper.getAcroFields();//获取所有域名
// 设置中文显示
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

    for (String key : map.keySet()) {
        String value = (String) map.get(key);
        s.setFieldProperty(key,"textfont",bfChinese,null);
        s.setField(key, value); // 为字段赋值,注意字段名称是区分大小写的
    }
    stamper.setFormFlattening(true);
    reader.close();
    stamper.close();
} catch (IOException e) {
    logger.info(e.getMessage());
    e.printStackTrace();
} catch (DocumentException e) {
    logger.info(e.getMessage());
    e.printStackTrace();
}

RF: https://www.cnblogs.com/wangsongwang/p/7144558.html

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值