HTML 转 PDF

dependencies

XML 复制代码
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>html2pdf</artifactId>
            <version>5.0.5</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>kernel</artifactId>
            <version>8.0.5</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>io</artifactId>
            <version>8.0.5</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>layout</artifactId>
            <version>8.0.5</version>
        </dependency>

代码实现

java 复制代码
    @Test
    void htmlToPdf() {
        // IO
        File htmlSource = new File("D:\\test.html");
        File pdfDest = new File("D:\\test.pdf");
        
        try {
            // pdfHTML specific code
            ConverterProperties converterProperties = new ConverterProperties();
            HtmlConverter.convertToPdf(new FileInputStream(htmlSource),new FileOutputStream(pdfDest), converterProperties);
        } catch (IOException e) {
            log.error("生成文件失败", e);
        }
    }
    
    @Test
    void createPdf() {
        
        String dest = "D:\\hello_world.pdf";
        
        //生成文件
        try {
            // 1、创建一个PdfWriter对象,将文档写入到文件中
            PdfWriter writer = new PdfWriter(dest);
            // 2、初始化一个PdfDocument对象
            PdfDocument pdf = new PdfDocument(writer);
            // 3、初始化一个Document对象
            Document document = new Document(pdf);
            // 4、向文档中添加内容
            document.add(new Paragraph("Hello World!"));
            // 5、关闭文档
            document.close();
        } catch (IOException e) {
            log.error("生成文件失败", e);
        }
    }

参考

🐙iTextPdf学习笔记 - Java小白的搬砖路 - 博客园

官方教程:

Convert HTML & CSS to rich, smart PDF documents - iText

iText: Converting HTML to PDF with pdfHTML

相关推荐
kerwin_code6 分钟前
SpringCloudAlibaba 服务保护 Sentinel 项目集成实践
java·sentinel
gentle_ice13 分钟前
leetcode——搜索二维矩阵II(java)
java·算法·leetcode·矩阵
程序员徐师兄20 分钟前
Java实战项目-基于 springboot 的校园选课小程序(附源码,部署,文档)
java·spring boot·小程序·校园选课·校园选课小程序·选课小程序
TANGLONG2221 小时前
【C++】类与对象初级应用篇:打造自定义日期类与日期计算器(2w5k字长文附源码)
java·c语言·开发语言·c++·python·面试·跳槽
等一场春雨2 小时前
Java设计模式 二十六 工厂模式 + 单例模式
java·单例模式·设计模式
纪元A梦2 小时前
Java设计模式:结构型模式→桥接模式
java·设计模式·桥接模式
&白帝&3 小时前
JAVA JDK7时间相关类
java·开发语言·python
2301_818732063 小时前
用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决
java·前端·javascript·前端框架·layui·intellij idea
狄加山6753 小时前
系统编程(线程互斥)
java·开发语言
星迹日3 小时前
数据结构:二叉树—面试题(二)
java·数据结构·笔记·二叉树·面试题