2018年4月26日追加:

有个朋友反馈了vue页面转pdf过程中卡住的问题,像这样:

最后她自己解决问题,是因为开发者模式,文件太大了

她执行的是 npm run dev (开发者模式)
应该是 npm run build 然后 npm run start

===========================================================================

2018年3月8日追加:

很多朋友关心的是带有ECharts页面的导出,这里有个需要注意的地方是,echarts的图表默认是有动画效果的,会导致生成的PDF中图表只渲染了一部分,因此在导出pdf的页面中,你需要把动画效果关闭:

建议把动画这个值做成参数,可以控制,给用户展示开启动画,导出PDF关闭动画。

============================================================================

项目中需要这个功能,找了非常多方法,最终发现wkhtmltopdf非常的有用,非常好用,并且支持windows和linux,而且不是只支持纯静态的页面,比如在页面加载好后用js修改了页面,或是页面中有echarts(canvas标签)都是支持的,生成的pdf也不是一张大图片,文字什么都是可以复制的,总的来说就是非常棒,非常感谢这个免费插件。

正文:

windows系统很简单,在http://wkhtmltopdf.org/downloads.html下载windows版本,安装,设置系统环境变量指向安装目录的bin文件夹,之后就可以打开cmd测试一下是否可以使用,示例:wkhtmltopdf https://www.baidu.com/ d:\\1.pdf

如果要在代码里生成的话就用代码执行shell命令即可:

JAVA示例:可以看到可以加参数的,比如生成的pdf的页面大小,边距之类的

public static void main(String[] args) {try {String command = PDFTool.getCommand("file:///D:/HRO/前台界面文件/财税优化/solution_detail/solution_detail.html", "D:/1234.pdf");System.out.println(command);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
public static String getCommand(String htmlName, String pdfName) {String system = System.getProperty("os.name");System.out.println("系统名称:" + system);if (system.toUpperCase().contains("WINDOWS")) // win系统return "D:/wkhtmltopdf/bin/wkhtmltopdf.exe  --margin-top 0cm --margin-left 0cm --margin-right 0cm --margin-bottom 0cm --page-size A4 --orientation Landscape " + htmlName + " " + pdfName;else if ("Linux".equalsIgnoreCase(system)) // linux 系统return "wkhtmltopdf-amd64 " + htmlName + " " + pdfName;return "";}

重头戏是Linux上的使用

1.两种安装方式

①使用apt-get install wkhtmltopdf 或 yum install wkhtmltopdf安装

②还是在官网上下载linux版本,放到服务器上,解压,执行三个命令   cp wkhtmltopdf/bin/wkhtmltopdf  /usr/bin/       chown root:root   /usr/bin/wkhtmltopdf      chmod +x /usr/bin/wkhtmltopdf

2.好了 用wkhtmltopdf http://www.baidu.com/ d:1.pdf测试一下吧

3.不出意外的话,应该出错了,如果没有出错的话说明你很幸运,下面的内容不用看了,正常情况下会报错了,缺少jar包的报错,此时不要慌,用apt-get命令或yum命令install提示缺少的东西即可。

4.下载安装字体文件(缺少字体会导致生成的PDF文件里的中文都是方块)

①yum install -y fontconfig mkfontscale 或者
apt-get -y install fontconfig xfonts-utils

② 下载字体文件(TTF文件)放入/usr/share/fonts

③ 执行三个命令

mkfontscale
mkfontdir
fc-cache

日后继续追加字体只需重复第二步和第三步,使用fc-list查看已安装的字体,使用fc-list :lang=zh查看已安装的中文字体

使用wkhtmltopdf将html转为pdf相关推荐

  1. php使用wkhtmltopdf将html转为pdf

    首先需要安装wkhtmltopdf插件.安装参考链接:https://mp.csdn.net/postedit/103162085 生成pdf选择wkhtmltopdf的原因是,wkhtmltopdf ...

  2. php html转为pdf文件,php使用wkhtmltopdf实现html转pdf

    项目中有需求将html页面实时转为pdf并提供下载.经过各种查找比对,最终使用了wkhtmltopdf工具来实现. wkhtmltopdf,可以很方便的将输入的url渲染并打印成pdf文件.当然也有一 ...

  3. html转为pdf工具,wkhtmltopdf html转pdf工具的使用

    wktmltopdf 工具是使用Webkit引擎来将HTML网页转换为PDF文件.其可以将一个URL对应的网页转换为HTML,也可以将存在本地的一个html 文件转换为 pdf 文件.其在应用中有两个 ...

  4. python将数字转为0010_用Python将HTML转为PDF。

    上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便平常学习. 然后扩散一下之前一个比赛的结果(华章计算机抖音大赛). 顺便谈谈自己对今后送书的一个想法. 另外之前的送书活动,有中奖 ...

  5. python将html存为pdf_用Python将HTML转为PDF。

    上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便日常学习.html 而后扩散一下以前一个比赛的结果(华章计算机抖音大赛).数据库 顺便谈谈本身对从此送书的一个想法.微信 另外以前 ...

  6. 使用wkhtmltopdf 将网页转PDF

    使用wkhtmltopdf 将网页转PDF 网页保存为PDF,我之前使用的方法是浏览器自带的功能,使用快捷键 Ctrl + P 或者在浏览器上右键点击页面,然后选择"打印"选项 , ...

  7. python html转pdf 调整大小_用Python将HTML转为PDF。

    上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便平常学习. 然后扩散一下之前一个比赛的结果(华章计算机抖音大赛). 顺便谈谈自己对今后送书的一个想法. 另外之前的送书活动,有中奖 ...

  8. 关于 wkhtmltopdf:html 转 pdf 的命令行工具

    一.什么是 wkhtmltopdf? wkhtmltopdf 是一个开源的,使用Qt WebKit 渲染引擎,把 html 转换为 pdf 文件的命令行工具.wkhtmltopdf 还有一个双胞胎兄弟 ...

  9. 将电子书转为PDF涉及的PDF拆分合并总结

    因为阅读网上的很多电子书存在翻页繁琐和查找不方便的问题,也很难在网站上做笔记.故查阅部分资料想要自己写一个小爬虫,然后可以将爬取到的电子书内容页面(html格式)最终保存成PDF格式.故编写如下爬虫代 ...

最新文章

  1. GitHub Checks API帮助应用实现进一步的持续集成
  2. OpenCV霍夫变换查找圆的实例(附完整代码)
  3. 张萍萍山东大学计算机科学系毕业生,并行驰骋,放“码”来战!看先导杯大奖赛上山大风采...
  4. 【Python】Python库之数据分析
  5. mysql 事务中锁处理_MySQL事务处理及锁定_MySQL
  6. popen 如何获取指令执行情况_php通过popen获取的一个命令的返回值如何分析出来...
  7. Linux PCI和PCIe总线
  8. android电视,手机控制,Android手机遥控电视:智能语音控制节目
  9. 无线ap 热图测试软件,无线AP功能测试
  10. 艾孜尔江_Unity 3D入门常用函数用法及案例概要【干货】
  11. 锂电池电量百分比计算_锂离子电池容量计算之电压法
  12. 黄芪和当归的分量是5:1的比例,如黄芪30克,当归6克
  13. Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must
  14. 更换JDK然后打不开eclipse的解决方法
  15. Luogu 3371【模板】单源最短路径
  16. mpv 终极教程【安装、快捷键、 播放列表jonniek/mpv-playlistmanager】
  17. 高效能人士的七个习惯——习惯三要事第一
  18. 求乎其上,得乎其中;求乎其中,得乎其下也
  19. 无意中看到一个很强的贴,简直一群机关枪阿
  20. html5如何创建按钮button

热门文章

  1. 河源微生物实验室建设合理化布置整理
  2. MySQL查询语句大全(列举所有常用查询方式)
  3. 大学计算机英语句子,英语经典句子(精选100句)
  4. 1.Excel vba开发-处理空格数据
  5. PWN-爆破Canary
  6. 使用轮询方式进行ADC转换(野火STM32 MINI开发板)
  7. java redis 限流_Redis——限流算法之滑动窗口、漏斗限流的原理及java实现
  8. FDA邮件安全通信解决方案
  9. eclipse下载安装。新版4.5+
  10. 如何找出 SAP电商云产品明细页面读取后台数据的代码具体位置