The document describes how text attributes can be set and queried using the textmodel::set_attr and textmodel::get_attr functions.

InDesign® knows an almost unbelievable number of attributes for text design. There is actually nothing that does not exist. With the all-rounders textmodel::set_attr and textmodel::get_attr (almost) all of these attributes can be edited. You only need to specify three things:

  1. The text to change, i.e. the text frame and the index
  2. Text text attribute
  3. The parameters of the attributes

The most difficult part of the job is finding the right attribute to a text property. In the C++ interface to InDesign®, these attributes are called Boss Classes. We have deliberately used the same names :

So if you don't know the corresponding attribute for a text property, you have to search: First by name, then everywhere. If you remain unsuccessful (but please only then!), you are also welcome to contact us.

Unfortunately, there is no complete documentation from Adobe about all supported text attributes and their values. The table of text attributes is the result of long and patient searching in various (sometimes very old) sources. If you find any errors or discover additional text attributes, we would be very happy if you send us a short message to paul@priint.com.

If you find a text attribute boss class that is not included in the following text attribute table, you cannot use this class directly The plug-ins will not know this boss class! And it is also not enough to enter the so-called ClassID, which you may find for the Boss class, as a number! From the boss class to the document it is still a bit to run - and we have to do that. So here too: Mail to paul@priint.com.

CJK stands for Chinese/Japanese/Korean. A large number of the text attributes are only applicable in these writing systems. In latin texts, there is simply noTate-chu-yoko. For CJK attributes, the texts may have to be vertically aligned, but in any case they must be set with a Japanese composer. Otherwise your attribute has no effect.

You do not need a special version of InDesign® to use CJK Attributes. Nor does your version need to be localized accordingly. Every InDesign® can set and apply the attributes. Only some panles are missing.

In the Table of Text Attributes, the CJK Attributes are located in the lower part of the table and are displayed in slanted font.

A few attributes are not implemented. These attributes are marked with n/a in theTable of Text Attributes.

Text attributes have of course different parameters. The attribute parameters always start with the fifth function parameter, i.e. directly after the Boss class. In the table of text attributes, the necessary parameters and their types are specified in the Parameter column. Make absolutely sure to always use the correct data types. Incorrect values or value types can cause InDesign® to crash!

Setting and querying the values usually have the same parameter types.

BUT! When fetching the values, you must pass a pointer to a variable! And please keep in mind: char* and String are already pointers but int and float Variables need the address operator &.

In the example, the font and font size of the beginning of the text are determined and placed in the current text selection.

int     fontsize;
char	fontname [512];

textmodel::get_attr (gFrame, 0, 0, kTextAttrFontUIDBoss, fontname);
textmodel::get_attr (gFrame, 0, 0, kTextAttrPointSizeBoss, &fontsize);

textmodel::set_attr (gFrame, kSelection, 0, kTextAttrFontUIDBoss, fontname);
textmodel::set_attr (gFrame, kSelection, 0, kTextAttrPointSizeBoss, fontsize);

Colors can be specified by by their swatch names or by their color values. In addition, you still need the additional information about the color space when fetching the color. Color attributes expect the following parameter.

Up to four parameters are expected. The first parameter must always be a string (char*). If this string is non-empty, it designates the Swatch to be used. If the string is empty or 0, either three int numbers with the RGB (0-255) or four float numbers with the CMYK values (0.0-1.0) of the color can follow. Lab colors are not supported by us at this time. So you have one of the three possibilities:

The following three calls, provided that the color field "Orange" is defined correctly, will color the current text selection orange.

textmodel::set_attr (gFrame, kSelection, 0, kTextAttrColorBoss, "Orange");
textmodel::set_attr (gFrame, kSelection, 0, kTextAttrColorBoss, "", 255, 128, 0);
textmodel::set_attr (gFrame, kSelection, 0, kTextAttrColorBoss, "", 0.0, 0.61, 0.94, 0.0);

When querying colors, up to seven parameters can be passed :

    1.    char* - Swatch name
    2.    int*  -
Color space (5 : RGB, 6 : CMYK, 7 : Lab)
    3.-6. float*, float*, float*, float*
- Color components (RGB 0.0-255.0, CMYK 0.0-1.0)
    7.    int*  - Process color (or spot) (0 | 1)

Any of the parameters may be 0, but if it is not 0, it must be of the specified type.

You can use the preserved values at RGB again for setting. Note, however, that you've got float values. To convert them int o int values use the toint function.

Write the current font color into the log. Note the & (and that there is no & before colname)!

#include "internal/text.h"
#include "internal/textattributes.h"

int main ()
{
	int			len;
	char		colname [512];
	int			colspace, isProcess;
	float		c1, c2, c3, c4;
	
	textmodel::get_attr (gFrame, kSelection, &len, kTextAttrColorBoss,
	colname, &colspace, &c1, &c2, &c3, &c4, &isProcess);

	wlog ("", "color for next %d letters : '%s', %d [%f %f %f %f], %d\n", len,
	colname, colspace, c1, c2, c3, c4, isProcess);
				
	return 0;
}

The following table shows all supported line types for underlining, etc. .

Line Type Description (Name)
0 Solid Path
1 Dashed
2 Dash 4x4
3 Dash 3x2
4 Dotted
5 Single Wavy
6 Straight Hash
7 Right Slant Hash
8 Left Slant Hash
9 White Diamond
10 Japanese Dots
11 Thin - Thin
12 Thin - Thick
13 Thick - Thin
14 Thick - Thick
15 Thin - Thick - Thin
16 Thick - Thin - Thick
17 Triple
18 Table Stripe

The following list contains all languages and dialects available in InDesign® 2021, on the left the name used in the UI, on the right the internally used names. The spaces between : and dialect are important!

UI Key
[No Language]Neutral
ArabicArabic
Bengali (India)bn_IN
BulgarianBulgarian
Burmese (Mynamar [Burma])my_MM
CatalanCatalan
CroatianCroatian
CzechCzech
DanishDanish
Dutch: 2005 Reformnl_NL_2005
Dutch: Old RulesDutch
English: CanadianEnglish: Canadian
English: UKEnglish: UK
English: USAEnglish: USA
English: USA LegalEnglish: USA Legal
English: USA MedicalEnglish: USA Medical
EstonianEstonian
FinnishFinnish
FrenchFrench
French: CanadianFrench: Canadian
German: 1996 ReformGerman: Reformed
German: 2006 Reformde_DE_2006
German: Old RulesGerman
German: Austria 2006 ReformGerman: Austrian
German: SwissGerman: Swiss
German: Swiss 2066 Reformde_CH_2006
GreekGreek
Gujarati (India)gu_IN
HebrewHebrew
Hindi (India)hi_IN
HungarianHungarian
Indonesian (Indonesia)id_ID
ItalianItalian
Kannada (India)kn_IN
Khmer (Cambodia)km_KH
Lao (Laos)lo_LA
LatvianLatvian
LithuanianLithuanian
Malayalam (India)ml_IN
Marathie (India)mr_IN
Norwegian: BokmålNorwegian: Bokmal
Norwegian: NynorskNorwegian: Nynorsk
Orya (India)or_IN
PolishPolish
PortuguesePortuguese
Portuguese: BrazilianPortuguese: Brazilian
Portuguese: Orthographic AgreementPortuguese: Orthographic Agreement
Punjabi (India)pa_IN
RomanianRomanian
RussianRussian
Sinhala (Sri Lanka)si_LK
SlovakSlovak
SlovenianSlovenian
SpanishSpanish: Castilian
SchwedishSwedish
Tamil (India)ta_IN
Telugu (India)te_IN
ThaiThai
TurkishTurkish
UkrainianUkrainian

Set an own kenten 'A' with defined font and color to the current text selection

#include "internal/text.h"
#include "internal/textattributes.h"  // text attribute bosses

int main ()
{
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenKindBoss, 11);					// Custom
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenCharacterBoss, 65); 			// Letter A
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenCharacterSetBoss, 0); 			// ShiftJIS
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenColorBoss, "", 255, 128, 0); 	// Orange (RGB)
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenFontFamilyBoss, "Geogrotesque");
	textmodel::set_attr (gFrame, kSelection, 0, kTAKentenFontStyleBoss, "SemiBold Italic");
	
	return 0;
}

Toggle capital mode

#include "internal/text.h"
#include "internal/textattributes.h"  // text attribute bosses

int main ()
{
	int			al;
	
	textmodel::get_attr (gFrame, kSelection, 0, kTextAttrCapitalModeBoss, &al);
	wlog ("", "aaa-a %d\n", al);
	
	al++;
	if (al > 3) al = 0;
	textmodel::set_attr (gFrame, kSelection, 0, kTextAttrCapitalModeBoss, al);
		
	textmodel::get_attr (gFrame, kSelection, 0, kTextAttrCapitalModeBoss, &al);	
	wlog ("", "aaa-b %d\n", al);

	return 0;
}

The following table contains all supported about 250 text attributes. Default values, if present and not equal to 0, are highlighted in bold. The Workspace indicates whether an attribute is a paragraph or a character property. CJK attributes start hier.

Attribut Type Parameter Domain
General Attributes
kTextAttrAlignmentBoss int 0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Paragraph
kTextAttrAlignSingleBoss int 0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Paragraph
kTextAttrAlternateCharBoss int   Character
kTextAttrAutoLeadBoss float value in percent (1.0 for 100%), default 1.2 Paragraph
kTextAttrBLShiftBoss float   Character
kTextAttrBreakBeforeBoss int 0 No forced break, start anywhere
1 at column
2 at page
3 at frame box
4 at odd page
5 at even page
Paragraph
kTextAttrCapitalModeBoss int 0 normal
1 kCapSmallLowercase
2 kCapAll
3 kCapSmallEverything
Character
kTextAttrCharacterHangBoss int 0 baseline
1 em Center
2 em Bottom
3 em top
4 ICF bottom
5 ICF top
Character
kTextAttrColorBoss Color   Character
kTextAttrComposerBoss int 0x2000+ 2 : Adobe Paragraph Composer
0x2000+ 1 : Adobe Single-line Composer
0x2000+ 16 : Adobe Japanese Paragraph Composer
0x2000+ 17 : Adobe Japanese Single-line Composer
0x2000+ 120 : Global Adobe Paragraph Composer (Arabic, ...)
0x2000+ 121 : Global Adobe Single-line Composer (Arabic, ...)
0x2000+ 102 : Linnaeus Composer
Paragraph
kTextAttrDropCapCharsBoss int   Paragraph
kTextAttrDropCapLinesBoss int   Paragraph
kTextAttrFigureStyleBoss int 0 LiningTabular - consistent width, "tall" figures
1 OldstyleProp- proportional width, "lowercase" figures
2 LiningProp- proportional width "tall" figures
3 OldstyleTabular- consistent width "lowercase" figures
4 Default - use whatever the font says is the default
Character
kTextAttrFontStyleBoss char* valid style of font Character
kTextAttrFontUIDBoss char* Missleading name! FontUID stands for fontname!

valid font name

Character
kTextAttrForceVerticalGlyphsBoss int 0 | 1 Character
kTextAttrGlyphscaleDesBoss float percent (1.0 for 100%), default 1.0 Paragraph
kTextAttrGlyphscaleMaxBoss float percent (1.0 for 100%), default 1.0 Paragraph
kTextAttrGlyphscaleMinBoss float percent (1.0 for 100%), default 1.0 Paragraph
kTextAttrGotoNextXBoss int 0 No forced break, start anywhere
1 at column
2 at page
3 at frame box
4 at odd page
5 at even page
Character
kTextAttrGradAngleBoss float   Character
kTextAttrGradCenterBoss float, float   Character
kTextAttrGradLengthBoss float   Character
kTextAttrHiliteAngleBoss float    
kTextAttrHiliteLengthBoss float   Character
kTextAttrHyphenCapBoss int   Paragraph
kTextAttrHyphenLadderBoss int any, default 3 Paragraph
kTextAttrHyphenModeBoss int 0 off
1 manual
2 dictionary
3 alogrithm
Paragraph
kTextAttrHyphenWeightBoss int any, default 5 Paragraph
kTextAttrHyphenZoneBoss float any, default 3p0 Paragraph
kTextAttrHyphenLastBoss int 0 | 1
kTextAttrILGShiftBoss float   Character
kTextAttrIndent1LBoss float   Paragraph
kTextAttrIndentLastRightBoss float
kTextAttrIndentBLBoss float   Paragraph
kTextAttrIndentBRBoss float   Paragraph
kTextAttrKeepFirstNLinesBoss int any, default 2 Paragraph
kTextAttrKeepLastNLinesBoss int any, default 2 Paragraph
kTextAttrKeepLinesBoss int 0 | 1 Paragraph
kTextAttrKeepTogetherBoss int 0 | 1 Paragraph
kTextAttrKeepWithNextBoss int   Paragraph
kTextAttrLanguageBoss char* Siehe Tabelle der verfügbaren Sprachen. Character
kTextAttrLeadBoss float   Character
kTextAttrLetterspaceDesBoss float   Paragraph
kTextAttrLetterspaceMaxBoss float   Paragraph
kTextAttrLetterspaceMinBoss float   Paragraph
kTextAttrLigaturesBoss int 0 | 1 Character
kTextAttrMinAfterBoss int   Paragraph
kTextAttrMinBeforeBoss int   Paragraph
kTextAttrNoBreakBoss int 0 | 1 Character
kTextAttrOTFContextAltBoss int 0 | 1 Character
kTextAttrOTFDiscLigBoss int 0 | 1 Character
kTextAttrOTFFractionBoss int 0 | 1 Character
kTextAttrOTFOrdinalBoss int 0 | 1 Character
kTextAttrOTFStylisticAltBoss int   Character
kTextAttrOTFSwashBoss int 0 | 1 Character
kTextAttrOTFTitlingBoss int 0 | 1 Character
kTextAttrOutlineBoss float   Character
kTextAttrOverprintBoss int 0 | 1 Character
kTextAttrPageNumberTypeBoss int 0 ThisPage
1 PreviousPage
2 NextPage
3 TextVariable
Character
kTextAttrPairKernBoss float   Character
kTextAttrPairKernMethodBoss int 0x0200+ 33 : Off
0x3E00 +100 : Metrics
0x3E00 +101 : Latin only
0x13800+ 3 : Optical
Character
kTextAttrPointSizeBoss float Missleading name! This is FontSize!
any, default 12 pt
Character
kTextAttrPositionModeBoss int 0 Normal
1 Superscript
2 Subscript
3 Superior
4 Inferior
5 Numerator
6 Denominator
Character
kTextAttrPRAColorBoss Color Missleading name! This is PRA stands for ParagraphRuleAfter - the line after a paragraph! Paragraph
kTextAttrPRAGapColorBoss Color Paragraph
kTextAttrPRAGapTintBoss float Paragraph
kTextAttrPRAIndentLBoss float Paragraph
kTextAttrPRAIndentRBoss float Paragraph
kTextAttrPRAModeBoss int 0 None // obsolete, but left in for conversion purposes
1 Column width
2 Text width
Paragraph
kTextAttrPRAOffsetBoss float Paragraph
kTextAttrPRAOverprintBoss int 0 | 1 Paragraph
kTextAttrPRARuleOnBoss int 0 | 1 Paragraph
kTextAttrPRAStrokeBoss float Paragraph
kTextAttrPRATintBoss float Paragraph
kTextAttrPRBColorBoss Color Missleading name! This is PRB stands for ParagraphRuleBefore - the line before a paragraph! Paragraph
kTextAttrPRBGapColorBoss Color Paragraph
kTextAttrPRBGapTintBoss float Paragraph
kTextAttrPRBIndentLBoss float Paragraph
kTextAttrPRBIndentRBoss float Paragraph
kTextAttrPRBModeBoss int 0 None // obsolete, but left in for conversion purposes
1 Column width
2 Text width
Paragraph
kTextAttrPRBOffsetBoss float   Paragraph
kTextAttrPRBOverprintBoss int 0 | 1 Paragraph
kTextAttrPRBRuleOnBoss int 0 | 1 Paragraph
kTextAttrPRBStrokeBoss float   Paragraph
kTextAttrPRBTintBoss float   Paragraph
kTextAttrShortestWordBoss int any value, default 5 Paragraph
kTextAttrSkewAngleBoss float   Character
kTextAttrSpaceAfterBoss float   Paragraph
kTextAttrSpaceBeforeBoss float   Paragraph
kTextAttrSpecialGlyphBoss int,char* set : glyphID, fontname
get : glyphID, glyphName
Character
kTextAttrStrikethruBoss int 0 | 1 Character
kTextAttrStrokeColorBoss Color   Character
kTextAttrStrokeGradAngleBoss float Missleading name! Grad is Gradient! Character
kTextAttrStrokeGradCenterBoss float,float   Character
kTextAttrStrokeGradLengthBoss float   Character
kTextAttrStrokeHiliteAngleBoss float   Character
kTextAttrStrokeHiliteLengthBoss float   Character
kTextAttrStrokeOverprintBoss int   Character
kTextAttrStrokeTintBoss float   Character
kTextAttrTabsBoss n/a   Paragraph
kTextAttrTintBoss float   Character
kTextAttrTrackKernBoss float   Character
kTextAttrUnderlineBoss int 0 none
1 single
Character
kTextAttrWordspaceDesBoss float percent (1.0 for 100%), default 1.0 Paragraph
kTextAttrWordspaceMaxBoss float percent (1.0 for 100%), default 1.33 Paragraph
kTextAttrWordspaceMinBoss float percent (1.0 for 100%), default 0.8 Paragraph
kTextAttrXGlyphScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTextAttrYGlyphScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTextAttrCharUnderlineColorBoss Color Character
kTextAttrCharUnderlineGapColorBoss Color Character
kTextAttrCharUnderlineGapOverprintBoss int 0 | 1 Character
kTextAttrCharUnderlineGapTintBoss float Character
kTextAttrCharUnderlineOffsetBoss float Character
kTextAttrCharUnderlineOverprintBoss int 0 | 1 Character
kTextAttrCharUnderlineTintBoss float Character
kTextAttrCharUnderlineWeightOffsetBoss float Missleading name! This is UnderlineWeight! Character
kTextAttrCharUnderlineTypeBoss Line Type Character
kTextAttrCharStrikeThroughColorBoss Color Character
kTextAttrCharStrikeThroughGapColorBoss Color Character
kTextAttrCharStrikeThroughGapOverprintBoss int 0 | 1 Character
kTextAttrCharStrikeThroughGapTintBoss float Character
kTextAttrCharStrikeThroughOffsetBoss float Character
kTextAttrCharStrikeThroughOverprintBoss int 0 | 1 Character
kTextAttrCharStrikeThroughTintBoss float Character
kTextAttrCharStrikeThroughTypeBoss Line Type Character
kTextAttrCharStrikeThroughWeightOffsetBoss float Missleading name! This is StrikeTroughWeight! Character
kTextAttrBalancedLinesBoss 0 | 1 Paragraph
kTextAttrPRAGapOverprintBoss int Missleading name! This PRA stands for Paragraph rule after, the line after a paragraph!

0 | 1

Paragraph
kTextAttrPRBGapOverprintBoss int Missleading name! This PRB stands for Paragraph rule before, the line before a paragraph!

0 | 1

Paragraph
kOTMarkPositioningBoss int 0 | 1 Character
kOTLocaleFeatureBoss int 0 | 1 Character
kSlashedZeroOTFBoss int 0 | 1 Character
kOTPositionalFormsBoss int 0 no features.
1 automatically generates the 4 positional features listed below based on the underlying text
2 beginning of word form.
3 middle of word form.
4 end of word form.
5 by itself (one character word) form
Character
kTextAttrCrossFrameHyphenBoss int 0 | 1 Character
kTextAttrPRAKeepInFrameBoss int Missleading name! This PRA stands for Paragraph rule after, the line after a paragraph!

0 | 1

Paragraph
kTextAttrPRAStrokeTypeBoss Line Type Missleading name! This PRA stands for Paragraph rule after, the line after a paragraph! Paragraph
kTextAttrPRBStrokeTypeBoss Line Type Missleading name! This PRB stands for Paragraph rule before, the line before a paragraph! Paragraph
kTextAttrIgnoreEdgeAlignBoss int 0 | 1 Paragraph
kTextAttrKeepWithPrevBoss int 0 | 1 Character
kBNNumberingCFPreviousBoss int 0 | 1 Paragraph
kBNShouldRestartBoss int 0 | 1 Paragraph
kBNNumberStartAtBoss int any number Paragraph
kBNBulletAlignmentBoss int 0 : left
1 : center
2 : right
Paragraph
kBNNumberAlignmentBoss int 0 : left
1 : center
2 : right
Paragraph
kBNNumberingNumberBoss char* Missleading name! Text to display as 'bullet point'. Paragraph
kBNBulletTextAfterBoss char* Paragraph
kBNListTypeBoss int 0 None
1 Bullet list
2 Numbering list
Paragraph
kBNBulletCharacterBoss int, int Paragraph
kBNBulletFontUIDBoss char* Missleading name! FontUID stands for fontname!

Valid font name

Paragraph
kBNBulletFontStyleBoss char* Valid style name according to font name Paragraph
kBNNumberingStyleBoss 1 1, 2, 3, 4...
2 01, 02, 03, 04...
3 001,002,003...
4 0001,0002,0003...
5 I, II, II, IV...
6 i, ii, iii, iv...
7 A, B, C, D...
8 a, b, c, d...
9 Kanji
10 Katakana Modern
11 Katakana Traditional
Paragraph
kBNListStyleBoss char* Missleading name! Define list styles using the menu

  Font -> Bullet and numbering lists -> Define List ...
.
Set the list type in the popup "List:" of the dialog.

Valid list style name or "" for default

Paragraph
kBNListLevelBoss int Paragraph
kBNBulletCharStyleBoss char* Name of character style Paragraph
kBNNumberCharStyleBoss char* Name of character style Paragraph
kTextAttrSpanColumnTypeBoss int 0 single column paragraph
1 paragraph spans columns
2 paragraph splits the column
Paragraph
kDropCapDetailBoss int Optical settings are trying to align the glyph ink itself to the dropcap bounding box:

0  None
1  HonorLeftGlyphEdge makes the left edge of the ink align to where the
    left edge of the ink at the "body text size" align.

2 HonorDescenders sizes dropcaps with descenders such that the descender
    hangs no lower than the descender at the body text size


Japanese settings are used to align the dropcap glyph within a frame grid.
The dropcap can be scaled up or down to fit exactly within the grid boxes, or
the dropcap width can be padded so that the next characters are on the grid.

0x0F00 kFitDropCapOnJapaneseGrid
0x0100 kPadWidth4JapaneseGrid
0x0200 kScaleUp4JapaneseGrid
0x0400 kScaleDn4JapaneseGrid

0x0101 Default (kPadWidth4JapaneseGrid + HonorLeftGlyphEdge)

Paragraph
kTextAttrSpanColumnCountBoss int Paragraph
kTextAttrStrokeAlignmentBoss int 0 center
1 inner
2 outer
Character
kTextAttrOutlineJoinBoss int ? Character
kTextAttrSplitColumnInsideGutterBoss float Paragraph
kTextAttrSplitColumnOutsideGutterBoss float Paragraph
kTextAttrSpanColumnMinSpaceBeforeBoss float Paragraph
kTextAttrSpanColumnMinSpaceAfterBoss float Paragraph
kTextAttrMiterLimitBoss float Character
CJK Attributes
kTABunriKinshiBoss int 0 | 1 Paragraph
kTACJKHangingBoss int 0 none (no burasagari)
1 regular (IDJ 1.0 style burasagari)
2 force (AI style burasagari)
Paragraph
kTAGridAlignOnlyFirstLineReportBoss int 0 | 1 Paragraph
kTAGridGyoudoriReportBoss int   Paragraph
kTAGridJidoriReportBoss int   Character
kTAIMECompModeBoss int 0 Confirmed
1 Unconverted
2 Converted
3 Selected
Character
kTAKentenAlignmentBoss int 0 Left
1 Center
2 Right
Character
kTAKentenCharacterBoss int Unicode of character Character
kTAKentenCharacterSetBoss int 0 ShiftJIS
1 JIS
2 Unicode
3 Kuten
Character
kTAKentenColorBoss Color   Character
kTAKentenFontFamilyBoss char* valid font name Character
kTAKentenFontStyleBoss char* valid style of font Character
kTAKentenKindBoss int 0 none
1 Black SesamDot
2 White SesamDot
3 Fish eye
4 Black Circle
5 Small Black Circle
6 Bulls eye
7 Black Triangle
8 White Triangle
9 White Circle
10 Small white circle
11 Custom (use kTAKentenCharacterBoss)
Character
kTAKentenOutlineBoss float   Character
kTAKentenOverprintBoss int   Character
kTAKentenPositionBoss int 0 | 1 Character
kTAKentenRelatedSizeBoss float   Character
kTAKentenSizeBoss float   Character
kTAKentenStrokeColorBoss Color   Character
kTAKentenStrokeOverprintBoss int   Character
kTAKentenStrokeTintBoss float   Character
kTAKentenTintBoss float   Character
kTAKentenXScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTAKentenYOffsetBoss float   Character
kTAKentenYScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTAKinsokuTableBoss n/a   Paragraph
kTAKinsokuTypeBoss int 0 push in first
1 push out first
2 push out only
3 push in always
Paragraph
kTAKumiNumberReportBoss int   Paragraph
kTAKumiNumberWithRomanReportBoss int 0 | 1 Paragraph
kTALeadingModelBoss int 0 Roman leading model - Current Roman baseline to previous Roman baseline

1 JAkiBelow-
Current embox top to next embox top (InDesign-J 1.0 Gyou-okuri model)

2 JAkiAbove - Current embox top to previous embox top (Opposite of ID-J: Aki is above the line)

3 Center Leading Model -
Current embox center to previous embox center

4 ForceSpaceAfter-
Similar to kJAkiBelow except that when lines with this leading model are next a different leading model no proportional adjustments are made, this line "wins".

5 center down-
Current embox center to next embox center
Paragraph
kTAMojikumiAdjustPeriodBoss int 0 | 1 Paragraph
kTAMojikumiForceAfterSpacingBoss float   Character
kTAMojikumiForceBeforeSpacingBoss float   Character
kTAMojikumiFullAdjustBoss int 0 | 1 Paragraph
kTAMojikumiRensuujiBoss int 0 | 1 Paragraph
kTAMojikumiRomanWidthBoss int 0 | 1 Paragraph
kTAMojikumiTableBoss n/a   Paragraph
kTAMojiRubyBoss int 0 | 1 Character
kTAOTFHVKanaBoss int 0 | 1 Character
kTAOTFProportionalBoss int 0 | 1 Character
kTAOTFRomanItalicsBoss int 0 | 1 Character
kTARotateRomanBoss int 0 | 1 Paragraph
kTARubyAdjustParentBoss int 0 None
1 Both sides
2 Mojikumi
3 Equal Aki
4 Justify
Character
kTARubyAlignmentBoss int 0 Left
1 Center
2 Right
3 Justify
4 JIS rule
5 Equal space
6 Edge one ruby
Character
kTARubyAttrBoss int 0 | 1 Character
kTARubyAutoScaleMinBoss float Values in percent (1.0 for 100%), default 0.66 Character
kTARubyAutoScalingBoss int 0 | 1 Character
kTARubyColorBoss Color   Character
kTARubyEdgeSpaceBoss int 0 | 1 Character
kTARubyFontStyleBoss char* valid style of font Character
kTARubyFontUIDBoss char* Missleading name! FontUID stands for fontname!

valid font name

Character
kTARubyOTProBoss int 0 | 1 Character
kTARubyOutlineBoss float   Character
kTARubyOverhangBoss int 0 None
1 OneRuby
2 HalfRuby
3 OneChar
4 HalfChar
5 NoLimit
Character
kTARubyOverhangFlagBoss int 0 | 1 Character
kTARubyOverprintBoss int   Character
kTARubyPointSizeBoss float  Missleading name! This is FontSize! Character
kTARubyPositionBoss int 0 | 1 Character
kTARubyRelativeSizeBoss float   Character
kTARubyStringBoss char*   Character
kTARubyStrokeColorBoss Color   Character
kTARubyStrokeOverprintBoss int   Character
kTARubyStrokeTintBoss float   Character
kTARubyTintBoss float   Character
kTARubyXOffsetBoss float   Character
kTARubyXScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTARubyYOffsetBoss float   Character
kTARubyYScaleBoss float percent (1.0 for 100%), default 1.0 Character
kTAShataiAdjustRotationBoss int 0 | 1 Character
kTAShataiAdjustTsumeBoss int 0 | 1 Character
kTAShataiAngleBoss float Angle in degrees, default 45� Character
kTAShataiMagnificationBoss float Values in percent (1.0 for 100%) Character
kTATatechuyokoAttrBoss int 0 | 1 Character
kTATatechuyokoXOffsetBoss float   Character
kTATatechuyokoYOffsetBoss float   Character
kTATsumeTableBoss n/a   Character
kTAWarichuAlignmentBoss int 0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Character
kTAWarichuAttrBoss int 0 | 1 Character
kTAWarichuAutoResizeParenBoss int 0 | 1 Character
kTAWarichuLineSpacingBoss float   Character
kTAWarichuMinCharsAfterBreakBoss int any, default 2 Character
kTAWarichuMinCharsBeforeBreakBoss int any, default 2 Character
kTAWarichuNumOfLineBoss int any, default 2 Character
kTACharRotateAngleReportBoss float   Character
kTAScaleAffectsLineHeightBoss int 0 | 1 Character
kTextAttrGlyphFormBoss int 0 NoForm
1 FirstValidForm
2 ExpertForm
3 JIS78Form
4 JIS83Form
5 HalfWidthForm
6 ThirdWidthForm
7 QuarterWidthForm
8 NLCForm
9 ProportionalWidthForm
10 FullWidthForm
11 JIS04Form
12 JIS90Form
13 BeyondEndForm
Character
kTextAttrOTFeatureListBoss n/a   Character
kTACJKGridTrackingBoss int   Character
kTARotateRomanBoss int   Paragraph
kTextAttrGridAlignmentBoss int 0 None
1 Baseline
2 EmTop
3 EmCenter
4 EmBottom
5 ICFTop
6 ICFBottom
7 CapHeight
Paragraph
kTARubyAutoTCYAutoScaleBoss int   Character
kTARubyAutoTCYIncludeRomanBoss int   Character
kTARubyAutoTCYNumDigitsBoss int   Character
kTAWarichuRelativeSizeBoss float value in percent (1.0 for 100%), default 0.5 Character
Same Paragraph [since v4.2 R32600 and InDesign® 2023]
kTextAttrSameParaSpacingBoss float Paragraph
Paragraph Border Shading (PBS) [since v4.2 R32600 and InDesign® 2023]
kTextAttrPBSFillColorBoss Color Represents the fill color of paragraph border and shading. Paragraph
kTextAttrPBSFillTintBoss float Represents the fill percentage tint of paragraph border and shading. Paragraph
kTextAttrPBSFillOverprintBoss int Represents whether to overprint the fill of paragraph border and shading.

0 | 1
Paragraph
kTextAttrPBSWidthBoss int Represents the width to be text/column width for paragraph border and shading.

0 : column width
1 : text width
Paragraph
kTextAttrPBSFillOnBoss int Represents whether the fill is on for paragraph border and shading.

0 | 1
Paragraph
kTextAttrPBSClipToFrameBoss int Represents whether the paragraph border and shading should be kept within frame/cropped to frame

0 | 1
Paragraph
kTextAttrPBSSuppressPrintingBoss int Represents whether to suppress printing of paragraph border and shading

0 | 1
Paragraph
kTextAttrPBSOffsetLBoss
kTextAttrPBSOffsetTBoss
kTextAttrPBSOffsetRBoss
kTextAttrPBSOffsetBBoss
float Represents left/top/right/bottom offset of paragraph shading Paragraph
kTextAttrPBSTopOriginBoss int Represents the top origin to be based on cap-height, ascender or baseline for paragraph border and shading.

0 : ascent top origin
1 : baseline top origin
2 : leading top origin
3 : em box top origin
4 : cap height top origin
5 : x height top origin
6 : em box center top origin
Paragraph
kTextAttrPBSBottomOriginBoss int Represents the bottom origin to be based on descender or baseline for paragraph border and shading.

0 : descent bottom origin
1 : baseline bottom origin
2 : em box bottom origin
3 : em box center bottom origin
Paragraph
kTextAttrPBSStrokeColorBoss Color Represents the stroke color of paragraph border and shading. Paragraph
kTextAttrPBSStrokeTintBoss float Represents the stroke percentage tint of paragraph border and shading. Paragraph
kTextAttrPBSStrokeOverprintBoss int Represents whether to overprint the stroke of paragraph border and shading.

0 | 1
Paragraph
kTextAttrPBSStrokeOnBoss int Represents whether the stroke is on for paragraph border and shading.

0 | 1
Paragraph
kTextAttrPBSStrokeGapColorBoss Color Represents the stroke gap color of paragraph border and shading. Paragraph
kTextAttrPBSStrokeGapTintBoss float Represents the stroke gap percentage tint of paragraph border and shading. Paragraph
kTextAttrPBSStrokeOnBoss int Represents whether to overprint the stroke gap of paragraph border and shading.

0 | 1
Paragraph
kTextAttrPBSStrokeTypeBoss Line Type This helds the line type of the paragraph border. Paragraph
kTextAttrPBSStrokeWeightBoss float Represents the stroke weight applied to the paragraph border and shading. Paragraph
kTextAttrParaBorderOffsetLBoss
kTextAttrParaBorderOffsetTBoss
kTextAttrParaBorderOffsetRBoss
kTextAttrParaBorderOffsetBBoss
float Represents left/top/right/bottom offset of paragraph border. Paragraph
kTextAttrPBSStrokeJoinTypeBoss int Represents the stroke join type of paragraph border.

0 : miter
1 : round
2 : bevel
Paragraph
kTextAttrPBSCornerTypeTLAttrBoss
kTextAttrPBSCornerTypeTRAttrBoss
kTextAttrPBSCornerTypeBLAttrBoss
kTextAttrPBSCornerTypeBRAttrBoss
int Represents the top-left/top-right/bottom-left/bottom-right corner type applied to the paragraph border.

0 : rectangular
1 : rounded
2 : inverse rounded
3 : inset
4 : bevel
5 : fancy
Paragraph
kTextAttrPBSCornerRadiusTLAttrBoss
kTextAttrPBSCornerRadiusTRAttrBoss
kTextAttrPBSCornerRadiusBLAttrBoss
kTextAttrPBSCornerRadiusBRAttrBoss
float Represents the top left corner radius value applied to the paragraph border. Paragraph
kTextAttrPSCornerTypeTLAttrBoss
kTextAttrPSCornerTypeTRAttrBoss
kTextAttrPSCornerTypeBLAttrBoss
kTextAttrPSCornerTypeBRAttrBoss
int Represents the top-left/top-right/bottom-left/bottom-right corner type applied to the paragraph shading.

0 : rectangular
1 : rounded
2 : inverse rounded
3 : inset
4 : bevel
5 : fancy
Paragraph
kTextAttrPSCornerRadiusTLAttrBoss
kTextAttrPSCornerRadiusTRAttrBoss
kTextAttrPSCornerRadiusBLAttrBoss
kTextAttrPSCornerRadiusBRAttrBoss
float Represents the top left corner radius value applied to the paragraph shading. Paragraph
kTextAttrPBSStrokeCapTypeBoss int Represents the stroke cap type of paragraph border.

0 : ButCap
1 : RoundCap
2 : ProjectingCap
Paragraph
kTextAttrProviderHyphStyleBoss int Represents the hyphenation style of the provider.

0 : all
1 : all but unaesthetic
2 : aesthetic
3 : preferred aesthetic
Paragraph