diff --git a/sosci2word/_README.txt b/sosci2word/_README.txt index 2cf913c..afb2fd5 100644 --- a/sosci2word/_README.txt +++ b/sosci2word/_README.txt @@ -28,7 +28,26 @@ vorgesehen ist; eine 80%-Lösung ist bereits mehr als genug. Format des SoSci-XML ~~~~~~~~~~~~~~~~~~~~ -[red]#TODO# +Es handelt sich um ein XML-Dokument mit DTD-Document-Type. +Die Struktur gliedert sich in eine Sammlung von `
`-Elementen, in denen +die einzelnen Items als `` aufgelistet sind. An diese Sequenz mit Inhalten +schließt sich ein Element `` an, in das ein HTML-Template direkt +eingebettet ist. + +Als letzter Abschnitt folgt ein Element ``, in dem aus den +gesammelten Inhalten der konkrete Online-Fragebogen zusammengestellt wird. +Dieser Abschnitt enthält eine Menge von Attributen im key/value-Format. +Im Besonderen das Attribut `"content"` enthält ein verschachteltes XML-Dokument, +eingebettet als XML-quoted text. Dieses verschachtelte Dokument listet eine +Folge von ``-Elementen auf, welche wiederum jeweils eine Liste von +``-Elementen enthalten; diese referenzieren per ID auf die Definitionen +und Inhalte für die einzelnen Items. Zusätzlich können weitere Seiteninhalte +direkt als HTML-Elemente hinzugefügt werden, welche dann als CDATA eingebettet sind. + +Für die Generierung der Darstellung im Word-Format bietet es sich daher an, +dieser Auflistung zu folgen, und die per ID referenzierten Elemente aus einem +Dictionary zu entnehmen. + Format der Word-Datei ~~~~~~~~~~~~~~~~~~~~~ @@ -48,7 +67,6 @@ Sowohl Block-, alsauch Inline-Elemente sind direkt mit einem _Style_ ausgezeichn Dieser kann sowohl _direkte Formatierung_ umfassen, aber auch auf einen _definierten Style_ aus dem Stylesheet (``Formatvorlage'') per Name-ID verweisen. -[yellow-background]#WIP# Implementierung @@ -104,7 +122,21 @@ Die Verarbeitung untergliedert sich in drei Phasen: * Word-Dokument unter neuem Namen speichern -[yellow-background]#WIP# - +Anwendung +~~~~~~~~~ + +Das eigentliche Python-Skript habe ich dann in einer einzigen ``Demo-Coding-Sitzung'' +zusammen mit Daniela Zutavern entwickelt und getestet. Am Ende dieser Sitzung konnte +ein Word-Dokument generiert werden, welches dann in das bereits bestehende Dokument +für ihre Bachelor-Arbeit importiert wurde. Seitenumbrüche und Überschriften wurden +sodann manuell formatiert und angeglichen. + +Zusammenfassend kann dieses kleine Projekt als Erfolg gewertet werden; es wurde viel +Zeit bei der Aufbereitung der Arbeit gespart, und die eingebundenen Inhalte sind +dargestellt in perfekter Qualität, ohne das Dokument nennenswert durch Grafik-Inhalte +zu belasten. + +Die Erstellung der Bachelor-Arbeit war Anfang August 2023 abgeschlossen. +Diese Abschlußarbeit wurde mit Note 1.7 bewertet. diff --git a/sosci2word/_SoSci2Word.mm b/sosci2word/_SoSci2Word.mm index 81f746f..c29e114 100644 --- a/sosci2word/_SoSci2Word.mm +++ b/sosci2word/_SoSci2Word.mm @@ -2,9 +2,7 @@ - - - +

SoSci @@ -20,9 +18,7 @@ - - - +

Installation @@ -43,9 +39,7 @@ - - - +

pip3 install python-docx @@ -120,9 +114,7 @@ - - - +

...und nicht die reine Name-ID, die man im document.xml bzw. styles.xml sieht. Da passiert anscheinend eine Übersetzung @@ -132,9 +124,7 @@ - - - +

styles = document.styles @@ -225,8 +215,8 @@ - - + + @@ -315,8 +305,10 @@ - - + + + + @@ -349,9 +341,7 @@ - - - +

dadurch entsteht eine hierarchische Struktur @@ -383,9 +373,7 @@ - - - +

Images, Tables.... @@ -395,9 +383,7 @@ - - - +

each Paragraph @@ -408,9 +394,7 @@ - - - +

embedded images, frames, embedded tables @@ -420,9 +404,7 @@ - - - +

each Run @@ -464,9 +446,7 @@ - - - +

eine formale Sprache @@ -475,9 +455,7 @@ - - - +

hat eine mathematisch präzise Syntax und Semantik @@ -536,9 +514,7 @@ - - - +

um eine neue Instanz zu erzeugen, @@ -547,8 +523,7 @@ ruft man die "Konstruktor-Funktion auf"

- -
+
@@ -561,9 +536,7 @@ - - - +

Modul python-doxc @@ -581,9 +554,7 @@ - - - +

Beim Schreiben wird der bestehende Content verworfen und durch einen einzigen Run ersetzt, der den gegebenen Text ohne weitere Formatierungen enthält @@ -595,9 +566,7 @@ - - - +

Modul elementtree @@ -614,9 +583,7 @@ - - - +

>>> from html import unescape
 >>> unescape('"')