Ich möchte eine Präsentation mit Daten aus einer Datenbank erstellen. Ich bekomme gültige Präsentationen, die in PowerPoint geöffnet werden (die Open XML Productivity Tool des SDK 2.5 ist eine große Hilfe dabei). Aber wie berechnet man die Größe der Textboxformen? Ich sehe, wo die Werte zu setzen sind, aber new Extents()
Standardwerte auf Null Breite und Höhe. Wenn ich einige Werte einer Shape
aus einer vorhandenen Präsentation nehme, kann ich die richtige Höhe bekommen (zumindest für Texte mit einer Zeile oder einer festen Anzahl von Zeilen), aber der Text wird nach rechts oder unten überlaufen (je nach Wortumbruch-Einstellung).Berechnen Sie die Größe (Extents) eines Textes (TextBody) in OpenXML (PresentationML) PowerPoint (PPTX)
Auch NormalAutoFit
im BodyProperties
des TextBody
Einfügen nicht hilft - die erforderlichen Werte für FontScale
und LineSpaceReduction
werden nicht berechnet in OpenXML.
Also, was ist die beste Praxis für die Einstellung der Extents
von Shape
mit TextBody
?
Gibt es einen eingebauten Weg, um die Extents
einer gegebenen TextBody
oder Shape
zu berechnen? (Eine Faustregel mit eingebauten Methoden wäre besser als nichts)
Ich weiß, dass PowerPoint die Werte von NormalAutoFit
nach jeder Änderung neu berechnet (zumindest für eine Reihe von Folien vor und nach dieser Änderung), Dies hilft jedoch nicht, wenn die Präsentation gestartet wird, bevor eine Änderung vorgenommen wurde (oder wenn sie mit dem PowerPoint-Viewer gestartet wurde).
Ich habe das gleiche Problem und habe einige Fortschritte durch die Skalierung von den Ausmaßen zurück von TextRenderer.MeasureText() zum umgebenden Textfeld gemacht. Aber die Textgrößen sind nicht so eng um den Text wie die neu berechnete Skalierung von Powerpoint. Und ich bin ein bisschen weiter gekommen, indem ich die führende von der Höhe und die Zeichenbreite von der Breite abgezogen habe. Weitere Ideen sind willkommen. –