Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将PDF转换为JPG图像_Php_Pdf_Imagemagick_Jpeg - Fatal编程技术网

使用PHP将PDF转换为JPG图像

使用PHP将PDF转换为JPG图像,php,pdf,imagemagick,jpeg,Php,Pdf,Imagemagick,Jpeg,我正在使用ImageMagik尝试将PDF的内容转换为JPG,但一直得到一个空的JPG。我已经确保烫发是777的一切测试,所以我有点不知道如何继续 这是我正在运行的脚本 <?php exec('convert testfile.pdf output.jpg', $output, $return_var); ?> 使用二进制文件的绝对路径,如下所示: exec('/usr/bin/convert testfile.pdf output.jpg', $output, $re

我正在使用ImageMagik尝试将PDF的内容转换为JPG,但一直得到一个空的JPG。我已经确保烫发是777的一切测试,所以我有点不知道如何继续

这是我正在运行的脚本

<?php

    exec('convert testfile.pdf output.jpg', $output, $return_var);

?>

使用二进制文件的绝对路径,如下所示:

exec('/usr/bin/convert testfile.pdf output.jpg', $output, $return_var);
但是,请确保您的
convert
二进制文件实际上已启用
/usr/bin
,您可以使用以下命令进行检查:

可以转换

试试这个

<?php
    $pdf = 'testfile.pdf';
    $save = 'output.jpg';

    exec('convert "'.$pdf.'" -colorspace RGB -resize 800 "'.$save.'"', $output, $return_var);

?>

ImageMagick在内部使用GhostScript,通常,与Ghoastscript相比,ImageMagick的转换速度较慢,因此,如果您只对将pdf转换为图像感兴趣,那么GhostScript
gs
命令会更快。 下面是我几天前写的一个关于Ghostscript的包装示例


这是我的解决方案。在php代码中直接使用Imagick

将所有PDF页面转换为JPG

 // create Imagick object
 $imagick = new Imagick();
 // Reads image from PDF
 $imagick->readImage('file.pdf');
 // Writes an image
 $imagick->writeImages('converted.jpg', false);
将特定PDF页面转换为JPG

 // create Imagick object
 $imagick = new Imagick();
 // Read image from PDF
 $imagick->readImage('test.pdf[0]');
 // Writes an image
 $imagick->writeImages('converted_page_one.jpg');
处理此问题的另一种方法是使用Spatiale/pdf对库进行图像处理


干杯

根据我最近的经验,ghostScript比convert命令更快,请尝试我编写的完整库,它的速度非常快,$output,$return_varNo的值是多少,这不是PDFBox。PDFBox的正确URL是。你的问题是什么?PDFBox是针对java的,而这是针对php的,问题是如何在php中实现。不,在java中,您可能需要指定要转换的完整路径。您的输入和输出是否与运行convert的目录相同?检查$output变量是否有错误消息?Imagemagick是否包含代理Ghostscript和libjpeg?尝试将pdf转换为图像时出错,已启用Imagick扩展,请帮助我致命错误:Uncaught imagickeption:UnableToOpenBlob'sample.pdf':E:\XAMPP\htdocs\pdf\convert\index.php:6堆栈跟踪:#0 E:\XAMPP\htdocs\pdf\convert\index.php(6):Imagick->readimage('sample.pdf')#1{main}在第6A行的E:\XAMPP\htdocs\pdf\convert\index.php中抛出致命错误:未捕获ImagickeException:PDFDelegateFailed`系统找不到指定的文件。@E:\XAMPP\htdocs\pdf\convert\index.php中的error/pdf.c/ReadPDFImage/794:8堆栈跟踪:#0 E:\XAMPP\htdocs\pdf\convert\index.php(8):Imagick->readimage('E:/XAMPP/htdocs…')#1{main}在第8行的E:\XAMPP\htdocs\pdf\convert\index.php中抛出
 // create Imagick object
 $imagick = new Imagick();
 // Reads image from PDF
 $imagick->readImage('file.pdf');
 // Writes an image
 $imagick->writeImages('converted.jpg', false);
 // create Imagick object
 $imagick = new Imagick();
 // Read image from PDF
 $imagick->readImage('test.pdf[0]');
 // Writes an image
 $imagick->writeImages('converted_page_one.jpg');