Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:pdf_oracle_linux_8

Oracle Linux 8 - Über die Konsole PDF Dokumente erstellen

Aufgabe Für ein Dokumenten-Management System mit vertraulichen Dokumenten muss für die Entwicklungsumgebung eine größere Anzahl an „leeren“ Test Dokumenten erzeugt werden.

In den Test Dokumente soll aber einige Stammdaten Information stehen, um hier „echte“ Tests durchführen zu können und zu erkennen ob auch das richtige Dokument angezogen wird.

Umgebung:

Das System läuft unter Linux, das heißt auch die PDF Dokument sollen mit, möglichst im Standard verfügbarer, Software unter Linux erzeugt werden.

Da die gehostete Umgebung das Internet nicht erreicht, sind Python Lösungen wie https://rst2pdf.org/ oft nur schwer umsetzbar, da die notwendigen Libraries nicht so ohne weiters einfach heruntergeladen werden können und die Python Version oft zu alt ist und nur schwer über normale Wartungsverträge geändert werden kann.

D.h. es bleibt nur das übrig was sich im Oracle Linux Standard auch über einen normalen Support Request installieren lässt ohne allzu viele Regularien zu sprengen.

Folgende Möglichkeiten wurden dazu untersucht:

  1. ImageMagick convert
    • „convert TEXT:/file.txt /file.pdf“
    • Wandelt den Text in ein Bild und dann in PDF um, sehr unscharf
    • Schön formatierte Dokumente möglich
    • Sehr viele (»300) Pakete müssen installiert werden
    • Nicht im Distributionsstandard von Oracle Linux
    • (dnf config-manager –set-enabled ol8_codeready_builder ; dnf install asciidoc ; dnf install dblatex )
    • Komplex und fehleranfällig, PDF konnte am Ende nicht erzeugt werden, Fehler unklar, zu viele Abhängikeiten
  2. VIM und ps2pdf aus dem Gostscript Packet
    • Hat auf Anhieb funktioniert
    • Pakete im Standard (ol8_appstream) enthalten
    • Einfach in der Anwendung

Lösung mit VIM und ps2pdf

Wir benötigen eine Postscript Dokument und können dann mit dem Tool „ps2pdf“ mit Ghostscript ein PDF erzeugen.

D.h. wir müssen unser Text Dokument zuvor in PostScript wandeln, also quasi ins Filesystem ausdrucken.

Vorbereitung - Software installieren

Als root

Es muss VIM nachinstalliert werden, die notwendige Druckfunktion scheint in der Version 8.0 im Oracle Linux Standard enthalten zu sein, das muss bei manuellen Übersetzen normalerweise aktiviert werden. (vi daher nicht ausreichend!)

# Repo aktivieren bei Bedarf
dnf config-manager --set-enabled ol8_appstream
 
dnf install vim ghostscript

Aus Text Datei eine PDF Datei erstellen

Text Datei erzeugen und per „Hardcopy“ Befehl als PostScript Datei den Inhalt speichern:

#Dokument anlegen

vim dokument.txt

Dies sind die Daten für diese Datei
-----
Gruppe
Attribut
Inhalt
-----

:w

:hardcopy > dokument.ps 

:q

Gedrucktes Dokument in PDF um wandeln:

ps2pdf dokument.ps

# es wird aus einer 81 Byte Text Datei eine 8.6K pdf Datei erzeugt:
ls -lah dokument.*
-rw-r--r-- 1 root root 8.6K May 18 11:50 dokument.pdf
-rw-r--r-- 1 root root 5.9K May 18 11:48 dokument.ps
-rw-r--r-- 1 root root   81 May 18 11:46 dokument.txt

Alles in einer Zeile:

vim dokument.txt -c "hardcopy > dokument2.ps | q" ; ps2pdf dokument2.ps

Titel in dem „Ausdruck“ setzen mit let &printheader =„ <name> „

 vim dokument.txt -c "let  &printheader = \"Titel des Dokuments \" | hardcopy > dokument4.ps | q"

Über die Datenbank die Generierung steuern

Im nächsten Schritt wird über Datenbank Directory Objekt mit Execute Rechte und dem External Table Feature das Erzeugen der Dateien aus der Datenbank heraus mit PL/SQL implementiert.

Eine Script gesteuerte External Table dient dazu als Datei Generater im Betriebssystem. ⇒ Eine Oracle External Table zum Aufruf von Linux Befehlen ge(miss)brauchen


PDF komprimieren

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -dColorImageResolution=150 -sOutputFile=dokument5.pdf dokument4.pdf

Kann hilfreich sein, bei mir aber nur wenige Byte besser bei den kleinen Dokumenten. siehe ⇒ https://opensource.com/article/20/8/reduce-pdf


Preview Image erzeugen

Von der ersten Seite des PDF ein Preview erzeugen

convert -density 150 presentation.pdf[0] -quality 90 test.jpg

Siehe dazu auch ⇒ https://jdhao.github.io/2019/11/20/convert_pdf_to_image_imagemagick/


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
linux/pdf_oracle_linux_8.txt · Zuletzt geändert: 2023/05/30 16:36 von gpipperr