EPUB Tools
Application locale d’inspection et de correction de fichiers EPUB.

Fonctions
EPUB Tools propose six fonctions :
| Page | Fonction |
|---|---|
| Métadonnées | Affiche titre, auteur, langue, éditeur, date… extraits du manifeste OPF, ainsi que la couverture si elle est détectée |
| Aperçu | Feuillette l’EPUB chargé, repaginable ou fixed layout, avec sommaire et curseur de position (fichiers jusqu’à 500 Mo). Voir ci-dessous |
| EPUBcheck | Lance le validateur officiel W3C et liste les erreurs et avertissements de conformité — utile avant de soumettre un fichier à une plateforme de distribution |
| Images audit | Liste toutes les images de l’EPUB avec leur type, taille et résolution (calculée à la demande). Les images dépassant 5,6 Mpx — seuil courant des liseuses et tablettes — sont signalées. Si des images hors seuil sont détectées, une fonction de redimensionnement automatique est proposée sur la même page : elle réduit les images concernées, met à jour les attributs HTML correspondants et produit un nouvel EPUB corrigé, nommé <nom>_resized.epub, dans le dossier de sortie choisi (Téléchargements par défaut). Options : écraser un fichier existant, valider le résultat avec EPUBcheck. Le chemin complet du fichier produit est affiché, avec un bouton pour ouvrir le dossier |
| Epub to markdown | Convertit l’EPUB chargé en bundle Markdown (un fichier .md par chapitre). Réservé aux EPUB repaginables. Voir ci-dessous |
| Traitement par lot | Applique le redimensionnement à tous les EPUB d’un dossier et, en option, remplace leur couverture par un JPG fourni. Voir ci-dessous |
Les pages Métadonnées, Aperçu, EPUBcheck, Images audit et Epub to markdown portent sur l’EPUB chargé dans la barre latérale (1 Go maximum).
Aperçu
La page Aperçu affiche l’EPUB chargé dans un feuilleteur intégré, sans quitter l’application ni installer de liseuse.
- EPUB repaginable : texte paginé sur une ou deux colonnes selon la largeur de la fenêtre. Le bouton Défilement passe en lecture continue.
- EPUB fixed layout : pages affichées telles que mises en page, en double page si l’EPUB le prévoit.
- Navigation : boutons Préc. / Suiv., flèches ← → du clavier, curseur de position (pourcentage et chapitre en cours), Sommaire pour aller directement à un chapitre.
- Un badge indique le type de mise en page détecté (Repaginable ou Fixed layout).
L’aperçu est proposé pour les fichiers de 500 Mo maximum : au-delà, le navigateur devrait garder tout le fichier en mémoire et l’affichage deviendrait trop lent. Le chargement d’un gros fichier prend quelques secondes (barre de progression).
Le rendu est assuré par foliate-js, le moteur de la liseuse Foliate. Il est proche de celui d’une liseuse, sans en être la copie exacte : pour une validation finale, rien ne remplace un test sur l’appareil cible.
L’aperçu fonctionne quand le navigateur tourne sur le même poste que l’application (cas normal avec
run.bat). Ouverte depuis un autre poste du réseau, la zone d’aperçu reste vide.
Conversion en Markdown
La page Epub to markdown convertit l’EPUB chargé en un dossier de fichiers Markdown, facile à relire, à rechercher ou à retravailler dans un éditeur de texte. Le fichier original n’est pas modifié.
Réservé aux EPUB repaginables. Si l’OPF déclare une mise en page fixe (<meta property="rendition:layout">pre-paginated</meta>), la conversion est refusée : le texte d’un fixed layout est découpé en blocs positionnés et ne donnerait pas un Markdown exploitable.
Utilisation
- Dossier de sortie : laissé vide, il vaut le dossier Téléchargements. Le bundle y est créé dans un sous-dossier nommé d’après le titre du livre (le chemin complet est affiché avant le lancement).
- Convertir en Markdown : produit le bundle, puis indique le nombre de chapitres et d’images. Le bouton Ouvrir le dossier de sortie l’affiche dans l’Explorateur.
Un dossier déjà présent n’est remplacé que si l’option Écraser le dossier existant est cochée, et seulement s’il s’agit d’un bundle produit par l’outil (présence de metadata.yaml) : un dossier sans rapport portant le même nom n’est jamais supprimé.
Résultat
Téléchargements/
└── le_petit_prince/
├── metadata.yaml ← titre, auteur, langue, identifiant, éditeur, date, couverture
├── chapters/
│ ├── ch001_titre.md ← un fichier par document du spine, dans l'ordre de lecture
│ └── …
└── images/
└── cover.jpg
- Mise en forme conservée : titres, gras, italique, listes, tableaux, citations, images. Les classes CSS de l’éditeur sont interprétées (une classe
.eme { font-style: italic }devient de l’italique). - Notes de bas de page converties en notes Markdown (
[^1]), liens internes réécrits vers les fichiers.md. - Pages liminaires (titre, copyright, dédicace, préface…) repérées par leur
epub:typeet marquéestype: frontmatteren tête de fichier. - Tirets de dialogue protégés pour ne pas devenir des listes à puces.
La conversion reprend le code de l’outil en ligne de commande epub-markdown, dont le README détaille les règles appliquées et la reconversion Markdown → EPUB.
Redimensionnement des images
- Chaque image hors seuil est réduite juste sous 5,6 Mpx, proportions conservées.
- Les JPEG sont réencodés à la qualité JPEG d’origine (lue dans le fichier, plafonnée à 92) : l’image n’est pas dégradée davantage, mais une qualité supérieure à la source ne récupérerait rien et alourdirait le fichier.
- Le poids du fichier ne baisse pas forcément. Une source peu compressée (qualité 90 et plus) peut perdre 20 à 30 % ; une source déjà très compressée (qualité 85 environ) garde à peu près son poids, car réencoder un JPEG sans baisser sa qualité ne fait pas gagner de place. L’objectif est la conformité au seuil de pixels, pas la réduction du poids.
Traitement par lot
La page Traitement par lot travaille directement sur un dossier du disque : aucune limite de taille (contrairement au chargement d’un fichier unique, limité à 1 Go), et les fichiers originaux ne sont jamais modifiés.
Utilisation
- Dossier source : coller le chemin du dossier contenant les EPUB (le « Copier en tant que chemin » de l’Explorateur, avec guillemets, est accepté). Cocher Inclure les sous-dossiers si besoin.
- Dossier de sortie : laissé vide, il vaut
<dossier source>\_redimensionnes. Il doit être différent du dossier source. - Analyser le dossier : affiche pour chaque EPUB le nombre d’images, les images hors seuil, la couverture de remplacement trouvée et le statut (À traiter, Conforme, À vérifier, Erreur).
- Lancer le traitement : produit les EPUB corrigés puis un rapport (poids avant/après, couverture remplacée, résultat EPUBcheck), exportable en CSV (s’ouvre directement dans Excel). Le bouton Ouvrir le dossier de sortie affiche les fichiers produits dans l’Explorateur.
Remplacement de la couverture (EAN13)
Les EPUB à traiter sont nommés par leur EAN13. Si un JPG du même nom se trouve dans le même dossier, il remplace la couverture de l’EPUB :
a_traiter/
├── 9782070368228.epub
├── 9782070368228.jpg ← nouvelle couverture de 9782070368228.epub
└── 9782070612758.epub ← pas de JPG : couverture inchangée
- Le JPG est converti au format de la couverture existante si besoin (PNG…) ; un JPG conforme remplaçant un JPG est inséré tel quel, sans recompression.
- Un JPG en CMYK est converti en RGB, l’orientation EXIF est appliquée, et l’image est réduite si elle dépasse 5,6 Mpx.
- Les dimensions déclarées dans la page de couverture (
<img>,<svg viewBox>) sont mises à jour pour éviter toute déformation. - Si aucune couverture n’est détectée dans l’EPUB, le fichier est signalé À vérifier et n’est pas produit.
Options
| Option | Effet |
|---|---|
| Remplacer la couverture par le JPG du même nom | Active le remplacement décrit ci-dessus (coché par défaut) |
| Copier aussi les EPUB conformes | Copie tels quels les EPUB sans modification, pour obtenir un lot complet dans le dossier de sortie |
| Écraser les fichiers existants | Sinon, un EPUB déjà présent dans le dossier de sortie est ignoré |
| Valider avec EPUBcheck | Valide chaque EPUB modifié (compter quelques secondes par fichier) |
Les EPUB corrigés gardent le même nom et la même arborescence de sous-dossiers. Un fichier illisible ou en erreur est signalé dans le rapport sans interrompre le lot.
Installation et lancement (Windows)
Prérequis : Python 3.10 ou supérieur, installé et ajouté au PATH.
Installation
Double-cliquer sur install.bat.
Le script effectue en une seule passe :
- Installation des dépendances Python (
streamlit,Pillow,lxml, et pour la conversion MarkdownEbookLib,beautifulsoup4,markdownify,PyYAML) - Téléchargement et installation dans
tools/:- EPUBcheck 5.3.0 — le validateur officiel W3C
- JRE portable Temurin 21 — l’environnement Java nécessaire à EPUBcheck
- Création d’un raccourci EPUB Tools sur le Bureau, épinglable à la barre des tâches
Aucune installation de Java sur le système n’est requise. Si les outils sont déjà présents, le script le détecte et ne re-télécharge rien.
tools/
├── epubcheck-5.3.0/
│ ├── epubcheck.jar
│ └── lib/
└── jre/
└── jdk-21.x.x-jre/
└── bin/
└── java.exe
Lancement
Double-cliquer sur le raccourci EPUB Tools (Bureau) ou sur run.bat.
L’application s’ouvre dans le navigateur par défaut à l’adresse http://localhost:8501.
Composants tiers
| Composant | Usage | Licence |
|---|---|---|
| EPUBcheck | Validation (installé par install.bat dans tools/) | BSD-3-Clause |
| foliate-js | Moteur du feuilleteur (copie partielle dans assets/foliate-js/, version dans VERSION.txt) | MIT |
epub2md (projet epub-markdown) | Conversion EPUB → Markdown (copie dans epub2md/) | — |