Heute ist mir beim Programmieren einer TYPO3-Extension im INSTALL-Tool aufgefallen, dass ImageMagick keine Vorschau-Bild für PDF-Dateien erstellt. Also habe ich mich auf die Suche gemacht, welches Problem hier besteht. Beim Testen des convert
Befehls im Terminal ist mir aufgefallen, dass hier jedoch das Problem in der Konfiguration von ImageMagick liegen muss.
user@system: convert -verbose -density 150 -trim test.pdf -quality 100 -flatten -sharpen 0x1.0 test.jpg convert-im6.q16: not authorized `test.pdf' @ error/constitute.c/ReadImage/412. convert-im6.q16: no images defined `test.jpg' @ error/convert.c/ConvertImageCommand/3258.user@system: convert -verbose -density 150 -trim test.pdf -quality 100 -flatten -sharpen 0x1.0 test.jpg
Nach dem Durchforsten von sämtlichen Portalen und dem Lesen der Dokumentation auf imagemagick.org habe ich hier die Lösung gefunden. Deshalb habe ich hier ein kurzes Tutorial geschrieben, wie mit ImageMagick auf einem System ein Vorschau-Bild aus einer Datei erstellt werden kann.
Installation von ImageMagick und notwendiger Erweiterungen
Vorab: Solltest du noch kein ImageMagick auf dem System installiert haben, hier zuerst eine Kurzanleitung um dieses zu tun.
Für die Bilderstellung sind einige Werkzeuge notwendig. Diese kannst du mit folgendem Installationsaufruf installieren (wie in meinen Texten üblich verwende ich hier eine Debian-basierte Maschine:
user@system: sudo apt install imagemagick ghostscript libgs-dev
Dabei werden noch weitere benötigte Bibliotheken und Programme installiert.
Konfiguration erweitern für PDF-Datei
Jetzt kommt der entscheidende Teil, der angepasst werden muss. Die Konfiguration von ImageMagick dem Bereich in dem die Sicherheitsrichtlinien zur Ausführung geregelt werden: policy.xml
user@system: vi /etc/ImageMagick-6/policy.xml
Hier musst du die erste Zeile entsprechend auskommentieren und dafür die Zweite eingefügen oder die Erste durch die Zweite ersetzen:
<!-- <policy domain="coder" rights="none" pattern="PDF" /> --> <policy domain="coder" rights="read|write" pattern="PDF" />
Wichtig, solltest du eine weitere Dateiendung haben, die du mit ImageMagick konvertieren oder bearbeiten willst, so kannst du diese folglich auch in der Datei anpassen. (beispielsweise ai
)
Neuer Versuch zu Erstellung der Vorschau von PDF in ImageMagick
Jetzt funktioniert der obere Aufruf zur Generierung der Vorschau Datei. Sämtliche weitere Parameter können individuell angepasst werden (density
, quality
, flatten
, sharpen
). verbose
verwende ich hier nur aus Testzwecken.
user@system: convert -verbose -density 150 -trim test.pdf -quality 100 -flatten -sharpen 0x1.0 test.jpg 'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r150x150' '-sOutputFile=/tmp/magick-14676woXKAF0Mrrm6%d' '-f/tmp/magick-1467679fwtNqcmI2M' '-f/tmp/magick-14676bleYo0Eu56It' /tmp/magick-14676woXKAF0Mrrm61 PNG 1287x1217 1287x1217+0+0 8-bit sRGB 116KB 0.040u 0:00.050 /tmp/magick-14676woXKAF0Mrrm62 PNG 1287x1217 1287x1217+0+0 8-bit sRGB 120KB 0.030u 0:00.029 test.pdf[0] PDF 1287x1217 1287x1217+0+0 16-bit sRGB 116KB 0.030u 0:00.029 test.pdf[1] PDF 1287x1217 1287x1217+0+0 16-bit sRGB 116KB 0.000u 0:00.000 test.pdf=>test.jpg PDF 1287x1217 1287x1217+0+0 16-bit sRGB 867KB 0.720u 0:00.379
Und schließlich kann dein Server jetzt mit Hilfe von ImageMagick die Vorschau der PDF-Datei mit ImageMagick erstellen. Wenn du auf diesen Artikel gestoßen bist, weil du den selben Fehler in TYPO3 hattest, dann löschen den Cache. Am Besten teste die Konfiguration über den Menüpunkt: System
-> Install
-> Test setup
-> Convert image to jpg
. Im unteren Bereich findest du anschließend hier eine Konvertierung einer PDF-Datei in eine Bild-Datei.
Fazit: Manche Konfigurationen sind offensichtlich und dennoch versteckt. Ich hoffe, ich konnte hierdurch deine (Fehler)suche nach dem Lesen dieses Artikels beenden. Solltest du dir schon einmal Gedanken über die Optimierung deiner auf dem Webserver liegenden Bilder gemacht haben, kann dir Gegenfalls dieser Artikel weiterhelfen: Bilder auf der Linux Konsole optimieren (JPG, PNG und GIF)
Foto: Kevin Horvat