Inhaltsverzeichnis

zurück zur Übersicht

FH-Complete LibreOffice Vorlagen

Libre Office Dokumentübersicht
Abbildung: Libre Office Dokumentübersicht

1. Vorlage mit LibreOffice erstellen

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.

2. XML Datei entpacken

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.

3. Dynamische Daten hinzufügen

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>

4. Dokument generieren

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

  1. dynamische Daten werden als XML geladen, z.B. data.xml.php
  2. passende XSL Vorlage wird aus der Datenbank geholt
  3. es wird ein temporärer Ordner am Server erstellt
  4. vorlage.odt wird dorthin kopiert (von system/vorlage_zip/)
  5. content.xml wird durch XSL Transformation erstellt und ebenfalls in dem Ordner abgelegt
  6. content.xml wird zu ODT dazugezippt („zip vorlage.odt content.xml“)
  7. Dokument kann jetzt direkt als ODT ausgeliefert werden oder noch in PDF konvertiert werden
  8. Temporärer Ordner wird wieder gelöscht nachdem die Datei ausgeliefert wurde

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 die Konvertierung gelingt, muss der unoconv Listener laufen. Näheres wird in der Dokumentenerstellung erläutert.

Use Cases

XSLT Quickhelp
Bilder nachträglich einfügen
Seitenumbruch einfügen
Zeilenumbruch ersetzen