Dies ist eine alte Version des Dokuments!
Das Dokument wird vollständig mit LibreOffice erstellt. Die Felder, die dynamisch von der Datenbank befüllt werden sollen, werden mit Platzhaltern versehen.
Das Dokument wird als vorlage.odt unter fhcompletepfad/system/vorlage_zip/
gespeichert.
Die Datei vorlage.odt wird in vorlage.zip umbenannt. Dann kann diese mit einem Archivprogramm geöffnet werden. Die darin enthaltenen Dateien content.xml und styles.xml werden entpackt. Die Datei content.xml enthält den Großteil der Daten. Die Datei styles.xml enthält Formatierungen für Kopf- und Fußzeilen. Falls die Kopf- und Fußzeile keine dynamischen Daten enthält, muss diese nicht entpackt und angepasst werden.
Linux: Das XML File kann mit xmlstarlet Formatiert werden damit es besser lesbar ist:
xmlstarlet fo content.xml > content_formatted.xml
Windows: Der Editor Notepad++ kann mit dem Plugin „XML Tools“ um Funktionen zur Bearbeitung und Formatierung von XML-Dateien erweitert werden.
XSL Anweisungen hinzufügen
Im oberen Teil des XML Dokuments muss der XSL Header eingefügt werden:
Felder, die dynamisch befüllt werden sollen, werden durch die entsprechenden XSL Anweisungen ersetzt:
XSL Footer hinzufügen:
Die geänderte content.xml Datei wird in der Datenbank als Vorlage gespeichert. Dazu wird der Inhalt der Datei in die Spalte „text“ der Tabelle public.tbl_vorlagestudiengang gespeichert.
Folgende XSL-Vorlage kann mittels copy & paste übernommen werden:
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" > <xsl:output method="xml" version="1.0" indent="yes"/> <xsl:template match=""> </xsl:template> </xsl:stylesheet>
Die dynamischen Daten werden als XML im Order RDF zur Verfügung gestellt.
Das Script pdfExport.php erstellt das Dokument:
https://vilesci.fhcomplete.org/content/pdfExport.php?xml=data.xml.php&xsl=vorlage&output=pdf
Konvertierung in PDF: Das ODT Dokument wird mit dem Programm unoconv in ein PDF umgewandelt:
unoconv -e IsSkipEmptyPages=false --stdout -f pdf vorlage.odt > dokument.pdf
Mit dem Parameter „-f doc“ könnte das Dokument auch in ein Word Dokument umgewandelt werden. Damit unoconv funktioniert, muss es am Server installiert sein (ca. 500MB):
apt-get install unoconv
Außerdem muss der unoconv Listener laufen:
unoconv --listener &
Datei /etc/init/unoconv.conf
anlegen:
description "unoconv listener" start on runlevel [2345] stop on runlevel [016] respawn expect daemon setuid unoconv exec unoconv -l &