[[vilesci:allgemeines|zurück zur Übersicht]] ====== FH-Complete LibreOffice Vorlagen ====== {{:developer:libreofficedokumenteuebersicht.png|Libre Office Dokumentübersicht}}\\ **Abbildung:** Libre Office Dokumentübersicht ===== 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:** ===== 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 die Konvertierung gelingt, muss der unoconv Listener laufen. Näheres wird in der [[fh-complete:dokumentenerstellung|Dokumentenerstellung]] erläutert. ===== 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]] \\