java 生成pdf插件下载_Java生成Pdf Itext插件: 解析PDF模板生成PDF表单

本文介绍了如何在Java中使用Itext库生成PDF文档,包括通过Maven引入Itext jar包,使用Adobe Acrobat制作PDF模板,以及用Java代码填充模板并生成最终PDF文件的过程。
摘要由CSDN通过智能技术生成

IText是用于生成PDF文档的一个java类库。

官方网站 :https://itextpdf.com/

(一)通过maven引入Itext 的jar包

com.itextpdf

itextpdf

5.4.3

(二)读取PDF即模板的使用

1、使用Adobe Acrobat 制作PDF模板(可以用word先编辑,另存为PDF格式)

a)文本域:工具-内容编辑-编辑文本域图像(自动会选中)

b)表单域:工具-表单-编辑-编辑-添加新域(或者编辑域)

c)编辑表单域可以设置一个name,

cf5ae0f791dcea21d7c48f7cb3c2e57c.png

(三)实现代码

//申请信息表模板

private static String TEMPLATE_PDF_NAME="template.pdf";

//申请信息表模板

private static String APPLY_PDF_NAME="apply.pdf";

public String createPdfTest(Listpersonlist) {

//生成申请信息表PDF

try {

String uploadPath = "E:/";

applicationPdf(licOrgApply, uploadPath);

return "yes";

} catch (Exception e) {

e.printStackTrace();

return "pdf处理失败,原因:"+e.getMessage();

}

}

/**

* 生成信息表pdf

*/

public void applicationPdf(LicOrgApplyEntity licOrgApply,String uploadPath)

throws IOException, DocumentException {

Gson gson = new Gson();

String json = gson.toJson(licOrgApply);

System.out.println(json);

Map, ?> map = gson.fromJson(json, HashMap.class);

//获取模板路径

//String PdfTemplateFile = "E:/"+TEMPLATE_PDF_NAME;

//获取 resources 中 模板文件

URL PdfTemplateFile =Resources.getResource(TEMPLATE_PDF_NAME);

// 生成的文件路径

String PdfResultFile = uploadPath+ APPLY_PDF_NAME;

// 模板pdf

//PdfReader pdfReader = new PdfReader(Global.getProperty("upload.path") + TEMPLATE_PDF_NAME);

PdfReader pdfReader = new PdfReader(PdfTemplateFile);

// 新pdf

FileOutputStream fileOutputStream = new FileOutputStream(PdfResultFile);

// 生成新的pdf

PdfStamper pdfStamper = new PdfStamper(pdfReader, fileOutputStream);

// 填充表单域

AcroFields acroFields = pdfStamper.getAcroFields();

// 显示中文字体

//URL FontURL= Resources.getResource("SIMFANG.TTF");

//BaseFont ChineseBaseFont = BaseFont.createFont( Resources.getResource("SIMFANG.TTF"), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

BaseFont ChineseBaseFont = BaseFont.createFont( "c://windows//fonts//simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

//Font ChineseFont = new Font(ChineseBaseFont, 14, Font.NORMAL);

acroFields.addSubstitutionFont(ChineseBaseFont);

// 循环使Map和表单域中字段对应

Mapfieldmap = acroFields.getFields();

Set> set = fieldmap.entrySet();

Iterator> iterator = set.iterator();

while (iterator.hasNext()) {

Entry, ?> entry = (Entry, ?>) iterator.next();

String key = (String) entry.getKey();

}

}

//模板中的变量赋值之后不能编辑

pdfStamper.setFormFlattening(true);

//解析器关闭

pdfStamper.close();

//阅读器关闭

pdfReader.close();

}

参考博客:http://blog.csdn.net/u012228718/article/details/40706499

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值