美文网首页
IText使用 PDF模板生成PDF

IText使用 PDF模板生成PDF

作者: Toplhyi | 来源:发表于2019-02-13 16:31 被阅读0次
  1. 项目中加入Maven依赖:
<dependency>
  <groupId>com.itextpdf</groupId>
  <artifactId>itextpdf</artifactId>
  <version>5.5.6</version>
</dependency>
  1. 创建PDFUtil工具类(可根据需要自行修改),如下:
    参数:
参数名 参数描述
fileName PDF模板名称
fontName 字体
data 数据(用于替换PDF模板中的变量)

返回值:ByteArrayOutputStream

  public class PdfUtil {
      public static ByteArrayOutputStream generatePdfStream(String fileName, String fontName, Map<String, String> data) throws  Exception{
          PdfReader reader = new PdfReader(fileName);
          ByteArrayOutputStream bos = new ByteArrayOutputStream();
          /* 将要生成的目标PDF文件名称 */
          PdfStamper ps = new PdfStamper(reader, bos);
          PdfContentByte under = ps.getUnderContent(1);
          /* 使用中文字体 */
          BaseFont bf = BaseFont.createFont(fontName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
          ArrayList<BaseFont> fontList = new ArrayList<BaseFont>();
          fontList.add(bf);
          /* 取出报表模板中的所有字段 */
          AcroFields fields = ps.getAcroFields();
          fields.setSubstitutionFonts(fontList);
          fillData(fields, data);
          /* 必须要调用这个,否则文档不会生成的 */
          ps.setFormFlattening(true);
          ps.close();
          return bos;
      }
  
      public static void fillData(AcroFields fields, Map<String, String> data)
              throws IOException, DocumentException {
          for (String key : data.keySet()) {
              String value = data.get(key);
              fields.setField(key, value); // 为字段赋值,注意字段名称是区分大小写
          }
      }
  }

这种方法适用于PDF模板中的变量不多的情况,如果变量过多使用也不是很方便(编辑PDF模板推荐使用Adobe Acrobat Pro软件)。

相关文章

  • IText使用 PDF模板生成PDF

    项目中加入Maven依赖: 创建PDFUtil工具类(可根据需要自行修改),如下:参数: 返回值:ByteArra...

  • iText使用PDF模板生成输出PDF

    下载Adobe Acrobat 工具制作PDF模板,对模板中的变量使用表单进行设置,如下图: 代码实现: 执行代码...

  • ITEXT 输出PDF及获取当前文档的高度

    Java可以用ITEXT 输出PDF,比如要生成下面的PDF 需要依赖 以上例子介绍如何使用itext的table...

  • itext生成PDF(二)

    itext生成PDF excel 示例 生成效果 代码

  • itext 生成 PDF(一)

    itext 生成 PDF(二) 官网:http://itextsupport.com/apidocs/itext...

  • 使用Itext生成pdf

    参考文档 官方文档是最好的参考文档:https://developers.itextpdf.com/content...

  • Java 生成 PDF 文档

    开源框架支持iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;Apache PDFBox,...

  • Java生成PDF

    Java生成PDF有两种办法:1.利用PDF模板,读入模板,填充数据,生成带数据的PDF。 ...

  • itext读取pdf表单字段无序问题解决

    问题描述 在使用itext的jar包读取pdf表单模板文件的时候,获取到的字段需要按照pdf设置的跳位编号排序(即...

  • pdf生成

    Java生成PDF有两种办法:1.利用PDF模板,读入模板,填充数据,生成带数据的PDF。 Jasperrepor...

网友评论

      本文标题:IText使用 PDF模板生成PDF

      本文链接:https://www.haomeiwen.com/subject/loedeqtx.html