产品需要把网页存成pdf,查到这个工具比较理想。
以下记录小白第一次用wkhtmltopdf遇到的问题。
wkhtmlpdf for Mac
下载和安装
下载前需要确认一下适合自己电脑的安装版本:
- 打开终端,输入命令
uname -a
回车
x86_64 表示系统为64位
i686 表示系统32位的;
- 下载对应版本
服务器在国外下载会很卡,放一个已经下好的64位包
链接:https://pan.baidu.com/s/1v3jFsYmmXtXt5DUVGV_Jcw
密码:5hso
- 直接按安装包的步骤提示走就可以了;
- 打开终端,输入
wkhtmltopdf -version
回车
如图显示了当前运行的版本;
操作
搜到的别人的教程如下
把百度首页转换为PDF文件或者是jpg图片
PDF:wkhtmltopdf www.baidu.com youraddress/baidu.pdf
img:wkhtmltopdf www.baidu.com youraddress/baidu.jpg
不知道为什么出现了以下问题:
Error: Unable to write to destination
Exit with code 1, due to unknown error.
解决:
回过头去看下官网给的步骤,直接复制进去…
原来不需要“/”这个符号?😓
终端,输入命令 cd /usr/local/bin/
回车
文件太多的话 输入命令 ls *.pdf
回车
筛选一下都是pdf文件找到之前命名的pdf即可!
成功!
还有因为我改了本地hosts,在打印本地文件时出现了以下问题:
Exit with code 1 due to network error: HostNotFoundError
需要改一下地址
加上http://
才是正解!
页面代码注意事项
1.为了要达到精确打印的效果,下图这种留白是不能容忍的。
因为产品需要有背景图,只能修改下最小高度,不能把大块高度固定死影响分页;
2.与此同时还有注意内容内部自行分页的问题;
需要在css中固定断页的尺寸,加上page-break-inside:avoid
,防止pdf内容随意被截断影响效果😄,以防万一table中也需要加上这个样式;
<div style="width:960px;min-height:280px;page-break-inside:avoid;"></div>
<table style="width:960px;page-break-inside:avoid;"></table>
防止以后日后更精细的研究
贴上一份别人整理参数配置:
http://blog.csdn.net/churujianghu/article/details/75076255