iTextPdf之填充问题

博客讲述了在使用iTextPdf时遇到的填充问题,作者发现iTextPdf 5.5.10的AcroFields存在空问题。官方建议升级到新版本,但升级至7.0后,由于类和方法的变化导致需要重构代码。作者分享了7.0版本的依赖解决方式,解决了填充问题,并希望经验能对读者有所帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iTextPdf填写Pdf表格出现Field空白的问题


最近在帮客户做一个简单的report。用户提供了一个pdf文件作为模板,需要从特定的文件中读取数据然后填写到模板中。 很简单的一个程序使用iTextPdf就能实现。但是就在我给客户email一个样板的时候,发现在我的机子上,填写的内容是正常的显示,但是通过email传输之后内容全都不见了。Debug没有出现任何错误。

code:

  public void fillDateInPDfFile(ReportData reportData, String outputFilePath){
        try {
            String templatePath = getClass().getClassLoader().getResource("pdf_templates/CWECE_Report_Template.pdf").toString();

            PdfReader pdfReader = new PdfReader(templatePath);
            OutputStream result = new FileOutputStream(new File( outputFilePath));
            PdfStamper pdfStamper = new PdfStamper(pdfReader, result, (char)0, false);
            AcroFields acroFields = pdfStamper.getAcroFields();
            setValueInTF(acroFields, reportData);
            pdfStamper.setFormFlattening(false);
            pdfStamper.close();
            pdfReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    void setValueInTF(AcroFields acroFields, ReportData reportData){
        try {
            acroFields.setField(ReportTextFieldsNames.TF_ADD_RIMS.text(),reportData.getAdd_rims());
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值