Imagick PHP 只显示最后一页
Imagick PHP only displaying last page
我在 PHP/Windows IIS 中使用 imagick。我有一个简单的脚本,可以将 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 x64 2017-11-23
ImageMagick库版本ImageMagick 7.0.7-11 Q16 x64 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;
我在 PHP/Windows IIS 中使用 imagick。我有一个简单的脚本,可以将 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 x64 2017-11-23
ImageMagick库版本ImageMagick 7.0.7-11 Q16 x64 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;