最近要使用 pdf 转图片,然后就去搜索引擎,按照步骤一步一步来,啥都装好了,imagemagick 也能用了,然后就复制网上的函数。列如:
$PDF 是 pdf 的地址,$PATH 是输出地址
setResolution(120,120); $IM->setCompressionQuality(100); $IM->readImage($PDF); foreach($IM as $Key => $Var){ $Var->setImageFormat('png'); $Filename = $Path.'/'.md5($Key.time()).'.png'; if($Var->writeImage($Filename)==true){ $Return[]= $Filename; } 然后我发现执行到这一步的时候报错,报的 500, $IM->readImage($PDF);我还发现,我把$PDF 的地址换成不是 pdf 的文件就可以,比如 png,jpeg,jpg,就换成 pdf 就不可以。 有大佬可以帮忙看一下嘛? } return $Return; } 1
Sakura10032 OP <?php
function pdf2png($PDF,$Path){ if(!extension_loaded('imagick')){ returnfalse; } if(!file_exists($PDF)){ returnfalse; } $IM =new imagick(); $IM->setResolution(120,120); $IM->setCompressionQuality(100); $IM->readImage($PDF); foreach($IM as $Key => $Var){ $Var->setImageFormat('png'); $Filename = $Path.'/'.md5($Key.time()).'.png'; if($Var->writeImage($Filename)==true){ $Return[]= $Filename; } } return $Return; } |
2
Sakura10032 OP @Sakura10032 函数 1l 的
|
3
rmb1222 2019-05-10 09:19:05 +08:00 via iPhone
/etc/ImageMagick-6/policy.xml 最底下 disable 的删掉。这里转换依赖的是 ghostscript 但它有严重安全问题,所以大部分发行版都默认禁用了。
|
4
Sakura10032 OP @rmb1222 我用的是 win ……所以不知道怎么找……能救救孩子吗?
|
5
1000172 2019-05-10 10:16:13 +08:00
这个我好久之前做过的,我记得这个对于 php 版本和系统要求比较苛刻,稍后找找从前代码,如果找到再回复你
|
6
Sakura10032 OP @1000172 好的,感谢
|
7
codespots 2019-05-10 10:28:11 +08:00
@Sakura10032 楼主,我很久以前也遇到过这个问题,没解决。看你能不能找到合适的解决方案,mark
|
8
alpha2016 2019-05-10 10:41:58 +08:00
记得这个扩展版本,imagick 版本和 php 版本完全对应才行,包括 64 位系统一类的扩展,很久之前踩过坑,版本一致对应了,直接就好了
|
9
Sakura10032 OP @alpha2016 我版本都是对应的,我第一个试的是 php7.3 nts 64 c15 不行,然后换成 php5.6 ts 86 c11,还是不行,都是报 500 都是这行代码执行不了,就是读不了 pdf 文件
|
10
Sakura10032 OP @alpha2016 这个扩展其他的文件可以读,就 pdf 读不了
|
11
ben1024 2019-05-10 13:04:15 +08:00
盲猜,版本降到 7.2 或 7.1
|
12
1000172 2019-05-10 14:06:23 +08:00
找到从前上线使用的代码,附上一段核心的:
$IM =new imagick(); $IM->setResolution(120,120); $IM->setCompressionQuality(100); $IM->readImage($PDF); foreach($IM as $Key => $Var){ $Var->setImageFormat('png'); $Filename = $savePath.md5($Key.time()).'.png'; if($Var->writeImage($Filename)==true){ $Return[]= $Filename; } } 安装包里 gs904w32.exe ,ImageMagick-windows-dll.exe ,php_imagick-ts-vc9-x86.zip 的插件都需要用 |
13
zhouren93 2019-05-10 14:07:09 +08:00
我最近也在用 PDF 转图片,win 的话可以试试 xpdf。
|
14
alpha2016 2019-05-10 18:24:08 +08:00
@Sakura10032 得和你的 php 版本,线程安全的配置,电脑位数保持一致,然后 imagick 软件的版本和扩展的版本也一致,或者是转成 pdf 没有开启 php 的相关扩展?
|
15
Sakura10032 OP |