zoukankan      html  css  js  c++  java
  • itext导出pdf代码并处理中文乱码(2)

    package com.itext.ipdf;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.pdf.AcroFields;
    import com.itextpdf.text.pdf.BaseFont;
    import com.itextpdf.text.pdf.PdfReader;
    import com.itextpdf.text.pdf.PdfStamper;

    public class ReportPDF {

      public static void main(String[] args) throws IOException {

      makePdf();
      }


      public static void makePdf() throws IOException{


        PdfReader readeTemplate = null;
        FileOutputStream out = null;
        try {
          //1.读取template.pdf
          readeTemplate = new PdfReader("template.pdf");
          out = new FileOutputStream("ok.pdf");
          PdfStamper ps = new PdfStamper(readeTemplate, out);//模板转换成新文件
          AcroFields templateFileds = ps.getAcroFields();//获取Adobe Acrobat DC填充的字段
          //2.处理中文乱码
          //STZHONGS.TTF华文仿宋字体 可以到C:WindowsFonts文件下找
          String fonurl = ReportPDF.class.getClassLoader().getResource("STZHONGS.TTF").getPath();
          fonurl = fonurl.replaceAll("%20", " ");
          BaseFont bfChinese = BaseFont.createFont(fonurl, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
          templateFileds.addSubstitutionFont(bfChinese);
          //3.向Adobe Acrobat DC填充的字段赋值
          templateFileds.setField("producer", "zzl");
          templateFileds.setField("productionTime", new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
          templateFileds.setField("name", "内存条");
          templateFileds.setField("size", "8G");
          templateFileds.setField("color", "黑色");
          templateFileds.setField("amount", "1");

          ps.setFormFlattening(true);
          ps.close();
        } catch (IOException e) {
          e.printStackTrace();
        } catch (DocumentException e) {
          e.printStackTrace();
        }finally{
          if(out != null){
            out.close();
          }
          if(readeTemplate != null){
            readeTemplate.close();
          }
        }
      }

    }

    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>itextpdf</artifactId>
      <version>5.5.13</version>
      </dependency>
    </dependencies>

  • 相关阅读:
    .NET Reflector v9.0.1.318(包含注册机)
    【云计算】阿里云产品全景图
    【Docker】MySQL容器因为内存限制启动失败?
    【云计算】Docker监控相关资料
    【JavaScript】Bootstrap3-dialog挺好用
    【Other】ASCII Text Art
    【Javascript】如何实现点的wave效果 && sinewave效果
    【Linux】shell判断mysql端口是否启用?
    【云计算】Docker build解决父镜像层级关系过多问题:Cannot create container with more than 127 parents
    【Linux】Ubuntu vi 上下左右变ABCD及 apt-get install报错问题解决方法
  • 原文地址:https://www.cnblogs.com/zzlcome/p/11059677.html
Copyright © 2011-2022 走看看