php - PDF 到 JPG 图像页面选择

标签 php pdf image-processing imagemagick imagick

关于如何为命令行执行此操作的大量答案

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/

相关文章:

php - 与使用 PHP 等为移动应用程序创建的普通 API 相比,将 Node.js 用于 API 有什么好处吗?

php - Laravel 使用过滤器和映射而不是 foreach

Python PyQt4 从 qlayout 创建 pdf

php - 使用 PHP 将 HTML 表单数据转换为 PDF 文件

c# - 文件去斑 - OCR

javascript - 动态调整图像大小并保持纵横比

php - 带有 php 和 mysql 的 jQuery 日期选择器

php - mPDF - 仅第一页的页眉,但每页的页脚

c++ - 复制 Simd::View 的一部分

php - CakePHP 3.0 在没有国际扩展名的情况下无法运行