Guide détaillé, étape par étape
Le TD ouvre un document LibreOffice, raven.odt, comme
une archive ZIP, modifie son texte et sa mise en forme dans un éditeur
de texte, puis recompresse l’ensemble : LibreOffice rouvre le document
modifié, sans qu’aucun traitement de texte soit intervenu. Il dure une
douzaine de minutes, et il est facultatif : il se fait en séance si le
temps le permet, ou seul ensuite.
Il demande l’explorateur de fichiers, qui sait extraire et créer une archive ZIP, Notepad++ (ou, à défaut, le Bloc-notes) et LibreOffice Writer pour rouvrir le résultat.
| Étape | Objectif | Ce qu’on fait |
|---|---|---|
| 1 | voir de quoi un fichier .odt est fait |
ouvrir le .odt comme une archive |
| 2 | repérer le texte et ses styles dans le XML | lire content.xml |
| 3 | modifier un document sans logiciel de bureautique | modifier le texte et la mise en forme |
| 4 | reconstruire un document que LibreOffice ouvre | recompresser, et rouvrir dans LibreOffice |
Ce que le TD fait constater est expliqué à la fin du guide, dans « Ce que le TD fait constater ».
.odt comme une archiveÀ faire : copier
depart\raven.odtdanstravail\sous le nomraven.zip, puis extraire l’archive.À obtenir : un dossier
travail\raven\qui contient six fichiers, dontcontent.xmletstyles.xml.
Ouvrir le dossier info01\cours1\1b_archive_odt\. Comme
au TD 1a, depart\ contient le fichier fourni,
raven.odt, et travail\ reçoit les copies. Les
extensions doivent être affichées dans l’explorateur (TD 1a, étape
1).
depart\raven.odt dans travail\
(Ctrl + C, puis Ctrl +
V dans travail\).raven.zip (F2), et
confirmer le changement d’extension.raven.zip, « Extraire tout… ». Le
dossier proposé est travail\raven : le garder, et cliquer
sur « Extraire ».Vérification : travail\raven\ contient
:
raven\
├── META-INF\
│ └── manifest.xml
├── content.xml
├── manifest.rdf
├── meta.xml
├── mimetype
└── styles.xml
| Fichier | Ce qu’il contient |
|---|---|
mimetype |
une ligne, le type du document |
content.xml |
le texte, entouré de balises |
styles.xml |
la mise en forme : polices, tailles, titres |
meta.xml |
l’auteur, les dates, le nombre de mots |
META-INF\manifest.xml |
la liste de ce que contient l’archive |
manifest.rdf |
des métadonnées complémentaires |
content.xmlÀ faire : ouvrir
travail\raven\content.xmldans Notepad++ ; y chercherText_20_bodyetThe RavenavecCtrl+F.À obtenir : le poème, lisible au milieu des balises.
Clic droit sur content.xml, Ouvrir avec, Notepad++.
Notepad++ colore les balises, ce qui les rend plus faciles à lire que
dans le Bloc-notes. Le fichier fait 21 lignes, dont une de plus de 1 300
caractères : chercher avec Ctrl + F plutôt que
de le parcourir. Dans le Bloc-notes, activer le retour automatique à la
ligne (menu Affichage) pour voir la ligne longue en entier.
The Raven : c’est le titre du poème.Text_20_body : chaque paragraphe du poème
commence par cette balise.<text:p text:style-name="Text_20_body">Once upon a midnight dreary,
while I pondered, weak and weary, …À noter : ce qui, dans la balise, désigne la mise en forme du paragraphe.
À faire : trois modifications, deux dans
content.xml, une dansstyles.xml; enregistrer les deux fichiers.À obtenir : les deux fichiers enregistrés, avec leur nom et leur extension d’origine.
| Ce qu’on change | Où | La modification |
|---|---|---|
| le titre | content.xml |
remplacer >The Raven< par
>Le Corbeau< |
| le style d’un paragraphe | content.xml |
sur le premier paragraphe du poème, remplacer
Text_20_body par Heading_20_1 |
| la taille des titres | styles.xml |
dans le style Heading_20_1, passer
fo:font-size="115%" à fo:font-size="220%" |
Pour la troisième modification, chercher
style:name="Heading_20_1" dans styles.xml : la
ligne suivante contient fo:font-size="115%". Ne changer que
cette valeur-là ; les attributs style:font-size-asian et
style:font-size-complex voisins concernent d’autres
écritures.
Enregistrer les deux fichiers (Ctrl + S),
sans changer leur nom.
Vérification : dans content.xml, le
premier paragraphe commence par
<text:p text:style-name="Heading_20_1">.
À faire : compresser les six fichiers de
travail\raven\enraven2.zip; renommer enraven2.odt; l’ouvrir.À obtenir : LibreOffice ouvre
raven2.odt; le titre est « Le Corbeau », et le premier paragraphe est en grand.
travail\raven\, et sélectionner tout
son contenu (Ctrl + A) : les cinq fichiers et
le dossier META-INF.travail\raven\.raven2.zip, puis
raven2.odt, et confirmer le changement d’extension.raven2.odt.Attention : compresser le contenu du dossier
raven\, depuis l’intérieur, et non le dossier
raven\ lui-même. Sinon, l’archive contient
raven\content.xml au lieu de content.xml, et
LibreOffice refuse de l’ouvrir (« source file could not be loaded »).
Dans ce cas, supprimer l’archive et recommencer à l’étape 4.1.
Vérification : LibreOffice ouvre le document ; le titre est « Le Corbeau », et le premier paragraphe du poème est un titre, en grand.
Cette section se lit après avoir fait les étapes.
.odt
est une archive de fichiers texteUn .odt est une archive ZIP qui contient des fichiers
XML. Le texte est dans content.xml, la mise en forme dans
styles.xml : c’est la séparation du contenu et de la
présentation déjà vue au TD 1a avec HTML et CSS. Les formats
.docx, .xlsx et .epub sont
construits de la même façon.
Le format est ouvert et documenté : il se manipule avec des outils quelconques, un gestionnaire d’archives et un éditeur de texte, sans le logiciel qui l’a produit. Le TD a changé le texte, le style d’un paragraphe et la taille des titres sans ouvrir de traitement de texte.
Les fichiers qu’il contient sont du texte, mais le .odt
lui-même est compressé, donc binaire : c’est pourquoi il se versionne
mal, un outil comme git ne pouvant pas en comparer deux versions ligne à
ligne (cours 2).
_20_ dans les noms de
styleLe paragraphe modifié à l’étape 3 n’a pas changé de texte : seul le
nom de son style est passé de Text_20_body à
Heading_20_1. Ces noms ne sont pas faits de trois morceaux
: ce sont « Text body » et « Heading 1 », dont l’espace est écrit
_20_.
Un nom de style est un nom XML, et l’espace y est interdit. Le format
OpenDocument écrit donc chaque caractère interdit sous la forme de son
code hexadécimal entouré de tirets bas, et l’espace vaut 20
dans la table ASCII du TD 1a. Le nom lisible est rangé à part, dans
l’attribut style:display-name de styles.xml
(style:display-name="Heading 1") ; c’est lui que
LibreOffice affiche, traduit en français, dans son panneau des
styles.
| Dans le panneau des styles de LibreOffice | Dans content.xml |
|---|---|
| Corps de texte | Text_20_body |
| Titre 1 | Heading_20_1 |
| Titre 2 | Heading_20_2 |
C’est le même principe que le %20 d’une adresse web, vu
au TD 1a : les deux interdisent l’espace, et l’écrivent par son code,
chacun avec sa marque.
| Ce qui interdit l’espace | L’espace s’y écrit | |
|---|---|---|
| Une adresse web | la syntaxe des URL | %20 |
| Un nom de style ODF | la syntaxe des noms XML | _20_ |
La règle est fixée par la spécification OpenDocument 1.3, partie 3,
aux sections sur style:name et
style:display-name : https://docs.oasis-open.org/office/OpenDocument/v1.3/OpenDocument-v1.3-part3-schema.html.
Pour aller plus loin, une couleur peut s’ajouter au style
Heading_20_1, dans styles.xml, par l’attribut
fo:color. ODF n’accepte que le code hexadécimal :
fo:color="#c0392b" colore les titres,
fo:color="red" est ignoré et le titre reste noir. CSS, au
TD 1a, accepte les deux écritures.