Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Most objects within a CHILI document inherit from ? Document Object Model - DocumentBase. These objects are totally under CHILI's own control. To leverage Flex's unmatched the text rendering capabilities, however, we have chosen to implement some basic Flex objects within our object model. The most important is the "TextFlow" object, containing the description of a running text and its formatting.

While this is used as the basic object for running texts, it is not a "pure" TextFlow implementation:

  • Not all properties of

    Flex's

    TextFlow are supported within the context of CHILI documents

  • A large amount of additional functionalities have been built around the basic text editing capabilities

Lower on this page you can find a list of the supported properties (both basic and CHILI-extended). In addition to that, TextFrames, ViewPreferences, Story Editor and many more objects contain more settings to influence text editing within those contexts.

...

The three main uses for TextFlow objects in XML are:

See ? TextFrame XML and ? Variables XML for more information.

...

A TextFlow Object consists of XML describing the text and its formatting. It should contain at a minimum the following content:

xml
Code Block
lang
<TextFlow
   xmlns="http://ns.adobe.com/textLayout/2008"
   whiteSpaceCollapse="preserve"
   >
   <p><span>SOME TEXT</span></p>
</TextFlow>

...

Basic formatting
The formatting of each individual span can inherit values from the paragraph. Note that a span does NOT inherit values from a previous span (although this would be enforced internally if the user edits text formatting through the Editor which creates a new span)

Code Block
langxml
<TextFlow
   xmlns="http://ns.adobe.com/textLayout/2008"
   whiteSpaceCollapse="preserve"
   >
   <p fontSize="10"><span fontSize="15">15 points, </span><span>10 points, from paragraph</span><span fontSize="20">20 points</span></p>
</TextFlow>

...

Each span node can also contain "br" or "tab" nodes to indicate soft returns and tabs within the paragraph:

Code Block
langxml
<TextFlow
   xmlns="http://ns.adobe.com/textLayout/2008"
   whiteSpaceCollapse="preserve"
   >
   <p><span>SOME<tab/>TEXT<br/>Across multiple lines</span></p>
</TextFlow>

...

Paragraph and span nodes can contain any custom attribute as well. While these objects do not inherit from DocumentBase (and therefore can't have a "privateData" sub-node, any attribute not recognized during parsing will be maintained:

xml
Code Block
lang
<TextFlow
   xmlns="http://ns.adobe.com/textLayout/2008"
   whiteSpaceCollapse="preserve"
   >
   <p MY_PROP_1="aaa"><span MY_PROP_2="bbb">Some Text</span></p>
</TextFlow>

...

This object is mainly used as a placeholder for the various formatting options which are TextFlow specific (non-CHILI objects) of Character and Paragraph Styles. In both cases, a "format" property exists, which holds the various supported properties:

xml
Code Block
xml
<document>
  <paragraphStyles>
    <item id="123-456-789" name="MY_FIRST_PAR_STYLE" applyToNewFrames="true">
      <format fontFamily="Arial_Regular" fontSize="15" />
    </item>
 </paragraphStyles>
  <characterStyles>
    <item id="567-890-123" name="MY_FIRST_CHAR_STYLE" >
      <format fontFamily="Arial_Bold" fontSize="25" />
    </item>
 </characterStyles>
</document>

...

Similarly, some property values may appear in other locations (eg: "fontFamily" might also be present in a paragraph node). While this would pose less of an issue, it is recommended to only apply them on the locations marked relevant below.

Name

p

span

ITextLayoutFormat

Description

fontFamily

no

yes

yes

A reference to a font within the document, using that font's family + "_" + style.
So, for <fonts><item id="xxx" name="Arial Bold" family="Arial" style="Bold" /></fonts>,
the "fontFamily" in a textFlow should be "Arial_Bold". (see lower)

fontSize

no

yes

yes

The font size.
Default = 12
Value must be a number (points are assumed)

baselineShift

no

yes

yes

The baseline shift of the characters. Valid values are:
- a number
- "superscript"
- "subscript"

color
my_color

no

yes

Only "color", as an uint/hex value
The reference to the CHILI color is maintained
on the containing style as a separate property.

The "color" and "my_color" properties should be combined in a textFlow, with:
- my_color containing the ID of the CHILI color (NOTE: gradient colors are not currently supported)
- color containing the uint/hex RGB display value of that color

my_characterStyle

no

yes

no

ID of the linked CHILI CharacterStyle (see lower)

my_paragraphStyle

yes

no

no

ID of the linked CHILI ParagraphStyle (see lower)

lineHeight

no

yes

yes

Matches the "leading" setting in the editor (Character Settings Panel)
Default = "120%"
Only percentage values are allowed

trackingRight

no

yes

yes

Matches the "tracking" setting in CHILI Editor (Character Settings Panel)
Default = 0
Value must be a number (points are assumed)

textAlign
textAlignLast

yes

no

par. style only

Alignment of the text in a paragraph (and alignment of the last line of a paragraph)
Valid values are:
- left
- center
- right
- justify

typographicCase

no

yes

yes

Matches the "Case" setting in CHILI Editor (Character Settings Panel)
Valid values are:
- default
- uppercase
- lowercase

paragraphSpaceBefore
paragraphSpaceAfter

yes

no

par. style only

Additional space (vertically) before and after the paragraph
Default = 0
Value must be a number (points are assumed)

textIndent
paragraphStartIndent
paragraphEndIndent

yes

no

par. style only

Indent settings (horizontal) for the paragraph.
These respectively match the following in CHILI Editor (Paragraph Styles Panel):
- Indent
- Left Margin
- Right Margin
Default = 0
Value must be a number (points are assumed)

direction

yes

no

par. style only

Text direction
Default = ltr
Valid values are:
- ltr
- rtl
for Left to Right and Right to Left text rendering

alignToBaseLine

yes

no

par. style only

If set to "true", the paragraph will be aligned to the appropriate baseline grid
(from the TextFrame or Document)

id

yes

yes

no

For paragraphs: matches the "tag" setting in CHILI Editor (Paragraph Settings Panel)
Any string is valid

textOverprint

no

yes

yes

If "true", the text will be set to overprint when exporting to PDF

kerning

no

yes

yes

Mathes the "Enable Kerning" checkbox in CHILI Editor
Default = on
Valid Values are:
- on (or empty)
- off

lineThrough

no

yes

yes

If "true", the text has a strike-through effect

textDecoration

no

yes

yes

if "underline", the text has an underline effect

ANY_CUSTOM_PROP

yes

yes

no

When serializing/deserializing a TextFlow, all other attributes are maintained
(see higher, under "TextFlow", for more details)

See ?Fonts XML for more details on referencing fonts.

A color inside a TextFlow consists of two separate attributes:

  • my_color: the ID of the CHILI color (in document/colors ), which can be CMYK, RGB, LAB, ...

  • color: the "TextFlow" value, which in XML can be either a hex value ("#FF0000") or a uint (0x12345). Google can help you convert hex to uint (and vice versa) in your development environment, if needed. This hex/uint value is the RGB representation of the color, used for display within the editor

Note that setting references to CHILI Objects inside a TextFlow XML in itself is not always enough (currently) to also enforce the application of the various properties/settings of that referenced object. When setting my_color, my_characterStyle or my_paragraphStyle, the safest bet is to also apply the relevant applied settings of those liked objects (the "color" uint/hex value, and the various paragraph/character style format settings).

...

For internal purposes, and for use through the JavaScript API, there is a helper CHILI object which encapsulates most of the supported text properties (and where you can find some more documentation): ?Document Object Model - TextFormat. This object is however NOT used to serialize/deserialize XML. So several differences exist:

  • color/characterStyle/paragraphStyle/font can internally be set using CHILI object references, whereas that is NOT the case in XML (except using the matching "my_XXX" properties, as documented higher)

  • various properties in TextFormat are of type "unit", whereas in a TextFlow or TextLayoutFormat, they are numeric (point) values. CHILI internally translates those values. See ?General XML Concepts and ?Measurement Units for more information on how you can perform these calculations yourself

  • textDecoration does not exist, but is replaced by a "underLine" boolean property