PDF模版制作以及用iText生成PDF

xiaoxiao2021-02-28  82

最近有个需求,下载PDF类型的文件,故需要实现如下功能:

1、制作PDF模版

2、使用iText下载pdf

制作pdf模版,我是下载的Adobe Acrobat Pro DC制作的,当然网上也有,但是好多图片没显示,看的很着急,所以自己整理一份。

对于新手来说,这个软件使用还是需要一番摸索的,来说一下我的制作流程:

1.1、现有一个模版,用Adobe调模版还是挺麻烦的,所以还是使用word来制作模版,制作好模版之后,转成pdf格式。文件-另存为-保存为PDF的格式。

1.2、用Adobe打开刚才导出的PDF。

右侧工具栏里选择 准备表单 ,然后从菜单里拉出 添加“文本”域 ,在你想要填充的地方设置填充的name。也可以双击弹出文本域属性,可以设置名称,字体,大小等。

2.1、pdf模版制作好之后,就可以使用啦。用iText导出pdf,需要引入相关jar包。

compile group: 'com.itextpdf', name: 'itextpdf', version: '5.5.11' compile group: 'com.itextpdf', name: 'itext-asian', version: '5.2.0' 2.2、导出pdf @Test public void fromPDFTempletToPdf() { String fileName = "/Users/jennifer/Downloads/test.pdf"; //pdf模版 FileOutputStream fos = null; try { PdfReader reader = new PdfReader(fileName); fos = new FileOutputStream("/Users/jennifer/Downloads/test_out.pdf"); //生成pdf的位置 PdfStamper ps = new PdfStamper(reader, fos); AcroFields s = ps.getAcroFields(); // BaseFont bf = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); // s.setFieldProperty("entpName","textfont",bf,null); //设置中文格式 s.setField("Text3", "2011-04-05"); ps.setFormFlattening(true); ps.close(); reader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } 说明下,如果pdf填充值有中文的话,则需要设置中文格式。但是我个人感觉这个中文格式设置之后,英文的显示不好看。 所以我是在设置文本域的时候,在文本域属性的 外观-字体 里设置的字体:简-宋。导出的pdf字体效果就正常了。

Adobe Acrobat Pro DC软件下载地址:https://ardownload2.adobe.com/pub/adobe/acrobat/mac/DLM/Trial/acrobatproDC_00000000000000000000000804.dmg

转载请注明原文地址: https://www.6miu.com/read-54812.html

最新回复(0)