[gull] OpenDocument

Daniel Cordey dc at mjt.ch
Tue Nov 22 09:20:36 CET 2005


On Tuesday 22 November 2005 08:28, Marc SCHAEFER wrote:

> Ben justement non. De nombreuses failles de sécurité existent qui
> consistent en l'interprétation dans le "bon type" malgré l'`extension'
> incorrecte. Notamment par Microsoft IE.

Il est sans doute plus rapide de dire ce que IE fait de maniere correcte :-)

Bref, pour resumer, voici ce que j'ai decouvert depuis que l'on m'a ouvert les 
yeux au sujet de ce format OpenDocument.

En decompressant avec unzip ce genre de fichier, on obtient une petite 
structure de fichiers dont les noms et nombres peuvent  varier. J'ai cree un 
document simple avec KOffice et OpenOffice (KSpread & Calc) et je les ai 
enregistres en format "OpenDocument". Pouir chacun, j'ai eu la structure de 
fichier suivante :

KSpread :

Archive:  zz.ksp
 Length   Method    Size  Ratio   Date   Time   CRC-32    Name
--------  ------  ------- -----   ----   ----   ------    ----
      21  Stored       21   0%  11-22-05 08:54  f98fe4b9  mimetype
   10044  Defl:N     1561  85%  11-22-05 08:54  eb22f8d4  maindoc.xml
     599  Defl:N      306  49%  11-22-05 08:54  5b77b3bb  documentinfo.xml
    4371  Defl:N     4191   4%  11-22-05 08:54  269c200c  preview.png
--------          -------  ---                            -------
   15035             6079  60%                            4 files


OpenOffice Calc :
Archive:  yy.ods
 Length   Method    Size  Ratio   Date   Time   CRC-32    Name
--------  ------  ------- -----   ----   ----   ------    ----
      46  Stored       46   0%  11-22-05 07:49  8a396c85  mimetype
       0  Stored        0   0%  11-22-05 07:49  00000000  Configurations2/
       0  Stored        0   0%  11-22-05 07:49  00000000  Pictures/
    8169  Defl:N     1303  84%  11-22-05 07:49  1b102cb2  content.xml
    6085  Defl:N     1365  78%  11-22-05 07:49  3636a746  styles.xml
     971  Stored      971   0%  11-22-05 07:49  bb49b0cf  meta.xml
    2371  Defl:N     2084  12%  11-22-05 07:49  15dbe615  
Thumbnails/thumbnail.png
    7270  Defl:N     1130  85%  11-22-05 07:49  70f02302  settings.xml
    1081  Defl:N      313  71%  11-22-05 07:49  b883d083  
META-INF/manifest.xml
--------          -------  ---                            -------
   25993             7212  72%                            9 files

Haaaa......

On voit que KOffice ne semble pas stocker une information aussi riche que 
celle de OpenOffice. De plus, les noms de fichiers contenant les informations 
ne sont pas les memes. Dans OpenOffice, il y a un fichier XML contenant la 
liste des fichiers manipules (META-INF/manifest.xml), etc. Il est donc 
possible d'acceder a la structure et au contenu des documents. Avec de la 
patience, on peut reconstruire les attributs d'une cellule et de son 
contenu...

En conclusion, OpenDocument permet bien d'avoir acces a toutes les 
informations utilisees pour generer un document sur la base de ces fichiers. 
La strcuture est claire et lisible. Toutefois, generer un document complet a 
partir de rien n'est pas une mince affaire; mais c'est normal vu la 
complexite des attributs. Il me semble donc relativement aise d'ecrire des 
programmes de 'lecture' mais se lancer dans la generation de A a Z d'un 
document complet ne se fait pas en claquant des doigts. Je pense que cette 
structure offre un moyen elegant d'en faire un minimum (et c'est ce que je 
vais utiliser). Il faut construire un document ayant la forme et la mise en 
page desiree, stoker celui-ci en OpenDocument et ne modifier que le fichier 
'content.xml'. Ca. c'est relativement facile ! On peut aussi utilliser des 
templates mais je n'ai pas encore investiguer cette solution.

Sauf erreur, Koffice et AbiWord ont aussi adopte le format OpenDocument, mais 
il semble qu'il existe (encore ?) des differences quand aux noms de fichiers 
et leusr contenus. 

Voila ou j'en suis pour l'instant. Ca devrait permettre a ceux qui veulent se 
lancer dans l'aventure de partir tout de suite dans la bonne direction. Je ne 
sais pas encore si je vais ecrire des classes Python pour generer mes 
documents, mais je suis pret a faire part de mes experiences a ceux qui me le 
demanderont.

Merci a tous ceux qui m'ont repondu, j'ai gagne un temps precieux.

dc



More information about the gull mailing list