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.

The attribute names and their values correspond to the definitions used until InDesign® 2024 (v19). However, Adobe reserves the right to change these definitions at any time. Changed values will cause errors in the evaluation.

In the parameter description, we have provided the description available from the Adobe documentation in each case. If you have further questions, please contact the Adobe Support directly. We do not have any further information here either.

Attribut Type Parameter Domain
General Attributes
kTextAttrAlignmentBoss int Represents style of alignment for paragraph; for instance, left-aligned, centred, etc.0 kLeft

0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Paragraph
kTextAttrAlignSingleBoss int Represents type of justification for lines with only one word.

0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Paragraph
kTextAttrAlternateCharBoss int Represents alternate character within OpenType fonts Character
kTextAttrAutoLeadBoss float Represents setting for auto-leading. Value in percent (1.0 for 100%), default 1.2 Paragraph
kTextAttrBLShiftBoss float   Character
kTextAttrBreakBeforeBoss int Force a text break.

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 Represents the capitalization mode.

0 normal
1 kCapSmallLowercase
2 kCapAll
3 kCapSmallEverything
Character
kTextAttrCharacterHangBoss int Represents the character hang associated with CJK text

0 baseline
1 em Center
2 em Bottom
3 em top
4 ICF bottom
5 ICF top
Character
kTextAttrColorBoss Color Represents color applied to characters in text. Character
kTextAttrComposerBoss int Represents the composer to use for composition of text.

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 Represents the number of characters affected by a drop cap. Paragraph
kTextAttrDropCapLinesBoss int Represents the number of lines a drop cap will extend by. Paragraph
kTextAttrFigureStyleBoss int Represents figure style to use in OpenType fonts.

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* Represents a font typeface override; for instance, "Regular", or "Normal". Character
kTextAttrFontUIDBoss char* Represents the applied font.. Missleading name! FontUID stands for fontname!

valid font name

Character
kTextAttrForceVerticalGlyphsBoss int Represents whether to force vertical glyphs

0 | 1
Character
kTextAttrGlyphscaleDesBoss float Represents the (fractional) desired glyph scaling. For instance, a value of 1.0 would correspond to 100%. Default 1.0 Paragraph
kTextAttrGlyphscaleMaxBoss float Represents the (fractional) maximum glyph scaling. For instance, 1.2 would correspond to 120%. Default 1.0. Paragraph
kTextAttrGlyphscaleMinBoss float Represents the (fractional) minimum glyph scaling. For instance, 1.2 would correspond to 120%. Default 1.0. Paragraph
kTextAttrGotoNextXBoss int Represents the paragraph break mode.

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 Represents the angle of a linear gradient applied to the fill of text Character
kTextAttrGradCenterBoss float, float Represents the center point for a radial gradient- or starting point for a linear gradient - applied to the fill of text. Character
kTextAttrGradLengthBoss float Represents the length of a linear gradient applied to the fill of text Character
kTextAttrHiliteAngleBoss float Represents the hilight angle associated with the fill of text. Character
kTextAttrHiliteLengthBoss float Represents the length attribute for a hilight of the fill of text. Character
kTextAttrHyphenCapBoss int Represents whether to hyphenate capitalized words or not. Paragraph
kTextAttrHyphenLadderBoss int Represents the number of hyphens in the hyphenation ladder limit. Default 3. Paragraph
kTextAttrHyphenModeBoss int Represents the hyphenation method used.

0 off
1 manual
2 dictionary
3 alogrithm
Paragraph
kTextAttrHyphenWeightBoss int Represents the hyphen weight for a paragraph. Default 5. Paragraph
kTextAttrHyphenZoneBoss float Represents the extent of the hyphenation zone. Default 3p0. Paragraph
kTextAttrHyphenLastBoss int Represents whether to hyphenate the last word in a paragraph.

0 | 1
kTextAttrILGShiftBoss float Represents inline graphic shift. Character
kTextAttrIndent1LBoss float Represents first line indent. Paragraph
kTextAttrIndentLastRightBoss float
kTextAttrIndentBLBoss float Represents the amount of right indent added to the last line in the paragraph. Paragraph
kTextAttrIndentBRBoss float Represents the amount of left indent for paragraph. Paragraph
kTextAttrKeepFirstNLinesBoss int Represents the number of lines to keep together at the start of a paragraph. Default 2. Paragraph
kTextAttrKeepLastNLinesBoss int Represents number of lines at the end of the paragraph to keep together. Default 2. Paragraph
kTextAttrKeepLinesBoss int Represents whether or not to keep all lines of a paragraph together.

0 | 1
Paragraph
kTextAttrKeepTogetherBoss int Represents whether to keep lines of a paragraph together.

0 | 1
Paragraph
kTextAttrKeepWithNextBoss int Represents number of lines to keep with next. Paragraph
kTextAttrLanguageBoss char* Represents language in which characters are written. See table of available languages. Character
kTextAttrLeadBoss float Represents leading associated with text. Character
kTextAttrLetterspaceDesBoss float Represents the (fractional) desired letter spacing. For instance, a value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrLetterspaceMaxBoss float Represents the (fractional) maximum letter spacing. For instance, a value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrLetterspaceMinBoss float Represents the (fractional) minimum letter spacing. For instance, a value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrLigaturesBoss int Represents whether to use ligatures in OpenType fonts.

0 | 1
Character
kTextAttrMinAfterBoss int Represents the minimum number of characters to hyphenate after. Paragraph
kTextAttrMinBeforeBoss int Represents minimum number of characters to hyphenate before. Paragraph
kTextAttrNoBreakBoss int Represents whether "no-break" is active or not.

0 | 1
Character
kTextAttrOTFContextAltBoss int Represents whether to use contextual alternate forms in OpenType fonts.

0 | 1
Character
kTextAttrOTFDiscLigBoss int Represents whether to use discretionary ligatures in OpenType fonts.

0 | 1
Character
kTextAttrOTFFractionBoss int Represents whether to use fractions in OpenType fonts.

0 | 1
Character
kTextAttrOTFOrdinalBoss int Represents whether to use ordinals in OpenType fonts.

0 | 1
Character
kTextAttrOTFStylisticAltBoss int Represents stylistic alternates in OpenType fonts. Character
kTextAttrOTFSwashBoss int Represents whether to use swash forms in OpenType fonts.

0 | 1
Character
kTextAttrOTFTitlingBoss int Represents whether to use titling forms in OpenType fonts.

0 | 1
Character
kTextAttrOutlineBoss float Text attribute that specifies the weight to apply to the stroke of the text. Character
kTextAttrOverprintBoss int Represents whether to overprint the fill of text.

0 | 1
Character
kTextAttrPageNumberTypeBoss int Represents the page number type.

0 ThisPage
1 PreviousPage
2 NextPage
3 TextVariable
Character
kTextAttrPairKernBoss float Represents the amount of kerning between two characters. Character
kTextAttrPairKernMethodBoss int Represents pair kerning method to apply (for instance, Optical, Metrics or None). This is closely related to kTextAttrPairKernBoss. If the value of kTextAttrPairKernBoss is zero, the pair kerning method is assumed to be None. If setting the value to Optical or Metrics via the API, please also modify the value of kTextAttrPairKernBoss.

0x0200+ 33 : Off
0x3E00 +100 : Metrics
0x3E00 +101 : Latin only
0x13800+ 3 : Optical
Character
kTextAttrPointSizeBoss float Represents point size for text. Missleading name! This is the FontSize! Character
kTextAttrPositionModeBoss int Represents the position mode, such as normal, subscript, superscript, etc.

0 Normal
1 Superscript
2 Subscript
3 Superior
4 Inferior
5 Numerator
6 Denominator
Character
kTextAttrPRAColorBoss Color Represents the color of the rule above a paragraph. Missleading names! PRA stands for ParagraphRuleAfter - the line after a paragraph! Paragraph
kTextAttrPRAGapColorBoss Color Paragraph
kTextAttrPRAGapTintBoss float Paragraph
kTextAttrPRAIndentLBoss float Paragraph
kTextAttrPRAIndentRBoss float Paragraph
kTextAttrPRAModeBoss int Represents mode of the rule above a paragraph

0 None // obsolete, but left in for conversion purposes
1 Column width
2 Text width
Paragraph
kTextAttrPRAOffsetBoss float Represents the offset of the rule above a paragraph. Paragraph
kTextAttrPRAOverprintBoss int Represents whether to overprint the rule above a paragraph.

0 | 1
Paragraph
kTextAttrPRARuleOnBoss int Represents whether there is a rule above a paragraph.

0 | 1
Paragraph
kTextAttrPRAStrokeBoss float Represents the stroke weight applied to the rule above a paragraph. Paragraph
kTextAttrPRATintBoss float Represents the percentage tint of the rule above a paragraph. Paragraph
kTextAttrPRBColorBoss Color Represents the color applied to the rule below a paragraph. Missleading name! PRB stands for ParagraphRuleBefore - the line before a paragraph! Paragraph
kTextAttrPRBGapColorBoss Color Paragraph
kTextAttrPRBGapTintBoss float Paragraph
kTextAttrPRBIndentLBoss float Paragraph
kTextAttrPRBIndentRBoss float Paragraph
kTextAttrPRBModeBoss int Represents the mode of the rule above a paragraph.

0 None // obsolete, but left in for conversion purposes
1 Column width
2 Text width
Paragraph
kTextAttrPRBOffsetBoss float Represents the offset of the rule below a paragraph. Paragraph
kTextAttrPRBOverprintBoss int Whether to overprint the rule below a paragraph.

0 | 1
Paragraph
kTextAttrPRBRuleOnBoss int Whether a paragraph has a rule below.

0 | 1
Paragraph
kTextAttrPRBStrokeBoss float Represents the stroke weight of the rule below a paragraph Paragraph
kTextAttrPRBTintBoss float Represents percentage tint of the color applied to the rule below a paragraph. Paragraph
kTextAttrShortestWordBoss int Represents paragraph attribute specifying number of characters needed before word can be candidate for hyphenation. The number of characters just above this limit represents word length of those that can be hyphenated. Default 5. Paragraph
kTextAttrSkewAngleBoss float Represents the character skew angle. Character
kTextAttrSpaceAfterBoss float Represents amount of space after a paragraph ends. Paragraph
kTextAttrSpaceBeforeBoss float &Represents amount of space before a paragraph ends. Paragraph
kTextAttrSpecialGlyphBoss int,char* set : glyphID, fontname
get : glyphID, glyphName
Character
kTextAttrStrikethruBoss int Represents whether to use strike through when text is drawn.

0 | 1
Character
kTextAttrStrokeColorBoss Color epresents whether to use strike through when text is drawn. Character
kTextAttrStrokeGradAngleBoss float Represents the angle of a linear gradient applied to the stroke of text. Character
kTextAttrStrokeGradCenterBoss float,float Represents the centre of a radial gradient on the stroke, or the start point of alinear gradient on the stroke of text. Character
kTextAttrStrokeGradLengthBoss float Represents the length of a linear gradient applied to the stroke of text. Character
kTextAttrStrokeHiliteAngleBoss float Represents the angle of the hilight associated with the stroke of text. Character
kTextAttrStrokeHiliteLengthBoss float Represents the length of the hilight associated with the stroke of text. Character
kTextAttrStrokeOverprintBoss int Represents whether to overprint the stroke of text. Character
kTextAttrStrokeTintBoss float Represents the tint of the stroke color applied to text. Character
kTextAttrTabsBoss n/a   Paragraph
kTextAttrTintBoss float Represents the tint of the fill color applied to text. Character
kTextAttrTrackKernBoss float Represents the Tracking or range kerning amount in thousandths of an em. Character
kTextAttrUnderlineBoss int Represents whether text has an underline

0 none
1 single
Character
kTextAttrWordspaceDesBoss float Represents the desired (fractional) wordspace. A value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrWordspaceMaxBoss float Represents the (fractional) maximum wordspace. A value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrWordspaceMinBoss float Represents the (fractional) minimum word spacing. A value of 1.5 would correspond to 150% of default. Paragraph
kTextAttrXGlyphScaleBoss float Represents horizontal scaling associated with glyphs. A value of 1.0 would represent no change, 1.5 would be 150% scaling, etc. Character
kTextAttrYGlyphScaleBoss float Represents fractional scaling for a glyph in the vertical direction. Character
kTextAttrCharUnderlineColorBoss Color Represents the color of the underline for text Character
kTextAttrCharUnderlineGapColorBoss Color Represents the gap color of the underline for text. Character
kTextAttrCharUnderlineGapOverprintBoss int Represents whether to overprint the gap color of the underline for text

0 | 1
Character
kTextAttrCharUnderlineGapTintBoss float Represents the percentage tint of the gap color for the underline. Character
kTextAttrCharUnderlineOffsetBoss float Represents the offset of the underline from the baseline of the text. Positive values move the underline below the baseline of the text; negative values move it above the baseline. Character
kTextAttrCharUnderlineOverprintBoss int Represents whether to overprint the color of the underline for text

0 | 1
Character
kTextAttrCharUnderlineTintBoss float Represents the percentage tint of the color of the underline for text. Character
kTextAttrCharUnderlineWeightOffsetBoss float Represents the stroke weight of the underline for text. Missleading name! This is UnderlineWeight! Character
kTextAttrCharUnderlineTypeBoss Line Type Represents stroke type of underline for text. Character
kTextAttrCharStrikeThroughColorBoss Color Represents the color of the strike-through for text. Character
kTextAttrCharStrikeThroughGapColorBoss Color Represents the gap color of the strike-through for text. Character
kTextAttrCharStrikeThroughGapOverprintBoss int Represents whether to overprint the gap color of the strike through for text

0 | 1
Character
kTextAttrCharStrikeThroughGapTintBoss float Represents the percentage tint of the gap color of the strike-through for text. Character
kTextAttrCharStrikeThroughOffsetBoss float Represents the offset of the strike through for text, relative to the baseline of the text. Positive values move the strike through up; negative values move it down. Character
kTextAttrCharStrikeThroughOverprintBoss int Represents whether to overprint the strike-through

0 | 1
Character
kTextAttrCharStrikeThroughTintBoss float Represents the percentage tint of the color of the strike-through for text. Character
kTextAttrCharStrikeThroughTypeBoss Line Type Represents stroke type of strike-through for text. Character
kTextAttrCharStrikeThroughWeightOffsetBoss float Represents stroke weight of strike through for text. Missleading name! This is StrikeTroughWeight! Character
kTextAttrBalancedLinesBoss Specifes whether to balance the lines (that is, make them the same width) in the paragraph containing the text. This property has no effect on justified text.

0 | 1
Paragraph
kTextAttrPRAGapOverprintBoss int Represents whether to overprint the gap color of the rule above a paragraph. Missleading name! PRA stands for Paragraph rule after, the line after a paragraph!

0 | 1

Paragraph
kTextAttrPRBGapOverprintBoss int Represents whether to overprint the gap color of the rule above a pargraph. Missleading name! PRB stands for Paragraph rule before, the line before a paragraph!

0 | 1

Paragraph
kOTMarkPositioningBoss int Represents mark positioning: mark, mkmk,

0 | 1
Character
kOTLocaleFeatureBoss int Represents localized forms: locl
Character
kSlashedZeroOTFBoss int Represents slashed zeros in OpenType fonts.

0 | 1
Character
kOTPositionalFormsBoss int Represents positioning forms: Off, Auto, Initial, Medial, Final, Isolated

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 Represents whether to prevent hyphens at the end of a text column

0 | 1
Character
kTextAttrPRAKeepInFrameBoss int Whether the paragraph rule above must be within the text frame (at the top of frame). Missleading name! PRA stands for Paragraph rule after, the line after a paragraph!

0 | 1

Paragraph
kTextAttrPRAStrokeTypeBoss Line Type Represents the stroke type of rule above a paragraph. Missleading name! PRA stands for Paragraph rule after, the line after a paragraph! Paragraph
kTextAttrPRBStrokeTypeBoss Line Type Represents the stroke type of the rule below a paragraph. Missleading name! PRB stands for Paragraph rule before, the line before a paragraph! Paragraph
kTextAttrIgnoreEdgeAlignBoss int Overrides the "edge alignment" of the story for this paragraph – only turns it off.

0 | 1
Paragraph
kTextAttrKeepWithPrevBoss int Represents whether to keep lines of a paragraph together

0 | 1
Character
kBNNumberingCFPreviousBoss int Undocumented by Adobe.

0 | 1
Paragraph
kBNShouldRestartBoss int Undocumented by Adobe.

0 | 1
Paragraph
kBNNumberStartAtBoss int Represents the starting number for a numbered list. Paragraph
kBNBulletAlignmentBoss int Undocumented by Adobe.

0 : left
1 : center
2 : right
Paragraph
kBNNumberAlignmentBoss int Undocumented by Adobe.

0 : left
1 : center
2 : right
Paragraph
kBNNumberingNumberBoss char* Undocumented by Adobe. Missleading name! Text to display as 'bullet point'. Paragraph
kBNBulletTextAfterBoss char* Undocumented by Adobe. Paragraph
kBNListTypeBoss int Represents the list type for the paragraph.

0 None
1 Bullet list
2 Numbering list
Paragraph
kBNBulletCharacterBoss int Represents the bullet character for a bulleted paragraph. Paragraph
kBNBulletFontUIDBoss char* Represents the font used by the bullet adornment. Missleading name! FontUID stands for fontname!

Valid font name

Paragraph
kBNBulletFontStyleBoss char* Represents the font style used by the bullet adornment. Valid style name according to font name Paragraph
kBNNumberingStyleBoss Represents the numbering style for a numbered paragraph.

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* Undocumented. by Adobe. 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 Undocumented. by Adobe. Paragraph
kBNBulletCharStyleBoss char* Undocumented by Adobe. Name of character style Paragraph
kBNNumberCharStyleBoss char* Undocumented by Adobe. Name of character style Paragraph
kTextAttrSpanColumnTypeBoss int Specifies if paragraph spans multiple columns.

0 single column paragraph
1 paragraph spans columns
2 paragraph splits the column
Paragraph
kDropCapDetailBoss int Represents the details: left side bearing, descender handling, etc. of a dropcap. 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 Specifies the number of columns paragraph spans. Paragraph
kTextAttrStrokeAlignmentBoss int Text attribute that specifies stroke alignment of the text.

0 center
1 inner
2 outer
Character
kTextAttrOutlineJoinBoss int Text attribute that specifies the outline cap to apply to the stroke of the text. Character
kTextAttrSplitColumnInsideGutterBoss float Specifies the inside gutter in split columns Paragraph
kTextAttrSplitColumnOutsideGutterBoss float Specifies the outside gutter in split columns. Paragraph
kTextAttrSpanColumnMinSpaceBeforeBoss float Specifies the min space before a span column. Paragraph
kTextAttrSpanColumnMinSpaceAfterBoss float Specifies the min space after a span column Paragraph
kTextAttrMiterLimitBoss float Text attribute that specifies the miter limit to apply to the stroke of the text. Character
CJK Attributes
kTABunriKinshiBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTACJKHangingBoss int Undocumented by Adobe.

0 none (no burasagari)
1 regular (IDJ 1.0 style burasagari)
2 force (AI style burasagari)
Paragraph
kTAGridAlignOnlyFirstLineReportBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTAGridGyoudoriReportBoss int Undocumented by Adobe. Paragraph
kTAGridJidoriReportBoss int Undocumented by Adobe. Character
kTAIMECompModeBoss int Undocumented by Adobe.

0 Confirmed
1 Unconverted
2 Converted
3 Selected
Character
kTAKentenAlignmentBoss int Undocumented by Adobe.

0 Left
1 Center
2 Right
Character
kTAKentenCharacterBoss int Undocumented by Adobe. Unicode of character. Character
kTAKentenCharacterSetBoss int Undocumented by Adobe.

0 ShiftJIS
1 JIS
2 Unicode
3 Kuten
Character
kTAKentenColorBoss Color Undocumented by Adobe. Character
kTAKentenFontFamilyBoss char* Undocumented by Adobe. Valid font name Character
kTAKentenFontStyleBoss char* Undocumented by Adobe. Valid style of font Character
kTAKentenKindBoss int Undocumented by Adobe.

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 Undocumented by Adobe. Character
kTAKentenOverprintBoss int Undocumented by Adobe. Character
kTAKentenPositionBoss int Undocumented by Adobe.

0 | 1
Character
kTAKentenRelatedSizeBoss float Undocumented by Adobe. Character
kTAKentenSizeBoss float Undocumented by Adobe. Character
kTAKentenStrokeColorBoss Color Undocumented by Adobe. Character
kTAKentenStrokeOverprintBoss int Undocumented by Adobe. Character
kTAKentenStrokeTintBoss float Undocumented by Adobe. Character
kTAKentenTintBoss float Undocumented by Adobe. Character
kTAKentenXScaleBoss float Undocumented by Adobe. Percent (1.0 for 100%), default 1.0 Character
kTAKentenYOffsetBoss float Undocumented by Adobe. Character
kTAKentenYScaleBoss float Undocumented by Adobe. Percent (1.0 for 100%), default 1.0 Character
kTAKinsokuTableBoss n/a   Paragraph
kTAKinsokuTypeBoss int Undocumented by Adobe.

0 push in first
1 push out first
2 push out only
3 push in always
Paragraph
kTAKumiNumberReportBoss int Undocumented by Adobe. Paragraph
kTAKumiNumberWithRomanReportBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTALeadingModelBoss int Undocumented by Adobe.

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 Undocumented by Adobe.

0 | 1
Paragraph
kTAMojikumiForceAfterSpacingBoss float Undocumented by Adobe. Character
kTAMojikumiForceBeforeSpacingBoss float Undocumented by Adobe. Character
kTAMojikumiFullAdjustBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTAMojikumiRensuujiBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTAMojikumiRomanWidthBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTAMojikumiTableBoss n/a Undocumented by Adobe. Paragraph
kTAMojiRubyBoss int Undocumented by Adobe.

0 | 1
Character
kTAOTFHVKanaBoss int Undocumented by Adobe.

0 | 1
Character
kTAOTFProportionalBoss int Undocumented by Adobe.

0 | 1
Character
kTAOTFRomanItalicsBoss int Undocumented by Adobe.

0 | 1
Character
kTARotateRomanBoss int Undocumented by Adobe.

0 | 1
Paragraph
kTARubyAdjustParentBoss int Undocumented by Adobe.

0 None
1 Both sides
2 Mojikumi
3 Equal Aki
4 Justify
Character
kTARubyAlignmentBoss int Undocumented by Adobe.

0 Left
1 Center
2 Right
3 Justify
4 JIS rule
5 Equal space
6 Edge one ruby
Character
kTARubyAttrBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyAutoScaleMinBoss float Undocumented by Adobe. Values in percent (1.0 for 100%), default 0.66 Character
kTARubyAutoScalingBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyColorBoss Color Undocumented by Adobe. Character
kTARubyEdgeSpaceBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyFontStyleBoss char* Undocumented by Adobe. Valid style name of font Character
kTARubyFontUIDBoss char* Undocumented by Adobe. Missleading name! FontUID stands for fontname!

Valid font family name

Character
kTARubyOTProBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyOutlineBoss float Undocumented by Adobe.

Character
kTARubyOverhangBoss int Undocumented by Adobe.

0 None
1 OneRuby
2 HalfRuby
3 OneChar
4 HalfChar
5 NoLimit
Character
kTARubyOverhangFlagBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyOverprintBoss int Undocumented by Adobe. Character
kTARubyPointSizeBoss float Undocumented by Adobe. Missleading name! This is the FontSize! Character
kTARubyPositionBoss int Undocumented by Adobe.

0 | 1
Character
kTARubyRelativeSizeBoss float Undocumented by Adobe. Character
kTARubyStringBoss char* Undocumented by Adobe. Character
kTARubyStrokeColorBoss Color Undocumented by Adobe. Character
kTARubyStrokeOverprintBoss int Undocumented by Adobe. Character
kTARubyStrokeTintBoss float Undocumented by Adobe. Character
kTARubyTintBoss float Undocumented by Adobe. Character
kTARubyXOffsetBoss float Undocumented by Adobe. Character
kTARubyXScaleBoss float Undocumented by Adobe. Percent (1.0 for 100%), default 1.0 Character
kTARubyYOffsetBoss float Undocumented by Adobe. Character
kTARubyYScaleBoss float Undocumented by Adobe. Percent (1.0 for 100%), default 1.0 Character
kTAShataiAdjustRotationBoss int Undocumented by Adobe.

0 | 1
Character
kTAShataiAdjustTsumeBoss int Undocumented by Adobe.

0 | 1
Character
kTAShataiAngleBoss float Undocumented by Adobe. Angle in degrees, default 45° Character
kTAShataiMagnificationBoss float Undocumented by Adobe. Values in percent (1.0 for 100%) Character
kTATatechuyokoAttrBoss int Undocumented by Adobe.

0 | 1
Character
kTATatechuyokoXOffsetBoss float Undocumented by Adobe. Character
kTATatechuyokoYOffsetBoss float Undocumented by Adobe. Character
kTATsumeTableBoss n/a Undocumented by Adobe.; Character
kTAWarichuAlignmentBoss int Undocumented by Adobe.

0 kLeft
1 kCenter
2 kRight
3 kJustify
4 kJustifyLeft
5 kJustifyCenter
6 kJustifyRight
7 kJustifyAuto
8 kJustifyToBinding
9 kJustifyAwayBinding
Character
kTAWarichuAttrBoss int Undocumented by Adobe.

0 | 1
Character
kTAWarichuAutoResizeParenBoss int Undocumented by Adobe.

0 | 1
Character
kTAWarichuLineSpacingBoss float Undocumented by Adobe. Character
kTAWarichuMinCharsAfterBreakBoss int aUndocumented by Adobe. Default 2 Character
kTAWarichuMinCharsBeforeBreakBoss int Undocumented by Adobe. Default 2 Character
kTAWarichuNumOfLineBoss int Undocumented by Adobe. Default 2 Character
kTACharRotateAngleReportBoss float Undocumented by Adobe. Character
kTAScaleAffectsLineHeightBoss int Undocumented by Adobe.

0 | 1
Character
kTextAttrGlyphFormBoss int Undocumented by Adobe.

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 Undocumented by Adobe. Character
kTACJKGridTrackingBoss int Undocumented by Adobe. Character
kTARotateRomanBoss int Undocumented by Adobe. Paragraph
kTextAttrGridAlignmentBoss int Undocumented by Adobe.

0 None
1 Baseline
2 EmTop
3 EmCenter
4 EmBottom
5 ICFTop
6 ICFBottom
7 CapHeight
Paragraph
kTARubyAutoTCYAutoScaleBoss int Undocumented by Adobe. Character
kTARubyAutoTCYIncludeRomanBoss int Undocumented by Adobe. Character
kTARubyAutoTCYNumDigitsBoss int Undocumented by Adobe. Character
kTAWarichuRelativeSizeBoss float Undocumented by Adobe. Value in percent (1.0 for 100%), default 0.5 Character
Same Paragraph [since v4.2 R32600 and InDesign® 2023]
kTextAttrSameParaSpacingBoss float Undocumented by Adobe. 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