如何使用java 根据模板生成pdf,适用于银行套打

如何用java 生成 pdf文件,废话少说直接上代码

一、首先maven 拉取依赖

<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext7-core</artifactId>
            <version>7.2.3</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
   </dependency>

二、编写代码

import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.kernel.colors.DeviceRgb;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;

import java.awt.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class PDFTest {
        //使用模板 需要用pdf编辑一下
        private static final String TEMP_PATH ="D:\\模板.pdf";
        private static final String DES_PATH ="D:\\打印后.pdf";
        //使用本地字体库
        private static final String FONT_PATH ="C:\\windows\\Fonts\\simkai.ttf";

        public static void main(String[] args) throws IOException {

                PdfDocument pdfDocument=new PdfDocument(new PdfReader(TEMP_PATH),new PdfWriter(DES_PATH));
                PdfAcroForm form=PdfAcroForm.getAcroForm(pdfDocument,true);
                PdfFont font= PdfFontFactory.createFont(FONT_PATH);
                DeviceRgb color=new DeviceRgb(0,0,0);
                Map<String,String> map=new HashMap<String,String>();
                map.put("Text1","***银行");
                map.put("Text2","张三");
                map.put("Text3","买房");
                map.put("Text4","500000.00元");
                map.put("Text5","2023年1月1日");
                map.put("Text6","2024年1月1日");

                for(Map.Entry<String,String> entry:map.entrySet()){
                        System.out.println(entry.getKey());
                        System.out.println(entry.getValue());
                        form.getFormFields()
                                .get(entry.getKey())
                                .setValue(entry.getValue())
                                .setFont(font)
                                .setColor(color);

                }
                //清除格式
                form.flattenFields();
				//最后这个代码必须用 否则生成空的pdf
                pdfDocument.close();
        }
}

三、运行测试

测试结果

至于如何使用可以参考这个图片

在这里插入图片描述
模板在这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值