Benutzer-Werkzeuge

Webseiten-Werkzeuge


developer:dokumentenerstellung

Dies ist eine alte Version des Dokuments!


FH-Complete LibreOffice Vorlagen

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 unoconv funktioniert, muss es am Server installiert sein (ca. 500MB):

apt-get install unoconv

Außerdem muss der unoconv Listener laufen:

FORK

unoconv --listener &

UPSTART

Nur bis einschließlich Ubuntu 14.04!
Folgende versionen verwenden systemd.
Datei FHC-github nach /etc/init/unoconv.conf kopieren und gegebenenfalls anpassen.

setuid gibt den Usernamen an

# initctl reload-configuration ausführen, um die neue konfiguration zu laden
# start unoconv um den Dienst zu starten
# status unoconv um den Status abzufragen
Das zugehörige Log befindet sich in /var/log/upstart/unoconv.log

SYSTEMD

Nur bis einschließlich Ubuntu 14.04!
Folgende versionen verwenden systemd.
Datei FHC-github nach /etc/init/unoconv.conf kopieren und gegebenenfalls anpassen.

setuid gibt den Usernamen an

# initctl reload-configuration ausführen, um die neue konfiguration zu laden
# start unoconv um den Dienst zu starten
# status unoconv um den Status abzufragen
Das zugehörige Log befindet sich in /var/log/upstart/unoconv.log

FHC-github

Use Cases

/var/www/wiki/data/attic/developer/dokumentenerstellung.1472039568.txt.gz · Zuletzt geändert: 2019/08/13 13:49 (Externe Bearbeitung)