phantomjs导出html到pdf的方法总结


Posted in Javascript onOctober 19, 2017

最近要为我们的文章服务做一个转pdf的功能。经过比较,我觉得phantomjs是转化比较好的。现在讲讲如何使用。

环境

centos x86_64

下载

可以到官网下载: 官网

或者wget也可以:

wget -P /tmp/ https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

安装

// 解压
tar xjf /tmp/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/
// 重命名
mv /usr/local/phantomjs-2.1.1-linux-x86_64 /usr/local/phantomjs
// 建立软连接
ln -s /usr/local/phantomjs/bin/phantomjs /usr/local/bin/
现在可以在终端执行phantomjs --version查看是否安装成功

配置

现在还不够,光phantomjs用来转化,会存在一些问题:

  • 中文乱码
  • 字体粗细不一致

解决方式:

1:中文乱码

yum -y install bitmap-fonts bitmap-fonts-cjk
2:字体粗细不一致

这是centos不存在字体的原因,可以导入字体。

  • 安装字体管理工具: yum install -y fontconfig mkfontscale
  • 访问 c:\windows\fonts,把需要的字体copy出来。然后上传到服务器上的 /usr/share/fonts下
  • 执行 mkfontscale, mkfontdir, fc-cache -fv三个命令,然后重启服务器(Reboot)即可。

代码使用

现在开始,就可以写代码了:

import phantom from 'phantom';
const pageToPdf = (url) => {
 phantom.create().then((ph) {
 ph.createPage().then((page) => {
  page.open(url).then((status) => {
  // 配置存储的pdf地址
  page.render('存储的地址.pdf').then((status) => {
   console.log('Page rendered');
   ph.exit();
  });
  });
 });
 });
};
pageToPdf('https://www.tongbanjie.com');

结果

ok,现在可以部署代码试一下了。

phantomjs导出html到pdf的方法总结

总结

以上所述是小编给大家介绍的phantomjs导出html到pdf的方法总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用JAVASCRIPT如何给<textarea></textarea>赋值
Apr 20 Javascript
JQuery 选项卡效果(JS与HTML的分离)
Apr 01 Javascript
javascript动态创建链接的方法
May 13 Javascript
JS代码实现百度地图 画圆 删除标注
Oct 12 Javascript
angular forEach方法遍历源码解读
Jan 25 Javascript
JavaScript 自定义事件之我见
Sep 25 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
JSON获取属性值方法代码实例
Jun 30 Javascript
JavaScript原生数组函数实例汇总
Oct 14 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 #Javascript
vue resource post请求时遇到的坑
Oct 19 #Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 #Javascript
JavaScript适配器模式详解
Oct 19 #Javascript
JavaScript门面模式详解
Oct 19 #Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 #Javascript
AngularJS的$location使用方法详解
Oct 19 #Javascript
You might like
php桌面中心(二) 数据库写入
2007/03/11 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
jQuery select操作控制方法小结
2010/05/26 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
Python实现批量下载文件
2015/05/17 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python数据挖掘需要学的内容
2019/06/23 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Python代码太长换行的实现
2019/07/05 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
为什么需要版本控制
2016/10/28 面试题
致跳高运动员广播稿
2014/01/13 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
就业意向协议书
2015/01/29 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
2015年网管个人工作总结
2015/05/22 职场文书