Comparator

Application desktop en Python (PyQt6) pour comparer un document PDF avec une série de fichiers Markdown page par page. L’outil est conçu pour les workflows de relecture/correction : navigation synchronisée PDF Markdown, édition directe du texte Markdown, recherche/remplacement global et utilitaires de nettoyage.
📸 Aperçu
| Vue côte à côte | Édition Markdown |
|---|---|
![]() |
![]() |
📖 À propos
Application desktop en Python (PyQt6) pour comparer un document PDF avec une série de fichiers Markdown page par page.
L’outil est conçu pour les workflows de relecture / correction : navigation synchronisée PDF ↔ Markdown, édition directe du texte Markdown, recherche / remplacement global et utilitaires de nettoyage.
🌟 Fonctionnalités principales
- Affichage côte à côte du PDF et de l’éditeur Markdown.
- Synchronisation des pages PDF / Markdown avec décalage configurable.
- Détection (ou configuration manuelle) du pattern de nommage des fichiers Markdown (
page001.md,doc - 0007.md, etc.). - Édition Markdown avec sauvegarde et gestion de la police.
- Recherche / remplacement dans l’ensemble du dossier Markdown (texte simple ou regex).
- Surlignage configurable (patterns personnalisés) et mode de surlignage dynamique entre sélection PDF et texte Markdown.
- Panneau de nettoyage de texte et panneau de couplages orphelins.
- Gestion de projets (
.comparator/.json) pour restaurer rapidement une session. - Préférences persistantes (géométrie, panneaux visibles, couleurs, raccourcis personnalisés, dernier projet, etc.).
📦 Prérequis
- Python 3.10+ (recommandé)
- pip
Dépendances Python :
PyQt6>=6.6.0PyMuPDF>=1.23.0
⬇️ Installation
Depuis la racine du projet :
python -m venv .venv
Activation de l’environnement virtuel :
- Windows (PowerShell) :
.venv\Scripts\Activate.ps1
- macOS / Linux :
source .venv/bin/activate
Installation des dépendances :
pip install -r requirements.txt
🚀 Lancement
python main.py
🧭 Utilisation rapide
- Ouvrir l’application.
- Charger un PDF via
Fichier > Charger PDF.... - Charger le dossier de pages Markdown via
Fichier > Charger dossier Markdown.... - Ajuster le
Décalagesi la page PDF N ne correspond pas à la page Markdown N. - Naviguer avec
Page Up / Page Downet éditer le Markdown. - Enregistrer la session en projet via
Fichier > Enregistrer projet.
💾 Fichiers de projet
Les projets sauvegardent les informations de session (PDF, dossier Markdown, pattern, offset, synchronisation, zoom, police, préférences, etc.) dans des fichiers :
*.comparator*.json
🗂️ Structure (aperçu)
main.py: point d’entrée de l’application.main_window.py: interface principale et logique de coordination.pdf_viewer.py: affichage et interactions PDF.markdown_editor.py: édition des fichiers Markdown.search_replace_bar.py/search_replace_dialog.py: recherche / remplacement.project_manager.py: sauvegarde / chargement des projets.config_storage.py: persistance de la configuration utilisateur.
⚠️ Notes
- Application orientée interface graphique (pas de mode CLI dédié).
- Les annotations PDF et les modifications Markdown impactent les fichiers source : travailler sur une copie est recommandé pour les documents sensibles.
🔗 Ressources
| 🌐 l’Atelier | atelier.atechnologie.fr |
| 📦 Dépôt | github.com/Atelier-Recherche/comparator |
📸 Übersicht
| Nebeneinander-Ansicht | Markdown-Bearbeitung |
|---|---|
![]() |
![]() |
📖 Über die Anwendung
Eine Python-Desktop-Anwendung (PyQt6) zum Vergleich eines PDF-Dokuments mit einer Reihe von Markdown-Dateien Seite für Seite.
Gedacht für Korrekturlese- / Korrektur-Workflows: synchronisierte Navigation PDF ↔ Markdown, direkte Markdown-Bearbeitung, globale Suche/Ersetzen und Bereinigungs-Utilities.
🌟 Hauptfunktionen
- PDF-Ansicht und Markdown-Editor nebeneinander.
- Sync der PDF-/Markdown-Seiten mit konfigurierbarem Versatz.
- Erkennung (oder manuelle Konfiguration) von Markdown-Dateinamensmustern (
page001.md,doc - 0007.md, usw.). - Markdown-Bearbeitung mit Speichern und Schriftverwaltung.
- Suche / Ersetzen im gesamten Markdown-Ordner (Klartext oder Regex).
- Konfigurierbares Highlighting (eigene Patterns) und dynamisches Highlight zwischen PDF-Auswahl und Markdown-Text.
- Textbereinigungs-Panel und Panel für verwaiste Paare.
- Projektverwaltung (
.comparator/.json) zum schnellen Wiederherstellen einer Sitzung. - Persistente Einstellungen (Geometrie, sichtbare Panels, Farben, eigene Shortcuts, letztes Projekt usw.).
📦 Voraussetzungen
- Python 3.10+ (empfohlen)
- pip
Python-Abhängigkeiten:
PyQt6>=6.6.0PyMuPDF>=1.23.0
⬇️ Installation
Im Projektstamm:
python -m venv .venv
Virtuelle Umgebung aktivieren:
- Windows (PowerShell):
.venv\Scripts\Activate.ps1
- macOS / Linux:
source .venv/bin/activate
Abhängigkeiten installieren:
pip install -r requirements.txt
🚀 Start
python main.py
🧭 Schnellstart
- Anwendung öffnen.
- PDF laden über
Fichier > Charger PDF.../File > Load PDF.... - Markdown-Seitenordner laden über
Fichier > Charger dossier Markdown.... Décalage/Offsetanpassen, wenn PDF-Seite N nicht zu Markdown-Seite N passt.- Mit
Page Up / Page Downnavigieren und Markdown bearbeiten. - Sitzung als Projekt speichern über
Fichier > Enregistrer projet.
💾 Projektdateien
Projekte speichern Sitzungsdaten (PDF, Markdown-Ordner, Pattern, Offset, Sync, Zoom, Schrift, Einstellungen usw.) in:
*.comparator*.json
🗂️ Struktur (Überblick)
main.py: Einstiegspunkt der Anwendung.main_window.py: Hauptfenster und Koordinationslogik.pdf_viewer.py: PDF-Anzeige und Interaktionen.markdown_editor.py: Bearbeitung der Markdown-Dateien.search_replace_bar.py/search_replace_dialog.py: Suche / Ersetzen.project_manager.py: Speichern / Laden von Projekten.config_storage.py: Persistenz der Benutzereinstellungen.
⚠️ Hinweise
- GUI-orientierte Anwendung (kein eigener CLI-Modus).
- PDF-Annotationen und Markdown-Änderungen betreffen die Quelldateien: bei sensiblen Dokumenten mit einer Kopie arbeiten.
🔗 Ressourcen
| 🌐 l’Atelier | atelier.atechnologie.fr |
| 📦 Repository | github.com/Atelier-Recherche/comparator |
📸 Overview
| Side-by-side view | Markdown editing |
|---|---|
![]() |
![]() |
📖 About
A Python desktop app (PyQt6) to compare a PDF document with a series of Markdown files page by page.
Built for proofreading / correction workflows: synchronized PDF ↔ Markdown navigation, direct Markdown editing, global search/replace, and cleanup utilities.
🌟 Main features
- Side-by-side PDF view and Markdown editor.
- PDF / Markdown page sync with configurable offset.
- Detection (or manual setup) of Markdown filename patterns (
page001.md,doc - 0007.md, etc.). - Markdown editing with save and font controls.
- Search / replace across the Markdown folder (plain text or regex).
- Configurable highlighting (custom patterns) and dynamic highlight between PDF selection and Markdown text.
- Text cleanup panel and orphan coupling panel.
- Project management (
.comparator/.json) to restore a session quickly. - Persistent preferences (geometry, visible panels, colors, custom shortcuts, last project, etc.).
📦 Prerequisites
- Python 3.10+ (recommended)
- pip
Python dependencies:
PyQt6>=6.6.0PyMuPDF>=1.23.0
⬇️ Installation
From the project root:
python -m venv .venv
Activate the virtual environment:
- Windows (PowerShell):
.venv\Scripts\Activate.ps1
- macOS / Linux:
source .venv/bin/activate
Install dependencies:
pip install -r requirements.txt
🚀 Launch
python main.py
🧭 Quick start
- Open the application.
- Load a PDF via
File > Load PDF.../Fichier > Charger PDF.... - Load the Markdown pages folder via
File > Load Markdown folder.../Fichier > Charger dossier Markdown.... - Adjust the
Offset/Décalageif PDF page N does not match Markdown page N. - Navigate with
Page Up / Page Downand edit the Markdown. - Save the session as a project via
File > Save project/Fichier > Enregistrer projet.
💾 Project files
Projects store session data (PDF, Markdown folder, pattern, offset, sync, zoom, font, preferences, etc.) in:
*.comparator*.json
🗂️ Structure (overview)
main.py: application entry point.main_window.py: main UI and coordination logic.pdf_viewer.py: PDF display and interactions.markdown_editor.py: Markdown file editing.search_replace_bar.py/search_replace_dialog.py: search / replace.project_manager.py: project save / load.config_storage.py: user configuration persistence.
⚠️ Notes
- GUI-oriented application (no dedicated CLI mode).
- PDF annotations and Markdown edits affect source files: work on a copy for sensitive documents.
🔗 Resources
| 🌐 l’Atelier | atelier.atechnologie.fr |
| 📦 Repository | github.com/Atelier-Recherche/comparator |
📸 Vista previa
| Vista lado a lado | Edición Markdown |
|---|---|
![]() |
![]() |
📖 Acerca de
Aplicación de escritorio en Python (PyQt6) para comparar un documento PDF con una serie de archivos Markdown página por página.
Pensada para flujos de relectura / corrección: navegación sincronizada PDF ↔ Markdown, edición directa del texto Markdown, búsqueda / reemplazo global y utilidades de limpieza.
🌟 Funciones principales
- Visualización lado a lado del PDF y del editor Markdown.
- Sincronización de páginas PDF / Markdown con desplazamiento configurable.
- Detección (o configuración manual) del patrón de nombres de archivos Markdown (
page001.md,doc - 0007.md, etc.). - Edición Markdown con guardado y gestión de la tipografía.
- Búsqueda / reemplazo en todo el carpeta Markdown (texto simple o regex).
- Resaltado configurable (patrones personalizados) y modo de resaltado dinámico entre selección PDF y texto Markdown.
- Panel de limpieza de texto y panel de acoplamientos huérfanos.
- Gestión de proyectos (
.comparator/.json) para restaurar rápidamente una sesión. - Preferencias persistentes (geometría, paneles visibles, colores, atajos personalizados, último proyecto, etc.).
📦 Requisitos previos
- Python 3.10+ (recomendado)
- pip
Dependencias Python:
PyQt6>=6.6.0PyMuPDF>=1.23.0
⬇️ Instalación
Desde la raíz del proyecto:
python -m venv .venv
Activación del entorno virtual:
- Windows (PowerShell):
.venv\Scripts\Activate.ps1
- macOS / Linux:
source .venv/bin/activate
Instalación de dependencias:
pip install -r requirements.txt
🚀 Arranque
python main.py
🧭 Uso rápido
- Abrir la aplicación.
- Cargar un PDF vía
Fichier > Charger PDF.../File > Load PDF.... - Cargar la carpeta de páginas Markdown vía
Fichier > Charger dossier Markdown.... - Ajustar el
Décalage/Offsetsi la página PDF N no corresponde a la página Markdown N. - Navegar con
Page Up / Page Downy editar el Markdown. - Guardar la sesión como proyecto vía
Fichier > Enregistrer projet.
💾 Archivos de proyecto
Los proyectos guardan la información de sesión (PDF, carpeta Markdown, patrón, offset, sincronización, zoom, tipografía, preferencias, etc.) en:
*.comparator*.json
🗂️ Estructura (vista previa)
main.py: punto de entrada de la aplicación.main_window.py: interfaz principal y lógica de coordinación.pdf_viewer.py: visualización e interacciones PDF.markdown_editor.py: edición de archivos Markdown.search_replace_bar.py/search_replace_dialog.py: búsqueda / reemplazo.project_manager.py: guardado / carga de proyectos.config_storage.py: persistencia de la configuración de usuario.
⚠️ Notas
- Aplicación orientada a interfaz gráfica (sin modo CLI dedicado).
- Las anotaciones PDF y las modificaciones Markdown afectan a los archivos fuente: se recomienda trabajar sobre una copia para documentos sensibles.
🔗 Recursos
| 🌐 l’Atelier | atelier.atechnologie.fr |
| 📦 Repositorio | github.com/Atelier-Recherche/comparator |


