php使用pdf2htmlex,转换 HTML 与 PDF 格式文档的神器

企业 Web 项目开发中经常会有生产 PDF 格式文档的需求,例如 PDF 账单下载,月末生成各种统计报表等等。我们要帮助企业实现自动化,也就是说无需人工干预,程序能够按需从 DB 中拿数据自主生成。

项目使用 PHP 开发,于是调研了一下 PHP 的 PDF 类库,有 dompdf,TCPDF 之流,总的来说,各个项目主页上自夸的成分居多,基本思想都是类似的,即先用 HTML 写一个模板,每次往模板里填上数据,就可以转成

PDF 输出。但真正用起来就会发现各种毛病各种坑爹,部分 CSS 属性不支持啦,中文乱码啦,诸如此类。最终让我们抛弃 dompdf 的貌似是分页的一个大坑,据说一个表格

转换一下思路,其实我们只是要把 HTML 转成 PDF 而已,并不是必须要使用 PHP 这种低效的语言来做它并不擅长的事情。 Linux 下有没有二进制程序可以做这项工作呢?大杀气登场,撒花欢迎~

一、wkhtmltopdf:利用 webkit 内核将 HTML 转为 PDF

webkit 是一个高效、开源的浏览器内核,包括 Chrome 和 Safari 在内的(当然也包括国内那些极速啥的)浏览器都使用了这个内核。Chrome 打印当前网页的功能,其中有一个选项就是直接“保存为 PDF”。

dba2884c86d7819d1c71fc2a842f2876.png

wkhtmltopdf 就是这样一个工具,使用 webkit 内核的 PDF 渲染引擎来将 HTML 页面转换为 PDF。高保真,质量很不错,server 上安装相关中文字体即可支持中文文档。更重要的是,使用非常简单。

//将网页内容转换为 PDF

exec("wkhtml遇新是直朋能到分览支体调topdf http://www.google.com google.pdf");

//将本地 HTML 文件转为 PDF

exec("wkhtml遇新是直朋能到分览支体调topdf my.html my.pdf");

?>

当然它本身提供了一些 PHP 集成的方法,但我还是觉得直接用 exec 调用外部程序更方便一些。

HTML 源文件和生成的 PDF 文件对比效果图——

8e86505077ed9001367d326a3aad5991.png

c7a6c851419a9ce69d60e3b676991fe9.png

关于中文渲染的问题,只要在服务器上安装相应字体即可。如果是 CentOS 系统,一个命令就能搞定:

$yum install fonts-chinese.noarch

另外注意在 HTML 文档中也要指定字符集

———- 我是猥琐的分割线,割割更健康 ———-

二、pdf2htmlEX:将 PDF 转为 HTML 网页

反过来,可否将 PDF 转化为 HTML 网页呢?(这样蛋疼的需求,我等是无法预料的……)

pdf2htmlEX 的作者是一名中国人,他实现将了 PDF 转换为 HTML,主要针对学术论文进行优化。这个工具的出现在Hacker News上引发了热烈讨论。看下

demo 你就会感叹它的效果是多么惊艳:

它的用法也非常简单,适合各路 PhD 们展示论文用。

$pdf2htmlEX比抖朋要插支一圈不者地 /path/to/foobar.pdf

综上

本文介绍了 wkhtmltopdf 和 pdf2htmlEX 这两个将 HTML 和 PDF 格式文档互相转换的神器。但是其实这篇 blog 写来只是因为尘埃落定太久没更新了,写点东西更新一下而已

9f82bbffdbeef5bfba985b1b1c13ffe2.gif

— EOF —

本文来源于网络:查看 >https://blog.csdn.net/wide288/article/details/41982255

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值