zur Übersicht nächste Seite

PDF aus Bildern erstellen

Die Ausführungen der vorherigen Seiten über Programmfenster werden hier weitergeführt. 
Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. 
Oder man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein.  
Dann drückt man zum Abspeichern gleichzeitig Strg und O 
dann drückt man die Eingabetaste um den Dateinamen zu bestätigen 
dann drückt man zum Verlassen des Editors gleichzeitig Strg und X.

Ab und zu kommt es vor daß ein PDF ein Formular enthält das ausgefüllt und unterschrieben werden soll. Also druckt man es aus, füllt es aus und unterschreibt es. Anschließend scannt man es (als Bild) wieder ein. Dann stellt sich die Frage wie man aus einem oder mehreren Bildern wieder ein PDF erzeugen kann.

Mit imagemagick kann man dies elegant erledigen. Aber es gibt einen Stolperstein:
Durch eine Sicherheitsrichtlinie wird imagemagick zunächst kein Einlesen und Bearbeiten von PDFs erlaubt. Man vergleiche
https://imagemagick.org/script/security-policy.php
Es wurde folgender Weg gewählt:
Zunächst wird in den eigenen Dateien ein neuer Ordner erstellt
mkdir -p ~/.config/ImageMagick/
Nun kann man die Sicherheitsrichtlinie aus dem Systembereich in diesen neuen Ordner im HOME-Bereich kopieren
cp /etc/ImageMagick-6/policy.xml /home/$USER/.config/ImageMagick/policy.xml
Man ändert bei der Datei im HOME-Bereich die Zugriffsrechte

Durch ändern der Sicherheitsrichtlinie policy.xml im HOME-Bereich kann man die Bearbeitung von PDFs erlauben - dies soll aber im folgenden script nur für wenige Sekundenbruchteile erlaubt werden. Dann wird die policy.xml wieder in den ursprünglichen Zustand zurückgeschrieben. Der Schutz durch die Sicherheitsrichtlinie bleibt danach weiterhin erhalten.

Das script wird wieder in dem Ordner ~/Bla abgelegt.
nano ~/Bla/Bild-in-PDF.sh
Eingabe in den Editor:
#!/bin/bash

szA=$(yad --file --multiple --geometry=800x500+100+50 --separator="|" --file-filter='*.gif *.jpg *.png' )

if grep -q " " <<< "$szA"; then zenity --info --width="280" --title="Fehler" --text "Es gibt mindestens ein \n\n Leerzeichen. \n\nDies ist nicht erlaubt"; exit; fi

szB=$(sed 's#|# #g' <<< $szA)

sed -i 's#policy domain="coder" rights="none" pattern="PDF"#policy domain="coder" rights="read|write" pattern="PDF"#g' /home/$USER/.config/ImageMagick/policy.xml

szD=$(date +"%d.%m.%y-%H-%M-%S")

convert $szB /home/$USER/$szD.pdf

sed -i 's#policy domain="coder" rights="read|write" pattern="PDF"#policy domain="coder" rights="none" pattern="PDF"#g' /home/$USER/.config/ImageMagick/policy.xml
Nun muß man diese Datei ausführbar machen (also in ein Programm verwandeln):
chmod +x ~/Bla/Bild-in-PDF.sh
Das script ruft zuerst ein Datei-Auswahlfenster auf das auf die Bildformate gif jpg png eingeschränkt wird - andere Bildformate können hinzugefügt werden. 
Für die Bearbeitung durch imagemagick sind Leerzeichen im Dateinamen oder in einem Ordner zu vermeiden - daher wird im nächsten Schritt geprüft ob Leerzeichen vorliegen. 
Dann wird die Sicherheitsrichtlinie policy.xml für die Bearbeitung der PDF freigeschaltet.
Dann kann imagemagick gestartet werden.
Danach wird die Sicherheitsrichtlinie policy.xml wieder in den ursprünglichen Zustand zurückgesetzt.

Es gibt ein Programm 
pdfarranger
das mit erstellten PDFs arbeiten kann. Bei der Installation über synaptic werden weitere Pakete installiert:

Dieses Programm zeigt die Seiten innerhalb des PDF mit Vorschaubildern an und ermöglicht eine Bearbeitung, z.B.
markieren einer Seite und Drücken der Entfernen-Taste löscht die Seite
Seiten können an andere Stellen verschoben werden
Seiten aus verschiedenen PDF können in einem Fenster bearbeitet werden und als neues Sammel-PDF abgespeichert werden.


Eine Seite des Formulares, hier S1.jpg genannt hatte 685kB und das mit
Bild-in-PDF.sh
erzeugte PDF hatte auch diese Grösse.
Es stellt sich die Frage ob die Grösse des PDF verkleinert werden kann. Da es sich um fotografierten Text handelt gibt es nicht viele Farben im Bild und es ist eine Verkleinerung der Farbanzahl des Ausgangsbildes möglich:
convert S1.jpg -colors 16 S1kleiner.png
Das mit dem Bild S1kleiner.png mittels
Bild-in-PDF.sh
erzeugte PDF hatte die Grösse 290kB.

zur Übersicht nächste Seite

Datenschutzerklärung
Impressum