PNG zum PDF umwandeln

Wer einige PNG Grafiken hat die er über die Kommandozeile in ein PDF wandeln will, benötigt dafür das mächtige Bildkonvertierungsprogramm convert. Convert ist Standardmäßig auf Ubuntu vorinstalliert. Allerdings muss man hier eins beachten. Convert nutzt für das konvertieren von Bildern, Grafiken zu einem PDF Ghostscript. Ghostscript hatte aber vor Jahren eine große Sicherheitslücke und convert hat darauf hin das Umwandeln von PDFs blockiert. Diese Ghostscript Sicherheitslücke wurde aber bereits seit der Version 9.24 geschlossen. Aber dennoch blockiert convert das Umwandeln von PDFs. Man kann diese Sicherheitsregel aufheben indem man in der ImageMagick-6/policy.xml folgende Zeile auskommentiert:

sudo nano /etc/ImageMagick-6/policy.xml
<policy domain="coder" rights="none" pattern="PDF" />

ändern zu:

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

Es geht auch noch schneller, indem wir einfach die policy.xml kurz umbenennen.

sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlAus

sudo mv /etc/ImageMagick-6/policy.xmlAus /etc/ImageMagick-6/policy.xml

Wer möchte kann hier auch ein BashScript schreiben (welches die policy umbenennt und nach erfolgreicher Konvertierung wieder zurückbenennt) und es mit einem Alias ansteuern.

Nun können wir mit:

convert *.png alle.png-dateien.pdf

umwandeln. Oder nur eine einzelnde Datei mit:

convert Grafik.png grafik.pdf

Wer die Policy nicht kurzeitig deaktiviert erhält diese Fehlermeldung:

convert-im6.q16: not authorized `Grafik.pdf' @ error/constitute.c/WriteImage/1037.

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


Count files via the CLI in a folder (also recursive)

December 5, 2022

For example, you want to know how many files are in your Laravel vendor folder. To do this, go to the project folder with your console. Now you can count the files with find. If you don’t want a recursion and just want to know how many folders and files a certain path has, you […]

Symlinks – Was sind symbolische Links

March 11, 2022

Bei einem aktuellen Projekt bin ich auf ein außergewöhnliches deployment gestoßen. Außergewöhnlich aber nicht negativ wertend gemeint. Halt nicht “state of the art”. Stack: Amazon EC2 Server mit einem NGINX Webserver. Der Ablauf ist wie folgt. Der Order html unter dem Pfad /usr/share/nginx/html war ein Symlink auf ein Verzeichnis im selben Pfad. Nennen wir den […]

Odt Dateien in ein PDF konvertieren

January 4, 2022

Möchte man über die Commandline aus einer odt Datei eine PDF machen, brinbt libre Office von Hause auch gleich ein Headless Tool mit. libreoffice –headless –convert-to pdf textdatei.odt und schubdiwup, da ist das neue PDF.

Mit sed Text in einer Datei ändern

November 20, 2021

Wer über die CLI in einer Textdatei etwas editieren möchte greift für gewöhnlich zu nano, vim etc. Aber es gibt auch eine andere Möglichkeit in einer Textdatei etwas zu ändern. Über eine Stream (Stream Edit). Das kann zum Beispiel bei einem Deploymentscript sinnvoll sein. Wenn man zum Beispiel ein Deploymentscript hat und mit Release Ordner […]

Verschlüsseltes Zip über die Kommandozeile erstellen

November 9, 2021

Folgendes Szenario. Ihr seid via SSH auf einem Server der nicht mehr ansprechbar ist. Um die Dateien zu sichern erstellt ihr rasch ein ZIP von den Dateien die gesichert werden müssen. Das geht schnell mit: zip -re outputfileName.zip input folder/file r = rekursive = encryption

What does the -p option stand for in mkdir?

November 4, 2021

If you want to create several directories with the command mkdir you use the -p option. But what does the -p stand for? One could assume it stands for “Path”. But no. It stands for “parent”. And the flag is needed to create a parent directory if it is required. If you try to create […]