我使用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日
(这是非常粗略的测试代码,我会在后面清理)
内部图像迭代器在最后一页读指点。你只需要它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;