Comment créer un fichier au format OpenDocument (ODF) proprement

    From The Document Foundation Wiki

    Le format OpenDocument

    Généralités

    La FAQ LibO et le XML explique le choix du format XML pour construire les fichiers au format OpenDocument. Si vous voulez simplement consulter le contenu d'un fichier, vous pouvez vous référer à la FAQ Quel est le format de fichier utilisé par LibreOffice ?

    Un fichier au format OpenDocument est une archive zippée avec une arborescence de fichiers contenant la structure en XML. Plusieurs extensions de fichier correspondent à ce format :

    • ODT OpenDocument Text : document texte créé par Writer
    • ODS OpenDocument Spreadsheet : classeur de feuilles de calcul créé avec le tableur Calc
    • ODP OpenDocument Presentation : présentation créée avec Impress
    • ODG OpenDocument Graphic : document rassemblant des dessins, créé avec Draw
    • ODB OpenDocument Base : base de données créée avec Base
    • ODF OpenDocument Formula : équation mathématique créée avec Math

    L'article wikipedia contient davantage de détails sur le format lui-même.

    Structure du format ODF

    Même si LibreOffice est capable d'ouvrir un fichier ODF constitué d'une simple archive zippée dont les fichiers ne respectent aucun ordre particulier, un fichier strictement au format ODF doit suivre une structure particulière.[1]

    Dans l'archive, le premier fichier qui doit être présent est le fichier mimetype (sans extension) qui ne doit pas être compressé. Le reste de l'archive est compressé normalement.

    Note pin.svg

    À quoi sert le fichier mimetype ?
    L'objectif de ce fichier mimetype est de permettre aux systèmes d'exploitation utilisant le mécanisme de nombres magiques (tel que Unix et ses dérivés) de détecter le type de document présent dans le fichier.

    Si une archive ZIP contient un fichier non compressé à son début, et n'a pas d'autres données d'entête, alors le nom du fichier et ses données peuvent être trouvés à cet endroit. Plus spécifiquement, on peut trouver :

    • en position 0 la chaine 'PK' pour tous les fichiers ZIP,
    • en position 30 la chaine 'mimetype',
    • en position 38 le type de fichier lui-même.

    En d'autres termes, si on ne prend pas soin de positionner correctement le fichier mimetype sans le compresser, autant ne pas le mettre du tout puisqu'il n'est utile que pour le système d'exploitation. Le fichier ODF restera utilisable par LibreOffice, mais le type du contenu du fichier ne sera pas détecté par le système d'exploitation.

    Dans ce fichier mimetype, il y a juste une chaine de caractères indiquant le type du fichier. Le tableau suivant donne les correspondances.

    Extension Contenu Chaine mimetype
    ODT Document texte application/vnd.oasis.opendocument.text
    OTT Modèle de texte application/vnd.oasis.opendocument.text-template
    ODS Classeur application/vnd.oasis.opendocument.spreadsheet
    OTS Modèle de classeur application/vnd.oasis.opendocument.spreadsheet-template
    ODP Présentation application/vnd.oasis.opendocument.presentation
    OTP Modèle de présentation application/vnd.oasis.opendocument.presentation-template
    ODG Dessin application/vnd.oasis.opendocument.graphic
    OTG Modèle de dessin application/vnd.oasis.opendocument.graphic-template
    ODB Base de données application/vnd.oasis.opendocument.base
    ODF Équation mathématique application/vnd.oasis.opendocument.formula
    OXT Extension application/vnd.oasis.opendocument.extension


    Le format Flat OpenDocument

    Les formats ODT, ODS, ODP et ODG disposent d'un format complémentaire appelé Flat OpenDocument. Les extensions correspondantes sont simplement FODT, FODS, FODP et FODG. Dans ce format, l'ensemble de la structure est rassemblé dans un seul fichier non compressé. Il n'y a alors plus à se préoccuper du fichier mimetype dont le positionnement au sein du fichier zippé est toujours délicat (cf. ci-dessus).

    Avec ce format, vous accédez directement au code XML en ouvrant le fichier avec votre éditeur XML. Il suffit de préciser à l'éditeur que les fichiers FODx sont des fichiers XML. Avec Notepad++ :

    • soit en sélectionnant le menu Langage ▸ XML (vous devrez le refaire à chaque ouverture du fichier),
    • soit en modifiant les paramètres de Notepad++ :
      • sélectionnez le menu Paramètres ▸ Configurateur de coloration syntaxique,
      • sélectionnez le langage XML,
      • ajoutez dans le champ Ext. utilisateur : les extensions fodg, fodt, fods et fodp (Notepad++ reconnaitra désormais automatiquement le format de ces fichiers).

    Les étapes de compression/décompression décrites ci-dessous sont inutiles avec ce format de fichier.

    Nota : dans le cas d'une installation personnalisée il faut installer le composant optionnel Filtres pour exemple XSLT pour que ce format soit disponible.

    Modification d'un fichier

    Comme un fichier au format OpenDocument est une archive zippée, vous pouvez l'ouvrir avec l'archiveur de votre choix.

    Sous Windows

    7-zip

    Le logiciel libre 7-zip, par exemple, permet d'ouvrir directement le fichier par un clic droit  ▸ 7-zip ▸ Ouvrir. Cependant, lors de l'enregistrement, l'ordre des fichiers sera modifié et mimetype ne sera plus en premier. LibreOffice sera néanmoins capable d'ouvrir ce fichier et de rétablir l'ordre des fichiers lors d'un enregistrement. Cependant, pour créer un fichier OpenDocument valide, il convient d'utiliser la commande par clic droit  ▸ 7-zip ▸ Extraire vers "...\" où le nom du fichier apparait à la place de "...". Un répertoire éponyme est alors créé, contenant toute la structure.

    La procédure pour réorganiser proprement le fichier est la suivante :

    • Extraire le document à modifier :  ▸ 7-zip ▸ Extraire vers "...\"
    • Apporter la modification dans les fichiers extraits (par exemple au content.xml)
    • Copier-coller ou glisser-déposer le composant modifié (par exemple le content.xml) dans le document original ouvert dans l'explorateur de fichiers de windows (voir ci-dessous)
    • Renommer avec l'extension correspondant au contenu

    Présentation vidéo de cette procédure :

    Please accept this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

    YouTube privacy policy

    Explorateur de fichiers

    L'explorateur de fichiers de Windows est capable d'ouvrir les archives zippées. Cependant, les fichiers OpenDocument ne sont pas reconnus comme des archives. Il faut donc dans un premier temps changer l'extension du fichier en .ZIP. Il sera peut-être nécessaire de désactiver préalablement l'option de masquage des extensions dans l'explorateur de fichiers Outils ▸ Options des dossiers ▸ Affichage ▸ Masquer les extensions des fichiers dont le type est connu.

    La modification du contenu ne perturbera pas l'ordre des fichiers. Il suffira de rétablir l'extension du fichier pour retrouver un fichier prêt à être utilisé. L'inconvénient de cette méthode est qu'il n'est pas aisé d'utiliser l'éditeur XML de son choix.

    Sous Linux

    Pour créer un fichier à partir des fichiers dézippés, en adaptant le nom et l'extension de document2.odt :

    zip -0 -X ../document2.odt mimetype
    zip -r ../document2.odt * -x mimetype
    

    Conseils

    Pour que les fichiers XML soient lisibles par un être humain, il est recommandé de désactiver l'option d'optimisation de la taille des fichiers dans LibreOffice :

    • Pour les versions antérieures à 4.2
    Outils ▸ Options ▸ Chargement/enregistrement ▸ Général ▸ Optimisation de la taille pour le format ODF
    • Pour les version à partir de 4.2 : l'option a été retirée de l'interface utilisateur ; il faut utiliser l'éditeur d'options avancé :
    Outils ▸ Options ▸ LibreOffice ▸ Avancé ▸ Configuration avancée puis trouver la préférence :
    /org.openoffice.Office.Common/Save/Document/PrettyPrinting
    
    Basculez cette préférence sur True en double cliquant dessus.

    Par ailleurs, il convient d'utiliser un éditeur de texte spécialisé qui disposera d'une colorisation syntaxique et de l'ouverture/fermeture des balises avec des poignées. Sous Windows, on peut citer le logiciel libre Notepad++.

    Création d'un nouveau fichier

    Pour créer un fichier, il est en général plus facile de démarrer avec un fichier créé avec LibreOffice ou présentant des caractéristiques proches de celles du fichier attendu.

    Vidéo

    L'explication en vidéo :

    Please accept this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

    YouTube privacy policy

    Notes :

    1. Cf. Open Document Format for Office Applications (OpenDocument) Version 1.2 OpenDocument-v1.2-part3

    TO DO

    • Linux : à mieux rédiger
    • Mac


    Traduction en cours du tutoriel de Regina Henschel.