我正在尝试获取pdf文件的图像。但问题是我的代码会为某些pdf文件产生错误。可能是文件大小问题
这是我的代码
$saved_file_location = "images.pdf";
$destination_dir = "t";
$Name = "123";
exec('convert -verbose -density 150 '.$saved_file_location.' -crop 1020x490+128+40 -quality 90 '.$destination_dir."/".$Name.'-%03d.jpg');
sleep(5);
//echo filesize($destination_dir."/".$Name.'-000.jpg'). "<br>";
if(filesize($destination_dir."/".$Name.'-000.jpg') < 10000)
{
exec('convert -verbose -density 150 '.$saved_file_location.' -crop 1020x490+128+580 -quality 90 '.$destination_dir."/".$Name.'-%03d.jpg');
sleep(5);
//echo filesize($destination_dir."/".$Name.'-001.jpg')."<br>";
if(filesize($destination_dir."/".$Name.'-001.jpg') < 10000)
{
exec('convert -verbose -density 150 '.$saved_file_location.' -crop 1020x490+128+1125 -quality 90 '.$destination_dir."/".$Name.'-%03d.jpg');
}
}
这个错误我得到
PHP Warning: filesize(): stat failed for t/123-000.jpg in /home3/domain/pdf_to_images.php on line 10
有段时间代码工作正常并生成pdf文件的多个图像,但有时我得到此错误
答案 0 :(得分:1)
首先,ImageMagick convert
命令在内部使用ghostscript的gs
命令,gs
与convert
相比更快,所以使用ghostscript总是好的您没有使用ImageMagick特定功能。而另一件事是不是自己构建命令我建议使用已编写和测试的库,以避免浪费时间试图理解命令的所有组合。
你会找到好的图书馆packagist.org
这里有一个我写的库,将来会有用PdfLib来读你的问题
$pdflib = new ImalH\PDFLib\PDFLib();
$pdflib->setPdfPath($pdf_file_path);
$pdflib->setOutputPath($folder_path_for_images);
$pdflib->setImageFormat(\ImalH\PDFLib\PDFLib::$IMAGE_FORMAT_PNG);
$pdflib->setDPI(300);
$pdflib->setPageRange(1,$pdflib->getNumberOfPages());
$pdflib->convert();