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和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
ES6中的数组扩展方法
Aug 26 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
windows下更新npm和node的方法
Nov 30 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
JS实现斐波那契数列的五种方式(小结)
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 session处理的定制
2009/03/16 PHP
php中的ini配置原理详解
2014/10/14 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
python线程的几种创建方式详解
2019/08/29 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
python中altair可视化库实例用法
2021/01/26 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
港湾网络笔试题
2014/04/19 面试题
请假条的格式
2014/04/11 职场文书
销售人员求职信
2014/07/22 职场文书
班级出游活动计划书
2014/08/15 职场文书
现场活动策划方案
2014/08/22 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android