Benutzer-Werkzeuge

Webseiten-Werkzeuge


developer:dokumentenerstellung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

developer:dokumentenerstellung [2016/08/24 11:42]
moik [4. Dokument generieren]
developer:dokumentenerstellung [2019/08/13 13:48]
Zeile 1: Zeile 1:
-====== FH-Complete LibreOffice Vorlagen ====== 
- 
-{{:​developer:​libreofficedokumenteuebersicht.png|}} 
- 
-===== 1. Vorlage mit LibreOffice erstellen ===== 
- 
-{{:​developer:​unoconv1.png|}} 
- 
-Das Dokument wird vollständig mit [[https://​de.libreoffice.org|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. 
- 
-{{:​developer:​unoconv2.png|}} 
- 
-===== 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 [[http://​notepad-plus-plus.org|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: 
- 
-{{:​developer:​xsltemplateheader.png|}} 
- 
-Felder, die dynamisch befüllt werden sollen, werden durch die entsprechenden XSL Anweisungen ersetzt: 
- 
-{{:​developer:​xslvalueof1.png|}} 
-{{:​developer:​xslvalueof2.png|}} 
- 
-XSL Footer hinzufügen:​ 
- 
-{{:​developer:​xsltemplatefooter.png|}} 
- 
-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:** 
- 
-<code xml> 
-<​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>​ 
-</​code>​ 
- 
-===== 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 ​ 
- 
-  - dynamische Daten werden als XML geladen, z.B. data.xml.php 
-  - passende XSL Vorlage wird aus der Datenbank geholt 
-  - es wird ein temporärer Ordner am Server erstellt 
-  - vorlage.odt wird dorthin kopiert (von system/​vorlage_zip/​) 
-  - content.xml wird durch XSL Transformation erstellt und ebenfalls in dem Ordner abgelegt 
-  - content.xml wird zu ODT dazugezippt ("zip vorlage.odt content.xml"​) ​ 
-  - Dokument kann jetzt direkt als ODT ausgeliefert werden oder noch in PDF konvertiert werden 
-  - 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: 
-Datei ''/​etc/​init/​unoconv.conf''​ anlegen: 
-<​code>​description ​    "​unoconv listener"​ 
- 
-start on runlevel [2345] 
-stop on runlevel [016] 
-respawn 
-expect daemon 
-setuid unoconv 
-exec unoconv -l & 
-</​code>​ 
- 
-===== Use Cases ===== 
- 
-[[developer:​dokumentenerstellung_xsltquickhelp|XSLT Quickhelp]] \\ 
-[[developer:​dokumentenerstellung_bilder|Bilder nachträglich einfügen]] \\ 
-[[developer:​dokumentenerstellung_seitenumbruch|Seitenumbruch einfügen]] \\ 
-[[developer:​dokumentenerstellung_zeilenumbruch|Zeilenumbruch ersetzen]] \\ 
- 
  
/var/www/wiki/data/pages/developer/dokumentenerstellung.txt · Zuletzt geändert: 2019/08/13 13:48 (Externe Bearbeitung)