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

相关推荐
❥ღ Komo·24 分钟前
K8s服务发现与DNS解析全解析
java·开发语言
g***B7382 小时前
Java 工程复杂性的真正来源:从语言设计到现代架构的全链路解析
java·人工智能·架构
期待のcode4 小时前
MyBatisX插件
java·数据库·后端·mybatis·springboot
醇氧7 小时前
【Windows】优雅启动:解析一个 Java 服务的后台启动脚本
java·开发语言·windows
sunxunyong7 小时前
doris运维命令
java·运维·数据库
菜鸟起航ing7 小时前
Spring AI 全方位指南:从基础入门到高级实战
java·人工智能·spring
古城小栈7 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
MapGIS技术支持7 小时前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_8 小时前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
盖世英雄酱581369 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端