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
| Terme | Définition |
|---|---|
| Fiche | Un fichier ODT source à intégrer dans l'assemblage. |
| Mallette | Le fichier ODT final produit par la fusion des fiches. |
| Template de styles | Un fichier ODT de référence contenant la charte graphique à appliquer à la mallette. |
| mallette-merge.json | Fichier JSON décrivant la liste ordonnée des fiches et leur état d'inclusion. |
Vue d'ensemble du flux
Prérequis
Ce dont vous avez besoin avant de commencer
| Élément | Dé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. |
Étape 1 — Définir l'ordonnancement dans le navigateur
Sélectionner, ordonner et inclure/exclure les fiches à assembler
Ouvrir l'application
- Double-cliquez sur
index.htmlpour l'ouvrir dans votre navigateur (ou clic droit → Ouvrir avec → Firefox). - Dans le panneau gauche (sidebar), cliquez sur ⬆ Sélectionner des fiches….
- Choisissez un ou plusieurs fichiers
.odt. Les fiches apparaissent dans la zone principale.
.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
- 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
- Repérez la poignée ⠿ à gauche de chaque carte.
- Cliquez-glissez la carte vers sa nouvelle position dans la liste.
- Relâchez — la numérotation se met à jour automatiquement.
Inclure ou exclure une fiche
| Action | Effet |
|---|---|
| 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.
- Sur la carte de la fiche, cliquez le bouton 👁 (à gauche des boutons − et ×).
- Dans la modale qui s'ouvre, cliquez Sélectionner le PDF… et choisissez le fichier PDF correspondant à cette fiche.
-
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.Xapparaît sur la carte. - Recliquez la même vignette pour la ré-inclure.
- Fermez la modale avec ×, en cliquant en dehors, ou avec la touche Échap.
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.
- Repérez la section Pages exclues : sous la ligne principale de la carte.
-
Saisissez le numéro de page dans le champ
n°, puis cliquez + ou appuyez sur Entrée. -
La page apparaît sous forme de chip
p.X— cliquez × sur un chip pour ré-inclure cette page.
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.
- Dans la sidebar, section 3 — Générer, cliquez sur ⬆ Charger un JSON….
-
Sélectionnez votre fichier
mallette-merge.jsonexistant. - La liste se reconstruit automatiquement avec toutes les données enregistrées (fiches, ordre, inclusion, pages exclues, template).
mallette-merge.json. L'ancien fichier n'est pas
modifié.
Choisir un template de styles (optionnel)
- Dans la sidebar, cliquez sur ■ Choisir le template… (section 2).
- Sélectionnez votre fichier
.odtde référence (la charte graphique). - Le nom du template s'affiche sous le bouton pour confirmation.
mallette-merge.json
pour que la macro sache quel fichier utiliser lors de la génération.
Télécharger le plan d'assemblage
- Vérifiez le récapitulatif dans la sidebar (nombre de fiches incluses).
- Cliquez sur ⬇ Télécharger mallette-merge.json.
- Le fichier est téléchargé dans votre dossier Téléchargements.
É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
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.
Étape 3 — Générer la mallette ODT
Lancer la macro pour produire le fichier ODT final
Lancer la génération
- Ouvrez LibreOffice Writer (n'importe quel document, ou vide).
- Allez dans Outils › Macros › Organiser les macros › Python…
- Dans la boîte de dialogue, développez Mes macros › Merge - run.
- Sélectionnez la fonction fusionner_mallette et cliquez sur Exécuter.
- Un sélecteur de fichier s'ouvre : naviguez jusqu'à votre dossier de travail et choisissez
mallette-merge.json. - 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 :
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
- Lit
mallette-merge.jsonet vérifie l'existence de chaque fiche ODT incluse. - Crée un document Writer vide (ou basé sur le template si fourni).
- 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é.
- Applique les définitions de styles du template (ParagraphStyles, CharacterStyles, PageStyles).
- Recalcule les numéros de page, champs et index automatiques.
- 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 :
| Situation | Comportement 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. |
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.
Étape A — Copier le script dans le dossier des macros
-
Ouvrez l'Explorateur de fichiers et naviguez vers le dossier des macros utilisateur de LibreOffice.
Ce dossier se trouve généralement ici :
Note :C:\Users\VotreNom\AppData\Roaming\LibreOffice\4\user\Scripts\python\AppDataest un dossier caché. Dans l'Explorateur, cochez Affichage › Éléments masqués pour le voir. - Si le sous-dossier
python\n'existe pas, créez-le. -
Copiez le fichier
Merge - run.py(situé dans le dossiermacro\de l'outil) dans ce dossierpython\.
%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
- Ouvrez LibreOffice Writer (n'importe quel document).
- Allez dans Outils › Macros › Organiser les macros › Python…
- Dans la boîte de dialogue, développez Mes macros.
-
Vous devriez voir
Merge - rundans la liste, avec la fonctionfusionner_mallettedisponible.
Étape C — Exécuter la macro
- Ouvrez LibreOffice Writer (n'importe quel document ou vide).
- Allez dans Outils › Macros › Organiser les macros › Python…
- Sélectionnez Mes macros › Merge - run › fusionner_mallette.
- Cliquez sur Exécuter.
-
Dans le sélecteur de fichier qui s'ouvre, naviguez jusqu'à votre dossier
de travail et choisissez
mallette-merge.json. -
La macro lit le JSON, fusionne les fiches et génère
mallette_AAAAMMJJ_HHMMSS.odtdans le même dossier.
Emplacement des macros selon la version de LibreOffice
| Contexte | Chemin 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ème | Solution |
|---|---|
| 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. |