Skip to main content

Module odt_options

Module odt_options 

Source
Expand description

Page geometry + base typography for ODT (OpenDocument Text) export.

Mirrors super::docx_options::DocxExportOptions field-for-field and unit-for-unit: every length here is still in DOCX-style units — twips (1/1440 inch) for lengths, half-points for font size — even though ODF’s own native vocabulary is centimeters/points with a unit suffix baked into every attribute value. That is a deliberate choice, not an oversight: keeping one shared unit convention across every export writer’s options struct is what lets a caller (e.g. Skribisto’s compiler, which already produces twips for DocxExportOptions) hand the same numbers to both writers without a second conversion table of its own. The twips→ODF (fo:*="…pt") conversion happens once, inside the ODT writer itself (document_io::use_cases::export_odt_uc), which is the only place that needs to know ODF’s own unit spelling.

Per-block RTL is not an option here, for the same reason as DOCX: it is read from each block’s own fmt_direction and emitted as a paragraph-level style:writing-mode="rl-tb" (the ODF analog of <w:bidi/>). A document that mixes LTR and RTL scenes is therefore handled per paragraph, independently of these options.

Structs§

OdtExportOptions
Page geometry + base typography overrides for an ODT export. Every field is optional; the Default is “no overrides” — a plain “Standard”-styled document at ODF/LibreOffice’s own built-in page defaults (A4-ish, 2cm-ish margins — whatever the reader substitutes for an unstyled style:page-layout).
OdtHeadingStyle
How one heading level’s paragraph style is defined in the output.