加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – ImageMagick中的GhostScript文件路径

发布时间:2020-12-16 22:51:43 所属栏目:百科 来源:网络整理
导读:我正在尝试使用 ImageMagick将PDF转换为PC和OSX上的PNG – 但我实际上无法在我的软件将使用的任何计算机上安装GhostScript. 有没有办法将GhostScript与ImageMagick捆绑在一起,只是将ImageMagick的路径重定向到该包,所以我可以使用它而无需在用户的计算机上正
我正在尝试使用 ImageMagick将PDF转换为PC和OSX上的PNG – 但我实际上无法在我的软件将使用的任何计算机上安装GhostScript.

有没有办法将GhostScript与ImageMagick捆绑在一起,只是将ImageMagick的路径重定向到该包,所以我可以使用它而无需在用户的计算机上正式“安装”它?

I found this page,但我无法理解如何更改ImageMagick中的delegates.xml文件以使其正常工作.我认为我必须改变这一行的某些部分:

<delegate decode="pdf" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite "-sOutputFile=%o" -- "%i"" />

但我不知道该怎么做 – 在哪里放路径,或路径应该基于什么— ImageMagick的位置,或其他什么?任何帮助将非常感激.

更新v1.2:我试图将上面的委托更改为以下代码,并在命令行中使用可执行文件:

<delegate decode="pdf" encode="eps" mode="bi" command="&quot;F:ImageMagickTestImageMagickgsbingswin32c.exe&quot; -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>

但是当我运行程序时,我在cmd提示符中出现以下错误:

Microsoft Windows XP [Version 5.1.2600]

(C)版权所有1985-2001 Microsoft Corp.

F:Documents and SettingsAdministrator>F:ImageMagickTestImageMagickconvert.e
xe F:ImageMagickTestPDFsAppointment.pdf F:ImageMagickTestConvertedPDFsAppo
intment.png
convert.exe: `%s' (%d) "F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe"
-q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -d
EPSCrop -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -d
GraphicsAlphaBits=4 "-r72x72"  "-sOutputFile=F:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/
magick-5996ZNQmVN7RFumY--0000001" "-fF:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-5
996r7pmg8XgvrNB" "-fF:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-5996yhTQgwoLswnn"
@ error/utility.c/SystemCommand/1890.
convert.exe: Postscript delegate failed `F:ImageMagickTestPDFsAppointment.pdf
': No such file or directory @ error/pdf.c/ReadPDFImage/679.
convert.exe: no images defined `F:ImageMagickTestConvertedPDFsAppointment.png
' @ error/convert.c/ConvertImageCommand/3044.

对我来说,这似乎表明它没有找到文件“Appointment.pdf”.但它就在那里.我不喜欢什么?

为了好玩,这是从Windows资源管理器中获取的gs的完整路径:

F:ImageMagickTestImageMagickgsbingswin32c.exe

为了更有趣,这里是从Unity 3D应用程序中调用它的c#脚本(我没有收到任何错误):

string currDir = System.Environment.CurrentDirectory;
    string convertPath = currDir + @"ImageMagickconvert.exe";
    string convertedDir = currDir + @"ConvertedPDFs";
    string pdfFolder = currDir + @"PDFs";
    string fileName = "Appointment";
    string argumentForImageMagick;


    argumentForImageMagick = pdfFolder + fileName + ".pdf" + " " + convertedDir + fileName + ".png";
    ProcessStartInfo info = new ProcessStartInfo {Arguments = argumentForImageMagick,FileName = convertPath};
    System.Diagnostics.Process.Start(info).WaitForInputIdle();

解决方法

尝试用“/usr/local/bin / gs -q”(或者你要安装Ghostscript可执行文件的任何路径)替换该行的“@PSDelegate”-q部分.

根据您的环境,您可能需要向该命令/行添加额外的参数,这些参数告诉g??s(在Windows上:gswin32c.exe或gswin64c.exe)其库的位置:
-I在/usr/local/share下/ Ghostscript的/ 9.06 / lib目录/

更新:尝试直接在cmd.exe窗口中运行此Ghostscript命令,以查看它是否有效(或它产生的错误):

"F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe" 
   -o F:/ImageMagickTest/PDFs/test.png                   
   -dEPSCrop                                             
   -dAlignToPixels=0                                     
   -dGridFitTT=2                                         
   -sDEVICE=pngalpha                                     
   -dTextAlphaBits=4                                     
   -dGraphicsAlphaBits=4                                 
   -r72                                                  
    F:/ImageMagickTest/PDFs/Appointment.pdf

不要担心我使用正斜杠(‘/’)作为目录分隔符 – Windows上的Ghostscript可以正常处理这些.

我希望您的Ghostscript安装是最新版本(否则它将无法理解输出文件的-o语法).

如果此命令不起作用,您应该在窗口中看到某种错误消息(因为我跳过了-q -dQUIET参数).

可能Ghostscript找不到它的库,因为你可能只复制了.exe文件,而没有正确安装完整的软件包.

也许你需要添加-I“F:/ImageMagickTest/ImageMagick/gs9.06/lib”或类似于命令行的东西(我不知道你的Ghostscript / lib目录是否位于 – 这只是一个猜测! ):

"F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe" 
   -o F:/ImageMagickTest/PDFs/test.png                   
   -I"F:/ImageMagickTest/ImageMagick/gs9.06/lib"         
   -dEPSCrop                                             
   -dAlignToPixels=0                                     
   -dGridFitTT=2                                         
   -sDEVICE=pngalpha                                     
   -dTextAlphaBits=4                                     
   -dGraphicsAlphaBits=4                                 
   -r72                                                  
    F:/ImageMagickTest/PDFs/Appointment.pdf

只有在cmd.exe窗口中成功运行Ghostscript后,才应继续修改delegates.xml中的行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读