php完美导出pdf,pdf合并批量导出

使用到的工具

pdftk      https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/      pdf合并工具

wkhtmltopdf      https://wkhtmltopdf.org/    将html页面转为pdf的工具

windows 直接下载安装。

linux下:

安装wkhtmltopdf  

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

rpm -i wkhtmltox-0.12.5-1.centos7.x86_64.rpm

提示缺少依赖:

libXrenderisneededbywkhtmltox-1:0.12.5-1.centos7.x86_64 

 xorg-x11-fonts-75dpiisneededbywkhtmltox-1:0.12.5-1.centos7.x86_64 

 xorg-x11-fonts-Type1isneededbywkhtmltox-1:0.12.5-1.centos7.x86_64

yum install 直接安装就好,安装好后,可执行测试  

wkhtmltopdf http://www.baidu.com pdftest.pdf

完美输出(或者出现中文字变成方块或者乱码:是因为缺少中文字体,下载中文字体 ‘simsun.ttc 或其他字体’ 放到 /usr/share/fonts 目录)

安装pdftk:

官网上下载的rpm包 安装提示缺少依赖

Package: pdftk-2.02-1.el6.x86_64 (/pdftk-2.02-1.el6.x86_64) Requires: libgcj.so.10()(64bit)

这个依赖包yum也安装不上

使用这个命令:

yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.x86_64.rpm

即可。

项目中使用

 基本思路:将页面保存为html文件(系统中因为这些页面涉及权限,无法直接访问),然后使用wkhtmltopdf转为pdf。

shell_exec("wkhtmltopdf xxx.html xxx.pdf")

需要批量导出时,我这里方案是将多个pdf合并为一个pdf然后下载(或者多个pdf文件打包下载)。

shell_exec("pdftk 1.pdf 2.pdf 3.pdf  cat output xxx.pdf")

到此,已经完成。(以上在window10,centos7.5下运行)

篇外:在windows系统中,nginx服务器,使用file_get_contents会出现网站 卡住 没响应的情况,有遇到问题的可在留言区提问。

你可能感兴趣的:(php完美导出pdf,pdf合并批量导出)