clean up "text in custom shapes"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
_______________________________________________
LibreOffice mailing list
LibreOffice@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/libreoffice




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux