pdf 转图片 php,php如何实现pdf转换成图片

这篇博客介绍了如何在PHP中使用Imagick扩展将PDF文件转换为PNG图片,包括遇到的PostscriptDelegateFailed错误以及解决方法——安装GhostScript。文章详细展示了转换函数的代码实现,并提供了从PDF导出指定页面为PNG的功能。
摘要由CSDN通过智能技术生成

php实现pdf转换成图片的方法:首先安装好“GhostScript”;然后使用imagick把PDF转成图片即可。

ce6f037c34815968c9161f6d538ff711.png

PHP中使用imagick实现把PDF转成图片

PHP Manual里,对imagick的描述,真的是简洁,每个成员函数,点击打开就看到如下文本:Warning

This function is currently not documented; only its argument list is available.

刚才解决了PHP加载问题后,对图片的处理相当方便,网上随便找了一段:<?php

Header("Content-type: image/jpeg");

/**

* 缩小图片尺寸.

*

* @param $image 待处理的二进制图片

* @param $width 处理后图片尺寸的宽度(px)

* @param $height 处理后图片尺寸的高度(px)

* @param $crop 是否裁剪图片

*

* @return 处理好的二进制图片

*/

function resize($image, $width, $height, $crop)

{

$imagick = new Imagick($image);

$w = $imagick->getImageWidth();

$h = $imagick->getImageHeight();

if ($w > $width || $h > $height)

{

if ($crop)

{

$imagick->cropThumbnailImage($width, $height);

}

else

{

$imagick->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 1, true);

}

}

$processed_image = $imagick->getImageBlob();

return $processed_image;

}

$s=resize("123.jpg", 60, 40, 1);

echo $s;

?>

但我要用这个扩展做的,是将PDF转成PNG。PDF哦!<?php

/**

* PDF2PNG

* @param $pdf 待处理的PDF文件

* @param $path 待保存的图片路径

* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页

* @return 保存好的图片路径和文件名

*/

function pdf2png($pdf,$path,$page=-1)

{

if(!extension_loaded('imagick'))

{

return false;

}

if(!file_exists($pdf))

{

return false;

}

$im = new Imagick();

$im->setResolution(120,120);

$im->setCompressionQuality(100);

if($page==-1)

$im->readImage($pdf);

else

$im->readImage($pdf."[".$page."]");

foreach ($im as $Key => $Var)

{

$Var->setImageFormat('png');

$filename = $path."/". md5($Key.time()).'.png';

if($Var->writeImage($filename) == true)

{

$Return[] = $filename;

}

}

return $Return;

}

$path="images";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了

$s=pdf2png("test.pdf",$path);

$scount=count($s);

for($i=0;$i

{

echo "

Page ".($i+1)."

";

}

?>

跟上面的差不多吧?可是总是不成功,readImage那边异常了,查看错误输出:PHP Fatal error: Uncaught exception 'ImagickException' with message 'PostscriptDelegateFailed `test.pdf': No such file or directory'

百度谷歌了好久,最后灵机一动,不是说Postscript么?我找,我装。

这个Postscript,其实是GhostScript。

装好后,一跑,OK啦!

fd7d4c92d819eabfada22930973a0fd4.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值