Von Daniel Dyck auf Donnerstag, 27. Januar 2022
Kategorie: Data Management

Einfach mal Druck machen. PDF-Erzeugung in Oracle APEX.

PDF-Dokumente spielen nach wie vor eine große Rolle. Um in Oracle APEX z.B. aus einem Bericht ein PDF-Dokument zu erzeugen, konnte bisher der Oracle REST Data Service (ORDS) genutzt werden. Dies war eine elegante Lösung, die ohne eine zusätzliche Infrastruktur nutzbar war. Technisch basierte diese Komponente auf dem Apache Formating Objects Processor. Seit der APEX-Version 19.2 steht diese Funktion nicht mehr zur Verfügung, so dass eine Alternative zur PDF-Erzeugung gefunden werden muss. 

In vielen APEX Applikationen werden PDF-Reports (Berichte, Rechnungen, Listen, …) generiert. Die Ankündigung, dass ORDS in Zukunft nicht mehr genutzt werden kann, sorgt für einen gewissen Handlungsbedarf. In diesem Artikel werden zwei mögliche Alternativen vorgestellt.

Apexop

Die erste Alternative ist die kostenpflichtige Lösung des Herstellers United Codes, APEX Office Print (APEXOP). In vier Schritten kann mittels dieser Lösung aus einem Input (Daten der Datenbank) ein Dokument im gewünschten Zielformat (PDF) erstellt werden.

Im ersten Schritt wird ein Template für die Generierung des finalen Dokumentes ausgewählt. Dabei stehen diverse Vorlagen zur Auswahl, es können jedoch auch eigene Templates erstellt oder die bestehenden angepasst (konfiguriert) werden. Zusätzlich zu den Templates für PDF-Dokumente stehen Vorlagen für Word, Excel, PowerPoint, Markdown und Text-Dokumenten bereit.

Der nächste Schritt ist die Wahl der Daten aus der Datenbank, die das Zieldokument enthalten soll.

Die Fusion ist der dritte Schritt im Prozess. Hier werden die ausgewählten Daten mit dem gewählten oder selbst erzeugten Template fusioniert. Dies bedeutet, dass als Resultat dieses Vorgangs ein Dokument entsteht, welches die vorher spezifizierten Daten aus der Datenbank und das ausgewählte Template kombiniert.

Der letzte und vierte Schritt bei der Erstellung des Dokumentes ist der Export und Druck des erstellten Dokumentes in dem gewünschten Dateiformat.

APEX Office Print ist nicht Teil der kostenlosen Lizenz von APEX und somit auch nicht frei nutzbar. Das Unternehmen APEX R&D, welches für die Entwicklung von APEX Office Print zuständig ist, bietet den Kunden eine Reihe an Angebotspaketen, um ihr Produkt einem Unternehmen oder Kunden zu verkaufen. Dabei wird generell zwischen Cloud und On-Premises differenziert. Zunächst bietet APEX R&D ihr Produkt in einer Cloud-Version an. Hierbei wird APEX Office Print auf den Servern von APEX R&D ausgeführt, sodass auf der Seite der Anwender diese Berechnungskosten nicht anfallen. Somit ist APEX R&D für die Verwaltung und Instandhaltung der Server zuständig und nicht der Nutzer. In diesem Cloud-Bereich gibt es eine kostenfreie Version, in welcher bis zu 30 Dokumente pro Monat erzeugt werden können. Alle weiteren erzeugten Dokumente kosten 20 Cent, wobei ein Mindestpreis von zehn Euro gezahlt werden muss. Sollen jedoch mehr Reports in einem Monat erstellt werden, besteht die Wahl zwischen drei Angeboten, die in einer Preisspanne zwischen 29 Euro und 299 Euro liegen.

Nutzung Apex Office Print  On-Premises

Auf der anderen Seite besteht die Möglichkeit, dass APEX Office Print auf eigenen Servern ausgeführt wird – On-Premises. Dabei ist dann der Nutzer für die Verwaltung und Instandhaltung der Server zuständig. Hier wird dem Kunden eine Auswahl zwischen vier Paketen angeboten, welche einen unterschiedlichen Funktionsumfang beinhalten und in einer Preisspanne zwischen 2.500 und 19.900 Euro liegen.

Da APEX Office Print nicht Teil von Oracle APEX ist, muss diese Drittanbieter-Lösung in der On-Premise Variante installiert werden. Das Unternehmen APEX R&D stellt dem Nutzer nach dem Herunterladen von APEX Office Print eine Schritt-für-Schritt-Anleitung zur Verfügung, welche detailliert und mit Bildschirmaufnahmen das Vorgehen der Installation erläutert. Aus eigener Erfahrung und Erfahrungsberichten lässt sich sagen, dass die Installation dieser Lösung einen geringen Aufwand darstellt. Nach wenigen Minuten ist APEX Office Print einsatzbereit installiert.

APEX_DATA_EXPORT

Neben externen Möglichkeiten bietet auch Oracle APEX eine Alternative zum ursprünglichen Apache FOP. Dabei handelt es sich um ein Paket, dass sich APEX_DATA_EXPORT nennt. Dies beinhaltet eine Funktionalität, wie der Name bereits andeutet, Daten aus APEX heraus in unterschiedlichen Dateiformaten zu exportieren. Neben dem Dokumentenformat PDF werden zudem einige weitere Dateiformate (Office-Formate wie Word, Excel oder Powerpoint) unterstützt

Wie funktioniert APEX_DATA_EXPORT?

Die Lösung basiert auf der Programmiersprache Oracle PL/SQL und läuft somit direkt innerhalb der Oracle Datenbank. Das Paket APEX_DATA_EXPORT wird seit der APEX-Version 20.2 standardmäßig mitausgeliefert.

Um die Funktionalität des Paketes APEX_DATA_EXPORT nutzen zu können, muss zunächst eine Prozedur erstellt werden. Durch diese Prozedur kann das finale Ergebnis editiert und an die eigenen Ansprüche angepasst werden. Über Parameter kann Einfluss auf das Resultat (das PDF-Dokument) genommen werden. Mittels dieser Konfiguration kann ebenfalls bestimmt werden, woher die Daten bezogen werden, welche Bedingungen z.B. erfüllt sein müssen, um eine Zeile farblich hervorzuheben, oder wie die Kopf- und Fußzeile aussehen soll.

Daneben gibt es noch viele weitere Parameter, die die Gestaltung der zu erstellenden PDF-Datei beeinflussen.

Ein Beispiel für die Nutzung von APEX_DATA_EXPORT könnte wie folgt aussehen:

Kommentare hinterlassen