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

相关推荐
Grey Zeng7 小时前
Java SE 25新增特性
java·jdk·jdk新特性·jdk25
雨白8 小时前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
架构师沉默12 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
Java中文社群13 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
前端老鹰14 小时前
HTML <output> 标签:原生表单结果展示容器,自动关联输入值
前端·html
每天进步一点_JL14 小时前
JVM 类加载:双亲委派机制
java·后端
用户2986985301415 小时前
Java HTML 转 Word 完整指南
java·后端
渣哥15 小时前
原来公平锁和非公平锁差别这么大
java
渣哥15 小时前
99% 的人没搞懂:Semaphore 到底是干啥的?
java
J2K15 小时前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端