itext7 html2pdf 将html文本转为pdf

1、将html转为pdf需求分析

经常会看到爬虫有这样的需求,将某一个网站上的数据,获取到了以后,进行分析,然后将需要的数据进行存储,也有将html转为pdf进行存储,作为原始存档,当然这里看具体的需求,可能有些不需要。

2、这里的itext7是pdf的工具,有一个html2pdf包,可以将html转为pdf,这里面可以是一段html文本也可以是一个html文件,这个根据不同的情况,我们可以通过不同的参数去实现。

通过图中我们可以知道,方法里的参数形式还是很丰富的。

3、引入依赖包pom.xml

复制代码
<!-- iText7 Core -->
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itext7-core</artifactId>
			<version>7.1.16</version>
			<type>pom</type>
		</dependency>
		<!-- HTML to PDF Add-On -->
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>html2pdf</artifactId>
			<version>3.0.4</version>
		</dependency>

4、编写测试类HtmlToPdfConverter

复制代码
/**

@date: 2025年4月14日
@author: 花花鱼
@filename: HtmlToPdfConverter.java
@func: 测试html文件生成pdf文件
*/
package com.example.utils;

import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.kernel.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class HtmlToPdfConverter {
    public static void main(String[] args) {
        // HTML内容
        String htmlContent = "<h1>Hello, World!</h1><p>This is a paragraph.</p>";
        // 输出PDF文件的路径
        String dest = "output.pdf";
        
        try {
            // 创建PdfWriter实例用于写入PDF文件
        	File file = new File(dest);
        	System.out.println(file.getAbsoluteFile().toString());
            PdfWriter writer = new PdfWriter(new FileOutputStream(new File(dest)));
            // 创建PdfDocument实例
//            PdfDocument pdf = new PdfDocument(writer);
            // 使用HtmlConverter将HTML转换为PDF
            HtmlConverter.convertToPdf(htmlContent, writer);
            // 关闭文档
//            pdf.close();
            writer.close();
            System.out.println("PDF created successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

一个简单的html转为pdf文件就生成了,特别地:如果html比较复杂的话,可能需要进行额外的处理,这里是简单的测试, 更多功能待你去发掘。

相关推荐
paopaokaka_luck40 分钟前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir40 分钟前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人1 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_944521592 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
南归北隐3 小时前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
古法老登瞎折腾3 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者3 小时前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
略略略咯咯3 小时前
啊啊啊啊啊
java·服务器·数据库
SL_staff4 小时前
运维救火实战:钉钉API变更致薪资计算中断,如何用可视化逻辑引擎5分钟热修复
java·开源·全栈
猫猫.1534 小时前
HashTable、HashMap、ConcurrentHashMap 核心区别总结
java·开发语言·java-ee