Zum Inhalt springen

pdf mit GhostScript und GraphicsMagick

Erstellt am 19. Juni 2007 · 12 Antworten · letzte Antwort am 9. Februar 2011

Tags: Frage

kuhbus ·

ich habe natürlich ghostscript installiert.

auf der kommandozeile gehts - im installtool kommt er nicht über das identify hinaus...

hm

habe einen PLESK server. kann das damit was zu tun haben?

knobocop ·

Plesk ist ein Administrations-Tools für Server und selber kein Server. Es sollte eigtl. nichts damit zu tun haben. Ich habe auf dem Server, wo das Problem auftritt kein Plesk.

sapiency ·

hat jemand eine andere Lösung gefunden als die beiden Formate aus der Liste zu löschen?

grüße

ps: das führt auch nur dazu, dass die Tests ausgelassen werden, die Meldung kommt trotzdem

sapiency ·

Problem gelöst,

ich hatte WITHOUTX11= yes eingestellt. Zuletzt hatte sich nur noch GTK20 geweigert neu zu kompilieren. Das lag daran, dass hierfür cairo mit x11 erforderlich war.

Da alle anderen Pakete (auch cairo, jedoch ohne x11) bereits aktualisiert waren gehe ich mal davon aus, dass das ganze an der fehlenden Unterstützung für X11 lag.

grüße

junges ·

Hi,

zusätzlich kannst Du mal prüfen, ob in der php.ini Einstellungen wie open_basedir gesetzt sind oder disable_functions gesetzt sind.

Gruß
junges

chrisisflat ·

Hallo zusammen,

ich reaktiviere mal diesen Thread, weil ich ein ähnliches Problem hatte und dafür auch eine Lösung finden konnte. Bei vielen Hostern (z.B. 1&1 Homepageserver) ist es nicht so ganz trivial ein eigenes GM oder IM dazu zu bewegen Ghostscript zu verwenden (zumindest bei 1&1 ist Ghostscript nicht drauf - IM mittlerweile schon), um PDFs und AIs zu lesen.

Dazu liest man überall das das nicht geht. Die typischen Screenshots auf denen im Installtool alles geht bis auf die letzten beiden Tests. Da ich für einen Kunden hinbekommen musste, das PDFs in der Dateiliste auch schön als Grafik im FE angezeigt werden, musste ich mir also etwas einfallen lassen.

Dazu muss man wissen, dass GM/IM Ghostscript verwenden, um PDF oder AI zu lesen. Schade also, dass der Provider kein Ghostscript auf den Server installiert hat. Die Hotline des Providers hat mir dann auch nur mitgeteilt, dass das nicht machbar ist - aber das war nicht die Antwort die ich brauchte.

Also hab ich mir erstmal ein statisch gelinktes graphicsmagick organisiert und auf dem Server entpackt, TYPO3 entsprechend konfiguriert, das es dieses verwendet anstelle des vorinstallierten IM. Im ersten Schritt hatte ich dann das gleiche Ergebnis, wie mit IM - die beiden letzten Tests scheitern. Wie ich dann in der Commandline festgestellt habe, findet GM das Ghostscript Executable GS nicht. Also ein Ghostscript heruntergesaugt, entpackt und mit ./configure und make gebaut, das Executable (gs) in das gleiche Verzeichnis wie gm kopiert und mit Ausführrechten für alle versehen. Tja leider auch kein Unterschied.
Also eine Date ~/.profile mit folgenden Inhalt erzeugt:

export PATH=${HOME}/tld.domain/graphicsmagick-1.1.6/bin:${PATH}

und siehe da, auf der Shell ging es nun ohne Probleme. Schade nur, dass der Webserver unter einem anderen Useraccount läuft, so das es in TYPO3 immernoch nicht ging. Den Pfad des Webserverusers zu ändern ist natürlich nicht möglich. Sackgasse? Provider sagt geht nicht, in vielen Foren steht geht nicht. Was nun?

Netterweise gibt es im Verzeichnis graphicsmagick-1.1.6/share/config eine Datei, die delegates.mgk heißt. Dort sind die Befehle hinterlegt für Aufrufe von externen Programmen, eben auch von Ghostscript. Allerdings geht gm davon aus, dass gs im Pfad ist, d.h. es wird immer nur "gs ....." aufgerufen. Ich habe sämtliche aufrufe mit kompletten Pfad versehen, also /mein/pfad/zu/gs - und siehe da, es fluppt.

Also zumindest auf einem 1&1 managed Server (und ich gehe mal davon aus, dass dieses Vorgehen auch bei anderen Providern funktioniert) ist es möglich auch PDFs und AIs von TYPO3 lesen zu lassen.

Vielleicht hilft das dem ein oder anderem von Euch....

Christian

knoob ·

Also ich hatte dasselbe Problem unter Windows 2008 (ja ich weiss bringt euch Linuxern nix) aber da man über die google suche als erstes auf diesen thread trifft, schreib ich es trotzdem für alle hin:

einzig bei den ghostscript-aktionen wird auf das C:\Windows\Temp verzeichnis zugegriffen (vom gm prozess, der die gs.dlls einbindet), der netzwerkdienst hat darauf aber keinen zugriff.

Jetzt könnte man entweder die Zugriffsrechte für den Netzwerkdienst anpassen, dafür sorgen, dass der Prozess unter einem anderen Account läuft, oder über eine Umgebungsvariable oder Konfigurationseinstellung dafür sorgen, dass C:\Temp und nicht C:\Windows\Temp verwendet wird.

et voilà!

tantebootsy ·

@chrisisflat: Vielen Dank für deinen Beitrag, hat mir sehr geholfen! Ich fasse die Vorgehensweise nochmals kurz zusammen:

1. Statisch gelinktes graphicsmagick (getestet mit 1.1.6) besorgen.
2. Im InstallTool dieses als zu verwendendes Bildverarbeitungsprogramm angeben.
3. Ghostscript besorgen (getestet mit 9.00).
4. In graphicsmagick-1.1.6/share/config die delegates.mgk alle Aufrufe mit "gs" mit absoluten Pfaden versehen.

Liebe Grüße,
Micha