java使用itextpdf实现html转pdf
maven依赖
<dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>layout</artifactId> <version>7.1.16</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>kernel</artifactId> <version>7.1.16</version> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.14.3</version> </dependency>
import cn.hutool.core.io.FileUtil; import com.itextpdf.html2pdf.ConverterProperties; import com.itextpdf.html2pdf.HtmlConverter; import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider; import com.itextpdf.kernel.geom.PageSize; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.font.FontProvider; import java.io.*; public class PdfItextDemo { public static void main(String[] args) { String htmlurl = "D:456.htm"; String pdfPath = "D:/doctopng/123.pdf"; File file = new File(pdfPath); String readString = FileUtil.readString(htmlurl, "utf-8"); try(OutputStream outputStream = new FileOutputStream(file)) { // 转换 HTML to PDF PdfWriter writer = new PdfWriter(outputStream); PdfDocument pdfDocument = new PdfDocument(writer); // 设置PDF大小 pdfDocument.setDefaultPageSize(PageSize.A3); // 设置中文 ConverterProperties converterProperties = new ConverterProperties(); FontProvider fontProvider = new DefaultFontProvider(true, true, true); converterProperties.setFontProvider(fontProvider); // html转换PDF HtmlConverter.convertToPdf(readString, pdfDocument, converterProperties); // 关闭 pdfDocument.close(); } catch (Exception e){ e.fillInStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~