背景:将HTML 转为 PDF/jpg/png ;中文问题,请看下面的问题二
参考:http://blog.sina.com.cn/s/blog_6dab20b401019e19.html
1、下载wkhtmltopdf 与 wkhtmltoimage(wkhtmltox)
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
2、解压压缩包tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
3、移动文件夹
3-1,wkhtmltopdf
mv wkhtmltox/bin/wkhtmltopdf /usr/local/bin
3-2,wkhtmltoimage
mv wkhtmltox/bin/wkhtmltoimage /usr/local/bin
4、测试是否安装成功
wkhtmltopdf http://www.baidu.com ./baidu.pdfwkhtmltoimage http://www.baidu.com ./baidu.pdf
5、找到要转换的HTML字体文件上传(可以直接使用windows里的字体如雅黑:msyh.ttf , msyhbd.ttf)
上传到 /usr/share/fonts/
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function convert($type='pdf') { $filename=time(); $url=$this->input->get("url"); if($type=='pdf') { $filename="F:/upload/tmp/".$filename.".pdf"; exec("F:/home/phptool/wkhtmltopdf-i386 $url $filename"); header('Content-Type: application/pdf'); } elseif($type=='image') { $filename="upload/tmp/".$filename.".jpg"; exec("/home/phptool/wkhtmltoimage-i386 $url $filename"); header('Content-Type: image/jpeg'); } header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.filesize($filename)); readfile("$filename"); }
问题一:iCCP: known incorrect sRGB profile ,警告,不是错误
参考:https://blog.youkuaiyun.com/tianmaxingkong_/article/details/54333416
==================================================================================================
中文参数,参考:https://www.jianshu.com/p/4d65857ffe5e
===================================================================================================
wkhtmltoimage -V 查看版本 wkhtmltopdf -V 查看版本
wkhtmltoimage -h 查看 参数(英文) wkhtmltopdf -h 查看 参数(英文)
php使用: $pdf_link -- 要htmltopdf的HTML页面链接 $pdf_link = 'http://www.baidu,com'; $file -- 生成PDF放的位置(自己规定) $file = 'baidu.png/jpg/jpeg'; exec( "wkhtmltopdf -O Landscape --page-width 180 --page-height 230 -q '{$pdf_link}' {$file}" ); // 生成分页的PDF,设置宽高的缘故 exec("wkhtmltoimage -q '{$pdf_link}' {$file}"); //生成 长图,整个目标页面
问题二:
装好wkhtmltopdf 中文显示空白或者乱码方框
网路上说一般是中文支持没有安装
说添加yum源后安装以下两个包:
fonts-chinese.noarch
fonts-ISO8859-2-75dpi.noarch
下载好安装,
[root@alpha-openl soft]# rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm
warning: fonts-chinese-3.02-12.el5.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEY
error: Failed dependencies:
/usr/sbin/chkfontpath is needed by fonts-chinese-3.02-12.el5.noarch
不行
突然觉得,英文可以,中文不行,
可能还是中文字体原因
于是找了windows里的宋体
上传到服务器/usr/share/fonts/里
/usr/share/fonts/chinese/TrueType/simsun.ttc
测试果然解决了!