Difference between revisions of "TextAlignment"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Text Alignment - OpenOffice.org vs. OpenDocument)
(Solution)
Line 23: Line 23:
  
 
It looks like as this issue is easy to fix:
 
It looks like as this issue is easy to fix:
- Just change OOo's interpretation of <code>LEFT/START</code> and <code>RIGHT/END</code> and everything is ok.
+
* Just change OOo's interpretation of <code>LEFT/START</code> and <code>RIGHT/END</code> and everything is ok.
  
 
Unfortunately, it is not that easy :(
 
Unfortunately, it is not that easy :(
 +
* OOo has corresponding UNO-APIs for the text alignment, namely com::sun::star::style::ParagraphProperties for paragraph and com::sun::star::table::CellProperties for the paragraphs in table cells.
 +
These UNO-APIs have writing direction independent text alignment values <code>LEFT</code> and <code>RIGHT</code>.

Revision as of 07:59, 22 July 2010

WORK IN PROGRESS

Issue 105270 - see here

The following is about how to solve issue 105270 for OpenOffice.org.

Text Alignment - OpenOffice.org vs. OpenDocument

In OpenOffice.org (OOo) the text alignment attribute values LEFT and RIGHT are treated independent from the writing direction of the paragraph.

In OpenDocument (ODF) which relies on XSL - http://www.w3.org/TR/xsl/#text-align - the text alignment attribute values LEFT and RIGHT are mapped to START and END respectively and are dependent on the writing direction of the paragraph.

This is the root cause of issue 105270. The text alignment of a paragraph whose writing direction is right-to-left and which is text-aligned at the right border is stored by OOo by ODF attribute fo:text-align="END". fo:text-align="END" is interpreted by OOo as internal text alignment attribute value RIGHT in order to align the paragraph at the right border. But, this is not correct. According to ODF the text alignment attribute value END means that the paragraph is text-aligned at the end-edge in the writing direction. For a right-to-left paragraph this is the left border.

Solution

It looks like as this issue is easy to fix:

  • Just change OOo's interpretation of LEFT/START and RIGHT/END and everything is ok.

Unfortunately, it is not that easy :(

  • OOo has corresponding UNO-APIs for the text alignment, namely com::sun::star::style::ParagraphProperties for paragraph and com::sun::star::table::CellProperties for the paragraphs in table cells.

These UNO-APIs have writing direction independent text alignment values LEFT and RIGHT.

Personal tools