This is an automated email from the ASF dual-hosted git repository. jimjag pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 6f04b4c923fe35796c4e199ae88ca5feb7be7e16 Author: Jim Jagielski <[email protected]> AuthorDate: Wed Nov 4 12:17:07 2026 -0500 odf_docs: add the draft ODF 1.4 known limitations --- odf_docs/ODF14-KNOWN-LIMITATIONS-PUBLIC.md | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/odf_docs/ODF14-KNOWN-LIMITATIONS-PUBLIC.md b/odf_docs/ODF14-KNOWN-LIMITATIONS-PUBLIC.md new file mode 100644 index 0000000000..b4ad99efad --- /dev/null +++ b/odf_docs/ODF14-KNOWN-LIMITATIONS-PUBLIC.md @@ -0,0 +1,59 @@ +# DRAFT: Apache OpenOffice: ODF 1.4 known limitations + +> **DRAFT. Work in progress, for discussion only.** This document has not been reviewed or approved by the Apache OpenOffice project and may change or be withdrawn. It is not an announcement, and it makes no claim that Apache OpenOffice conforms to ODF 1.4. + +This lists the known deviations of Apache OpenOffice from ODF 1.4 in its "ODF 1.4" save mode (the producer) and when it reads ODF 1.4 documents (the consumer). It accompanies the implementation-defined values document. The "ODF 1.2" and "ODF 1.3" limitations lists describe those modes; their checks were not repeated item by item for the 1.4 mode, and the 1.3 reader limitations apply here too. For the 1.4 mode, a corpus of 411 test packages saved in that mode validates with no error again [...] + +## Not supported + +- XAdES signatures, and OpenPGP key transport in the manifest (`manifest:encrypted-key`, `keyinfo`, `PGPData`, `PGPKeyID`, `PGPKeyPacket`, `PGPAlgorithm`, `CipherData`, `CipherValue`). +- Documents newer than ODF 1.4 trigger the "created with a newer version" prompt; ODF 1.3 and 1.4 documents do not. + +## Producer: the "ODF 1.4" save mode + +- Signatures carry no `dsig:version`. The attribute is required by the 1.2, 1.3 and 1.4 signature schemas, and AOO has not written it in any mode. +- Formula cells with an error result are written with `office:value-type="string"`. ODF 1.4 adds the value type `error`; it is not used because the 1.4 text names an `office:error` attribute for it that does not exist, and older readers do not know the value type. +- `draw:handle-position` and `draw:handle-polar`, which ODF 1.4 deprecates, are still written next to the new handle attributes so that older versions keep custom-shape handles. +- `draw:decorative` is kept as a property of shapes in Draw, Impress and Calc, of groups, and of Writer text frames, graphics and drawing shapes, and is written in the 1.4 modes only. There is no user interface for it, it has no effect on accessibility or tagged PDF, changing it cannot be undone, and deleting a Writer text frame and undoing the deletion, or copying and pasting the frame, loses it, as it loses the frame's title. OLE objects, Calc form controls and charts were not tried. +- Paragraph fills are not written in the "ODF 1.4" mode. Header and footer fills and Impress table cell fills are written as `style:background-fill`. +- The vertical and horizontal text alignment of an Impress table cell has no counterpart in ODF 1.4 and is lost on save. The writing mode of a table cell is not saved in any mode, and cell borders are written as paragraph borders. +- `form:input-required` is not written in the 1.3 and earlier strict modes, so a control set to false reloads as true. +- A stock chart whose series has a role with no range may lose its link to the sheet on reload, because `table:cell-range-address` is no longer written on `chart:plot-area`. This comes from reading the code; no such chart could be built in the user interface. + +## Producer: the "ODF 1.4 Extended" save mode + +This mode is not part of any claim. For the 411-package corpus its output has no error against the 1.4 schema once foreign elements and attributes are removed. Beyond the limits above: + +- Paragraph fills are written as `loext:graphic-properties`. +- The "snap to characters" grid option is written as `style:layout-grid-snap-to`, and the XForms list source of a combobox as `ooo:xforms-list-source`. Older versions lose these. +- `text:p` inside `draw:object` is still written. +- Untouched embedded objects are re-exported as in the strict formats: more work on each save, and their stored form changes. + +## Reader: ODF 1.4 features that are not interpreted + +These are read without error and have no effect: + +- `style:margin-gutter`, `text:relative-tab-stop-position` on a paragraph style, `draw:allow-overlap`, `draw:extrusion-metal-type`, `svg:rx` and `svg:ry` on text boxes and annotations, `chart:major-origin` and `chart:minor-logarithmic`, and `office:annotation` in `draw:page`. +- `style:background-fill` on paragraphs. +- `number:num-list-format` and `style:num-list-format-name`: the list keeps its default label. +- `table:table` inside a shape: the document loads, but the table is not shown or kept. +- Colour filter conditions (`text-color`, `background-color` on `table:filter-condition`) are dropped; the other conditions of the filter are kept. + +## Reader: read with limits + +- Error cells (`office:value-type="error"`) are read as cells holding that error. They are saved as strings with the error text and no formula. +- `fo:break-before` with `even-page` or `odd-page` becomes an ordinary page break. +- `draw:extrusion-specularity` above 100% is stored unchanged. Its rendering was not checked. +- `style:repeat="scale"` is read as `stretch`: the image fills the shape without keeping its aspect ratio. +- `style:writing-mode` with `sideways-rl` or `sideways-lr` falls back to the mode of the page, and `style:vertical-rel` with `page-content-bottom` or `page-content-top` falls back to the paragraph area. AOO has neither. + +## Formulas + +- `INDEX` on a row vector with only a row argument returns the column, as in other spreadsheets. ODF 1.4 removed that rule and calls the call an error. +- `CONVERT` with `atm` uses 101324.996583 Pa; the ODF 1.4 table gives 1.0132510E+5, a relative difference of 1.0e-6. +- A trailing empty parameter before the closing bracket, as in `NPER(r;p;pv;;)`, is an error for every function except `IF`. An empty parameter in the middle works. +- `DATE` gives an error for dates before 1583, which ODF 1.4 makes implementation-defined. + +## Not verified + +Builds on Linux x86-64, FreeBSD and Windows; the translated option-page strings; rendering of the shapes and fills listed above.
