视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
phantomjs导出html到pdf的方法实例分享
2020-11-27 20:07:25 责编:小采
文档
 最近要为我们的文章服务做一个转pdf的功能。经过比较,我觉得phantomjs是转化比较好的。本文主要介绍了phantomjs导出html到pdf的方法总结,需要的朋友可以参考下,希望能帮助到大家。

环境

centos x86_

下载

可以到官网下载: 官网

或者wget也可以:

wget -P /tmp/ https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_.tar.bz2

安装

// 解压
tar xjf /tmp/phantomjs-2.1.1-linux-x86_.tar.bz2 -C /usr/local/
// 重命名
mv /usr/local/phantomjs-2.1.1-linux-x86_ /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,现在可以部署代码试一下了。

    下载本文
    显示全文
    专题