📖

Guide d'utilisation — Merge

Assemblez plusieurs fiches ODT en une mallette unique, étape par étape.

Créé par FCO
🔷

Qu'est-ce que Merge ?

Vue d'ensemble du processus en 3 étapes

Merge est un outil local (aucun serveur requis) qui permet d'assembler plusieurs fiches (fichiers ODT indépendants) en une seule mallette (fichier ODT global), en définissant visuellement leur ordre et en appliquant une charte graphique uniforme via un template de styles.

Terminologie

TermeDéfinition
FicheUn fichier ODT source à intégrer dans l'assemblage.
MalletteLe fichier ODT final produit par la fusion des fiches.
Template de stylesUn fichier ODT de référence contenant la charte graphique à appliquer à la mallette.
mallette-merge.jsonFichier JSON décrivant la liste ordonnée des fiches et leur état d'inclusion.
ℹ️
Merge est l'inverse de Cut Là où Cut découpe une mallette en fiches, Merge assemble des fiches en mallette. Les deux outils sont conçus pour fonctionner ensemble.

Vue d'ensemble du flux

┌────────────────────────────────────────────────────┐ │ ÉTAPE 1 — Définir l'ordonnancement (navigateur) │ │ Ouvrir index.html → sélectionner les fiches ODT │ │ Réordonner par glisser-déposer │ │ Inclure / exclure les fiches souhaitées │ │ Cliquer "Télécharger" → mallette-merge.json │ └────────────────────┬───────────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────────┐ │ ÉTAPE 2 — Configurer l'environnement (local) │ │ Placer dans un même dossier : │ │ mallette-merge.json + fiches ODT + template ODT │ └────────────────────┬───────────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────────┐ │ ÉTAPE 3 — Générer la mallette (LibreOffice) │ │ Ouvrir LibreOffice → lancer la macro Merge │ │ Sélectionner mallette-merge.json │ │ → La mallette ODT est créée dans le même dossier │ └────────────────────────────────────────────────────┘
0

Prérequis

Ce dont vous avez besoin avant de commencer

ÉlémentDétail
LibreOffice Doit être installé. Utilisé pour la fusion et l'uniformisation des styles ODT.
Firefox ou Chrome Pour ouvrir index.html. Firefox est recommandé.
Windows Environnement cible (LibreOffice y est disponible).
Vos fichiers ODT Les fiches sources à assembler dans la mallette.
Template de styles Optionnel — un fichier ODT de référence pour uniformiser la charte graphique.
Aucun droit administrateur requis L'outil fonctionne entièrement sans installation supplémentaire. Pas de Python séparé, pas de serveur, pas de plugins.
1

Étape 1 — Définir l'ordonnancement dans le navigateur

Sélectionner, ordonner et inclure/exclure les fiches à assembler

Ouvrir l'application

  1. Double-cliquez sur index.html pour l'ouvrir dans votre navigateur (ou clic droit → Ouvrir avec → Firefox).
  2. Dans le panneau gauche (sidebar), cliquez sur ⬆ Sélectionner des fiches….
  3. Choisissez un ou plusieurs fichiers .odt. Les fiches apparaissent dans la zone principale.
💡
Glisser-déposer depuis l'explorateur Vous pouvez aussi glisser directement vos fichiers .odt depuis l'explorateur Windows sur la page — ils seront ajoutés automatiquement. Les doublons (même nom de fichier) sont ignorés.

Interface : sidebar + zone principale

🔷 Merge — Assembleur de fiches ODT
1 — Fiches ODT
⬆ Sélectionner…
2 — Template
■ Choisir…
Récapitulatif
4 fiches   3 incluses
3 — Générer
⬇ JSON
1 ODT Introduction Incluse
2 ODT Chapitre_1 Incluse
3 ODT Exercices Exclue
4 ODT Annexes Incluse
  • Sidebar gauche : sélection des fiches, template, statistiques et bouton de génération.
  • Zone principale : liste ordonnée des fiches sous forme de cartes.

Réordonner les fiches

  1. Repérez la poignée ⠿ à gauche de chaque carte.
  2. Cliquez-glissez la carte vers sa nouvelle position dans la liste.
  3. Relâchez — la numérotation se met à jour automatiquement.

Inclure ou exclure une fiche

ActionEffet
Clic sur le bouton d'une carte (badge bleu "Incluse") Exclut la fiche — elle reste dans la liste mais ne sera pas intégrée dans la mallette.
Clic sur le bouton + d'une carte (badge gris "Exclue") Ré-inclut la fiche dans la mallette.
Bouton Tout inclure (en-tête de la zone principale) Inclut toutes les fiches de la liste d'un coup.
Bouton Tout exclure Exclut toutes les fiches d'un coup.
Bouton × d'une carte Supprime définitivement la fiche de la liste (sans toucher au fichier sur le disque).

Exclure des pages spécifiques d'une fiche

Il est possible d'exclure certaines pages d'une fiche sans exclure toute la fiche. Deux méthodes sont disponibles : la visionneuse visuelle (recommandée) et la saisie manuelle.

Méthode 1 — Visionneuse visuelle (recommandée)

Le bouton 👁 (œil) sur chaque carte ouvre une modale qui affiche toutes les pages du PDF de la fiche. Un clic suffit pour exclure ou ré-inclure une page.

⚠️
Pré-requis : exporter la fiche ODT en PDF La visionneuse lit des fichiers PDF, pas ODT. Avant d'utiliser cette méthode, exportez votre fiche depuis LibreOffice : Fichier › Exporter en PDF… → cliquez sur Exporter. Le PDF obtenu est uniquement utilisé pour la visualisation, il n'est pas modifié.
  1. Sur la carte de la fiche, cliquez le bouton 👁 (à gauche des boutons − et ×).
  2. Dans la modale qui s'ouvre, cliquez Sélectionner le PDF… et choisissez le fichier PDF correspondant à cette fiche.
  3. Toutes les pages s'affichent sous forme de vignettes. Cliquez une page pour l'exclure — elle devient grisée avec une croix rouge, et un chip p.X apparaît sur la carte.
  4. Recliquez la même vignette pour la ré-inclure.
  5. Fermez la modale avec ×, en cliquant en dehors, ou avec la touche Échap.
💡
Le PDF est mémorisé pendant la session Si vous rouvrez la visionneuse pour la même fiche dans la même session, le PDF est rechargé automatiquement depuis la mémoire — pas besoin de le re-sélectionner. Il sera perdu à la fermeture de l'onglet.
ℹ️
Connexion internet requise pour la visionneuse La visionneuse utilise la bibliothèque PDF.js chargée depuis un CDN (cdnjs.cloudflare.com). Une connexion internet est nécessaire lors de la première utilisation.

Méthode 2 — Saisie manuelle

Si vous connaissez déjà les numéros de pages à exclure, vous pouvez les saisir directement sans charger de PDF.

  1. Repérez la section Pages exclues : sous la ligne principale de la carte.
  2. Saisissez le numéro de page dans le champ , puis cliquez + ou appuyez sur Entrée.
  3. La page apparaît sous forme de chip p.X — cliquez × sur un chip pour ré-inclure cette page.
ℹ️
Pages exclues dans mallette-merge.json Quelle que soit la méthode utilisée, les numéros de pages exclus sont enregistrés dans le JSON (champ pages_exclues de chaque fiche). Un tableau vide [] signifie que toutes les pages sont incluses.

Reprendre un travail précédent (charger un JSON)

Si vous avez déjà généré un mallette-merge.json lors d'une session précédente, vous pouvez le recharger pour retrouver exactement la même liste de fiches, leur ordre, leur état d'inclusion et leurs pages exclues.

  1. Dans la sidebar, section 3 — Générer, cliquez sur ⬆ Charger un JSON….
  2. Sélectionnez votre fichier mallette-merge.json existant.
  3. La liste se reconstruit automatiquement avec toutes les données enregistrées (fiches, ordre, inclusion, pages exclues, template).
💡
Modifier un ordonnancement existant Chargez le JSON, apportez vos modifications (réorder, exclure des fiches ou des pages), puis téléchargez un nouveau mallette-merge.json. L'ancien fichier n'est pas modifié.

Choisir un template de styles (optionnel)

  1. Dans la sidebar, cliquez sur ■ Choisir le template… (section 2).
  2. Sélectionnez votre fichier .odt de référence (la charte graphique).
  3. Le nom du template s'affiche sous le bouton pour confirmation.
ℹ️
Rôle du template Le template sert uniquement de référence pour les styles (polices, marges, couleurs). Il n'est pas modifié. Son nom est enregistré dans mallette-merge.json pour que la macro sache quel fichier utiliser lors de la génération.

Télécharger le plan d'assemblage

  1. Vérifiez le récapitulatif dans la sidebar (nombre de fiches incluses).
  2. Cliquez sur ⬇ Télécharger mallette-merge.json.
  3. Le fichier est téléchargé dans votre dossier Téléchargements.
ℹ️
Format du mallette-merge.json Le fichier liste chaque fiche avec son nom, son ordre et son état d'inclusion. Vous pouvez l'ouvrir dans un éditeur de texte pour vérifier ou corriger manuellement.
2

Étape 2 — Configurer l'environnement

Rassembler tous les fichiers dans un même dossier

La macro LibreOffice lit mallette-merge.json et cherche chaque fiche ODT dans le même dossier. Vous devez donc rassembler tous les fichiers nécessaires avant de lancer la génération.

Structure de dossier attendue

📁 Votre dossier de travail (où qu'il soit sur le disque) ├── mallette-merge.json ← Téléchargé à l'étape 1 ├── template.odt ← Si vous avez sélectionné un template ├── Introduction.odt ← Vos fiches ODT ├── Chapitre_1.odt ├── Exercices.odt ← Exclue dans le JSON, pas besoin qu'elle soit là └── Annexes.odt
⚠️
Les noms de fichiers doivent correspondre exactement Le JSON contient les noms exacts des fichiers tels qu'ils ont été sélectionnés dans l'interface. Un espace, une majuscule ou une extension différente provoquera une erreur "fichier introuvable" dans la macro.
💡
Les fiches exclues sont optionnelles Les fiches marquées "exclue" dans le JSON ne sont pas lues par la macro. Vous n'avez pas besoin de les placer dans le dossier (mais ce n'est pas gênant si elles s'y trouvent).

index.html et la macro sont des outils, pas des fichiers de projet

index.html et Merge - run.py peuvent rester dans un dossier fixe sur votre poste. Vous les utilisez pour toutes vos mallettes, peu importe où se trouvent les fiches.

3

Étape 3 — Générer la mallette ODT

Lancer la macro pour produire le fichier ODT final

Lancer la génération

  1. Ouvrez LibreOffice Writer (n'importe quel document, ou vide).
  2. Allez dans Outils › Macros › Organiser les macros › Python…
  3. Dans la boîte de dialogue, développez Mes macros › Merge - run.
  4. Sélectionnez la fonction fusionner_mallette et cliquez sur Exécuter.
  5. Un sélecteur de fichier s'ouvre : naviguez jusqu'à votre dossier de travail et choisissez mallette-merge.json.
  6. Attendez la fin de la génération (une boîte de dialogue confirme le succès).

Résultat attendu

La mallette est créée automatiquement dans le même dossier que mallette-merge.json :

📁 Votre dossier de travail ├── mallette-merge.json ├── template.odt ├── Introduction.odt ├── Chapitre_1.odt ├── Annexes.odt └── mallette_20240115_103045.odt ← Créé automatiquement
ℹ️
Nom horodaté pour éviter les écrasements La mallette est toujours sauvegardée avec un horodatage (mallette_AAAAMMJJ_HHMMSS.odt). Chaque exécution produit un nouveau fichier — votre travail précédent n'est jamais écrasé.

Ce que fait la macro, dans l'ordre

  1. Lit mallette-merge.json et vérifie l'existence de chaque fiche ODT incluse.
  2. Crée un document Writer vide (ou basé sur le template si fourni).
  3. Pour chaque fiche incluse : lit ses styles de page (marges, orientation, dimensions), les duplique sous des noms uniques dans la mallette, insère le contenu, puis corrige toutes les références de style de page dans le contenu inséré.
  4. Applique les définitions de styles du template (ParagraphStyles, CharacterStyles, PageStyles).
  5. Recalcule les numéros de page, champs et index automatiques.
  6. Sauvegarde la mallette et affiche une confirmation.

Marges et orientations préservées dans la mallette

La macro préserve fidèlement les propriétés de mise en page de chaque fiche source :

SituationComportement dans la mallette
Deux fiches avec des marges différentes
(ex : fiche A = 2 cm, fiche B = 0,5 cm)
Les pages de la fiche A conservent 2 cm ; les pages de la fiche B conservent 0,5 cm.
Une fiche entièrement en paysage, une autre entièrement en portrait Chaque fiche conserve son orientation dans la mallette.
Pages portrait et paysage mélangées au sein d'une même fiche Chaque changement d'orientation interne est détecté et reproduit dans la mallette. La séquence portrait → paysage → portrait est conservée telle quelle.
💡
Comment ça fonctionne Dans LibreOffice Writer, les marges et l'orientation sont portées par des styles de page (et non par les pages elles-mêmes). La macro lit tous les styles de page utilisés dans chaque fiche, en crée des copies indépendantes dans la mallette et corrige toutes les références après insertion — garantissant ainsi qu'aucune fiche n'écrase les paramètres de page d'une autre.
🔴
Ne pas fermer LibreOffice pendant la génération Attendez que la boîte de dialogue de confirmation apparaisse avant d'intervenir. Interrompre l'exécution peut laisser un document LibreOffice ouvert et non sauvegardé.
⚠️
Template absent ou introuvable Si le fichier template est déclaré dans le JSON mais absent du dossier, la macro affiche un avertissement et continue la fusion sans uniformisation des styles.
🐍

Installation du script Python sous LibreOffice

Enregistrer Merge - run.py comme macro utilisateur dans LibreOffice

Merge - run.py est une macro Python qui s'exécute à l'intérieur de LibreOffice. Pour qu'elle soit disponible, elle doit être copiée dans le dossier des macros utilisateur de LibreOffice.

ℹ️
Pourquoi ne pas utiliser Python directement ? Le script utilise l'API UNO de LibreOffice pour manipuler les documents ODT. Il ne peut s'exécuter qu'au sein du moteur LibreOffice, pas comme un script Python autonome en ligne de commande.

Étape A — Copier le script dans le dossier des macros

  1. Ouvrez l'Explorateur de fichiers et naviguez vers le dossier des macros utilisateur de LibreOffice. Ce dossier se trouve généralement ici :
    C:\Users\VotreNom\AppData\Roaming\LibreOffice\4\user\Scripts\python\
    Note : AppData est un dossier caché. Dans l'Explorateur, cochez Affichage › Éléments masqués pour le voir.
  2. Si le sous-dossier python\ n'existe pas, créez-le.
  3. Copiez le fichier Merge - run.py (situé dans le dossier macro\ de l'outil) dans ce dossier python\.
💡
Raccourci clavier Windows Tapez %APPDATA%\LibreOffice\4\user\Scripts\python\ directement dans la barre d'adresse de l'Explorateur de fichiers et appuyez sur Entrée pour accéder directement au bon dossier.

Étape B — Vérifier que la macro est bien reconnue

  1. Ouvrez LibreOffice Writer (n'importe quel document).
  2. Allez dans Outils › Macros › Organiser les macros › Python…
  3. Dans la boîte de dialogue, développez Mes macros.
  4. Vous devriez voir Merge - run dans la liste, avec la fonction fusionner_mallette disponible.
⚠️
Redémarrer LibreOffice après la copie Si la macro n'apparaît pas dans la liste, fermez complètement LibreOffice (y compris le démarrage rapide dans la zone de notification) puis rouvrez-le.

Étape C — Exécuter la macro

  1. Ouvrez LibreOffice Writer (n'importe quel document ou vide).
  2. Allez dans Outils › Macros › Organiser les macros › Python…
  3. Sélectionnez Mes macros › Merge - run › fusionner_mallette.
  4. Cliquez sur Exécuter.
  5. Dans le sélecteur de fichier qui s'ouvre, naviguez jusqu'à votre dossier de travail et choisissez mallette-merge.json.
  6. La macro lit le JSON, fusionne les fiches et génère mallette_AAAAMMJJ_HHMMSS.odt dans le même dossier.

Emplacement des macros selon la version de LibreOffice

ContexteChemin du dossier python\
Installation standard (utilisateur) %APPDATA%\LibreOffice\4\user\Scripts\python\
Installation sans droits admin
(dossier utilisateur local)
%LOCALAPPDATA%\LibreOffice\4\user\Scripts\python\
Installation portable Voir la documentation de votre version portable.

Dépannage

ProblèmeSolution
La macro n'apparaît pas dans la liste Vérifiez que Merge - run.py est bien dans le dossier Scripts\python\ et que LibreOffice a été redémarré après la copie.
Erreur "fichier introuvable" Vérifiez que les noms de fichiers dans mallette-merge.json correspondent exactement aux noms des fichiers ODT présents dans le dossier (casse, espaces, extension).
Erreur "Aucune fiche incluse" Ouvrez mallette-merge.json dans un éditeur et vérifiez que au moins une fiche a "incluse": true.
Erreur de lecture JSON Ouvrez mallette-merge.json et vérifiez que le fichier n'est pas corrompu (JSON valide, encodage UTF-8).
La mallette est vide ou incomplète Vérifiez que les fiches ODT sont bien dans le même dossier que mallette-merge.json, et que la macro s'est terminée normalement.
LibreOffice plante ou se fige Fermez tous les documents LibreOffice ouverts, puis relancez la macro depuis un document Writer vide.