有一个功能:php将pdf转化成图片。用到了pdf-to-image这个库。但是这个库是依赖 Imagick和 Ghostscript 的。
所以想使用pdf-to-image(github地址:https://github.com/spatie/pdf-to-image),必须安装php拓展imagick和Ghostscript。
1,安装imagick
上面文章已经写了,这里不再重复。直达链接:https://blog.csdn.net/Xiao_peng117/article/details/96131974
2,安装Ghostscript
安装过程还是遇到一些问题的。
我装的是最新版Ghostscript 9.27 Source for all platforms (下载链接https://www.ghostscript.com/download/gsdnld.html)
安装很简单,将下载的source code(tar.gz格式)放到服务器任意一个位置
# tar -xzvf ghostscript-9.27.tar.gz
# cd ghostscript-9.27
# ./configure
# make
# make install
装完之后输入查看是否安装成功,如果输入下面这个命令会显示版本号,说明安装成功。
# gs --version
但是装好之后,会有如下报错
2019/07/16 15:40:06 [error] 3122#0: *497 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught ImagickException: FailedToExecuteCommand `'gs' -sstdout=%s
tderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4
'-r72x72' '-sOutputFile=/tmp/magick-12339LPt5MDJcgXJT%d' '-f/tmp/magick-12339b0_cwUSVJzpC' '-f/tmp/magick-12339m9xIVzfEHA5k'' (1) @ error/pdf.c/InvokePDFDelegate/
328 in /www/wwwroot/htdocs/home/pdf/src/Pdf.php:44
Stack trace:
#0 /www/wwwroot/htdocs/home/pdf/src/Pdf.php(44): Imagick->__construct('test.pdf')
#1 /www/wwwroot/htdocs/home/pdf/test.php(12): Spatie\PdfToImage\Pdf->__construct('test.pdf')
#2 {main}
thrown in /www/wwwroot/htdocs/home/pdf/src/Pdf.php on line 44" while reading response header from upstream
通过你的phpinfo()确定你的php-fpm.conf在哪个位置。通常通常都是/XXX/XXX/php/etc/php-fpm.conf。至于你的php装在哪个目录就你自己知道了。
用vi 打开php-fpm.conf
在最后,添加下面这一行:
env[PATH] = /usr/local/bin:/usr/bin:/bin
然后重启php-fpm(需要知道你的php-fpm路径)
# killall php-fpm //关闭
# php-fpm //打开
再运行,就没有报错了。
自己测试时也成功将PDF生成jpg啦