Installieren, testen, konvertieren, vergrößern, verkleinern PDF mit ImageMagick, Ghostscript, Windows Vista/7 x64
Ich habe Probleme mit dem bekommen von ImageMagick und Ghostscript zusammen zu arbeiten - alles scheint schwierig, von der installation, zum testen, zur Anwendung der software. Hat jemand irgendwelche Tipps?
- Danke, das ist ein schönes review. Gibt es irgendwelche Erlaubnis Dinge muss ich beachten? Ich bin mit WAMP und ich bekomme nichts, wenn mein script läuft. Von der Windows-Eingabeaufforderung funktioniert es Super. Wie es scheint, es läuft nicht über den Apache.
- Ähm, wollen Sie, dass eine eigene Frage / Antwort, anstatt alles in Frage? Danke.
- OK. Dies war tatsächlich mein Erster Beitrag zu SO, wusste nicht, wie die Dinge funktionieren, aber das ist eine gute Idee. 🙂
- Tumbleweed.. 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verbrachte gerade die letzten drei Stunden immer ImageMagick schön zu spielen, mit PHP eine PDF zu JPG konvertieren. Stattdessen dokumentieren es mir lokal, ich dachte, ich würde schreiben Sie es hier, mit all den Schlagworten und Dinge, die ich verbockt, so dass der nächste noob kann etwas Zeit sparen.
Getestet auf zwei Betriebssysteme,Windows 7 x64 und Vista x64 mit PHP 5.2.8 und Apache 2.2.11.
Benötigen Sie Ghostscript und ImageMagick. Ich habe
gs871w64.exe
undImageMagick-6.6.3-0-Q16-windows-x64-dll.exe
.Eine grundlegende Installation von ImageMagick (ich nenne es IM jetzt). Überprüfen Sie die system-variable path um sicherzustellen, können Sie IM-von überall aus. Es sollte auf den IM Verzeichnis. Testen Sie die installation mit dieser Linie in
cmd
:convert test.gif test.jpg
(vorausgesetzt, Sie habentest.gif
). OK funktioniert.Test ein PDF konvertieren (
convert test.pdf test.jpg
). Sollten Sie eine (lange) Nachricht über "gswin32c.exe" und "Postscript delegate failed" und "fehlt ein Bild mit dem Namen". Das bedeutet, dass IM nicht finden können, ein PDF - "übersetzer". Benötigen Sie Ghostscript.Installieren Sie Ghostscript (ich nenne es GS-jetzt). Ich hatte es zweimal für einige Grund, bevor Sie es nahm. Fügen Sie die " bin " - Adresse in den GS-Ordner auf der system-Variablen. Testen Sie die installation mit
gswin32 test.pdf
und sollten Sie Ihre Datei pop-up in den GS viewer. Wichtiger Hinweis: gs funktioniert nicht in Windows ('gs' is not recognized as an internal or external command, operable program, or batch file.
). Sie benötigen gswin32.Zurück zu den IM test:
convert test.pdf test.jpg
sollte jetzt funktionieren.Nun über PHP - write-up dieses Skript:
Den
2>&1
bewegen wird alle Fehler in die standard-Ausgabe so können Sie besser diagnostizieren Sachen :). Jetzt können Sie Ihre PHP-Skript ausführen in der cmd-Eingabeaufforderung, aber es passiert nichts, wenn Sie in einem browser auszuführen. Smack Ihre Stirn und starten Sie Apache neu.Hose Erschöpfend und wohl elementar, ich weiß. Aber eine hoffentlich hilfreiche Zusammenfassung von etwa 20 Seiten der semi-hilfreiche Anhaltspunkte.
Steve bereits einen guide zum Betrieb des Befehlszeile version von ImageMagick aus PHP. Nach einer ähnlichen Erfahrung mit der Installation des Erweiterung version von ImageMagick, würde ich mag zu erarbeiten ein wenig auf, wie die verschiedenen Komponenten zusammen arbeiten.
Imagick (PHP-Erweiterung)
Zuerst müssen Sie die PHP-Erweiterung. Es ist im Grunde ein adapter zwischen PHP und ImageMagick-Funktionen.
php_imagick.dll
von der extension ZIP in das PHP extension VerzeichnisDies ist jedoch nicht genug. Die
php_imagick.dll
enthält keine ImageMagick-Funktionen und denCORE_RL_...
DLLs, die kommen gebündelt mit der Erweiterung sind noch nicht abgeschlossen. Sie sind gonna brauchen noch ein paar mehr DLLs aus der ImageMagick-Version als auch.Theoretisch die version muss nicht exakt übereinstimmen, aber anscheinend irgendwo zwischen ImageMagick 6.8.1 und 6.8.8 die Funktion
MagickGetImageMatte
wurde entfernt die Dll-Dateien, daher ist der sicherste Weg zu finden, die genau die gleiche ImageMagick Version, dass die Imagick-Erweiterung wurde gebaut für:Es ist nicht notwendig, um installieren ImageMagick. In der Tat, wenn Sie geschehen, haben eine inkompatible ImageMagick im PFAD, in den die PHP-Erweiterung kann fehlschlagen.
Ghostscript
Dies gilt sowohl für die Kommandozeilen-version von ImageMagick (
convert
) und die PHP-Erweiterung wie oben beschrieben.Für das Lesen von Dateien, die Postscript-Familie, Ghostscript benötigt.
ImageMagick finden Ghostscript die folgenden Schritte:
GS_DLL
Eintrag in der registry, die auf den Pfad dergswin32.dll
wird, verwendet es, dass ein und ignorieren die Delegierten insgesamt.delegates.xml
nebenphp5(n)ts.dll
oderconvert.exe
bzw. in~\.magick
.@PS_Delegate@
im delegieren, es wird ersetzen Sie es mitgswin32c.exe
und dann weiter suchen, die EXE-Datei in den PFAD. Sie können ersetzen Sie diesen string mit dem vollständigen Pfad zugswin32c.exe
oder sogargswin64c.exe
dass ImageMagick aufrufen soll.C:\ghostscript\bin` in my PATH variable in Windows, but still I have got
Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat` wenn ich rufe readImageFile(...)