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包。

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


以上是关于PDF模版制作以及用iText生成PDF的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Acrobat pro生成PDF模版

关于根据模版生成PDF,不用表单的方式插入的方法

Java操作wkhtmltopdf实现Html转PDF

Java iText使用PDF模板生成PDF文档

java利用itext导出pdf

用itext5-1-生成PDF