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 开发规范要求(图文并茂)
Jun 11 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
JQuery 在线引用及测试引用是否成功
Jun 24 Javascript
Node.js编码规范
Jul 14 Javascript
js 数组去重的四种实用方法
Sep 09 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
javascript中的this详解
Dec 08 Javascript
js上下视差滚动简单实现代码
Mar 07 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
seajs和requirejs模块化简单案例分析
Aug 26 Javascript
解决ant Design Search无法输入内容的问题
Oct 29 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/06/09 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php绘制一条弧线的方法
2015/01/24 PHP
javascript实现的一个随机点名功能
2014/08/26 Javascript
PHP PDO操作总结
2014/11/17 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
python 切片和range()用法说明
2013/03/24 Python
在Python中使用Neo4j数据库的教程
2015/04/16 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
python中requests小技巧
2017/05/10 Python
使用Scrapy爬取动态数据
2018/10/21 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
python画双y轴图像的示例代码
2019/07/07 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
开场白怎么写
2015/06/01 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Redis实现一个账号只能登录一个设备
2022/04/19 Redis