How to write OOXML attribute 'vert' of <bodyPr> element to ODF?

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

 



Hi all,

Currently the "vert" attribute of <bodyPr> element is connected to TextPreRotateAngle property. vert="vert" produces TextPreRotateAngle=-90 and vert="vert270" produces TextPreRotateAngle=-270. When converting it to ODF it produces draw:text-rotate-angle="-90" and draw:text-rotate-angle="-270".

That approach does not work, because the ODF attribute draw:text-rotate-angle produces a rotation of the text area rectangle, same as the 'rot' attribute of element <bodyPr> in OOXML. Try with attached file the export to ODF and reload to see the problem.

For using draw:text-rotate-angle attribute it would be necessary to change the values of the draw:text-areas attribute in addition. But this requires introducing additional equations and it conflicts with the definitions of the predefined shapes of the presets.

My idea is to introduce a new loext:text-direction attribute of the <draw:enhanced-geometry> element, which can carry each of the values of the OOXML attribute 'vert'. "Each" needs to be discussed, perhaps better to exclude values eaVert and mongolianVert, which in fact are writing modes TB_RL and TB_LR. Possible values would be ("eaVert"), "horz", ("mongolianVert"), "vert", "vert270", "wordArtVert" and "wordArtVertRtl".

The CustomShapeGeometry property, which is a sequence, would get a new property "TextDirection". Import from OOXML or from ODF-extended would put the value into it without any rotate-angle calculations. Evaluation of the attribute would be at rendering time in ViewContactOfSdrObjCustomShape::createViewIndependentPrimitive2DSequence(). The current used attribute TextPreRotateAngle would be removed. Currently it can be used in the CustomShapeGeometry sequence via macro, but is not published in the API and has no UI.

Currently we have a confusion of attribute 'vert' and attribute 'rot' resulting in bug 124437 (assigning the angle of the 'rot' attribute to TextPreRotateAngle, which produces sheared text) and bug 127457 (value of attribute 'vert' overwrites value of 'rot'). Therefore I prefer an enum (or constants in API or string?) so that such errors cannot happen.

What do you think?

Kind regards,
Regina

Attachment: vert270.pptx
Description: Binary data


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

  Powered by Linux