1<!-- 2 Licensed to the Apache Software Foundation (ASF) under one 3 or more contributor license agreements. See the NOTICE file 4 distributed with this work for additional information 5 regarding copyright ownership. The ASF licenses this file 6 to you under the Apache License, Version 2.0 (the 7 "License"); you may not use this file except in compliance 8 with the License. You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12 Unless required by applicable law or agreed to in writing, 13 software distributed under the License is distributed on an 14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 KIND, either express or implied. See the License for the 16 specific language governing permissions and limitations 17 under the License. 18--> 19 20# DRAFT: Apache OpenOffice: ODF 1.4 known limitations 21 22> **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. 23 24This 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 against the 1.4 schema. 25 26## Not supported 27 28- XAdES signatures, and OpenPGP key transport in the manifest (`manifest:encrypted-key`, `keyinfo`, `PGPData`, `PGPKeyID`, `PGPKeyPacket`, `PGPAlgorithm`, `CipherData`, `CipherValue`). 29- Documents newer than ODF 1.4 trigger the "created with a newer version" prompt; ODF 1.3 and 1.4 documents do not. 30 31## Producer: the "ODF 1.4" save mode 32 33- 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. 34- 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. 35- `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. 36- `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. 37- 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`. 38- 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. 39- `form:input-required` is not written in the 1.3 and earlier strict modes, so a control set to false reloads as true. 40- 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. 41 42## Producer: the "ODF 1.4 Extended" save mode 43 44This 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: 45 46- Paragraph fills are written as `loext:graphic-properties`. 47- 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. 48- `text:p` inside `draw:object` is still written. 49- Untouched embedded objects are re-exported as in the strict formats: more work on each save, and their stored form changes. 50 51## Reader: ODF 1.4 features that are not interpreted 52 53These are read without error and have no effect: 54 55- `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`. 56- `style:background-fill` on paragraphs. 57- `number:num-list-format` and `style:num-list-format-name`: the list keeps its default label. 58- `table:table` inside a shape: the document loads, but the table is not shown or kept. 59- Colour filter conditions (`text-color`, `background-color` on `table:filter-condition`) are dropped; the other conditions of the filter are kept. 60 61## Reader: read with limits 62 63- 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. 64- `fo:break-before` with `even-page` or `odd-page` becomes an ordinary page break. 65- `draw:extrusion-specularity` above 100% is stored unchanged. Its rendering was not checked. 66- `style:repeat="scale"` is read as `stretch`: the image fills the shape without keeping its aspect ratio. 67- `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. 68 69## Formulas 70 71- `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. 72- `CONVERT` with `atm` uses 101324.996583 Pa; the ODF 1.4 table gives 1.0132510E+5, a relative difference of 1.0e-6. 73- 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. 74- `DATE` gives an error for dates before 15 October 1582. ODF 1.4 requires support only from 1583 and makes earlier dates implementation-defined. 75 76## Not verified 77 78Builds on Linux x86-64, FreeBSD and Windows; the translated option-page strings; rendering of the shapes and fills listed above. 79