Java Html转pdf实战 - 简书年尾手头没啥事,干起了打杂工作,最近帮忙解决后端项目里一个html批量转pdf速度慢的问题,项目里用到的转换工具是 wkhtmltopdf ,这货转单个html还好,批量转速...https://www.jianshu.com/p/d07bca50daed?from=groupmessage

年尾手头没啥事,干起了打杂工作,最近帮忙解决后端项目里一个html批量转pdf速度慢的问题,项目里用到的转换工具是 wkhtmltopdf ,这货转单个html还好,批量转速度就慢了。几经摸索(各种baidu、google......)各种测试后,终于找到个性能不错的工具 —— phantomjs

Phantomjs安装

官网地址:PhantomJS - Scriptable Headless Browser
下载地址:Download PhantomJS

选择合适自己系统的版本,解压就行,目录结构如下图(mac为例)

新建 html2pdf.js 文件,把下面代码拷进去,文件最好放在phantomjs的bin目录下

var page = require('webpage').create();
var system = require('system');读取命令行参数,也就是js文件路径。
if (system.args.length === 1) {console.log('Usage: loadspeed.js <some URL>');
//这行代码很重要。凡是结束必须调用。否则phantomjs不会停止phantom.exit();
}
page.settings.loadImages = true;  //加载图片
page.settings.resourceTimeout = 30000;//超过10秒放弃加载
//截图设置,
//page.viewportSize = {
//  width: 1000,
//  height: 3000
//};
var address = system.args[1];
page.open(address, function(status) {function checkReadyState() {//等待加载完成将页面生成pdfsetTimeout(function () {var readyState = page.evaluate(function () {return document.readyState;});if ("complete" === readyState) {page.paperSize = { width:'1500px',height:'2000px',orientation: 'portrait',border: '1cm' };var timestamp = Date.parse(new Date());var pdfname = 'HT_'+timestamp + Math.floor(Math.random()*1000000);var outpathstr = "/Users/zachary/Downloads/phantomjs2/bin/"+pdfname+".pdf";page.render(outpathstr);//console.log就是传输回去的内容。console.log("生成成功");console.log("$"+outpathstr+"$");phantom.exit(); } else {checkReadyState();}},1000);}checkReadyState();
});

Phantomjs使用

打开终端,进入phantomjs的bin目录,执行命令phantomjs html2pdf.js "网址或html文件路径",注意空格

image.png

生成路径在 html2pdf.js 文件里设置,可以看到bin目录下生成pdf成功

打开看下效果,相当Nice ! ! !

Java Html转pdf实战相关推荐

  1. Java 生成各种 PDF 实战方案(图片、模板、表格)

    刚接到了一个需求,生成一个pdf,一开始以为挺简单的,通过模板生成嘛,我也发过相应的文章,根据模板直接生成pdf,响应到前端或者根据模板生成pdf,直接指定下载位置,这两种方案都可以,不过这篇文章主要 ...

  2. java ee核心框架实战 pdf_Java EE核心框架实战 高洪岩 中文PDF

    资源名称:Java EE核心框架实战 高洪岩 中文PDF 第1章 MyBatis 3操作数据库 第2章 MyBatis 3常用技能 第3章 Struts 2必备开发技能 第4章 Struts 2文件的 ...

  3. 《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料...

    持续坚持原创输出,点击蓝字关注我吧 作者:小傅哥 博客:https://bugstack.cn ❝ 沉淀.分享.成长,让自己和他人都能有所收获!???? ❞ 目录 一.前言 二.简介 1. 谁发明了设 ...

  4. Java RESTful Web Service实战(第2版)

    Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版 ...

  5. Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书)

    Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书) 基本信息 作者: (美)Venkat Subramaniam  译者: 郑晔 李剑 丛书名: 图灵程序设计丛书 出版社:人民 ...

  6. 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载

    230套java web开发PDF书籍和CHM参考手册资料大全 免费下载 下载地址:http://yun.baidu.com/s/169jYH 文章来源:HTML5星空http://www.html5 ...

  7. 【直播回顾】云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第19讲):Java Spring Cloud微服务架构模式与开发实战...

    主讲人:徐雷(云栖社区特邀Java专家) 徐雷,花名:徐雷frank:资深架构师,MongoDB中文社区联席主席,吉林大学计算机学士,上海交通大学硕士.从事了 10年+开发工作,专注于分布式架构,Ja ...

  8. Java 7并发编程实战手册

    2019独角兽企业重金招聘Python工程师标准>>> Java 7并发编程实战手册 本书是 Java 7 并发编程的实战指南,介绍了Java 7 并发API 中大部分重要而有用的机 ...

  9. 《Java EE核心框架实战》—— 2.3 resultMap 标签

    本节书摘来异步社区<Java EE核心框架实战>一书中的第2章,第2.3节,作者: 高洪岩,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.3 < re ...

最新文章

  1. ORACLE 培训 -相克军
  2. ios 打电话结束返回到应用中
  3. STM32 进阶教程 4 - 软件实现高精度延时 2
  4. Python+Django+Nginx+Uwsgi(史上最全步骤)(亲测)
  5. 【Uva 12093】Protecting Zonk
  6. 02326 操作系统 简答题 超简短归纳
  7. ArrayListd的长度问题
  8. 海量数据处理简要说明(一)
  9. 冷知识 —— 容易读错的发音(英文)
  10. 中望3D 2021 线框设计“提取中心线”
  11. 找101-200之间的素数(Java实现)
  12. 迅雷beat下载为php,迅雷beta版本下载
  13. 高级API快速入门之多线程01【07】
  14. php获取视频直链并且跳转,求 cctalk 提取免费视频直链的方法
  15. linux系统下部署python自动化程序并配置Jenkins定时执行
  16. 没学编程的孩子,和从小学编程的孩子,差距有多大?
  17. 学习记录657@python计算股价的回撤与收盘价回撤率组合图实现
  18. PySide2学习总结(三)QtWidgets和QML
  19. ospfdr选举规则_OSPF如何选举DR/BDR规则
  20. [OHIF-Viewers]医疗数字阅片-医学影像-Cornerstone Tools

热门文章

  1. 统计c语言中英文字幕,C语言日记——递归
  2. com.android.phone已停止运行怎么解决方法,com.android.phone已停止运行怎么解决
  3. 30行python代码设计_30行Python代码实现3D数据可视化
  4. Oracle复杂查询
  5. Java两同_java:一个类实现的两个接口里都有同一个方法(名),怎么处理?
  6. mysql 统计查询不充电_MySql查询语句介绍,单表查询,来充电吧
  7. tensorboard报错:ValueError Duplicate plugins for name projector 问题的出现及解决过程
  8. xp搭建 php环境,windows xp 下 LAMP环境搭建
  9. iis架设aspx_在IIS6中配置html文件以ASPX方式工作
  10. revit找不到附加模块程序集_TensorFlow基础知识——常用模块(一)