Hallo,
für einen Export von xml nach Word docx müsste ich die "optimale" Breite z.B. einer Tabellenspalte berechnen, anhand des Inhalts. Ist in erster Näherung die Summe der Breite der Zeichen. Damit sieht mein Output aber noch häßlich aus. 🙁
Wenn ich aber jetzt Formatierungen (fett, hochgestellt...) oder Fußnoten oder Aufzählungen und so'n Kack (uups) auch berücksichtigen würde, müsste ich viel Aufwand betreiben?
Gibt es einen easy way? Irgend eine Magie? Kann mir Word sowas berechnen? 🙂
Ich bin unterwegs mit OpenXML mit SDK 2.0
Also, für jeden Schubser in eine richtige Richtung wäre ich dankbar!
Hallo!
Das wird sehr schwierig werden.
Erster Ansatzpunkt ist der darstellende Font. Dann ein Graphics-Objekt erstellen, und die Ausmaße der Inhalte einer Spalte nacheinander abfragen (irgendeine Measure-Methode im Graphics-Objekt), den größten Wert nehmen, und in das Koordinatensystem für die Worddatei umrechnen.
Aber selbst dann wirst du nur Näherungswerte haben, alleine schon durch die ganzen Umrechnungen.
Nobody is perfect. I'm sad, i'm not nobody 🙁
Danke Tom,
Das wäre eine Lösung. Aber hui, das wäre ja für die Gallerie.
Mit deinem Vorschlag im Hinterkopf habe ich mir jetzt aber noch dieses überlegt:
Bei einem Absatzformat den linken Rand fix setzen und den rechtem Rand solange verkleinern, bis der enthaltene Text umgebrochen wird. Dann wäre die Differenz der Ränder ja die Satzbreite?!
Ich kenn mich leider nicht mit der OpenXML SDK aus, aber vielleicht hilft's ja trotzdem:
Die Zellen bzw. Spalten in Word haben eine "bevorzugte Breite", wenn diese nicht gesetzt ist, passt Word automatisch die Breite der Spalte an den Inhalt an.
Vielleicht hast du die Möglichkeit eben dieses zu setzen.
Gruß
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
coole Idee!
die Auto-Breite würde abhängig vom Inhalt eine Spalte definieren. Evtl. kann ich hier dann die Breite (z.B. in twips oder so) auslesen!
Danke.