1.首先导入依赖

         <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.0.7</version></dependency>

2.代码部分

package com.pdf.util;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;import org.jsoup.Jsoup;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;import com.lowagie.text.pdf.BaseFont;/*** 转换html为pdf* @author Uncle Liu**/
public class Html2pdf {/*** 将HTML转成PD格式的文件。html文件的格式比较严格* @param htmlFile* @param pdfFile* @throws Exception*/// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">public static void html2pdf(String htmlFile, String pdfFile) throws Exception {// step 1String url = new File(htmlFile).toURI().toURL().toString();System.out.println(url);// step 2OutputStream os = new FileOutputStream(pdfFile);ITextRenderer renderer = new ITextRenderer();renderer.setDocument(url);// step 3 解决中文支持ITextFontResolver fontResolver = renderer.getFontResolver();if("linux".equals(getCurrentOperatingSystem())){//Linux下的和Windows的不一样,要自己下载,不要拷贝Windows的到LinuxfontResolver.addFont("/usr/share/fonts/chiness/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);}else{fontResolver.addFont("C:\\Windows\\WinSxS\\amd64_microsoft-windows-font-truetype-simsun_31bf3856ad364e35_10.0.17134.1_none_e089ab61d8d9374e\\simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);}renderer.layout();renderer.createPDF(os);os.close();System.out.println("create pdf done!!");}public static String getCurrentOperatingSystem(){String os = System.getProperty("os.name").toLowerCase();System.out.println("---------当前操作系统是-----------" + os);return os;}public static void main(String[] args) {String htmlFile = "D:\\WorkSpace\\IdeaProjects\\pdf\\src\\main\\resources\\templates\\u.html";String pdfFile = "c:/test.pdf";try {Html2pdf.html2pdf(htmlFile, pdfFile);} catch (FileNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}

3.html页面

注意:html格式非常严格,图片地址这里用的是绝对路径(file:///D:/WorkSpace/IdeaProjects/pdf/src/main/resources/static/images/1.jpg)

如果是相对路径要在后台设置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"/><title>Title</title><style>/*没有background-color生成的pdf一部分会是空白*/body{ text-align:center;border: 0px;margin: 0px;background-color:#FFFFFF;}.div{ margin:0 auto; width:1188px; height:auto;}body {/*中文支持*/font-family:SimSun;}</style>
</head>
<body><div class="div"><div><h2>123我</h2><img src="file:///D:/WorkSpace/IdeaProjects/pdf/src/main/resources/static/images/1.jpg" style="width: 20px;height: 20px"/><table border="1" cellspacing="0"><tr><td>eE额33</td><td>eE额33</td></tr><tr><td>eE额33</td><td>eE额33</td></tr><tr><td>eE额33</td><td>eE额33</td></tr><tr><td>eE额33</td><td>eE额33</td></tr></table></div>
</div>
</body>
</html>

4.生成pdf

超出页面长度时会自动分页

itext转换html成pdf(支持中文、图片)相关推荐

  1. itext html转换pdf,itext转换html成pdf(支持中文、图片)

    1.首先导入依赖 com.itextpdf itextpdf 5.5.11 com.itextpdf itext-asian 5.2.0 org.xhtmlrenderer flying-saucer ...

  2. 【itext学习之路】--6.将html转成pdf(解决中文不显示)

    来源:[itext学习之路]-------(第七篇)将html转成pdf(解决中文不显示)_tomatocc的博客-CSDN博客 在上一篇文章中,我们学习了使用对pdf进行盖章/签章/数字签名,到此为 ...

  3. 将图片直接转换成xml文件_如何将jpg在线转换成pdf?jpg图片可以转换成pdf吗?

    可不要以为jpg就一定只是一张简单的图片,一张图片中可以包含的信息是很多的,除了有景象之外,也可能会有文字,有表格.当然,我们今天要讨论的,并不是一张jpg的图片中可能会存在哪些信息,而是要如何将jp ...

  4. 使用java+OpenCV进行图片对比并标记差异部分(支持中文图片路径)

    1.设计方法为: 首先将两个图片转化为灰度图: 进行灰度图比对,1为完全相同,此处可以插入阀值: 计算两个灰度图的绝对差值并放入一个新的Mat对象: 将新的mat对象进行绝对差值化: 寻找轮廓图并用红 ...

  5. Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文

    Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文 如何使用django-easy-pdf django-easy-pdf的依赖 安装django-easy-pdf 使用过 ...

  6. html长图转换成pdf,支持把各类文档转换成 HTML5(SVG)接口、长图片、PDF 。word转pdf、word转html5、pdf转网页html5、pdf转图片的接口...

    详情请到九云图官网了解一下.https://server.9yuntu.com/yuntu/resource/website/api.html 把 OFFICE / PDF / CAD 等文档转换成 ...

  7. itext转换HTML为pdf,支持中文换行

    最近有个需求,OA系统流程走完后,要求将流程导出为pdf供人下载,在网上各种查资料捣鼓了半天,终于算是搞出来了,基本逻辑就是配置好需要显示的布局,然后根据布局生成HTML页面,再导出为pdf. (20 ...

  8. SpringBoot html转pdf 支持中文、图片水印+文字水印、页眉页脚 flying-saucer-pdf-itext5 + freemarker

    使用 flying-saucer-pdf-itext5加freemarker生成pdf,支持中文.图片水印+文字水印.页眉页脚. 引入jar包 <!-- freemarker --> &l ...

  9. 怎么把JPG转换成PDF格式?图片批量转换PDF的简单方法

    文件格式的转换在我们的工作中扮演了非常重要的角色,比如怎么把JPG转换成PDF格式?如果可以轻松的解决文件格式转换问题,相信大家的工作效率也会提高很多.如果有小伙伴不知道如何转换,那么小编分享一个不用 ...

最新文章

  1. 微信小程序提示 出现脚本错误或者未正确调用 Page()
  2. bzero函数_函数模块 | UDP自动获取本地广播地址
  3. MariaDB/MySQL从数据库中选择随机的行
  4. 数据库常用对象概念讲解
  5. 办公文档加密,企业文档加密,强制性透明加密技术,fasoft
  6. Facebook表示将不会默认开启人脸识别功能,被罚怕了?
  7. Hashtable源码分析
  8. php执行npm命令_npm系列之命令执行
  9. Windows10系统下虚拟环境的安装与使用
  10. Mac OSX 开机启动应用
  11. es6 数组合并_那些会用到的 ES6 精粹(包邮送书)
  12. ubuntu 下openkore的运行
  13. 使用云打码识别验证码
  14. 开源棋牌游戏_开源棋盘游戏如何拯救地球
  15. android ibinder类接口编辑
  16. 软件测试-黑盒测试,白盒测试,灰盒测试
  17. Z2021年全球家用自动血压计收入大约1018.7百万美元,预计2028年达到1194.2百万美元,2022至2028期间,年复合增长率CAGR为 %。同时2020年全球家用自动血压计销量大约 ,预计
  18. HIVE基本查询操作(二)——第1关:Hive排序
  19. js中如何将object转化为json数据,json数据转js对象
  20. 【图文详细 】Linux上的MySql安装,小老弟假如看不懂,请评论攻击我!

热门文章

  1. 删除Microsoft Security Essentials
  2. java.lang.NoClassDefFoundError与aspectjrt、aspectjweaver的联系
  3. linux rsync 子目录,rsync同步指定多文件目录方法linux操作系统 -电脑资料
  4. 现在做什么生意挣钱快投资小
  5. 关于解决安装Ubuntu到移动硬盘后引导问题,不能在别人电脑上使用
  6. 网络编程--TCP/IP协议
  7. 百度签约重庆高院 ABC推动智慧法院建设
  8. python笔记14介绍几个魔法方法
  9. 南京师范大学计算机考研资料汇总
  10. Go语言实现单例模式