Hi all,
I have started to familiarize myself with the topic 'text in custom
shapes'. My goal is to clean up the current mess and eliminate mistakes.
It is possible to rotate the text area into which the text is written in
addition to a rotation of the shape itself. That is done in ODF by the
attribute draw:text-rotate-angle of the element
<draw:enhanced-geometry>. That corresponds to the property
TextRotateAngle of our API. And OOXML has a similar attribute "rot" of
the element bodyPr. So there is no principle problem with this
attribute. But the import of OOXML is buggy (tdf#127437) and the text
frame solution for custom shapes in Writer does not allow rotation.
But OOXML has two attributes in this area that have no counterpart in ODF.
1. The attribute "vert" of the bodyPr element.
The attribute "vert" defines the text orientation. Possible values are
"eaVert", "horz", "mongolianVert", "vert", "vert270", "wordArtVert" and
"wordArtVertRtl". The UI of my MS Offic 365 has it as "Text direction".
The UI of my MS Office 365 has only "horz" = Horizontal, "eaVert" =
Vertical, "vert" = Rotate all text 90°", "vert270" = Rotate all text
270°" and "wordArtVert" = Stacked.
From this I have expected a property with enum-values in LO. But I have
only found a property "TextPreRotateAngle" (without API).
There seems to be a lot of confusion between text orientation and text
area rotation. So simulating the "vert" and "vert270" text orientation
by using text area rotation has at least the bugs tdf#127438 and
tdf#127439. I expect, that some bugs in Calc about wrong text or wrong
shape rotation belong in this category too.
2. The attribute "upright" of the bodyPr element
The attribute "upright" defines, that the text is always shown upright
and all transformations applied to the text or to the containing shape
are ignored.
I find it in the UI of MS Office 365 only in Word, but it works in
PowerPoint and Excel too. In the UI it is a checkbox "Do not rotate
text". In binary MS Office it seems to be the flag fRotateText.
I see it for OOXML only as comment in
https://opengrok.libreoffice.org/xref/core/oox/source/drawingml/textbodypropertiescontext.cxx?r=e7c0bc48#103.
So it seems to be not implemented at all.
For binary import I see it in
https://opengrok.libreoffice.org/xref/core/filter/source/msfilter/msdffimp.cxx?r=71740e63#2831,
where it is immediately interpreted and not available after import is
finished.
What to do with attribute "upright"?
Something wrong? Something missing?
Kind regards
Regina
Context
- clean up "text in custom shapes" · Regina Henschel
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.