PHP |将PDF转换为文本

时间:2019-07-14 16:34:55

标签: php imagemagick shell-exec

我已经在Windows 10上安装了 ImageMagick 。我可以从命令行成功使用它,将pdf转换为tiff或jpeg。如果我尝试通过 shell_exec()从计算机默认网站上的php网页使用它,则会失败,并显示错误消息:

  

magick.exe:PDFDelegateFailed`[ghostscript库9.27] -q -dQUIET   -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap = 500000000 -dAlignToPixels = 0 -dGridFitTT = 2“ -sDEVICE = pngalpha” -dTextAlphaBits = 4 -dGraphicsAlphaBits = 4“ -r300x300”“ -sOutputFile = C:/ Windows / TEMP / magick -10805W5t4T7R2ln8%d“   “ -fC:/ Windows / TEMP / magick-10805T5PwK17wS3B”   “ -fC:/ Windows / TEMP / magick-1080MMkVWJeXr8bF”:(空)'@   错误/pdf.c/ReadPDFImage/980。

<?php

$output=shell_exec('"C:\ImageMagick\magick" -density 300 "input.pdf"  "out.tiff" 2>&1');
echo "<pre>$output</pre>";

?>

希望对您有帮助:

-shell_exec() is working in other contexts (runs other .exe files mkdir..) 
-I have given IUSR_xxxx (Internet Guest Account) permission to run magick.exe.
-the full pathname => "C:\ImageMagick\magick" 
PHP Version 7.2.14 
IIS version 1903(OS Build 18362.239) 
ImageMagick-7.0.8-53-Q16 
GPL Ghostscript 9.27 (2019-04-04)

任何想法可能是什么问题?

1 个答案:

答案 0 :(得分:0)

✔我通过使用此代码找到了解决方案

第一次将.pdf转换为.tiff

$tif = "file.tif";
$pdf = "file.pdf";
$pdf2tif = "C:\gs\bin\gswin64c.exe -dNOPAUSE -r300 -sDEVICE=tiffscaled24 -sCompression=lzw -dBATCH -sOutputFile=$tif $pdf  2>&1"; 
shell_exec($pdf2tif);

然后将.tif转换为.text

$tif2txt = '"C:\OCR\tesseract" file.tif out -l fra  2>&1'; 
shell_exec($tif2txt);