Talk:FR/General/CreerFichierODF

From The Document Foundation Wiki
Jump to: navigation, search

Bonjour

Le 1er § de la section Le format Flat OpenDocument se termine par fichier mimetype dont le position est toujours délicat Je ne vois pas en quoi la position de ce fichier est délicate ? Pierre-yves samyn (talk) 2014-05-12T07:40:10 (UTC)


Bonjour Pierre-Yves. Au sein d'un fichier ODF zippé, le fichier mimetype doit se trouver au début de l'archive sous une forme non compressée. Zipper simplement l'ensemble des fichiers et répertoires d'un document ODF ne crée pas un fichier ODF propre. D'où les détails donnés après pour obtenir le résultat souhaité. Cela est précisé au début du § Structure du format ODF. --Jumbo444 (talk) 2014-05-12T14:24:25 (UTC)

J'avais donc bien compris ce que tu voulais dire... Mais dans ce cas je ne suis pas d'accord :) Ce qui est évidemment nécessaire c'est de préserver l'arborescence. En revanche il n'est pas nécessaire de faire toutes ces manips pour le fichier mimetype. Tu peux tester par exemple : dézipper un odf dans un dossier A, copier l'ensemble généré sauf le fichier mimetype dans un autre dossier (B), utiliser un éditeur de texte pour créer un mimetype (application/vnd.oasis.opendocument.spreadsheet par exemple) et l'enregistrer dans B, zipper le tout. Tu as un odf fonctionnel... Pierre-yves samyn (talk) 2014-05-12T14:58:25 (UTC)

Je suis d'accord avec toi : le fichier est "fonctionnel" mais n'est pas "propre". Pour respecter la norme, il faut avoir un fichier mimetype non compressé au début de l'archive. La raison de la création de cette page est ce commentaire : fdo#40499 --Jumbo444 (talk) 2014-05-12T15:13:49 (UTC)

Le lien est mort mais je suis retourné à la source (Open Document Format for Office Applications Version 1.2 et c'est toujours vrai dans cette version
 The purpose is to allow the type of document represented by the package to be discovered through 'magic number' mechanisms, such as Unix's file/magic utility. 
 If a Zip file contains a file at the beginning of the file that is uncompressed, and has no extra data in the header, then its file name and data can be found at fixed positions from the beginning of the package. More specifically, one will find:
 • the string 'PK' at position 0 of all zip files
 • the string 'mimetype' beginning at position 30
 • the media type itself beginning at position 38.
Comme je ne suis sans doute pas le seul à être passé à côté il serait peut-être bien d'expliquer (d'un mot...) "fonctionnel/propre" ? Pierre-yves samyn (talk) 2014-05-12T16:35:01 (UTC)

J'ai mis un complément à l'aide de ton texte. N'hésite à pas compléter si cela ne te parait pas suffisant. Aurais-tu un lien pour le texte que tu as proposé ? --Jumbo444 (talk) 2014-05-12T17:37:12 (UTC)

Ok pour moi. J'ai rajouté le lien. Afin de faciliter l'accès aux autres chapitres le lien pointe sur la page et non le fichier.Pierre-yves samyn (talk) 2014-05-13T07:15:09 (UTC)

Je "double" ici mon mail de novembre pour mémoire - j'ai failli le supprimer :)

Il me semble qu'il y a un problème avec la procédure décrite. La création de l'archive par: 7z a -mx=0 monfichier.zip mimetype ne génère pas la même séquence entre PK et mimetypeapplication/... que dans un fichier créé normalement via LibreOffice.

On peut le voir directement en comparant 2 docs dans Notepad++ (sans les dézipper).

De ce fait, ce simple fichier n'est pas reconnu (via la commande file sous linux) comme opendocument mais comme : Zip archive data, at least v1.0 to extract

Et donc, même si l'ajout des autres composants par glisser-déposer depuis l'explorateur respecte bien la première position du mimetype, le fichier généré n'est pas non plus reconnu comme opendocument.

Du coup j'ai trouvé une autre procédure fonctionnelle dans mon environnement (XP - 7 puis test debian).

  1. Copier le document à modifier (donner l'extension .zip à cette copie)
  2. Extraire le document à modifier (cf. la fiche)
  3. Apporter la modification (par exemple au content.xml)
  4. Ouvrir la copie.zip dans 7zip, supprimer le fichier à remplacer (par exemple le content.xml), fermer
  5. Glisser-déposer le composant modifié (par exemple le content.xml) sur la copie
  6. Renommer avec l'extension correspondant au contenu

Laurent, aurais-tu le temps de vérifier :

  • que la procédure de la fiche fonctionne toujours dans ton environnement
  • que la procédure ci-dessus fonctionne aussi dans ton environnement

Par ailleurs, je n'ai constaté aucune différence entre un fichier créé en fenêtre de commandes par : 7z a -mx=0 monfichier.zip mimetype et un autre créé dans l'environnement windows par 7zip ▸ Ajouter à l'archive ▸ Niveau de compression ▸ Aucune.

Si tu confirmes cela pourrait de toute manière simplifier la procédure de la fiche en évitant la boîte DOS et la manipulation du path. Pierre-yves samyn (talk) 2015-03-09T09:01:22 (UTC)