html 转pdf

javascript 复制代码
package com.cudatec.infra.se.controller;

import org.w3c.dom.Document;
import org.xhtmlrenderer.pdf.ITextRenderer;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.*;

/**
* @program: infra-acm
* @description:
* @author: xuwenjie
* @create: 2020-09-25 10:33
**/
public class TestController {

    public static void main(String[] args) {
        String outputFile = "test.pdf";
        InputStream inputStream = null;
        Document doc = null;
        try {
            OutputStream out = new FileOutputStream(outputFile);
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            ITextRenderer renderer = new ITextRenderer();
            inputStream = new ByteArrayInputStream(buildContent().getBytes("utf-8"));
            doc =builder.parse(inputStream);
            renderer.setDocument(doc, null);
            renderer.layout();
            renderer.createPDF(out, true);
            out.flush();
            out.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

        public static String buildContent() throws IOException {
        //加载邮件html模板
        String fileName = "demo.html";
        InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
        BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuffer buffer = new StringBuffer();
        String line = "";
        try {
            while ((line = fileReader.readLine()) != null) {
            buffer.append(line);
            }
        } catch (Exception e) {
            //日志异常
        } finally {
            inputStream.close();
            fileReader.close();
        }
            String value = buffer.toString();
            //可以对value操作
            return value;
        }
}

//依赖

javascript 复制代码
<!--html 转 pdf -->
	<dependency>
		<groupId>org.xhtmlrenderer</groupId>
		<artifactId>flying-saucer-pdf</artifactId>
		<version>9.0.7</version>
	</dependency>
相关推荐
石小石Orz1 分钟前
民间AI排行榜单新鲜出炉,Fable 5.1仅排第三
前端·后端·ai编程
FYKJ_201010 分钟前
【毕设分享】基于Web的校园兼职信息发布与申请系统07059
前端·vue.js·spring boot·mysql·typescript·spark·课程设计
Lyyaoo.19 分钟前
【动态规划】【待更新】
java·数据结构·算法
我不会起名字32228 分钟前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
麻瓜code31 分钟前
【JUC】基础:并发模型、锁机制与 JMM
java
曹牧34 分钟前
SpringBoot: @RequestBody String
java
爱划水不秃头的程序员1 小时前
堆 栈 和常量池的关系是啥 是jvm对他们进行的划分吗
java
周GZ1 小时前
4个提问,deepseek讲解Java中的线程池
java
LuTshoes1 小时前
context 上下文工程
java·人工智能·spring·ai
wuminyu1 小时前
Markword在紧凑对象头上的实现原理剖析
java·linux·c语言·jvm·c++