栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot Thymeleaf Html转Pdf

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot Thymeleaf Html转Pdf

新建项目 引入依赖


    com.itextpdf
    html2pdf
    4.0.2

配置Thymeleaf application.yml
spring:
  thymeleaf:
    cache: false
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML
    encoding: UTF-8
创建字体目录以及Pdf模板 创建以下文件

src/main/resources/font/cn.ttf *(cn.ttf必须是中文字体)
src/main/resources/templates/pdf.html

pdf.html



    
    Title
    


检测报告

ID: 007

来源:

id name age
1 tom 20
创建Controller TestControlle
package top.yxlhsx.thymeleafdemo;

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
import com.itextpdf.io.font.FontProgram;
import com.itextpdf.io.font.FontProgramFactory;
import com.itextpdf.layout.font.FontProvider;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/test")
public class TestController {
	@Resource
    private TemplateEngine templateEngine;

    @GetMapping("pdf")
    public void importPdf() throws IOException{
        String outputFolder = "C:\Users\你的用户名\Desktop\新建文件夹\test.pdf";
        OutputStream outputStream = Files.newOutputStream(Paths.get(outputFolder));

        Context context = new Context();
        context.setVariable("sys", "linux");

        String htmlStr = templateEngine.process("pdf", context);

        ConverterProperties properties = new ConverterProperties();
        FontProvider fontProvider = new DefaultFontProvider();
        FontProgram fontProgram = FontProgramFactory.createFont("font/cn.ttf");
        fontProvider.addFont(fontProgram);
        properties.setFontProvider(fontProvider);

        HtmlConverter.convertToPdf(htmlStr, outputStream, properties);
    }

}

注意 如果生成Html字符串时报 【java.lang.ClassNotFoundException: ognl.DefaultMemberAccess】 异常



    com.itextpdf
    html2pdf
    4.0.2

Pdf效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号