关于如何为命令行执行此操作的大量答案
convert /path/to/file/file.pdf[3] output.jpg
很好...但是如果我在内存处理中使用,我正在使用 PDFlib 生成 PDF,然后将其缓冲区输出到我想要生成所选页面的 jpg 预览的函数。如何?我的代码:
[...]
$buf = $pdf->get_buffer();
//$buff is just a PDF stored in a string now.
$im = new Imagick();
$im->readimageblob($buf);
$im->setImageFormat("jpg");
$im->setimagecompressionquality(60);
$len = strlen($im);
header("Content-type: image/jpeg");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=test.jpg");
echo $im;
这会创建一个 jpeg 但总是返回 PDF 的最后一页。我希望能够选择转换哪一个。如果不保存临时文件并使用命令行 (exec('convert/path/to/file/file.pdf[3] output.jpg'))
语法是否可行?
让我补充一下,我试过了
$im->readimageblob($buf[2]);
它没有工作:)
最佳答案
对于仍在寻找从 blob 中读取特定页码的解决方案的人,请查看此问题 Creating array populated by images from a PDF using PHP and ImageMagick
$img_array = array();
$im = new imagick();
$im->setResolution(150,150);
$im->readImageBlob($pdf_in);
$num_pages = $im->getNumberImages();
for($i = 0;$i < $num_pages; $i++)
{
$im->setIteratorIndex($i);
$im->setImageFormat('jpeg');
$img_array[$i] = $im->getImageBlob();
}
$im->destroy();
关于php - PDF 到 JPG 图像页面选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114747/