Imagemagick如何将透明度的PDF转换为PNG

时间:2014-08-12 20:43:58

标签: php pdf imagemagick

我有一个制作PDF版的项目。然后我将其转换为PNG以显示给客户端,但PNG不保留PDF中的透明度。我通过在Photoshop中打开PDF来检查PDF并且透明度存在,但它没有将这些数据转换为PNG。

我正在使用的PDF文件位于:http://mattodesigns.com/PDFs/PNG/testing2.pdf

我正在运行转换的页面位于:http://mattodesigns.com/PDFs/PNG/pdf2png.html

我用来将PDF转换为PNG的PHP代码是:

<?php
$source = 'http://mattodesigns.com/PDFs/PNG/testing2.pdf';
$target = 'testing2.png';

//PNG preview for front
$imagefront = new Imagick();
$imagefront->setResolution( 150, 150 );
$imagefront->readimage($source);
$imagefront->setImageFormat( "PNG32" );
$imagefront->writeImage($target);
?>

这不起作用,也不确定如何保持PDF中的透明度。我一直在寻找一个不是通过命令行而且无法找到的解决方案。我也一直在尝试各种各样的Imagemagick设置组合,但没有运气。

如果我需要制作一个面具,我可以这样做,但如果我不需要,则宁愿不这样做,因为所有数据都在PDF本身。

1 个答案:

答案 0 :(得分:0)

对于那些有同样问题的人,我最后使用GhostScript,按照这个主题的答案:http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=14546&start=15

exec("gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -dFirstPage=1 -dLastPage=1 -sOutputFile=output.png input.pdf");