【发布时间】:2019-05-31 07:46:07
【问题描述】:
我现在正在尝试使用带有 PHP 和 CakePHP 的 ImageMagick 将 PDF 文件转换为 JPG。 PDF 是完美的形状,它应该是正确的,但是从 PDF 生成的图像总是溢出文件的边界。
到目前为止,我一直在尝试调整生成代码,但没有成功,阅读了很多 PHP 文档 (http://php.net/manual/pt_BR/book.imagick.php)。
转换代码如下:
$image = new Imagick();
$image->setResolution(300,300);
$image->setBackgroundColor('white');
$image->readImage($workfile);
$image->setGravity(Imagick::GRAVITY_CENTER);
$image->setOption('pdf:fit-to-page',true);
$image->setImageFormat('jpeg');
$image->setImageCompression(imagick::COMPRESSION_JPEG);
$image->setImageCompressionQuality(60);
$image->scaleImage(1200,1200, true);
$image->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
$image->writeImage(WWW_ROOT . 'files' . DS . 'Snapshots' . DS . $filename);
结果如下: https://imgur.com/a/ISBmDMv
第一张图片是转换前的PDF,第二张是PDF生成的右侧文字溢出的图片。
那么,为什么会这样呢?如果有人为使用的任何技术(GhostScript、ImageMagick 等)提供了替代方案,我们也欢迎!
谢谢大家!
【问题讨论】:
标签: php image pdf imagemagick ghostscript