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 div 遮罩层封锁整个页面
Jul 10 Javascript
基于jQuery的js分页代码
Jun 10 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
JS动态添加选项案例分析
Oct 17 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
javascript实现秒表计时器的制作方法
Feb 16 Javascript
AngularJS实现动态添加Option的方法
May 17 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
Aug 25 Javascript
微信小程序云开发详细教程
May 16 Javascript
webpack4 从零学习常用配置(小结)
May 28 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
vue 项目软键盘回车触发搜索事件
Sep 09 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字符串的编码问题的详细介绍
2013/04/27 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
Bootstrap实现翻页效果
2017/11/27 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
python抓取网页内容示例分享
2014/02/24 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
不可错过的十本Python好书
2017/07/06 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
python生成器推导式用法简单示例
2019/10/08 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
违反课堂纪律检讨书
2014/01/19 职场文书
法律专业自荐信
2014/06/03 职场文书
新学期开学寄语2016
2015/12/04 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
Redis Lua脚本实现ip限流示例
2022/07/15 Redis