Experiment: Grundschema für Fragebogen generieren
This commit is contained in:
parent
016c00d5d6
commit
a26bd9f133
3 changed files with 115 additions and 21 deletions
|
|
@ -42,10 +42,10 @@ besonders relevant:
|
|||
logisches Format:: Metadaten + verschachtelte Sequenz von _Block_- und _Inline_-Elementen
|
||||
+
|
||||
- Block-Elemente sind: Paragraph, Table, Image, Drawing
|
||||
- Inline-Elemente sind: Run (=Text-Schnippsel mit einheitlichem Format), Table, Image, Frame
|
||||
- Inline-Elemente sind: Run (=Text-Schnipsel mit einheitlichem Format), Table, Image, Frame
|
||||
+
|
||||
Sowohl Block-, alsauch Inline-Elemente sind direkt mit einem _Style_ ausgezeichnet.
|
||||
Dieser kann sowohl _direkte Foramtierung_ umfassen, aber auch auf einen _definierten Style_
|
||||
Dieser kann sowohl _direkte Formatierung_ umfassen, aber auch auf einen _definierten Style_
|
||||
aus dem Stylesheet (``Formatvorlage'') per Name-ID verweisen.
|
||||
|
||||
[yellow-background]#WIP#
|
||||
|
|
@ -69,6 +69,11 @@ und sofort in Word-Content transformiert wird. Es ergeben sich aber im Detail ei
|
|||
auch noch XML-quoted.
|
||||
- wir haben mehrere Item-Typen, mit einer jeweils anderen Datenstruktur => Polymorphismus
|
||||
|
||||
NOTE: es ist mit den gegebenen Mitteln nicht möglich, das Tabellen-Styling zu steuern.
|
||||
Man könnte der ganzen Tabelle einen Style zuweisen, und man kann den Parahgraphs
|
||||
in jeder Zelle einen Style zuweisen (oder sie manuell formatieren). Jedoch
|
||||
kein Zugriff auf Rahmenarten, Cell-Alignment, Shading
|
||||
|
||||
Verarbeitungs-Schema
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
[yellow-background]#(dies ist der Plan zur Implementierung)#:
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1684368494840" ID="ID_1680262238" MODIFIED="1684377529586" POSITION="right" TEXT="Vor-Analyse (Hermann)">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1684377232205" ID="ID_1958647529" MODIFIED="1684377240495" TEXT="Word-Dokument">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684377241659" ID="ID_211996471" MODIFIED="1684425608790" TEXT="Analyse">
|
||||
<node COLOR="#435e98" CREATED="1684377241659" ID="ID_211996471" MODIFIED="1684438272776" TEXT="Analyse">
|
||||
<icon BUILTIN="info"/>
|
||||
<node COLOR="#338800" CREATED="1684377247978" ID="ID_274709233" MODIFIED="1684377253589" TEXT="XML direkt anschauen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -80,30 +80,89 @@
|
|||
<node CREATED="1684377307327" ID="ID_308902955" MODIFIED="1684377320981" TEXT="Nur Liste der Paragraphen funktioniert"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684377338918" ID="ID_350207560" MODIFIED="1684425582574" TEXT="Experimente">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684377348301" ID="ID_1351208320" MODIFIED="1684377523104" TEXT="gewünschte Struktur generieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1684377363350" ID="ID_1722191248" MODIFIED="1684377417600" TEXT="Paragraph Level-1">
|
||||
<node COLOR="#338800" CREATED="1684377338918" ID="ID_350207560" MODIFIED="1684438265559" TEXT="Experimente">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1684377348301" ID="ID_1351208320" MODIFIED="1684437598098" TEXT="gewünschte Struktur generieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1684377363350" ID="ID_1722191248" MODIFIED="1684435087712" TEXT="Paragraph Level-1">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1684377418572" ID="ID_789579724" MODIFIED="1684377419307" TEXT="Überschrift-Anhang-1"/>
|
||||
</node>
|
||||
<node CREATED="1684377374641" ID="ID_656323449" MODIFIED="1684377423139" TEXT="Paragraph Level-2">
|
||||
<node COLOR="#338800" CREATED="1684377374641" ID="ID_656323449" MODIFIED="1684435090344" TEXT="Paragraph Level-2">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1684377424067" ID="ID_1421156201" MODIFIED="1684377425518" TEXT="Überschrift-Anhang-2"/>
|
||||
<node CREATED="1684377428482" ID="ID_260102370" MODIFIED="1684377432598" TEXT="Name der Seite"/>
|
||||
</node>
|
||||
<node CREATED="1684377374641" ID="ID_1529315456" MODIFIED="1684377441772" TEXT="Paragraph Level-3">
|
||||
<node COLOR="#338800" CREATED="1684377374641" ID="ID_1529315456" MODIFIED="1684435092168" TEXT="Paragraph Level-3">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1684377424067" ID="ID_287818753" MODIFIED="1684377444684" TEXT="Überschrift-Anhang-3"/>
|
||||
<node CREATED="1684377428482" ID="ID_1765680266" MODIFIED="1684377451459" TEXT="Fragen zu den ...."/>
|
||||
</node>
|
||||
<node CREATED="1684377453023" ID="ID_86415285" MODIFIED="1684377463473" TEXT="Item-Paragraph">
|
||||
<node COLOR="#338800" CREATED="1684377453023" ID="ID_86415285" MODIFIED="1684435093400" TEXT="Item-Paragraph">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1684377464360" ID="ID_1556523011" MODIFIED="1684377467816" TEXT="Fragebogen-Item"/>
|
||||
<node CREATED="1684377469205" ID="ID_582132926" MODIFIED="1684377473847" TEXT="Frage-Text"/>
|
||||
</node>
|
||||
<node CREATED="1684377476614" ID="ID_1573790382" MODIFIED="1684377479271" TEXT="Tabelle einfügen">
|
||||
<node COLOR="#338800" CREATED="1684377476614" ID="ID_1573790382" MODIFIED="1684437513565" TEXT="Tabelle einfügen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1684377484011" ID="ID_560492731" MODIFIED="1684377492777" TEXT="3 Zeilen, 6 Spalten"/>
|
||||
<node CREATED="1684377501825" ID="ID_689639952" MODIFIED="1684377508492" TEXT="1. Zeile : Überschriften"/>
|
||||
<node CREATED="1684377514623" ID="ID_747959819" MODIFIED="1684377521302" TEXT="Soll / IST / Kästchen"/>
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1684437520800" ID="ID_1368061567" MODIFIED="1684437543301" TEXT="Tabelle formattieren?">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1684437535460" ID="ID_1343724254" MODIFIED="1684437539345" TEXT="kaum möglich"/>
|
||||
<node CREATED="1684437548824" ID="ID_590685233" MODIFIED="1684437564817" TEXT="Zugriff auf die <w:tcPr> nicht dokumentiert"/>
|
||||
<node CREATED="1684437569501" ID="ID_1845621487" MODIFIED="1684437580435" TEXT="nur einige Basis-Einstellungen auf das API herausgeführt"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1684438100831" ID="ID_153078788" MODIFIED="1684438263693" TEXT="Einsichten">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1684438106326" ID="ID_1797565143" MODIFIED="1684438169141" TEXT="die Style-Namen via python-docx sind doch so wie in Word angezeigt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...und nicht die reine Name-ID, die man im document.xml bzw. styles.xml sieht. Da passiert anscheinend eine Übersetzung
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1684438169989" ID="ID_1369606274" MODIFIED="1684438196649" TEXT="man sollte sich die verfügbaren Styles auflisten lassen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
styles = document.styles
|
||||
</p>
|
||||
<p>
|
||||
paragraph_styles = [
|
||||
</p>
|
||||
<p>
|
||||
    s for s in styles if s.type == WD_STYLE_TYPE.PARAGRAPH
|
||||
</p>
|
||||
<p>
|
||||
]
|
||||
</p>
|
||||
<p>
|
||||
for style in paragraph_styles:
|
||||
</p>
|
||||
<p>
|
||||
    print(style.name)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1684438201571" ID="ID_618211899" MODIFIED="1684438214862" TEXT="eine Tabellen-Zelle enthält sofort bereits ein Paragraph-Objekt"/>
|
||||
<node CREATED="1684438227094" ID="ID_913420734" MODIFIED="1684438246964" TEXT="table.cell(r,c).paragraphs[0] kann man direkt zuweisen">
|
||||
<node CREATED="1684438247707" ID="ID_1684078459" MODIFIED="1684438248727" TEXT="text"/>
|
||||
<node CREATED="1684438249187" ID="ID_1947821880" MODIFIED="1684438250519" TEXT="style"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -152,7 +211,7 @@
|
|||
<node CREATED="1684425268727" ID="ID_569253793" MODIFIED="1684425284341" TEXT="Word-Content generieren">
|
||||
<icon BUILTIN="full-3"/>
|
||||
<node CREATED="1684425436481" ID="ID_1432225079" MODIFIED="1684425441508" TEXT="das Word-Dokument öffnen"/>
|
||||
<node CREATED="1684425442736" ID="ID_799029616" MODIFIED="1684425462145" TEXT="die mehrstufie Liste traversieren"/>
|
||||
<node CREATED="1684425442736" ID="ID_799029616" MODIFIED="1684427181758" TEXT="die mehrstufige Liste traversieren"/>
|
||||
<node CREATED="1684425463349" ID="ID_844088811" MODIFIED="1684425494890" TEXT="auf jedem Block-Element eine polymorphe render(wordDocument)-Funktion aufrufen"/>
|
||||
<node CREATED="1684425501667" ID="ID_540891287" MODIFIED="1684425508752" TEXT="Word-Dokument unter neuem Namen speichern"/>
|
||||
</node>
|
||||
|
|
|
|||
|
|
@ -7,17 +7,47 @@ from pprint import pprint
|
|||
|
||||
document = Document('Thesis-Fragebogen.docx')
|
||||
|
||||
for par in document.paragraphs:
|
||||
print(par.text)
|
||||
print("---style||" + par.style.name)
|
||||
print("############")
|
||||
for tab in document.tables:
|
||||
print("...style||" + tab.style.name)
|
||||
pprint(dir(tab.style))
|
||||
# for par in document.paragraphs:
|
||||
# print(par.text)
|
||||
# print("---style||" + par.style.name)
|
||||
# print("############")
|
||||
# for tab in document.tables:
|
||||
# print("...style||" + tab.style.name)
|
||||
# pprint(dir(tab.style))
|
||||
# pp = par.part
|
||||
# pprint(dir(pp))
|
||||
# for r in par.runs:
|
||||
# pprint(r.text)
|
||||
|
||||
|
||||
from docx.enum.style import WD_STYLE_TYPE
|
||||
|
||||
styles = document.styles
|
||||
paragraph_styles = [
|
||||
s for s in styles if s.type == WD_STYLE_TYPE.PARAGRAPH
|
||||
]
|
||||
for style in paragraph_styles:
|
||||
print(style.name)
|
||||
|
||||
document.add_paragraph('Fragebogen (TODO Import)', style='Überschrift-Anhang 1')
|
||||
document.add_paragraph('Fragen zur Verzwergung', style='Überschrift-Anhang 2')
|
||||
document.add_paragraph('Hoffnungslosigkeit', style='Überschrift-Anhang 3')
|
||||
|
||||
document.add_paragraph('Ich könnte mir jeden Tag die Kugel geben', style='Fragebogen-Item')
|
||||
|
||||
table = document.add_table(rows=3, cols=6)
|
||||
|
||||
labels = ['niemals','vielleicht','manchmal','immer', 'sowieso']
|
||||
|
||||
for r in table.rows:
|
||||
for c in r.cells:
|
||||
c.paragraphs[0].style = 'Frabebogen-Wert'
|
||||
|
||||
for c in range(1,6):
|
||||
table.cell(0,c).paragraphs[0].text = labels[c-1]
|
||||
table.cell(1,c).paragraphs[0].text = '□'
|
||||
table.cell(2,c).paragraphs[0].text = '□'
|
||||
|
||||
table.cell(1,0).paragraphs[0].text = "IST"
|
||||
table.cell(2,0).paragraphs[0].text = "SOLL"
|
||||
|
||||
document.save('Mist.docx')
|
||||
|
|
|
|||
Loading…
Reference in a new issue