JAVA HTML 转 PDF
JAVA 通过 itext,wkhtmltopdf 等,将 HTML 转成 PDF。
这里通过 wkhtmltopdf 实现HTML转PDF
wkhtmltopdf 是一个开源的,使用Qt WebKit 渲染引擎,把 html 转换为 pdf 文件的命令行工具。
wkhtmltopdf官网地址
wkhtmltopdf
下载
下载地址:https://wkhtmltopdf.org/downloads.html根据系统选择相应的版本
这里以Linux为例:
版本:wkhtmltox-0.12.6-1.centos7.x86_64.rpm
安装
- 上传rpm文件到安装目录 /usr/local
cd /usr/local
- 安装 rpm
rpm -ivh wkhtmltox-0.12.6-1.centos7.x86_64.rpm
- 查看安装路径
whereis wkhtmltopdf
- 字体安装(Linux)
将 simsum.ttc 字体上传至 /usr/share/fonts/chinese/TrueType
注:没有该路径就 mkdir 创建,字体也可以去windows系统 C:\Windows\Fonts 目录下找
卸载
rpm -qa |grep wkhtmlto
rpm -e wkhtmltox-0.12.6-1.centos7.x86_64
wkhtmltopdf自动生成文档
方式一:通过wkhtmltopdf -H查看自动生成文档
wkhtmltopdf -H
方式二:访问官方查看自动生成文档
https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
JAVA集成wkhtmltopdf
HtmlToPdf拦截器
/*** HtmlToPdf拦截器*/
public class HtmlToPdfInterceptor extends Thread {private InputStream inputStream;public HtmlToPdfInterceptor(InputStream is){this.inputStream = inputStream;}public void run(){InputStreamReader inputStreamReader = null;BufferedReader bufferedReader = null;try{inputStreamReader = new InputStreamReader(inputStream, "utf-8");bufferedReader = new BufferedReader(inputStreamReader);String line = null;while ((line = bufferedReader.readLine()) != null) {//打印内容System.out.println(line.toString());}}catch (IOException e){e.printStackTrace();}finally {try{if(null != inputStreamReader){inputStreamReader.close();}if(null != bufferedReader){bufferedReader.close();}}catch (IOException e){e.printStackTrace();}}}}
wkhtmlltopdf操作类
public class HtmlToPdfOperator {/*** html转pdf* @param fromPath html路径,可以是磁盘路径,也可以是网络路径* @param toPath pdf保存路径* @return 转换成功返回true*/public void convert(String fromPath, String toPath){File file = new File(toPath);File parent = file.getParentFile();//如果pdf保存路径不存在,则创建路径if(!parent.exists()){parent.mkdirs();}StringBuilder cmd = new StringBuilder();//加载wkhtmltopdfcmd.append(getWkhtmltopdfPath());//将纸张大小设置为自定义宽高的A4cmd.append(" --print-media-type");cmd.append(" --page-size A4");cmd.append(" --page-width 270mm");cmd.append(" --page-height 382mm");cmd.append(" ");cmd.append(fromPath);cmd.append(" ");cmd.append(toPath);try{Process proc = Runtime.getRuntime().exec(cmd.toString());HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream());HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream());error.start();output.start();proc.waitFor();}catch(Exception e){e.printStackTrace();}}/*** 获取wkhtmltopdf路径* @return*/private String getWkhtmltopdfPath() {String wkhtmltopdfPath = "D:\\applocation\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";return wkhtmltopdfPath;}}
JAVA HTML 转 PDF相关推荐
- 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载
230套java web开发PDF书籍和CHM参考手册资料大全 免费下载 下载地址:http://yun.baidu.com/s/169jYH 文章来源:HTML5星空http://www.html5 ...
- java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...
- Java Html转pdf实战
Java Html转pdf实战 - 简书年尾手头没啥事,干起了打杂工作,最近帮忙解决后端项目里一个html批量转pdf速度慢的问题,项目里用到的转换工具是 wkhtmltopdf ,这货转单个html ...
- java中生成pdf,插入图片,页眉、页脚、表格
全栈工程师开发手册 (作者:栾鹏) java教程全解 java中生成pdf,插入图片,页眉.页脚.表格 import com.lowagie.text.*; import com.lowagie.te ...
- java面试宝典pdf下载_Java面试问答PDF电子书免费下载(250+问题,60页)
java面试宝典pdf下载 I was getting a lot of emails and comments to create java interview questions and answ ...
- java itext 横线,Java itext生成pdf设置下划线,,package cn.o
Java itext生成pdf设置下划线,,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpdf.text.C ...
- Java实现对PDF文件添加水印
Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...
- java word转pdf 后通过 PdfReader 和 PdfStamper对pdf添加水印 通过poi等组件实现
所需jar包地址 <!-- java 读取word文件里面的加颜色的字体 转pdf 使用 --><dependency><groupId> e-iceblue &l ...
- java 模板生成PDF文件 复选框勾选
java 模板生成PDF文件 复选框勾选 // pdf填充时要有第三个参数s.setField("A", On, true);
- Java WORD转换PDF 并添加水印 (附赠jar提取链接)
Java WORD转换PDF 并添加水印 直接上代码 实现功能 docx文档转换为PDF 转换之后排版不混乱 使用工具(Jar包) aspose-words-15.8.0-jdk16.jar(用于PD ...
最新文章
- 报错解决 :Couldn't find any package by regex 'g++-8'
- 5分钟掌握手动优化机器学习模型超参数
- 河北计算机课本初中,河北:2019-2020学年中小学教学用书有变
- 洛谷P1162 填涂颜色
- Beyond Compare 3 许可证密钥被撤销
- MapReduce 编程实践:统计对象中的某些属性
- 运用Axure6.5快速完成微信交互效果的简单办法
- 快来一起玩转LiteOS组件:Curl
- 投影html连接电脑,电脑怎么连接投影仪?投影仪的详细安装使用教程
- python的networkx 算法_python图算法库Networkx笔记 - Node and Centrality
- JAVA-初步认识-第九章-接口-定义interface
- sublime text 2/3 快捷键汇总
- MAPGIS提示请在“系统设置”里设置好系统库路径(SUVSLIB或者其他)再重新运行程序
- [源码和文档分享]基于QT实现的alpha-beta剪枝算法搜索的象棋人机博弈游戏
- javascript颜色选择器
- python 倒计时库_python实现倒计时小工具
- 顶级区块链开发人员工具:涉及框架、IDE、安全工具、测试网络、区块链预言机和节点服务
- Axure RP9 水平滑动效果制作
- 书单分享:阅读应该是一种享受
- 自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)
热门文章
- sunray破解版使用方法
- 完成类似百度贴吧客户端tableview滑动效果
- ROS(ROUTEROS) 端口映射
- 防火墙的数据包拦截方式
- 值得一看!年薪50万运维安全工程师学习路线
- 数字图像处理·SLIC超像素分割算法C++实现
- leapftp注册码,不同版本的leapftp注册码
- mysql front 连接类型_mysql-front 怎么连接数据库
- mysql front登陆1045错误_解决MySQL-Front连接MySQL出现1045错误
- 文本时间修改器android,NewFileTime(文件时间修改器)