54 KiB
Preferences
Document preferences are chunks of the preferences object (class 0x2202,
one per document). The converter reads them in src/model/prefs.rs and
writes them to Resources/Preferences.xml and designmap.xml. Values it
does not read stay as observed (idml-values.md).
Evidence. Each field was compared with the IDML of every corpus pair
(654 pairs, 495 of them trustworthy; docs/measurement.md). The counts
below are pairs whose IDML has the value the field gives. Where a pair
disagrees, it is a stale pair unless stated. The layouts are those of
InDesign 7 (CS5) to 21, the versions the pairs show; the converter reads
them for little-endian files of version 7 and later only.
Booleans stored as a u16 are 0 (false) or 1 (true). Several of them
are chunks that only some documents have; a document without the chunk
has the value given as "absent".
Colour settings (Document in designmap.xml)
| Chunk | Layout | IDML |
|---|---|---|
| 0x7C44 (12 bytes) | Three four-character codes, each stored reversed. The first is off in all 654 files. The second is the RGB policy, the third the CMYK policy |
RGBPolicy, CMYKPolicy |
| 0x7C04 | u16 0, u32 n, n UIDs of profile objects (class 0x7D03), u32 6, then 6 UIDs: the RGB working profile, the CMYK working profile, and four more | RGBProfile, CMYKProfile |
| 0x7C08 (6 bytes) | u16 at 2: rendering intent | SolidColorIntent, AfterBlendingIntent, DefaultImageIntent |
Policy codes (as read, reversed): off ColorPolicyOff, pres
PreserveEmbeddedProfiles, pdil CombinationOfPreserveAndSafeCmyk,
conv ConvertToWorkingSpace. Both policies match in 495 of 495
trustworthy pairs and 654 of 654 pairs.
A profile is the in-object string at offset 1 of chunk 0x13C of its
0x7D03 object (U.S. Web Coated (SWOP) v2, sRGB IEC61966-2.1, ...).
UID 0 is written $ID/. Matches: RGB 495 of 495 trustworthy and 653 of
654 pairs, CMYK 495 of 495 and 654 of 654. The profile names are stored
in the INDD, so they describe the document, not the computer that
exported it.
Intent codes: 11 UseColorSettings (136 files), 0 Perceptual (1
file), 2 RelativeColorimetric (1 file). The 516 files without the
chunk all have UseColorSettings. In every file the three intents are
equal, so the one code is written for all three.
AccurateLABSpots is false in all 654 IDML files; no field for it was
looked for. The converter writes false.
View (ViewPreference)
Chunk 0x1202 (56 bytes in all 654 files):
| Offset | Type | Attribute |
|---|---|---|
| 0 | u32 unit | HorizontalMeasurementUnits |
| 4 | u32 unit | VerticalMeasurementUnits |
| 8 | u32 unit | TypographicMeasurementUnits |
| 12 | u32 unit | TextSizeMeasurementUnits |
| 16 | u32 unit | PrintDialogMeasurementUnits |
| 20 | u32 unit | LineMeasurementUnits and StrokeMeasurementUnits |
| 24 | f64 | HorizontalCustomPoints |
| 32 | f64 | VerticalCustomPoints |
| 40 | f64 | CursorKeyIncrement |
| 48 | f64 | PointsPerInch |
Unit codes: 0x1201 Points, 0x1202 Picas, 0x1203 Inches, 0x1205
Millimeters, 0x1206 Centimeters, 0x120B Pixels, 0x5101 Ha,
0x510F Q. Every field matches 495 of 495 trustworthy pairs; the
horizontal, vertical, line and stroke units match 653 of 654 pairs (one
stale pair differs).
Ruler origin. Chunk 0x808 (u16) is RulerOrigin: 0 SpreadOrigin,
1 PageOrigin, 2 SpineOrigin. Over the 1,556 distinct corpus files
with an IDML (stale pairs included), all 51 with the chunk match (22
SpreadOrigin, 28 PageOrigin, 1 SpineOrigin); in the 1,252
trustworthy pairs, 35 of 35 (20 and 15). Without the chunk, 1,492 of
1,505 files have SpreadOrigin (1,209 of 1,217 trustworthy pairs). The
other 13 (8 trustworthy, InDesign 8.0 to 21.2) have PageOrigin, and
no field was found that separates them (unknowns.md). The converter
writes SpreadOrigin without the chunk. Guide locations depend on the
origin (objects.md, guides).
Flags in their own chunks
| Chunk | Attribute | Absent | Matches (trustworthy, all) |
|---|---|---|---|
| 0x593 | ViewPreference ShowFrameEdges |
true |
490 of 495, 649 of 654 |
| 0x803 | ViewPreference ShowRulers |
true |
493 of 495, 642 of 654 |
| 0x56A | GridPreference BaselineGridShown |
false |
495 of 495, 654 of 654 |
| 0x569 | GuidePreference GuidesLocked |
false |
495 of 495, 654 of 654 |
| 0x56B | DocumentPreference ColumnGuideLocked |
true |
495 of 495, 654 of 654 |
| 0xCAC7 | TextPreference ShowInvisibles |
false |
495 of 495, 654 of 654 |
Every file with the chunk matches. The mismatches are files without it whose IDML has the other value (5 and 12 files), so these two settings are stored somewhere else as well in some documents; that place is not known.
More u16 flags, over the corpus of 2026-10 (1,460 pairs, 1,251 of them trustworthy). Every file with the chunk matches; "absent" gives the value of every file without it.
| Chunk | Attribute | With the chunk | Absent |
|---|---|---|---|
| 0x566 | GridPreference DocumentGridShown |
122 of 122 (7 true) |
false, 1,338 of 1,338 |
| 0xCAF3 | TextPreference EnableStylePreviewMode |
115 of 115 (11 true) |
false, 1,345 of 1,345 |
| 0xCD1D | CjkGridPreference ShowAllFrameGrids |
90 of 90 (45 true) |
true, 1,370 of 1,370 |
| 0xCD1E | CjkGridPreference ShowCharacterCount |
103 of 103 (60 true) |
true, 1,357 of 1,357 |
| 0xCD14 | CjkGridPreference SnapToLayoutGrid |
1,460 of 1,460 (every file has it) | |
| 0xCD1C | CjkGridPreference ShowAllLayoutGrids |
1,460 of 1,460 (every file has it) | |
| 0xCA62 | TextPreference HighlightHjViolations |
63 of 63 (4 true) |
varies |
| 0xCAD3 | TextPreference HighlightCustomSpacing |
57 of 57 (1 true) |
varies |
| 0xCAD4 | TextPreference HighlightSubstitutedGlyphs |
57 of 57 (4 true) |
varies |
Without one of the three highlight chunks, IDML has false in all but 4
or 5 files, which have no highlight chunk at all and every highlight on
in IDML (or are one collection with other values); no stored value
separates them. The converter writes false without the chunk, as for
the flags above: 1,247, 1,246 and 1,246 of 1,251 values in the
trustworthy pairs of the corpus after 2026-10 (HighlightHjViolations,
HighlightCustomSpacing, HighlightSubstitutedGlyphs), where it had
56, 52 and 52 from the chunk alone. The exceptions are those files.
HighlightKeeps and HighlightSubstitutedFonts have no chunk; the
converter writes false and true as defaults (idml-values.md,
defaults).
Document setup (DocumentPreference)
Chunk 0x533 (146 bytes) also holds the page size, facing pages, intent
and page binding (objects.md, document preferences). Its bleed and
slug offsets are rectangles in the order inside (left), top, outside
(right), bottom:
| Offset | Type | Attribute |
|---|---|---|
| 70, 78, 86, 94 | f64 | DocumentBleedInsideOrLeftOffset, …TopOffset, …OutsideOrRightOffset, …BottomOffset |
| 102 | u8 | DocumentBleedUniformSize |
| 104, 112, 120, 128 | f64 | SlugInsideOrLeftOffset, SlugTopOffset, SlugRightOrOutsideOffset, SlugBottomOffset |
| 136 | u8 | DocumentSlugUniformSize |
In the 645 files with the 146-byte chunk, 42 have bleeds that are not
all equal. The inside and outside bleeds match only at 70 and 86 (645 of
645 files but one stale pair), and the slugs: inside only at 104, bottom
only at 128. No sample has top and bottom bleeds that differ, or top and
outside slugs that differ; the order of those pairs follows the order
the other fields show. Uniform flags: 645 of 645 files (DocumentBleedUniformSize
false in 42, DocumentSlugUniformSize true in 3).
The 126-byte chunk. Files saved by InDesign 7.0 and 7.5 have a 126-byte chunk 0x533: 16 bytes before the page size, and the fields from the facing pages flag on 20 bytes earlier than in the 146-byte chunk:
| Offset | Field | 146-byte offset |
|---|---|---|
| 16, 24 | f64 page width, height | 0, 8 |
| 32 | u8 intent (equal to the u32 at 122) | |
| 38 | u8 2 facing pages, 1 not | 58 |
| 44 | u16 page binding | 64 |
| 50, 58, 66, 74 | f64 bleeds | 70–94 |
| 82 | u8 DocumentBleedUniformSize |
102 |
| 84, 92, 100, 108 | f64 slugs | 104–128 |
| 116 | u8 DocumentSlugUniformSize |
136 |
| 122 | u32 intent | 142 |
Evidence: the 11 pairs of the corpus of 2026-10 with this chunk (9
trustworthy): page size 11 of 11 (5 sizes), intent 11 of 11 (3 web),
facing pages 11 of 11 (3 facing), binding 0 and LeftToRight in 11,
bleeds 11 of 11 (all four 8.504 in 3, 0 in the others), uniform bleed
true and uniform slug false in 11, slugs all 0. As the four bleeds
are equal in every sample, their order follows the 146-byte chunk.
Grids (GridPreference)
Chunk 0x55F (36 bytes in all 654 files): f64 at 2 BaselineDivision,
f64 at 10 BaselineStart, f64 at 18 the view threshold as a fraction
(BaselineViewThreshold is it times 100). 654 of 654 pairs each.
Chunk 0x545 (16 files): f64 at 8 HorizontalGridlineDivision, u32 at
16 HorizontalGridSubdivision, f64 at 20 VerticalGridlineDivision,
u32 at 28 VerticalGridSubdivision; 16 of 16. Without the chunk the
values follow the edition (values of the exporting edition, below):
20 mm (56.69291338582678) and 10 after a last session with code
0x0101, else 72 and 8.
Watermark (WatermarkPreference in designmap.xml)
Chunk 0x16344 (621 files): from offset 10, the font family and the font
style, each a u32 length in code units followed by text segments, then
u32 point size and u32 UID of an interface colour (objects.md,
interface colours), written as WatermarkFontColor. Family, style and
size match 621 of 621. In files without the chunk the font follows the
language of the assignment name (values of the exporting edition,
below); the other values are the observed ones.
Text defaults (TextDefault)
Chunk 0x23F of the preferences object is a text attribute list in the
layout of a style's list (u16 count, then records; attributes.md). The
converter writes it as TextDefault with the same attribute table as
styles. Over all pairs this reproduces 182,742 of 196,543 TextDefault
values, against 159,982 from the observed values alone; no attribute
reproduced before is lost. As for paragraph styles, KerningValue is
left out: the schema does not allow it there. The IDs of KeepFirstLines,
ParagraphBorderType, RubyFont and the others found in the corpus of
2026-10 are in every list where IDML has the attribute
(attributes.md, more paragraph and character attributes): each is
reproduced in 1,251 of 1,251 trustworthy pairs (ParagraphBorderType
918 of 918 and ParagraphShadingOverprint 1,032 of 1,032, the pairs
whose IDML has them).
Text (TextPreference, TextFramePreference)
Chunk 0x280 (174 bytes in InDesign 7, 212 in 8 to 14, 214 from 15):
| Offset | Type | Attribute |
|---|---|---|
| 0 | f64 | SmallCap |
| 8, 16 | f64 | SuperscriptSize, SubscriptSize |
| 24, 32 | f64 | SuperscriptPosition, SubscriptPosition |
| 40 | f64 | TextFramePreference TextColumnGutter |
| 88 | f64 | LeadingKeyIncrement |
| 96 | f64 | BaselineShiftKeyIncrement |
| 104 | f64 | KerningKeyIncrement divided by 1000 |
| 112 | u32 | TextFramePreference TextColumnCount |
| 118 | u8 | TypographersQuotes |
| 130 | u8 | LinkTextFilesWhenImporting |
| 142 | u8 | TextFramePreference FirstBaselineOffset: 0 LeadingOffset, 1 AscentOffset, 2 CapHeight, 3 EmboxHeight, 4 XHeight |
| 162 | u8 | UseParagraphLeading |
| 184 | u8 | QuoteCharactersRotatedInVertical (212 bytes and more) |
| 212 | u8 | ShapeIndicAndLatinWithHarbuzz (214 bytes) |
Each matches all 654 pairs that have the attribute (288 for the last,
645 for the one before), and the two positions match each other's
attribute too, except where the files show different values: positions
differ in 2 files, which tells 24 from 32; the sizes are equal in every
file, so 8 and 16 follow the order of the positions. Offsets 168 and 170
match both UseCidMojikumi and UseNewVerticalScaling, which are equal
in every file. In the corpus of 2026-10 the two bytes are equal to each
other and to both IDML values in 803 of 803 pairs (161 true, 642
false). Which byte is which is not known, so the converter writes
both attributes only when the bytes are equal (0 false, 1 true).
Baseline frame grid colour. The BaselineFrameGridColor of the
BaselineFrameGridOption preference follows an observed rule over
stored data, not a decoded field. Over the 803 pairs of the corpus of
2026-10:
| Stored data | Pairs | IDML colour |
|---|---|---|
Chunk 0x2834 (24 bytes), u32 at 20 not 0: the UID of an interface colour object (as for layers, objects.md) |
11 | that colour (Charcoal in all 11) |
| u32 at 20 is 0, offset 168 of chunk 0x280 is 1 | 154 | Charcoal |
| u32 at 20 is 0, offset 168 is 0 | 513 | LightBlue |
| No chunk 0x2834 (offset 168 is 0 in all) | 125 | LightBlue |
No stored field was found that holds the colour when the u32 is 0. Both
the colour and offset 168 appear to be defaults of an edition. In the
corpus of 2026-10 offset 168 is 1 exactly when the first session of the
save history is of a Japanese or Chinese edition, while the IDML colour
follows the last one; the converter uses the rule of the exporting
edition (below) where the u32 is 0. Every object style's BaselineFrameGridColor
equals the preference's in 803 of 803 pairs (3,515 object styles), so
the converter writes this colour in the preference and in every object
style. A UID that is not an interface colour, or another byte at 168,
leaves the observed value (LightBlue).
Chunk 0x28BE (14 bytes, 16 from InDesign 18), u8 flags: 4
SmartTextReflow, 6 LimitToMasterTextFrames, 8 DeleteEmptyPages, 10
PreserveFacingPageSpreads, 12 SmartTextReflowSync (16 bytes). 620 of
620 files with the chunk (283 of 283 for the last). The 34 files without
it have SmartTextReflow="false" and LimitToMasterTextFrames="true";
in the corpus of 2026-10 the 60 files without it also have
DeleteEmptyPages and PreserveFacingPageSpreads false (60 of 60).
Story orientation. Byte 116 of chunk 0x280, after
TextColumnCount, is StoryPreference StoryOrientation: 0
Horizontal (1,349 files), 1 Vertical (111); 1,460 of 1,460 pairs of
the corpus of 2026-10, every chunk length.
Chunk 0x3768 (4 or 6 bytes): u8 at 0 AbutTextToTextWrap, u8 at 2
ZOrderTextWrap, and in 6-byte chunks u8 at 4
HonourTextIndentsWithTextWrap (IDML has it only for those). Evidence:
ZOrderTextWrap 654 of 654; the other two 489 of 489 and 139 of 139
trustworthy pairs.
Margins and columns of new pages (MarginPreference)
Chunk 0x550: f64 Left, Top, Right, Bottom at 0, 8, 16, 24 (528
of 528 files). The 126 files without it have 36 for all four.
Chunk 0x555: u32 ColumnCount at 0, f64 ColumnGutter at 4
(119 of 119), u16 at 12 the column direction: 0 Horizontal, 1
Vertical. Without it, ColumnCount is 1 (535 of 535) and
ColumnGutter follows the edition (values of the exporting edition,
below).
Column direction. DocumentPreference and MarginPreference
ColumnDirection take the u16 at 12; without the chunk, they equal the
StoryOrientation of the story settings (chunk 0x280, byte 116). With
both rules the converter reproduces 1,249 of 1,251 values of each in
the trustworthy pairs of the corpus after 2026-10 (75 of them
Vertical). The 2 others have no chunk and a horizontal story
orientation, but Vertical in IDML; no field was found for them.
Anchored objects (AnchoredObjectSetting)
Chunk 0x2800, as anchors and object styles have (objects.md, anchored
object settings): every field matches in the 1,295 files with the chunk
(1,134 trustworthy). The 165 files without it (117 trustworthy) have, in
every file, AnchoredPosition="InlinePosition", SpineRelative="false",
PinPosition="true", AnchorPoint="BottomRightAnchor",
HorizontalAlignment="LeftAlign", HorizontalReferencePoint="TextFrame",
VerticalAlignment="TopAlign", VerticalReferencePoint="LineBaseline"
and both offsets 0. Object styles without the chunk (6 styles of
versions 10.1 and 10.2) have the same values.
Pasteboard (PasteboardPreference)
Chunk 0x5D2: f64 horizontal and vertical margin at 0 and 8, written as
PasteboardMargins; the vertical one is also
MinimumSpaceAboveAndBelow. 130 of 130 files with the chunk; the 524
without it have -1 72 and 72, except one stale pair. Four u32 UIDs of
interface colours follow; the IDML colours (LightGray, GridBlue) are
not in the table of objects.md, so they are not written.
From DOM 9 the chunk has 34 bytes, and byte 32 is
MatchPreviewBackgroundToThemeColor (4 true): 199 of 199 files with
a 34-byte chunk. Without the chunk, IDML from DOM 9 has false (1,156
of 1,156 files of the corpus of 2026-10). The 32-byte chunk of DOM 7 and
8 has no such byte, and their IDML no attribute.
Story settings of new frames (StoryPreference)
Chunk 0x2EE of the preferences object (16 bytes) has the layout of the
story chunk 0x2EE (objects.md, story settings): u16 at 12
OpticalMarginAlignment, u16 at 14 FrameType (0 TextFrameType, 1
FrameGridType), f64 at 2 OpticalMarginSize. 197 of 197 files with
the chunk, for each attribute. The u16 at 0 is 0 in all 197, also in
documents with vertical stories; the orientation is in chunk 0x280
(above). Without the chunk, IDML has OpticalMarginAlignment="false"
and FrameType="TextFrameType" (1,263 of 1,263), but
OpticalMarginSize is 12 in 1,207 files and 9.2126 (13 Q) in 56. The
text size unit separates them: without the chunk IDML has
OpticalMarginSize="9.2125984251969" (13 Q, written with these digits)
when ViewPreference TextSizeMeasurementUnits is Q (chunk 0x1202,
above), and 12 otherwise. Stories without their chunk 0x2EE follow
the same rule (objects.md, story settings). The converter writes the
size by this rule:
1,251 of 1,251 values in the trustworthy pairs of the corpus after
2026-10 (1,079 of them without the chunk).
Text wrap of new page items (TextWrapPreference)
Chunk 0x3720 of the preferences object (40 bytes) is the page item text
wrap chunk 0x3703 (objects.md, text wrap) without the path UID: u32 at
0 the wrap mode (0 None, 1 JumpObjectTextWrap, 3
BoundingBoxTextWrap, 6 Contour), f64 at 4, 12, 20 and 28 the left,
top, right and bottom TextWrapOffset, and u32 at 36: 1 is
ApplyToMasterPageOnly="false", 0 is true. Every attribute matches in
the 42 files with the chunk (20 with mode 0 and true, 13 with mode 0
and false, 4 bounding box, 4 jump object, 1 contour). The 1,418 files
without it have None, offsets 0 and false.
Chunk 0x373F (29 bytes) is the contour of new placed graphics, with the
layout of the graphic chunk 0x373D (objects.md, text wrap, contour). Its
type is the ContourType of the preferences' TextWrapPreference in the
4 trustworthy pairs (corpus of 2026-10) that have the chunk: type 5
SameAsClipping in 2, type 1 DetectEdges in 2. The 1,247 without it
have SameAsClipping. Placed graphics without their own contour chunk
take this one.
Other settings in their own chunks
| Chunk | Attribute | Evidence (corpus of 2026-10) |
|---|---|---|
| 0x42DB (i16) | MojikumiUiPreference MojikumiUiSettings, signed decimal (0x8000 is −32768) |
92 of 92 (16384, 16383, 9729, −32768, 32767, 1); without the chunk 16383, 1,368 of 1,368 |
| 0x11C69 (u32 1) | TaggedPDFPreference (designmap) StructureOrder="UseArticles" and DictionaryPreference RecomposeWhenChanged="false" |
2 of 2; without the chunk UseXMLStructure (1,448 of 1,448 IDML files that have the element) and true (1,458 of 1,458) |
| 0x1BC0B | XMLImportPreference CreateLinkToXML |
u32 count of key and value pairs, each a u32 length in UTF-16 units and text segments; key XMediaUI_CreateLink with value 1 is true (1 file, 10 pairs); count 0 is false (1,459 of 1,459) |
StructureOrder and RecomposeWhenChanged differ from the common values
only in the same two documents (one collection, version 20.5), which are
also the only files with chunk 0x11C69. Which of the two the chunk
stores is not known; the converter writes both from it. The other keys
of chunk 0x1BC0B (XMediaUI_RunXSLTScriptEnabled,
XMediaUI_PreserveStoryTextStyling and more) occur only in that one
file, whose other XMLImportPreference values are the common ones, so
they are not mapped.
Tagged PDF. Every IDML from version 7.5 has a TaggedPDFPreference
in designmap.xml (1,450 of 1,450 files), none of version 7.0 (0 of 10);
the converter writes it from 7.5.
Default XML tags (XMLPreference)
Chunk 0xBF4F: five entries, each a name (u32 length, text segments) and
the u32 UID of an interface colour: the story, table, untagged
([None], not in IDML), cell and image tags. DefaultStoryTagName,
DefaultTableTagName, DefaultCellTagName and DefaultImageTagName
match 654 of 654; the names are in the language of the InDesign that
made the document (Story, Article, Textabschnitt, ...). The
colours are written as Default…TagColor.
Grids in back
Chunk 0x567 (u16, 53 files): GridPreference GridsInBack; 53 of 53.
The 601 files without it have true.
Page item defaults (PageItemDefault, FrameFittingOption)
The object of class 0x6E07 has a chunk 0x6E07: u32, u32, u32 n, n
12-byte entries, then a page item attribute list (u32 count, records;
attributes.md), then u32, u32, u32 m and m entries of the same
layout. An entry is u32 class, u32 UID, u32 UID. In every sample the
first table has entries for classes 0x1F05 (colour), 0x5503 (gradient),
0x5533, 0x6E0B (None) and 0x6E11. The entries name the unnamed colours
and gradients that IDML writes though nothing refers to them
(objects.md, colours). The list has the attribute IDs of page
items. Written with the page item attribute table, it gives
PageItemDefault StrokeWeight in 628 of 628 files in which an
analysis script found the list; over all pairs the converter reproduces
StrokeWeight, CornerRadius and MiterLimit of every file.
The frame fitting attributes of the list (objects.md, frame fitting)
are the preference FrameFittingOption. IDML writes all seven in every
file; the list often lacks some (AutoFit in 1,126 of the 1,251
trustworthy pairs, the crops in 1,125, FittingAlignment in 93), and an
attribute the list lacks has code or number 0 in IDML: AutoFit="false"
(1,126 of 1,126), crops 0, FittingOnEmptyFrame="None" (1,123 of
1,123) and FittingAlignment="TopLeftAnchor" (93 of 93). Where the list
has the attribute, IDML has its value. The converter reproduces each of
the seven attributes in 1,251 of 1,251 trustworthy pairs (all 1,460
pairs: AutoFit absent and false in 1,324, FittingOnEmptyFrame
None in 1,321, FittingAlignment TopLeftAnchor in 107).
The page item attributes of the list also give the stroke attributes of
PageItemDefault (attributes.md, strokes): StrokeTint, GapColor,
GapTint, EndCap, EndJoin, the line ends and ArrowHeadAlignment,
each reproduced in every trustworthy pair whose IDML has it.
The list has five more IDs that PageItemDefault has (1,460 of 1,460
files; values over all pairs):
| ID | Attribute | Values |
|---|---|---|
| 0x551E | GradientFillAngle |
f64; 90 in 5 files |
| 0x5524 | GradientStrokeAngle |
f64; 90 in 4 files |
| 0x6E78 | Nonprinting |
u16 bool; true in 1 file |
| 0x6E95, 0x6E96 | LeftArrowHeadScale, RightArrowHeadScale |
f64; 100, and 80 in one file (both) |
The two gradient angles are told apart by one file with fill angle 90
and stroke angle 0. The two arrowhead scales are equal in every file, so
which ID is which is assumed from their order; the IDs are in the list
exactly where IDML has the attributes (1,159 files, from version 12.0
on). The line end code 0x5A0C is SquareSolidArrowHead (5 files).
The overprint IDs 0x6E67, 0x6E6A and 0x6E8B are 0 in every list. IDML
writes them by the rule of object styles (objects.md, object style
overprint): OverprintStroke, OverprintFill and OverprintGap where
the list's stroke, fill or gap colour carries ink, and all three in
documents saved by 21.4 or later. Over all 1,462 pairs, 4 lists have a
stroke colour that carries ink (Color/Black and process colours) and
none a fill or gap colour that does (one gap colour is Paper); with
the 12 documents of 21.4 and 21.5 this gives 16 OverprintStroke and
12 OverprintFill and OverprintGap values, every one false as in
the IDML, and no extra value.
Print settings (PrintPreference, PrintBookletPrintPreference)
Chunk 0xA4C holds the print settings and chunk 0xAF2 those of booklet
printing. Both have one layout: a head of fields and strings, seven
fixed blocks (A to G) with strings between them, and a tail. All 1,308
chunks of the 654 pairs (DOM 7 to 21) parse with it, with the same block
lengths. A "string" is a flag byte (1 for a built-in key, 0 for plain
text; 2 and 3 also occur) and an in-object string. Booleans are u8: 1
true, 0 false. A code not listed leaves the attribute out.
Head
| Field | IDML |
|---|---|
| u8 1 if a print record follows, u8, u32 length n, n bytes | PrintRecord: $ID/ and the bytes in base64, 76 characters per line |
| With a record: u16 0, u32. Without: 2 bytes | DeviceType: the u32 in decimal; 0 without a record |
| String | ActivePrinterPreset: built-in kPrSt_DefaultName is Default, built-in empty Custom (enumerations), otherwise the name (string) |
| u32 | PrintTo; PrintToDisk is true when it is 2 |
| String | Printer: built-in kPrepress File is the enumeration PostscriptFile, built-in empty the string $ID/, otherwise the name |
| String | not identified (built-in empty in every file) |
| String | PPD: built-in kDevice Independent is the enumeration DeviceIndependent when the printer is kPrepress File, otherwise the string $ID/kDevice Independent; built-in empty the string $ID/; otherwise the name |
| String | PPDFile ($ID/ and the text for a built-in string) |
| u32 | PostScriptLevel: 2 Level2, 3 Level3 |
| f64 | PrintResolution |
| 4 f64 | PaperSizeRect: left, top, right, bottom |
| 4 f64 | ImageablePaperSizeRect: left, top, right, bottom |
| i32, then a string | PaperSize: −3 the string, −2 DefinedByDriver, −1 Custom |
IDML ends the base64 text with a line feed when its last line is full
(76 characters). This holds for PrintRecord and PaperSizeSelector.
Blocks
"A+8" is offset 8 in block A.
| Part | Field | IDML |
|---|---|---|
| A (126 bytes) | f64 at A+8 and A+16 | PaperWidthRange ("min max") |
| f64 at A+32 and A+40 | PaperHeightRange |
|
| f64 at A+56 and A+64 | PaperOffsetRange |
|
| u16 at A+84 | PrintPageOrientation: 0 Portrait, 1 Landscape |
|
| u32 at A+104 | Copies |
|
| u8 at A+118 | PrintBlankPages |
|
| u16 at A+122 | Properties/PageRange: 0 AllPages; 2 none (below) |
|
| String | page range text (empty, or text such as 1-2) |
not mapped |
| B (30 bytes) | u8 at B+4 | PrintSpreads |
| u8 at B+6 | ColorOutput: 0 CompositeGray, 1 CompositeRGB, 2 CompositeCMYK, 5 CompositeLeaveUnchanged |
|
| u8 at B+10 | TextAsBlack |
|
| f64 at B+14, B+22 | CompositeAngle, CompositeFrequency |
|
| String | CompositeScreening: $ID/ and the key for a built-in string, else the text |
|
| String | SeparationScreening, same rule |
|
| C (25 bytes) | u8 at C+0 | ScaleMode: 0 ScaleToFit, 1 ScaleWidthHeight |
| u8 at C+4 | ScaleProportional |
|
| f64 at C+6, C+14 | ScaleWidth, ScaleHeight |
|
| u8 at C+22 | PagePosition: 0 UpperLeft, 3 Centered |
|
| String | not identified (plain and empty in every file) | |
| D (48 bytes) | u8 at D+0 | 0: Tile and Thumbnails false; 1: Tile true; 2: Thumbnails true |
| f64 at D+8 | TilingOverlap |
|
| u8 at D+16 | ThumbnailsPerPage: 2 K1x2, 4 K2x2, 9 K3x3 |
|
| u8 at D+20 | SendImageData: 0 AllImageData, 1 OptimizedSubsampling |
|
| u8 at D+24 | DataFormat: 0 Binary, 1 ASCII |
|
| u16 at D+30 | BitmapResolution |
|
| u8 at D+42 | FontDownloading: 0 None, 1 Complete, 2 Subset |
|
| u8 at D+46 | DownloadPPDFonts |
|
| String | MarkType (enumeration): built-in empty Default, built-in kJMarksWithCircle JMarkWithCircle after a last session with code 0x0101, else Default (values of the exporting edition, below) |
|
| E (72 bytes) | u8 at E+0 | MarkLineWeight: 1 P25pt, 2 P50pt, 4 P07mm, 5 P10mm |
| f64 at E+4 | MarkOffset |
|
| u8 at E+12, 14, 16, 18, 20 | CropMarks, PageInformationMarks, ColorBars, RegistrationMarks, BleedMarks |
|
| u8 at E+22 | UseDocumentBleedToPrint |
|
| f64 at E+24 | BleedTop |
|
| u8 at E+32 | BleedChain |
|
| f64 at E+34, E+42, E+50 | BleedInside, BleedBottom, BleedOutside |
|
| u8 at E+58 | IncludeSlugToPrint |
|
| u8 at E+68 | Profile (enumeration): 1 UseDocument, 0 PostScriptCMS |
|
| String, F (4 bytes), string | not identified (built-in empty strings in every file) | |
| G (98 bytes) | f64 at G+12, G+20 | CyanFrequency, CyanAngle |
| f64 at G+30, G+38 | MagentaFrequency, MagentaAngle |
|
| f64 at G+48, G+56 | YellowFrequency, YellowAngle |
|
| f64 at G+66, G+74 | BlackFrequency, BlackAngle |
|
| f64 at G+82, G+90 | SpotFrequency, SpotAngle |
|
| String | FlattenerPresetName: $ID/ and the key for a built-in string; flag 3 with [High Resolution] (or its Czech name, [Vysoké rozlišení]) is $ID/kFlSt_HighDefaultName; other names are left out |
|
| Tail | 6 zero bytes, u32 n, n bytes, then u16 (DOM 7 to 9) or u32 (DOM 10 on), 0 or 1 | PaperSizeSelector: $ID/ and the n bytes in base64, as PrintRecord |
Also in every block are f64 −1 at A+0 and A+24 (PaperWidth and
PaperHeight are Auto in every file). The other bytes of the blocks
are not mapped: the IDML attributes left (Collating, Sequence,
Trapping, PrintCyan, Intent, …) have one value in every file, so
they cannot be told apart.
Three attributes are derived from fields:
AllPrinterMarksistrueexactly when the five marks of block E are alltrue(PrintPreference: 2 of 2true, 487 of 487false; booklets: 5 of 5 and 484 of 484).PreserveColorNumbersisfalsewhenColorOutputisCompositeRGBandtrueotherwise. Two of the 37 documents withCompositeGrayhavefalse.PrintToDisk(above).
The page range of PrintPreference is the u16 at A+122. With 0 the
IDML has Properties/PageRange AllPages (enumeration), with 2 it has
no PageRange: 1,240 and 12 of the 1,252 trustworthy pairs (DOM 11.4 to
21.3 for the 12), and no other value occurs. The page range text does
not follow it: it is empty in 1,062 of the 1,240, and holds
other text (1, 2-3, All Pages, A5 V) in the others and in all 12.
The converter writes AllPages for 0 and nothing otherwise.
TilingType has no field; the converter writes Auto as a default
(idml-values.md, defaults).
BitmapPrinting is not stored: no byte of any chunk of the preferences
object (0x2202) or of the document object, nor of the print record,
follows it. The converter does not write it.
PrintBookletPrintPreference has no PrintSpreads, Thumbnails,
Tile, TilingOverlap, ThumbnailsPerPage, IncludeSlugToPrint or
PageRange (schema); the converter reads the fields and does not write
these.
Evidence: each attribute above was compared over the 489 trustworthy
pairs for both elements; every one matches in all 489, except
PreserveColorNumbers (487, the two CompositeGray documents) and
MarkType (488: one DOM 16.1 document stores kJMarksWithCircle and
its IDML has Default; in the corpus of 2026-10 every document with
code 0x0100 that stores it has Default, 140 and 175 of each element). Over all 654 pairs, the only further misses are
PPDFile of two stale booklet pairs (a built-in path written without
$ID/). The paper rectangles are written as IDML writes them: with the
digits of the shortest form that reads back, the last rounded half to
even from the exact value (583.2000122070312, not …313). Several
ranges and rectangles are f32 values widened to f64
(16.600000381469727); they match only when written in full.
Which of two equal fields is which is assumed, because they are equal
in every sample: CyanFrequency and MagentaFrequency (the stride of
the ink entries supports the order), ScaleWidth and ScaleHeight,
and BleedTop, BleedInside and BleedOutside.
Booklet options (PrintBookletOption)
Chunk 0xAF0 of the preferences object: u32, a string (a page range or
paper name, not mapped), 4 bytes, then f64 TopMargin, BottomMargin,
LeftMargin, RightMargin, then 34 bytes (AutoAdjustMargins and the
other attributes have one value in every file). The chunk is in 11
trustworthy pairs (12 of all pairs); the margins match in all of them.
Without the chunk, IDML has the margins 36 (478 of 478; 1,447 of 1,447
in the corpus of 2026-10). Left and right are equal in every sample, so
their order is assumed.
Index header setting (IndexHeaderSetting)
Chunk 0x1300E of the preferences object holds the attributes of
IndexHeaderSetting and its Properties/ListOfIndexHeaderGroup. Every
trustworthy pair has the chunk. A "u32 string" is a u32 length in UTF-16
units, then text segments.
| Field | IDML |
|---|---|
| String | HeaderSetName ($ID/ and the text for a built-in string) |
| u16 | HeaderSetLanguage |
| u32 | IndexHeaderSetHandler |
| u32 | IndexHeaderSetGroupValue |
| u32 | IndexHeaderSetGroupOptionValue |
| u16 | not identified (1) |
| u32 | number of groups |
Each group is an IndexHeaderGroupType:
| Field | IDML |
|---|---|
| String | InternalName ($ID/ and the text for a built-in string) |
| String | UIString (same rule) |
| u32 string | DocumentString, written $ID/ and the text |
| u16 | Visibility: 1 true, 0 false |
| u32 | number of sections |
Each section is a SectionHeaderType in the group's
SectionHeaderArray:
| Field | IDML |
|---|---|
| u32 string | SortingHeaderString, written $ID/ and the text |
| u32 string | DocumentHeaderString, written $ID/ and the text |
| String | UIHeaderString ($ID/ and the text for a built-in string) |
| u16 | Language |
The chunk ends after the last section. Evidence: the five attributes and
the whole list equal the IDML in 489 of 489 trustworthy pairs; the parse
reads every chunk of the 654 pairs to its end. The default list has two
groups (kIndexGroup_Symbol with one section, $ID/IDX_Basic with 26);
documents with CJK index groups have more.
Index options (IndexOptions)
Chunk 0x13010 of the preferences object, in 10 of the 489 trustworthy pairs and in no stale pair:
| Field | IDML |
|---|---|
| u32 string | Title |
| String | TitleStyle (a paragraph style name, below) |
| u8 | ReplaceExistingIndex (1 true) |
| u8 | IncludeBookDocuments |
| String | not identified (empty in every file) |
| 14 bytes | byte 10: IncludeSectionHeadings; the rest 0 |
| 6 u32 strings | FollowingTopicSeparator, BetweenPageNumbersSeparator, BetweenEntriesSeparator, BeforeCrossReferenceSeparator, PageRangeSeparator, EntryEndSeparator |
| 8 strings | Level1Style to Level4Style, SectionHeadingStyle (paragraph styles), PageNumberStyle, CrossReferenceStyle, CrossReferenceTopicStyle (character styles) |
| 4 bytes | 0 |
- The en dash (U+2013) stored as
PageRangeSeparatoris written^=(10 of 10 pairs match). - A style is stored by name. IDML names the style of that name that is
in no style group, whatever the built-in flag of the stored name. If
there is none, IDML writes
ParagraphStyle/$ID/[No paragraph style](CharacterStyle/$ID/[No character style]). Examples: a stored built-inIndex Level 1in a document without that style gives the root style; a stored built-inIndex Section HeadgivesParagraphStyle/Index Section Headwhere a user style of that name exists; a stored name equal to a style inside a style group gives the root style.
Evidence: every attribute in 10 of 10 trustworthy pairs (titles in
several languages, ReplaceExistingIndex false once,
IncludeSectionHeadings false once, user style references).
Without the chunk every IDML of the corpus of 2026-10 (1,392 of 1,392)
has TitleStyle, Level1Style to Level4Style and
SectionHeadingStyle ParagraphStyle/$ID/[No paragraph style],
PageNumberStyle, CrossReferenceStyle and CrossReferenceTopicStyle
CharacterStyle/$ID/[No character style], ReplaceExistingIndex="true",
IncludeBookDocuments="false", IncludeHiddenEntries="false",
IndexFormat="NestedFormat", IncludeSectionHeadings="true",
IncludeEmptyIndexSections="false", and the separators (two
spaces, following topic), ^= (page range), , (between page
numbers), . (before a cross reference) and the empty end separator.
The converter writes these. The title is Index in most documents and a
translation in the others (索引, Indice, Указатель, …), and
BetweenEntriesSeparator is ; or 、. Both follow the edition
(values of the exporting edition, below).
Chapter numbering (ChapterNumberPreference)
Chunk 0x1A4C4 of the preferences object (14 bytes), in 37 of the 489 trustworthy pairs:
| Offset | Field | IDML |
|---|---|---|
| 0 | u32 | ChapterNumberFormat (string): 0x1A477 1, 2, 3, 4..., 0x1A47A A, B, C, D..., 0x1A479 i, ii, iii, iv..., 0x1A473 001,002,003... |
| 4 | u32 | ChapterNumberSource: 1 UserDefined, 3 ContinueFromPreviousDocument |
| 8 | u32 | ChapterNumber |
| 12 | u16 | not identified |
Evidence: 37 of 37. Without the chunk, IDML has ChapterNumber="1",
ContinueFromPreviousDocument and 1, 2, 3, 4... in 452 of 452 (1,345
of 1,345 in the corpus of 2026-10); the converter writes the element
with these values.
Dictionary (DictionaryPreference)
Chunk 0x2806 of the preferences object (6 bytes, the same in every
file). Without it, Composition is Both (468 of 468 trustworthy
pairs). With it, Composition is UseDocument in 16 of 21; the other 5
(DOM 14 and 15) have Both with the same bytes. The converter writes
UseDocument when the chunk is there.
EPUB, HTML and Publish Online export
From DOM 8 for EPUB and HTML, DOM 10 for fixed layout EPUB, DOM 11 for
Publish Online (designmap.xml). Each has a chunk of the preferences
object that only some documents have; values are from the corpus of
2026-10 (1,460 pairs, 1,251 trustworthy). A "string" here is a flag
byte and an in-object string; for TocStyleName, ParagraphStyleName
and CoverPage, flag 1 means $ID/ before the text.
EPubExportPreference, chunk 0x21A1A (39 files, 37 trustworthy),
read in order:
| Field | IDML |
|---|---|
| u32 | Version: 0 Epub2, 1 Epub3 |
| u32 | ExportOrder: 1 LayoutOrder, 2 ArticlePanelOrder |
| u32 | EpubCover: 0 None, 1 FirstPage, 2 ExternalImage |
| string | CoverImageFile |
| u16 | 1 in all (not mapped) |
| string | TocStyleName; UseTocStyle is true exactly when its text is not empty (11 true, 28 false) |
| u16 | BreakDocument |
| string | ParagraphStyleName |
| 46 bytes | not mapped |
| string | EpubPublisher |
| string | Id |
| 50 bytes (52 in the DOM 8 file, which has 2 more first) | u16 at 0: G (below); u16 at 2: ImageExportResolution in ppi (72 Ppi72, 150 Ppi150); u16 at 6: CustomImageSizeOption (0 SizeFixed, 1 SizeRelativeToTextFlow) |
| string | empty in all |
| 20 bytes (INDD 8 to 10, 18 files), 22 (13.x, 4) or 26 (17 on, 17) | u16 at 10 (at 14 in the 26-byte block): EmbedFont |
| 6 strings, not in the DOM 8 file | EpubTitle, EpubCreator, EpubDate, EpubDescription, EpubRights, EpubSubject |
G = 1 gives PreserveLayoutAppearence="true",
FootnotePlacement="FootnoteAfterStory" and UseExistingImageOnExport
and UseOriginalImageOnExport false; G = 0 gives false,
FootnoteInsidePopup, true and true. The four change together in
all 39 files (one collection of 10 has 0), so they are written as a
group, for these codes only. Which length the two blocks have is not
stored; the converter reads the layout that ends exactly at the chunk's
end (one of the six combinations does in all 39 files). Every attribute
matches in 39 of 39 files. A chunk that no combination reads to its end
gives only Version and Id (the string that starts with urn:uuid:).
The u16 at 0 of the 20- to 26-byte block is 5 in all files, as is IDML
Level; it is not mapped.
HTMLExportPreference, chunk 0x21A19 (7 files, all trustworthy):
u32 at 4 ExportOrder (as above), u16 at 48
ViewDocumentAfterExport, u16 at 54 PreserveLayoutAppearence; after
byte 98: a string, 6 bytes (10 in the file of InDesign 17), two
strings, a u16 and the u16 PreserveLocalOverride. 7 of 7 each. The
second of the two strings is .jpg in all 7, as is IDML
ImageExtension; it is not mapped.
EPubFixedLayoutExportPreference, chunk 0x21A25 (18 files, all
trustworthy), in order: u32 EpubCover; string CoverImageFile; u16;
string TocStyleName; u16; string EpubPublisher; string Id; 16
bytes; a string (empty in all); 12 bytes; the six metadata strings
above, then a string empty in all (IDML EpubPageRange is empty in
all, so it is not mapped); 12 bytes with u32 at 8
EpubNavigationStyles (0 NoNavigation, 2 TocStyleNavigation, 3
BookmarksNavigation). 18 of 18 for each attribute; the parse ends at
the chunk's end in all 18.
PublishExportPreference, chunk 0x21A20 (9 files, all
trustworthy), in order: u32 0, u32 1; strings PublishFileName,
PublishDescription, PublishPageRange; 16 bytes; a string (empty in
all); 7 bytes; a string (empty in all); 5 bytes; string CoverPage
(flag 1 and empty text: $ID/). 9 of 9; the parse ends at the chunk's
end. ImageExportResolution follows the exporting edition (below).
Without the chunk every file of the corpus of 2026-10 has these values (all pairs; trustworthy in brackets):
| Element | Values | Files |
|---|---|---|
EPubExportPreference |
Id urn:uuid:29d919dd-24f5-4384-be78-b447c9dc299b, TocStyleName $ID/, UseTocStyle and BreakDocument false, ExportOrder LayoutOrder, EpubCover FirstPage, CoverImageFile and EpubPublisher empty, ParagraphStyleName $ID/NormalParagraphStyle, PreserveLayoutAppearence and EmbedFont true, ImageExportResolution Ppi150 |
1,411 (1,205) |
Version Epub2 before INDD 18.1, Epub3 from 18.1 |
1,411 (1,205) | |
CustomImageSizeOption SizeFixed before INDD 21.1, SizeRelativeToTextFlow from 21.1 |
1,410 of 1,411 (1,205 of 1,205); the other is a stale pair | |
FootnotePlacement FootnoteAfterStory, UseOriginalImageOnExport false: IDML has them from INDD 9.2 |
1,306 (1,112) | |
the six metadata strings empty, UseExistingImageOnExport false: IDML has them from INDD 10.0 |
1,302 (1,108) | |
HTMLExportPreference |
ExportOrder LayoutOrder, ViewDocumentAfterExport true, PreserveLayoutAppearence false, PreserveLocalOverride true |
1,443 (1,235) |
EPubFixedLayoutExportPreference |
EpubCover FirstPage, CoverImageFile, EpubPublisher and the six metadata strings empty, TocStyleName $ID/, Id as for EPUB, EpubNavigationStyles NoNavigation |
1,322 (1,127) |
PublishExportPreference |
PublishFileName, PublishDescription, PublishPageRange empty, CoverPage $ID/ |
1,211 (1,023) |
The version boundaries are those of the INDD header: no IDML of an earlier version has these attributes, every IDML from that version on has them.
EPubExportPreference ViewDocumentAfterExport="true" is in the IDML
of DOM 8 and 9 only, with the chunk or without it: 107 of the 108
distinct corpus IDML files of those versions (the other, a DOM 8 file,
has false); one DOM 7 file has it too, and no file of DOM
10 or later. The chunks read above do not hold it. The converter writes
true for DOM 8 and 9: 97 of 97 values in the trustworthy pairs.
EPUB accessibility
EPubExportPreference and EPubFixedLayoutExportPreference have nine
attributes EpubAccessibilityFeature, …Hazard, …Mode,
…ModeSufficient, …Summary, …ConformsTo, …CertifiedBy,
…Credentials and …ReportLink. They are empty in every corpus IDML
that has them. EPubExportPreference EpubCreatePageNavigation is
true in every IDML that has it. The boundaries are by INDD header
version, major and minor (every pair from 19.0 on):
| INDD header version | Pairs | Accessibility attributes | EpubCreatePageNavigation |
|---|---|---|---|
| 19.0–19.2 | 56 | none | none |
| 19.3 | 3 | all 9 on both elements, empty | none |
| 19.4–19.5 | 6 | all 9, empty | true |
| 20.0–21.5 | 93 | all 9, empty | true |
The converter writes the nine attributes empty on both elements from
19.3 and EpubCreatePageNavigation="true" from 19.4.
No stored field is shown. Chunk 0x21A1A is 267 bytes in every file from 17.4 to 21.5 that has it (13 files), except one 20.1 file whose six metadata strings are filled (770 bytes); its length does not change at 19.3, so it holds no field for these attributes while they are empty. No corpus file has a non-empty value, so where one would be stored is not shown. No file from 17 on has chunk 0x21A25.
Adjust layout (AdjustLayoutPreference in designmap.xml)
From DOM 14. Chunk 0x7020 of the preferences object (26 bytes, 83
files): u16 at 0 EnableAdjustLayout, at 4
AllowFontSizeAndLeadingAdjustment, at 24 EnableAutoAdjustMargins;
83 of 83 each (36, 2 and 1 true). The u16 at 2 and 6 and the f64 at 8
and 16 have one value in every file (1, 0, 6, 324), as have the IDML
attributes next to them; they are not mapped. Without the chunk (634
files, 547 trustworthy) the last two are false in every file, and
EnableAdjustLayout follows the save history (below).
Values of the exporting edition
Some values have no field in the INDD: IDML writes the defaults of the
InDesign that exported it. The converter takes that application from
the save history (objects.md, save history) or from the name of the
document's assignment, which is in the language of the edition that
made the document (objects.md, assignments). These rules have
exceptions where a document was exported by another installation than
the one that saved it last; the counts give them. Over the corpus of
2026-10, trustworthy pairs (all pairs in brackets):
| Value | Rule | Matches |
|---|---|---|
BaselineFrameGridColor (preference and object styles) where chunk 0x2834 names no colour |
Charcoal when the last session's language code is 0x0101, else LightBlue |
1,112 of 1,209 (1,318 of 1,416); the byte-168 rule matched 892. 96 exceptions are two collections of one Korean publisher (code 0x0101, IDML LightBlue) |
DocumentPreference ColumnGuideColor without chunk 0x555 |
Lavender for code 0x0101, else Violet |
822 of 845 (965 of 989); 22 exceptions in the same collections |
GridPreference gridline divisions and subdivisions without chunk 0x545 |
code 0x0101: 56.69291338582678 (20 mm) and 10; else 72 and 8 |
with the documents that have the chunk, 1,152 of 1,251 for each of the four values (915 with 72 and 8 for every document); 96 of the 99 exceptions are the same two collections, 3 are other documents (one with code 0x0101 and 72, one with another code and 20 mm, one with 28.35) |
MarginPreference ColumnGutter without chunk 0x555 |
code 0x0101: 14.173228346456694 (5 mm); else 12 |
with the documents that have the chunk, 1,223 of 1,251 (1,021 with 12 for every document); 22 of the 28 exceptions are the two collections, 6 others have 17, 20 or 5 mm with another code |
PrintPreference and PrintBookletPrintPreference MarkType stored as kJMarksWithCircle |
JMarkWithCircle for code 0x0101, else Default |
1,154 and 1,131 of 1,251 (1,014 and 956 with the stored name alone); the exceptions are 96 documents of the two collections with Default in each element, one more for PrintPreference, and the booklet settings of 24 documents without chunk 0xAF2 (below) |
WatermarkPreference WatermarkFontFamily, WatermarkFontStyle without chunk 0x16344 |
by the assignment name: English Minion Pro Regular, Korean Adobe Myungjo Std M, traditional Chinese (未指定的 InCopy 內容) Adobe Ming Std L, Japanese Kozuka Mincho Pro R; other languages none |
1,251 of 1,251 each (57 without the chunk) |
PublishExportPreference ImageExportResolution, PublishPdf |
by the last session's version: 11.0 Ppi72 and no PublishPdf; 11.1 Ppi96 and no PublishPdf; 11.2 and later Ppi96 and PublishPdf="false" |
1,021 of 1,023 trustworthy pairs from 11.0 (the two exceptions have an IDML of another release than the last session); by the header version 5 more fail, among them 3 files of header 11.4 last saved by 11.0 |
AdjustLayoutPreference EnableAdjustLayout without chunk 0x7020 |
true when the last session's version string starts with 14.0.0 or 14.0.1, else false |
634 of 634 files from version 14 without the chunk (547 trustworthy) |
IndexOptions Title and BetweenEntriesSeparator without chunk 0x13010 |
the title by the saving edition (objects.md, saving edition); without a black name, and for the separator, by the assignment name: Japanese 索引 and 、; Chinese 索引 and ; ; Korean 색인 and ; ; English, French, German, Dutch Index and ; ; Italian Indice and ; ; other languages ; and no title; English with a last session of code 0x0101 ; and no title |
title 1,250 of 1,251 (by the assignment name 1,096 of 1,155 written, 59 English documents saved by a Korean or Italian edition, 30 left out); separator 1,183 of 1,185 |
LayoutAdjustmentPreference SnapZone without chunk 0x7006 |
0.70866141732283 (0.25 mm) when the horizontal ruler unit is millimetres or centimetres or the assignment name is not English, else 2 |
1,172 of 1,183 (1,358 of 1,377); the exceptions are English documents in picas, points, inches or pixels |
DOMVersion of every part |
by the last session's version (idml-values.md, DOM version) |
1,164 of 1,251 |
KeyboardShortcut of a style with a digit key |
by the platform of the last session (objects.md, styles) |
3,154 of 3,154 character and 6,927 of 6,928 paragraph styles |
The assignment names are Unassigned InCopy Content (English, 648
files), 할당되지 않은 InCopy 내용 (Korean, 433), アサインされていない InCopy の内容 (Japanese, 155), 未指定的 InCopy 內容 and 未指定的 InCopy 内容 (Chinese, 93), Contenu InCopy non affecté (French, 67),
Nicht zugewiesener InCopy-Inhalt (German, 44), Niet toegewezen InCopy-inhoud (Dutch, 10), Contenuto InCopy non assegnato (Italian,
3) and four others in one to four files (Russian, Spanish, Czech,
Portuguese), whose titles are not written. Korean editions write the
code 0x0101 as Japanese and Chinese ones do, so the code alone does not
give the title: 369 of 369 documents with the Korean name have 색인,
with either code.
Default styles, grids and other settings
Chunks of the preferences object, trustworthy pairs. A colour is the UID
of an interface colour (objects.md, interface colours).
Default styles. Each chunk is a list of u32 UIDs; the third is the default:
| Chunk | u32 at 8 | u32 at 12 | u32 at 16 |
|---|---|---|---|
| 0x28D4 (12 bytes) | TextDefault AppliedParagraphStyle |
||
| 0x28D5 (12 bytes) | TextDefault AppliedCharacterStyle |
||
| 0x1B959 (20 bytes) | PageItemDefault AppliedGraphicObjectStyle |
AppliedTextObjectStyle |
AppliedGridObjectStyle |
The first two UIDs are the root style and the root style group. The reference is written as other style references; UID 0 is the root style. Evidence: every pair has the three chunks. Paragraph 487 of 489 (the other two name another style in IDML; not explained), character 489 of 489, graphic and text object styles 489 of 489.
Layout and story grids. Chunks 0xCD2F (LayoutGridDataInformation)
and 0xCD2E (StoryGridDataInformation) start as page chunk 0xCD02
(objects.md): u32 font family UID (AppliedFont), a flag byte and the
font style (FontStyle), five f64 (PointSize, CharacterAki,
LineAki, and HorizontalScale and VerticalScale as fractions of
100 %), four u32 codes. Chunk 0xCD2E continues with u32 0 and f64
CharacterCountSize. Evidence: every pair has both chunks; all values
match in 489 of 489 but AppliedFont (488: one family that IDML names
in another form, fonts.md).
Single settings.
| Chunk | Layout | IDML | Without the chunk | Evidence |
|---|---|---|---|---|
| 0x59C | u16 1 | DocumentPreference MasterTextFrame, CreatePrimaryTextFrame (DOM 8 on) true |
false |
14 with, 475 without; 489 of 489 |
| 0x1081F | u32: 2 RGB, 3 CMYK |
TransparencyPreference BlendingSpace |
CMYK |
62 of 62; 427 of 427 |
| 0x5A6 | u16: 1 true, 0 false |
DocumentPreference AllowPageShuffle |
(in every file) | 489 of 489 |
| 0x568 | u16 | GuidePreference GuidesShown |
true |
114 of 114; 375 of 375 |
| 0x55A | u8 at 0, u8 at 2 | GuidePreference GuidesSnapto, GridPreference DocumentGridSnapto |
true, false |
26 of 26; 463 of 463 |
| 0x53F (22 bytes) | u8 at 0; colour at 18 | GuidePreference GuidesInBack, RulerGuidesColor |
(in every file) | 489 of 489 |
| 0x55F | colour at 30; u8 at 34: 0 TopOfPageOfBaselineGridRelativeOption, 1 TopOfMarginOfBaselineGridRelativeOption |
GridPreference BaselineColor, BaselineGridRelativeOption |
(in every file) | 489 of 489 |
| 0x545 | colour at 32 | GridPreference GridColor |
LightGray |
14 of 14; 475 of 475 |
| 0x550 | colour at 36 | DocumentPreference MarginGuideColor |
Magenta |
388 of 388; 101 of 101 |
| 0x555 | colour at 18 | DocumentPreference ColumnGuideColor |
(observed value) | 72 of 72 |
| 0x5D2 | colours at 20, 24, 28 | PasteboardPreference BleedGuideColor, SlugGuideColor, PreviewBackgroundColor |
Fiesta, GridBlue, LightGray |
80 of 80; 409 of 409 |
| 0x54A (18 bytes) | f64 at 0, f64 at 8 | Document ZeroPoint |
0 0 |
46 of 46; 443 of 443 |
| 0x7006 (20 bytes) | u8 at 0; f64 at 12 | LayoutAdjustmentPreference EnableLayoutAdjustment, SnapZone |
false (1,377 of 1,377 in the corpus of 2026-10), SnapZone below |
24 of 24 |
| 0xCA0B | u16 1 | ViewPreference ShowTextThreads true, INDD version 21.1 on |
false |
IDML has the attribute only from version 21.1: 26 of 26 (28 of 28 in all pairs) |
Without chunk 0x555, ColumnGuideColor and without chunk 0x7006
SnapZone follow the edition (values of the exporting edition, below).