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实现unicode和字符的互相转换
Jul 18 Javascript
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
node.js读取文件到字符串的方法
Jun 29 Javascript
JavaScipt中栈的实现方法
Feb 17 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
js实现随机点名系统(实例讲解)
Oct 18 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
php查询内存信息操作示例
2019/05/09 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
基于Django的ModelForm组件(详解)
2017/12/07 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python中print函数简单使用总结
2019/08/05 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
中海讯通笔试题
2015/09/15 面试题
幼儿园教师教育感言
2014/02/28 职场文书
超市开学活动方案
2014/03/01 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
文明礼貌主题班会
2015/08/14 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL