我正在尝试在PHP中使用ImageMagick将PDF转换为图像。初始化构造函数会给我一个“委托错误,找不到指定的文件”。
请注意,从命令行运行转换确实可以。它成功地将PDF的所有页面转换为每页图像。
我尝试过的事情:
卸载ImageMagick和Ghostscript,重新引导,安装Ghostscript(32),重新引导,安装ImageMagick,重新引导
将Ghostscript文件夹的路径添加到Windows中的PATH变量并重新启动(在我检查时当前已添加)
在正确配置ImageMagick并且错误不存在的服务器上运行相同的完全PHP脚本-因此php脚本应该不是问题吗?
让我知道是否应该提供更多信息。在过去的2个小时里,我一直在寻找解决方案,而现在这些想法全都没有了。
谢谢。
此外,我正在Windows 10 XAMPP上运行。
delegates.xml
<?xml version="1.0"?>
<!DOCTYPE delegatemap [
<!ELEMENT delegatemap (delegate)+>
<!ELEMENT delegate (#PCDATA)>
<!ATTLIST delegate decode CDATA #IMPLIED>
<!ATTLIST delegate encode CDATA #IMPLIED>
<!ATTLIST delegate mode CDATA #IMPLIED>
<!ATTLIST delegate spawn CDATA #IMPLIED>
<!ATTLIST delegate stealth CDATA #IMPLIED>
<!ATTLIST delegate thread-support CDATA #IMPLIED>
<!ATTLIST delegate command CDATA #REQUIRED>
]>
<!--
Delegate command file.
Commands which specify
decode="in_format" encode="out_format"
specify the rules for converting from in_format to out_format These
rules may be used to translate directly between formats.
Commands which specify only
decode="in_format"
specify the rules for converting from in_format to some format that
ImageMagick will automatically recognize. These rules are used to
decode formats.
Commands which specify only
encode="out_format"
specify the rules for an "encoder" which may accept any input format.
For delegates other than ps:alpha, ps:color, ps:mono, and mpeg-encode the
substitution rules are as follows:
%i input image filename
%o output image filename
%u unique temporary filename
%# input image signature
%b image file size
%c input image comment
%g image geometry
%h image rows (height)
%k input image number colors
%l image label
%m input image format
%p page number
%q input image depth
%s scene number
%w image columns (width)
%x input image x resolution
%y input image y resolution
-->
<delegatemap>
<delegate decode="bpg" command="cmd.exe /c ("bpgdec" -b 16 -o "%o.png" "%i") & (move "%o.png" "%o" >nul)"/>
<delegate decode="png" encode="bpg" command=""bpgenc" -b 12 -q %~ -o "%o" "%i""/>
<delegate decode="browse" stealth="True" spawn="True" command="cmd.exe /c start "" http://www.imagemagick.org/"/>
<delegate decode="dng:decode" stealth="True" command="dcraw.exe -6 -W -O "%u.ppm" "%i""/>
<delegate decode="dot" command="dot -Tps "%i" -o "%o""/>
<delegate decode="dvi" command="dvips -q -o "%o" "%i""/>
<delegate decode="edit" stealth="True" command="notepad "%o""/>
<delegate decode="eps" encode="pdf" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i""/>
<delegate decode="eps" encode="ps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write "-sOutputFile=%o" -- "%i""/>
<delegate decode="hpg" command="hp2xx -q -m eps -f "%o" "%i""/>
<delegate decode="hpgl" command="hp2xx -q -m eps -f "%o" "%i""/>
<delegate decode="htm" command="html2ps -U -o "%o" "%i""/>
<delegate decode="html" command="html2ps -U -o "%o" "%i""/>
<delegate decode="jxr" command="cmd.exe /c (move "%i" "%i.jxr" >nul) & ("JXRDecApp.exe" -i "%i.jxr" -o "%o.pnm") & (move "%i.jxr" "%i" >nul) & (move "%o.pnm" "%o" >nul)"/>
<delegate decode="mpeg:decode" command=""ffmpeg.exe" -nostdin -v -1 -i "%i" -vframes %S -vcodec pam -an -f rawvideo -y "%u.pam""/>
<delegate decode="pcl:cmyk" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate decode="pcl:color" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=ppmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate decode="pcl:mono" stealth="True" command=""pcl6.exe" -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate decode="pdf" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=eps2write -sPDFPassword="%a" "-sOutputFile=%o" -- "%i""/>
<delegate decode="pdf" encode="ps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write -sPDFPassword="%a" "-sOutputFile=%o" -- "%i""/>
<delegate decode="pgp" command="pgpv -fq "%i""/>
<delegate decode="png" encode="launch" spawn="True" mode="encode" command="imdisplay "%i"" />
<delegate decode="png" encode="show" spawn="True" mode="encode" command="imdisplay "%i"" />
<delegate decode="png" encode="win" spawn="True" mode="encode" command="imdisplay "%i"" />
<delegate decode="pnm" encode="ilbm" mode="encode" command="ppmtoilbm -24if "%i" > "%o""/>
<delegate decode="pnm" encode="jxr" command="cmd.exe /c (move "%i" "%i.pnm" >nul) & ("JXREncApp.exe" -i "%i.pnm" -o "%o.jxr") & (move "%i.pnm" "%i" >nul) & (move "%o.jxr" "%o" >nul)"/>
<delegate decode="pnm" encode="wdp" command="cmd.exe /c (move "%i" "%i.pnm" >nul) & ("JXREncApp.exe" -i "%i.pnm" -o "%o.jxr") & (move "%i.pnm" "%i" >nul) & (move "%o.jxr" "%o" >nul)"/>
<delegate decode="ps:alpha" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
<delegate decode="ps:cmyk" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
<delegate decode="ps:color" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
<delegate decode="ps" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=eps2write "-sOutputFile=%o" -- "%i""/>
<delegate decode="ps" encode="pdf" mode="bi" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i""/>
<delegate decode="ps:mono" stealth="True" command=""@PSDelegate@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "-f%s" "-f%s""/>
<delegate decode="shtml" command="html2ps -U -o "%o" "%i""/>
<delegate decode="svg" command=""rsvg-convert" -o "%o" "%i""/>
<!-- Remove the extra space in - -export in the line below when you want to use inkscape -->
<!--<delegate decode="svg:decode" stealth="True" command=""inkscape" "%s" - -export-eps="%s" - -export-dpi="%s" - -export-background="%s" - -export-background-opacity="%s" > "%s" 2>&1"/>-->
<delegate decode="wdp" command="cmd.exe /c (move "%i" "%i.jxr" >nul) & ("JXRDecApp.exe" -i "%i.jxr" -o "%o.pnm") & (move "%i.jxr" "%i" >nul) & (move "%o.pnm" "%o" >nul)"/>
<delegate decode="xps:cmyk" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pamcmyk32" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate decode="xps:color" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pnmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate decode="xps:mono" stealth="True" command=""gxps.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pbmraw" -dTextAlphaBits=%u -dGraphicsAlphaBits=%u "-r%s" %s "-sOutputFile=%s" "%s""/>
<delegate encode="mpeg:encode" stealth="True" command=""ffmpeg.exe" -nostdin -v -1 -i "%M%%d.jpg" "%u.%m""/>
</delegatemap>
错误:
object(ImagickException)#805 (7) {
["message":protected]=>
string(95) "PDFDelegateFailed `The system cannot find the file specified.
' @ error/pdf.c/ReadPDFImage/801"
["string":"Exception":private]=>
string(0) ""
["code":protected]=>
int(415)
["file":protected]=>
string(70) "D:\xampp\htdocs\pdfshare\wp-content\plugins\pdfshare\lib\class.pdf.php"
["line":protected]=>
int(57)
["trace":"Exception":private]=>
array(6) {
[0]=>
array(6) {
["file"]=>
string(70) "D:\xampp\htdocs\pdfshare\wp-content\plugins\pdfshare\lib\class.pdf.php"
["line"]=>
int(57)
["function"]=>
string(11) "__construct"
["class"]=>
string(7) "Imagick"
["type"]=>
string(2) "->"
["args"]=>
array(1) {
[0]=>
string(62) "D:\xampp\htdocs\pdfshare\wp-content\uploads\2019\05\2А-74.pdf"
}
}
[1]=>
array(6) {
["file"]=>
string(65) "D:\xampp\htdocs\pdfshare\wp-content\plugins\pdfshare\inc\ajax.php"
["line"]=>
int(94)
["function"]=>
string(15) "generate_images"
["class"]=>
string(12) "PDFShare_PDF"
["type"]=>
string(2) "->"
["args"]=>
array(0) {
}
}
[2]=>
array(4) {
["file"]=>
string(54) "D:\xampp\htdocs\pdfshare\wp-includes\class-wp-hook.php"
["line"]=>
int(286)
["function"]=>
string(30) "PDFShare\AJAX\upload_pdf_entry"
["args"]=>
array(1) {
[0]=>
string(0) ""
}
}
[3]=>
array(6) {
["file"]=>
string(54) "D:\xampp\htdocs\pdfshare\wp-includes\class-wp-hook.php"
["line"]=>
int(310)
["function"]=>
string(13) "apply_filters"
["class"]=>
string(7) "WP_Hook"
["type"]=>
string(2) "->"
["args"]=>
array(2) {
[0]=>
string(0) ""
[1]=>
array(1) {
[0]=>
string(0) ""
}
}
}
[4]=>
array(6) {
["file"]=>
string(47) "D:\xampp\htdocs\pdfshare\wp-includes\plugin.php"
["line"]=>
int(465)
["function"]=>
string(9) "do_action"
["class"]=>
string(7) "WP_Hook"
["type"]=>
string(2) "->"
["args"]=>
array(1) {
[0]=>
array(1) {
[0]=>
string(0) ""
}
}
}
[5]=>
array(4) {
["file"]=>
string(48) "D:\xampp\htdocs\pdfshare\wp-admin\admin-ajax.php"
["line"]=>
int(167)
["function"]=>
string(9) "do_action"
["args"]=>
array(1) {
[0]=>
string(33) "wp_ajax_pdfshare_upload_pdf_entry"
}
}
}
["previous":"Exception":private]=>
NULL
}