Imagick PHP只显示最后一页

问题描述 投票:0回答:1

我使用imagick与PHP / Windows的IIS。我有一个简单的脚本转换TIF文件为PDF的呈现给浏览器。它完美的作品与单页TIF文件,但有多个页面,其只显示最后一页。

据我所知,它显示默认的最后一页,因为$ IM变量是一个数组。任何企图让我来解决它使一个无效的PDF。下面是我的代码。我是新来imagick任何帮助表示赞赏!

$im = new imagick("tmp/tmp.tif");
$im->setImageFormat('pdf');
header('Content-Type: application/pdf');
echo $im;

ImageMagick的版本的ImageMagick 7.0.7-11 Q16 64 2017年11月23日

ImageMagick库版本的ImageMagick 7.0.7-11 Q16 64 2017年11月23日

(这是非常粗略的测试代码,我会在后面清理)

php iis imagemagick imagick
1个回答
2
投票

内部图像迭代器在最后一页读指点。你只需要它Imagick::setFirstIterator复位到第一页。

$im = new imagick("tmp/tmp.tif");
$im->setFirstIterator();
$im->setImageFormat('pdf');
header('Content-Type: application/pdf');
echo $im->getImage();

甚至

$im->setIteratorIndex(0);

根据意见修改

如果你试图输出整个PDF文档,你会使用Imagick::getImagesBlob

$im = new imagick("tmp/tmp.tif");
$im->setFirstIterator();
$im->setImageFormat('pdf');
$blob = $im->getImagesBlob();
header('Content-Type: application/pdf');
header('Content-Length: ' . strlen($blob));
echo $blob;
© www.soinside.com 2019 - 2024. All rights reserved.