PDF模版制作以及用iText生成PDF
Posted rage_angel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDF模版制作以及用iText生成PDF相关的知识,希望对你有一定的参考价值。
最近有个需求,下载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包。
2.2、导出pdfcompile group: 'com.itextpdf', name: 'itextpdf', version: '5.5.11' compile group: 'com.itextpdf', name: 'itext-asian', version: '5.2.0'
@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
以上是关于PDF模版制作以及用iText生成PDF的主要内容,如果未能解决你的问题,请参考以下文章