TD 1b — Un .odt est une archive ZIP (facultatif)#
Note
Les fichiers des TD de la séance sont dans l’archive info01-cours1.zip.
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 |
ouvrir le |
2 |
repérer le texte et ses styles dans le XML |
lire |
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 ».
1 · Ouvrir le .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).
Copier
depart\raven.odtdanstravail\(Ctrl+C, puisCtrl+Vdanstravail\).Renommer la copie
raven.zip(F2), et confirmer le changement d’extension.Clic droit sur
raven.zip, « Extraire tout… ». Le dossier proposé esttravail\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 |
|---|---|
|
une ligne, le type du document |
|
le texte, entouré de balises |
|
la mise en forme : polices, tailles, titres |
|
l’auteur, les dates, le nombre de mots |
|
la liste de ce que contient l’archive |
|
des métadonnées complémentaires |
2 · Lire 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.
Chercher
The Raven: c’est le titre du poème.Chercher
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.
3 · Modifier le texte et la mise en forme#
À 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 |
|
remplacer |
le style d’un paragraphe |
|
sur le premier paragraphe du poème, remplacer |
la taille des titres |
|
dans le style |
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">.
4 · Recompresser, et rouvrir dans LibreOffice#
À 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.
Ouvrir le dossier
travail\raven\, et sélectionner tout son contenu (Ctrl+A) : les cinq fichiers et le dossierMETA-INF.Clic droit sur la sélection, « Compresser dans » (ou « Envoyer vers »), « Dossier compressé (zip) ». Windows crée l’archive dans
travail\raven\.Renommer l’archive
raven2.zip, puisraven2.odt, et confirmer le changement d’extension.Double-cliquer sur
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.
Ce que le TD fait constater#
Cette section se lit après avoir fait les étapes.
Un .odt est une archive de fichiers texte#
Un .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 style#
Le 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 |
|---|---|
Corps de texte |
|
Titre 1 |
|
Titre 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 |
|
Un nom de style ODF |
la syntaxe des noms XML |
|
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.
Les couleurs dans ODF et dans CSS#
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.