我想将PDF的所有页面转换为JPEG。 PHP脚本在本地执行它应该执行的操作但在我们的实时服务器上失败。
$pdf = Zend_Pdf::load($file['tmp_name']);
echo 'Pages: '.sizeof($pdf->pages).'<br />';
for($pageCounter = 0; $pageCounter < $object->getNumberOfPages(); $pageCounter++) {
$pagenumber = $pageCounter + 1;
$currentfilename = $filename . "_$pagenumber.jpg";
echo $thumbPath.$currentfilename.'<br />';
echo $file['tmp_name']."[$pageCounter]<br />";
$return; $out;
exec("convert -density 250 '".$file['tmp_name']."[$pageCounter]' -quality 60 '$bigPath$currentfilename'", $out, $return);
var_dump($return); echo '<br />'; echo var_dump($out); echo '<br />';
exec("/usr/bin/convert -density 16 '/home/data/websites/www/meonline.be/public_html/images/magazines/".$file['name']."[$pageCounter]' -quality 60 '$thumbPath$currentfilename'", $out, $return);
var_dump($return); echo '<br />';
}
我尝试通过明确指向/ usr / bin / convert&amp;来引用convert命令。在/ usr / local / bin目录/转换。我总是得到1(如果我指向错误的文件夹,则为127)并且输出数组始终为空。 显示所有文件夹,并设置了模式777。
这里是所有回音输出的摘要:
完整的exec命令:
convert -density 250 '/home/data/websites/www/meonline.be/public_html/images/magazines/HogeschoolPromotorenP-studenten.pdf[0]' -quality 60 '/home/data/websites/www/meonline.be/public_html/images/magazines/big/pLjB9_HogeschoolPromotorenP-studenten.pdf/hogeschoolpromotorenp-studenten_1399449783_1.jpg'
首先回复echo 'Pages: '.sizeof($pdf->pages).'<br />';
pages: 1
第二个回声echo $thumbPath.$currentfilename.'<br />';
/home/data/websites/www/meonline.be/public_html/images/magazines/thumb/pLjB9_HogeschoolPromotorenP-studenten.pdf/hogeschoolpromotorenp-studenten_1399449783_1.jpg
第三次回声echo $file['tmp_name']."[$pageCounter]<br />";
/home/data/websites/www/meonline.be/public_html/images/magazines/HogeschoolPromotorenP-studenten.pdf[0]
第四回声var_dump($return); echo '<br />'; echo var_dump($out); echo '<br />';
int(1)
array(0) { }
更新
有人在终端执行了我的命令并得到了以下回复:
convert: Postscript delegate failed `/home/data/websites/www/meonline.be/public_html/images/magazines/HogeschoolPromotorenP-studenten.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/713.
convert: no images defined `/home/data/websites/www/meonline.be/public_html/images/magazines/big/fs5Jd_HogeschoolPromotorenP-studenten.pdf/hogeschoolpromotorenp-studenten_1399455323_1.jpg' @ error/convert.c/ConvertImageCommand/3150.
我100%确定PDF文件存在,第二行抱怨图像没有被定义,但是这个命令应该为我创建它们。
答案 0 :(得分:1)
如果有人正在寻找答案,问题实际上非常简单。
本地服务器安装了Ghostscript,实时服务器没有......
Download it here和follow the instructions here。
就我而言,我无法访问实时服务器上的命令行。在这种情况下,使用PHP中的此命令检查/usr/bin/gs
是否可用(在这种情况下已安装):
$return; $out;
exec("/usr/bin/gs 2>&1", $out, $return);
var_dump($return); echo '<br />'; echo var_dump($out); echo '<br />';