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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
Aug 30 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
Oct 04 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
学习vue.js计算属性
Dec 03 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php MySQL与分页效率
2008/06/04 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
森林病虫害防治方案
2014/06/02 职场文书
消防安全宣传标语
2014/06/07 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
处理canvas绘制图片模糊问题
2022/05/11 Javascript