Html2PDF

步骤:

1、通过freemarker替换原来html模板中的${xxx};
2、将包含数据的html转PDF。

 

package com.caac.test;

import com.caac.utils.WordUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;

import java.util.HashMap;
import java.util.Map;


public class TestHtml2PDF {
    public static final String DEST = "E:\\工作需求\\IText生成PDF\\test.pdf";

    public TestHtml2PDF() {
        super();
    }


    /**
     * Creates a PDF 
     * @param destPath  输出的pdf路径
     * @throws IOException
     * @throws DocumentException
     */
    public void createPdf(String destPath, String reHtml) throws IOException, DocumentException {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(destPath));
        document.open();
        XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(reHtml),
                                                 Charset.forName("UTF-8"));
        document.close();
    }


    public static void main(String[] args) throws IOException, DocumentException {
        System.out.println("开始..");
        //1,替换原来的html内容,即赋值到html模板
          Map<String, Object> dataMap = new HashMap<String, Object>();
        dataMap.put("name", "11测试项目名称22");
        dataMap.put("name1", "11测试项目名称33");
        dataMap.put("name2", "11测试项目名称44");
        dataMap.put("nr", "测试nr");
        dataMap.put("nr2", "基础研究:指为获得关于现象和可观察事实的基本原理及新知识而进行的实验性和理论性工作,它不以任何专门或特定的应用或使用为目的。");

        String oldHtmlPath = "E:\\工作需求\\IText生成PDF"; //导出的模板文件夹目录
         String newHtmlPath = "E:\\工作需求\\IText生成PDF\\newkyxm.html"; //替换后的html(含数据内容)
        String oldHtmlName = "test.html"; //原来的html名
        new WordUtils().createDoc(dataMap, oldHtmlPath, newHtmlPath, oldHtmlName);
        System.out.println("完成赋值html内容");

        //2,html转PDF
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new TestHtml2PDF().createPdf(DEST, newHtmlPath);
        System.out.println("完成。");
    }
}

 需要引入itext-5.4.1和 xmlworker-5.4.1 里面的jar包

--摘自 testHtml2PDF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值