java:html转pdf的方法

article/2025/9/11 14:03:13

html转为pdf有两种方法:

  1. xhtmlrenderer
  2. itext

1.使用xhtmlrenderer

依赖
<dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.18</version>
</dependency>
template.html
java代码
import com.lowagie.text.pdf.BaseFont;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;public class HtmlToPdf {private static final String resourcesDir = System.getProperty("user.dir") + "/src/main/resources";public void htmlToPdf() throws Exception {String path = resourcesDir + "/template/template.html";String destPath = resourcesDir + "/template/template.pdf";ITextRenderer renderer = new ITextRenderer();OutputStream os = new FileOutputStream(destPath);renderer.setDocument(new File(path));ITextFontResolver resolver = renderer.getFontResolver();//添加字体,解决中文不显示的问题resolver.addFont(resourcesDir + "/font/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);renderer.layout();renderer.createPDF(os);os.close();}public static void main(String[] args) throws Exception {new HtmlToPdf().htmlToPdf();}}
生成的pdf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]

注意事项
  1. 在html中需要在body中定义font-family,定义的字体需要跟代码中使用的字体完全一致。
  2. 不要在项目中引入itext相关的包,可能会导致中文不显示。

2.使用itext

依赖
<dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><version>3.0.3</version>
</dependency>
template.html
java代码
import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
import com.itextpdf.layout.font.FontProvider;import java.io.*;public class HtmlToPdf {private static final String resourcesDir = System.getProperty("user.dir") + "/src/main/resources";public void htmlToPdf() throws Exception {String path = resourcesDir + "/template/template.html";String destPath = resourcesDir + "/template/template.pdf";ConverterProperties converterProperties = new ConverterProperties();FontProvider dfp = new DefaultFontProvider();//添加字体库dfp.addDirectory("C:/Windows/Fonts");converterProperties.setFontProvider(dfp);try (InputStream in = new FileInputStream(new File(path)); OutputStream out = new FileOutputStream(new File(destPath))){HtmlConverter.convertToPdf(in, out, converterProperties);}catch (Exception e){e.printStackTrace();}}public static void main(String[] args) throws Exception {new HtmlToPdf().htmlToPdf();}
}
生成的pdf跟上面的差不多
注意事项:
  1. html中无需规定字体,在代码中可以导入本地的字体库或者使用特定的字体库。
代码路径:

https://github.com/anyueStarrysky/javaBasicTest


http://chatgpt.dhexx.cn/article/MqZV3ER8.shtml

相关文章

java开发html转pdf 解决方案

之前在工作中遇到过一个需求&#xff0c;是将用户填写的申报&#xff0c;由固定模板的来生成pdf&#xff0c;后来想到先把内容生成html&#xff0c; 然后再把html格式的内容转换成pdf。 之前在网上找了很多&#xff0c;有很多内容都是转载的&#xff0c;后来折腾了好几天才试出…

php html转pdf wkhtmltopdf

系统CentOS7.6 1.安装 wkhtmltopdf yum install wkhtmltopdf 看别的大佬的教程这步就已经可以正常生成&#xff0c;但我这边运行脚本的时候返回了 "wkhtmltopdf: cannot connect to X server" 2.安装 Xvfb yum install Xvfb 3.运行脚本 xvfb-run --server-ar…

PDF如何转换成HTML?这个方法真的简单!

PDF (Portable Document Format) 是一种常用的文档格式&#xff0c;具有跨平台和跨应用程序的特点&#xff0c;可以保持文档的原始格式&#xff0c;便于在不同的设备上进行查看和编辑。然而&#xff0c;PDF 文件通常不能直接在网页上浏览&#xff0c;因此需要将它转换为 HTML (…

pdf怎么转成html?

pdf怎么转成html&#xff1f;pdf是日常工作中最常见的文件格式&#xff0c;我们会用pdf来处理各种办公文件&#xff0c;大家可能对html文件不是很熟悉&#xff0c;因为普通上班族用不到这种文件&#xff0c;html是一种超文本标记预览&#xff0c;它是由很多代码组成的&#xff…

html页面转成PDF,PDF下载

先说要完成的功能&#xff1a;把填写好的信息转换成PDF文件&#xff0c;并且下载到本地&#xff0c;类似在智联上下载自己的简历&#xff0c;不过下载下来是PDF文件。 参考了网上的多篇博客&#xff0c;发现有两种方法&#xff0c;但两种方法都各有利弊。下边介绍这两种方法。 …

怎么把pdf转为html?PDF转HTML转换器推荐

大家知道HTML格式吗&#xff1f;我们通常上网浏览的网页就是HTML格式。而PDF格式是我们常用的一种文件格式&#xff0c;在不同的设备上打开&#xff0c;既不会影响到PDF内容的排版&#xff0c;也不容易被修改。在工作中&#xff0c;有时为了查看PDF文件在网页状态下的排版&…

html如何转为pdf

本篇文章给大家介绍html转pdf的方式。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 1、准备资源 itext.jar www.baidu.com html2canvas.js www.baidu.com 2、前端代码&#xff1a; //进行截图操作&#xff0c;document.querySe…

超级简单的html转换为pdf格式方法

类似这样一个网页 按住键盘上的ctrlp &#xff08;这个就是启动了打印选项&#xff09; 找到右上角那个地方&#xff0c;找到另存为PDF&#xff0c;然后这个网页就可以另存为PDF格式了。 我以前也用插件&#xff0c;现在感觉这个方法好用就把插件卸载了。

PDF转HTML格式怎么弄?将PDF转换为HTML的三种简便方法

PDF和HTML是两种常见的文档格式&#xff0c;它们在用途和外观上有很大的差异。然而&#xff0c;令人惊讶的是&#xff0c;这两种看似毫不相关的格式实际上可以相互转换。 一些网页编辑人员在更新网站内容时&#xff0c;通常会先将内容保存为PDF文件&#xff0c;然后在发布时将…

前端实现HTML转PDF下载的两种方式

方式一&#xff1a;使用html2canvas和jspdf插件实现 该方式是通过html2canvas将HTML页面转换成图片&#xff0c;然后再通过jspdf将图片的base64生成为pdf文件。实现步骤如下&#xff1a; 1,下载插件模块 npm install html2canvas jspdf --save2,定义功能实现方法 在项目工具…

最好用Html转pdf的工具——wkhtmltopdf

实习时公司需要把一些html页面中的部分内容生成pdf文件&#xff0c;然后我就找一些用php把html页面围成pdf文件的类。方法是可谓是找了很多很多&#xff0c;什么html2pdf,pdflib,FPDF这些都试过了&#xff0c;但是都没有达到我要的求&#xff08;主要是不能解决中文乱码的问题以…

PDF技术(四)-Java实现Html转PDF文件

html转换为pdf的关键技术是如何处理网页中复杂的css样式、以及中文乱码处理。 各实现对比表 于Windows平台进行测试&#xff1a; 基于IText 基于FlyingSaucer 基于WKHtmlToPdf 基于pd4ml 跨平台性 跨平台 跨平台 跨平台 跨平台 是否安装软件 否 否 需安装WKHtmlT…

Java实现HTML转PDF

Java实现HTML转PDF 效果图一、添加maven依赖二、代码示例三、踩坑&#xff1a;1.simsun.ttc 文件找不到问题2.中文显示问题&#xff1a;3. 问题&#xff08;当然不知这种问题 还有 >等一些特殊转义符号这里只罗列一种&#xff09; 效果图 上图是 html 效果图 生成PDF效果…

【html转pdf】html页面导出为pdf文件,纯html版本,简单实现pdf转换【html2canvas+jspdf】

前言 最近遇到的需求&#xff0c;把html转成pdf文件下载导出。 目前网上看了下&#xff0c;有三种方法&#xff0c;但是其中两种需要后端配合 一种是纯前端实现的&#xff0c;比较简单。所以就使用了这种。 也就是html2canvas jspdf 的这种方法 这种方法实现的思路就是&#…

HTML页面导出为PDF(JSPDF、ITEXT、WKHTMLTOPDF)

html页面导出pdf&#xff0c;本来是一件很简单的事情&#xff0c;在浏览器直接打印(Mac快捷键为⌘p&#xff1b;Windows快捷键为ctrlp)&#xff0c;就可以把页面另存为pdf文件&#xff0c;但对于要经常把页面导出为pdf的用户来说并不友好&#xff0c;一个合格程序员的标准就是&…

html转pdf(总结五种方法Java)

html转pdf&#xff08;总结五种方法Java&#xff09; Java 实现html转pdf&#xff0c;总结五种方法。 推荐使用wkhtmltopdf,Itext 方法一&#xff1a;使用wkhtmltopdf 1、下载插件wkhtmltopdf https://wkhtmltopdf.org/downloads.html 2、本机测试 本目录下cmd进入 输入命…

Java 动态规划

Java中的动态规划 介绍 动态规划典型的被用于优化递归算法&#xff0c;因为它们倾向于以指数的方式进行扩展。动态规划主要思想是将复杂问题&#xff08;带有许多递归调用&#xff09;分解为更小的子问题&#xff0c;然后将它们保存到内存中&#xff0c;这样我们就不必在每次…

PDF如何转换成jpg图片

PDF文件转换成jpg&#xff0c;有些人一看到问题可能有点懵逼&#xff0c;其实就是PDF转换成图片了&#xff0c;只要转换器中的PDF转图片功能中图片格式支持jpg格式&#xff0c;就可以直接转换成jpg图片了&#xff0c;比如奥凯丰 PDF转换大师&#xff0c;支持PDF转jpg、PDF转png…

数据结构和算法Java实现(韩顺平)

目录 稀疏数组 队列 数组模拟队列思路 数组模拟环形队列 链表 单链表的翻转 单链表的逆序输出&#xff08;栈&#xff09; 双向链表 Jasephu 问题 栈 数组模拟 栈实现计算器 中缀表达式 计算器 逆波兰表达式 &#xff08;后缀表达式&#xff09; 中缀转后缀实现计算…

pdf文件转图片(java实现)

项目中pdf文件太大&#xff0c;在手机端打开缓慢。需要将pdf文件转换成图片。加载比较快&#xff0c;增加用户体验。话不多说&#xff0c;直接上干货。 一、在pom引入依赖的jar <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox --><dependency&g…