2019-04-01 批量生成电子工单图片

由html页面生成pdf或是png,并且打包成压缩包。

Centos 7 安装 Wkhtmltopdf
可使用yum安装:
# yum install wkhtmltopdf

# wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
# tar -xvf  wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
# cd wkhtmltox/bin
# sudo cp ./wkhtmltopdf /usr/bin/wkhtmltoimage
# sudo chmod +x /usr/bin/wkhtmltoimage

测试:
# wkhtmltopdf http://www.baidu.com ./test.pdf

此时如果生成的字符都是方块,那么安装standard PostScript fonts:
yum install urw-fonts libXext openssl-devel
如果中文不显示,则将 windows下的字体,例如simsun.ttc ,或者msyh.ttf,
或者msyhbd.ttf 复制到 linux系统  /usr/share/fonts 下。

参考:https://blog.csdn.net/qw_xingzhe/article/details/80607283
php 执行命令权限

1、首先查看php运行用户,可以在web服务器配置文件中查看
比如我的运行用户是www,编辑/etc/sudoers文件

www用户 www ALL=(ALL) NOPASSWD:ALL
鍔犲叆www鐢ㄦ埛

2、查看php.ini 是否禁用了这些函数:

$ cd /usr/local/php/etc
$ vim php.ini

把exec, system,exec_shell去掉,用到哪个去哪个;
重启php-fpm服务

php 调用命令
$order_id=1;
$save_path= "/home/wwwroot/jetrealty/runtime/$order_id.png";//保存路径 要有可写权限 !!!
$result = system("/usr/bin/wkhtmltoimage http://192.168.1.103:8089/orderpdf?order_id=$order_id  $save_path", $return_var);

echo json_encode(['order' => $order_id, 'return_var' => $return_var]);

你可能感兴趣的:(2019-04-01 批量生成电子工单图片)