Grundlagen und Funktion von ediarum.PDF
ediarum.PDF ist ein in ediarum.BASE.edit integriertes Feature, um direkt aus der Arbeitsoberfläche von Oxygen XML heraus XML-Dokumente als PDF auszugeben.
Grundlagen von ediarum.PDF
ediarum.PDF besteht aus verschiedenen XSLT-Skripten und CSS-Dateien, die im Zusammenspiel ein PDF generieren. Zum Einsatz kommt dabei das CSS3 paged media module (sog. Print-CSS) und Transformationsszenarien des Oxygen XML Authors.
Während der mehrstufigen PDF-Generierung wird zuerst aus dem vorliegenden XML-Dokument mit Hilfe von XSLT-Skripten eine HTML-Datei generiert und zwischengespeichert. Diese enthält bereits alle Inhalte und Verweise für das spätere Dokument. In einem zweiten Schritt wird die zwischengespeicherte HTML-Datei dann mittels Print-CSS in ein PDF umgewandelt, wobei die CSS-Datei neben Formatangaben auch Regeln für das Setzen von Seitenzahlen und Fußnoten sowie allgemeine Layout-Regeln enthält. Das so generierte PDF wird im Downloads-Ordner des ausführenden Nutzenden abgespeichert.
Bestandteile und Zusammenspiel von ediarum.PDF
- pdf_print.xsl: Bildet den Kern von ediarum.PDF. Hier werden die zur Umwandlung von XML nach HTML benötigten Templates in der Standardreihenfolge aufgerufen. Die Templates sind unabhängig voneinander und können für spätere projektspezifische Anpassungen wie Bausteine frei kombiniert werden, um so die Reihenfolge der Bestandteile des Dokuments nach belieben anzupassen. Die pdf_print.xsl wird bei Ausführen der PDF-Generierung als zentrales Skript der Standard-Einstellungen von der pdf_print_project.xsl aufgerufen und lädt in der Folge alle weiteren benötigten Skripte.
-
pdf_print_header.xsl: Dieses XSLT-Skript enthält die
Standard-Templates für den
teiHeader
(Kopfblock) des Dokuments. -
pdf_print_content_templates.xsl: Dieses XSLT-Skript enthält die Standard-Templates für den
body
des Dokuments, also Textelemente und Fußnoten. Umfangreichere Programmteile sind als Funktionen in pdf_print_content_functions.xsl ausgelagert und werden eingebunden. - pdf_print_content_functions.xsl: Funktionen für umfangreichere Verarbeitungen in Standard-Templates, werden durch pdf_print_content_templates.xsl aufgerufen.
- ediarum_pdf.html: Datei dient als Speicherort für das temporäre HTML-Dokument, welches die Verarbeitungsgrundlage für das PDF bildet. Wird bei jeder PDF-Generierung überschrieben.
- pdf_print.css: Die CSS-Datei enthält Regeln zum Standard-Layout (Textelemente und Seitenstruktur des PDF) und wird während der PDF-Generierung auf die temporäre ediarum_pdf.html angewandt, um daraus ein PDF zu generieren.
- pdf_print_project.xsl: Das erste Skript, was für die PDF-Generierung aufgerufen wird. Hier sind grundlegende Parameter (z.B. URL für Registerverknüpfung) und Einstellungen (z.B. Darstellung von Sachkommentaren als Fuß- oder Endnoten) gegeben. Das Skript ruft die pdf_print.xsl auf, von der aus die weiteren Templates geladen werden. Falls statt der Standard-Einstellungen projektspezifische Skripte verwendet werden sollen, sind diese hier zu hinterlegen.
- pdf_print_project.css (optional): Falls gewünscht, kann diese Datei für projektspezifische Layout-Anpassungen angelegt werden.
Ablauf: Bei Aufruf der PDF-Generierung wird zuerst das Skript
pdf_print_project.xsl ausgeführt, in dem grundlegende
Parameter und Einstellungen gespeichert sind. Je nach Einstellung werden von hier
aus projektspezifische Skripte und/oder das Standardskript
pdf_print.xsl geladen. Dieses ruft aus den Dateien
pdf_print_header.xsl und
pdf_print_content_templates.xsl (inkl. ausgelagerter
Funktionen aus pdf_print_content_functions.xsl) die Templates
für die Verarbeitung von teiHeader
und body
des
XML-Dokuments in der Standardreihenfolge auf. Die
pdf_print_project.xsl bindet zudem das Standard-Layout
pdf_print.css ein, welches bei projektspezifischen
Anpassungen jedoch durch die pdf_print_project.css überlagert
wird.
Einbindung
ediarum.PDF ist in der Standardinstallation von ediarum.BASE.edit enthalten und kann direkt verwendet werden. Ohne richtig eingerichtete Projektverbindung stehen allerdings nicht alle Funktionen zur Verfügung. Richten Sie dazu eine projektspezifische Anpassung von ediarum.PDF ein.