[Issue] Doc corrompu ou invalide en ODF 1.2 sous MS-Office

Questions liées au programme de setup ou à l'installation ainsi que des problèmes d'ordre général qui ne sont pas liés à un module spécifique (dictionnaire, impression, etc).

Modérateur : Vilains modOOs

Avatar de l’utilisateur
Vulcain
InconditiOOnnel
InconditiOOnnel
Messages : 989
Inscription : 01 juin 2009 09:52
Localisation : Poitou

[Issue] Doc corrompu ou invalide en ODF 1.2 sous MS-Office

Message par Vulcain »

Bonjour,
Les utilisateurs de LibreOffice 3.4 et 3.5 qui échangent des fichiers au format ODF avec des utilisateurs de la suite MS office 2007 et 2010 devront faire face à quelques soucis (Bug 44498 All OpenDocument files created with LibO 3.4 or 3.5 are considered as invalid by Microsoft Office, le pendant en français: Problème d'ouverture d'un fichier .odt sous word)
Les futurs utilisateur de Apache OpenOffice risquent aussi d'être impacté. Bug 115789 - No manifest:version attribute in manifest:manifest element

Pour les personnes attentives au notes de version de LibreOffice 3.5: ils auront noté ce sous-chapitre:
Release Notes 3.5 a écrit :ODF 1.2 Conforming Documents
  • LibreOffice 3.5 writes valid ODF 1.2
  • Microsoft Office only officially supports ODF 1.1 and complains that ODF 1.2 and ODF 1.2 extended documents written by LibreOffice 3.5 are invalid.
  • The warning from Microsoft Office can be safely ignored, and the "Repair" option will import the document.
  • For users that find this annoying, a workaround is to open Tools->Options->Load/Save->General and set "ODF format version" to "1.0/1.1". However, please note that this will cause some information to be lost when storing documents.
Related issues: fdo#44498
Il semble que le numéro de version de l'ODF n'était pas à préciser dans les normes 1.0 et 1.1 Cela a été corrigé dans la norme 1.2 et mis en application dans Libreoffice 3.4 et 3.5 (bientôt dans Apache Openoffice 3.4).
Où se trouve la différence ??
Renommez un ODF en zip, et ouvrez le. Vous remarquez que tout est rangé en différentes parties:
+-styles.xml
+-settings.xml
+-mimetype
+-meta.xml
+-content.xml
++Thumbnails
++Pictures
++META-INF
++Configurations2
++Basic
Je vous renvoie vers wikipédia pour la signification de tout ceci.

Les premiers fichiers sont structurés en xml et commence par indiquer quelles versions de l'ODF ils utilisent
Ainsi dans le fichier settings.xml on verra:
pour un document créé par MS Office 2010

Code : Tout sélectionner

<office:document-settings office:version="1.1"/>
et pour document créé par LibreOffice 3.5

Code : Tout sélectionner

<office:document-settings office:version="1.2">

Chose similaire pour les fichiers meta.xml, styles.xml, content.xml.

De même, dans le dossier META-INF, se trouve un fichier manifest.xml on retrouve la ligne

Code : Tout sélectionner

<manifest:manifest manifest:version="1.2">
Or à quoi sert le fichier manifest.xml: à dire où sont placés ses petits camarades (le style du texte, sont contenu, les photos ...).
Comme la manière dire comment c'est rangé à changer, les concepteurs de la norme 1.2 se sont dit qu'annoncé la version de la norme serait une bonne chose.

Mais MS Office considère que c'est une corruption de fichier et il affiche:
Image
Image
Si vous passez outre, il retrouve ses petits (car entre la norme 1.2 et 1.1, ils sont toujours au même endroit) et affiche correctement votre document.
Bref plus de peur que de mal mais de joyeuse pagaille en perspective ...

Comme l'indique le texte en anglais, vous pouvez aussi retourner dans la norme que connaît MS: ODF1.1
Outils -> Options -> Chargement/Enregistrement-> Général et sur Version du format ODF choisir 1.0/1.1
Par contre, vous risquez de perde des fonctionnalités apportées par la norme 1.2

P.S.: Un fichier manifest.rdf est aussi présent à la racine des fichiers ODF 1.2
LibreOffice 3.5.7.2 sous Ubuntu 12.04 (vient des dépôts)
--
"Un logiciel Libre est gratuit une fois qu'il a été payé" F.ELIE