Skip to content Skip to sidebar Skip to footer

Vorschau-Datei von PDF-Datei mit ImageMagick erstellen

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.

Vorschau von PDF mit ImageMagick - Test System settings -> convert image to jpg

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: unsplash-logoKevin Horvat

Kommentare anzeigenKommentare schließen

Hinterlasse ein Kommentar