PC と OSX で ImageMagick を使用して PDF を PNG に変換しようとしていますが、ソフトウェアを使用するコンピュータに GhostScript を実際にインストールできません。
GhostScript を ImageMagick にバンドルし、ImageMagick のパスをそのパッケージにリダイレクトするだけで、ユーザーのコンピューターに正式に「インストール」せずに使用できる方法はありますか?
このページを見つけましたが、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=""F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite "-sOutputFile=%o" -- "%i""/>
しかし、プログラムを実行すると、cmd プロンプトに次のエラーが表示されます。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
F:\Documents and Settings\Administrator>F:\ImageMagickTest\ImageMagick\convert.e
xe F:\ImageMagickTest\PDFs\Appointment.pdf F:\ImageMagickTest\ConvertedPDFs\Appo
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:\ImageMagickTest\PDFs\Appointment.pdf
': No such file or directory @ error/pdf.c/ReadPDFImage/679.
convert.exe: no images defined `F:\ImageMagickTest\ConvertedPDFs\Appointment.png
' @ error/convert.c/ConvertImageCommand/3044.
私には、これはファイル「Appointment.pdf」が見つからないことを示しているように思えます。しかし、それはそこにあります。私は何を理解していませんか?
楽しみのために、Windows エクスプローラーから取得した gs のフル パスを次に示します。
F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe
さらにお楽しみいただくために、Unity 3D アプリケーション内から呼び出す c# スクリプトを次に示します (エラーは発生しません)。
string currDir = System.Environment.CurrentDirectory;
string convertPath = currDir + @"\ImageMagick\convert.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();