# DocuMentor **Professionelle XSL-Transformations-Verwaltung und PDF-Generierung** DocuMentor ist eine leistungsstarke PySide6-basierte Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen mit automatischer PDF-Generierung. Die Anwendung bietet eine intuitive GUI zur Konfiguration von Transformations-Toolchains (Saxon, Apache FOP, diff-pdf) und zur Verwaltung komplexer PDF-Generierungsprojekte mit PostgreSQL-Datenbankintegration. ## Features ### 🌳 Hierarchische Projektverwaltung - Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur - Flexible Workflow-Definitionen mit verschachtelten Knoten - Projektspezifische Konfiguration mit `project.yaml` ### ⚡ Asynchrone Batch-Verarbeitung - Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund - Fortschrittsanzeige für lange Transformationen - Parallelisierte XSLT-Transformationen durch eine Worker-Pool-Architektur ### 🔍 Intelligente Duplikatserkennung - Automatische Hash-basierte Erkennung von identischen XML-Dateien (Blake2b) - Verhindert Redundanzen und spart Speicherplatz - Asynchrone Hash-Berechnung im Hintergrund ### 📄 PDF-Vergleichsansicht - Drei-Panel-Ansicht (Referenz, Diff, Neu) - Alpha-Blending für visuellen Vergleich - Zoom- und Pan-Funktionalität ### 🗄️ PostgreSQL-Integration - Nahtlose Datenbankanbindung mit Polars und ConnectorX - Performante SQL-Abfragen und Datenverarbeitung - SSL-Modus-Unterstützung ### 🛠️ Konfigurierbare Toolchains - Flexible Verwaltung von Saxon, Apache FOP und diff-pdf - Versionierung von Tools - Plattformübergreifende Unterstützung (Linux, Windows, macOS) ### 🎨 Modernes UI - Dark/Light-Theme-Unterstützung - Drag-and-Drop für XML-Dateien - Responsive und intuitive Benutzeroberfläche ## Installation ### Voraussetzungen - Python 3.13 oder höher - [uv](https://github.com/astral-sh/uv) Paketmanager ### Abhängigkeiten installieren ```bash # Mit uv (empfohlen) uv sync # Oder mit pip pip install -e . ``` ### Externe Tools Für die volle Funktionalität benötigen Sie: - **Saxon-HE**: XSLT 3.0 Prozessor ([Download](https://www.saxonica.com/download/)) - **Apache FOP**: PDF-Generierung aus XSL-FO ([Download](https://xmlgraphics.apache.org/fop/download.html)) - **diff-pdf**: PDF-Vergleich ([GitHub](https://github.com/vslavik/diff-pdf)) - **OpenJDK/JRE**: für Saxon und Apache FOP. JDK empfohlen für Worker-Pools ([Eclipse Temurin](https://adoptium.net)) ## Verwendung ### Anwendung starten ```bash uv run python src/main.py ``` ### Erste Start Konfigurieren Sie Ihre Tools (Saxon, Apache FOP, diff-pdf) in den Einstellungen ### Projekt erstellen 1. Legen Sie ein neues Projekt an 2. Organisieren Sie XSL-Stylesheets und XML-Dateien in der Baumstruktur 3. Führen Sie Transformationen aus ### Konfiguration Die Anwendung speichert Konfigurationsdateien an folgenden Orten: - **Linux**: `~/.config/DocuMentor/config.json` - **Windows**: `%APPDATA%\DocuMentor\config.json` - **macOS**: `~/Library/Application Support/DocuMentor/config.json` Projektdaten werden in `project.yaml` im jeweiligen Projektverzeichnis gespeichert. ## Entwicklung ### Code-Qualität ```bash # Code-Style prüfen uv run ruff check # Code formatieren uv run ruff format ``` ### Tests ```bash # Hash-Implementierung testen uv run python test_hash_implementation.py # Duplikatserkennung testen uv run python test_xml_hash_duplicate_detection.py ``` ### Architektur - **PySide6**: Native Qt-basierte GUI - **Pydantic**: Typsichere Konfigurationsverwaltung - **Polars**: Lightning-fast DataFrame-Verarbeitung - **Blake2b**: Kryptographische Hash-Funktion für Integritätsprüfung Siehe [CLAUDE.md](CLAUDE.md) für detaillierte Entwicklerdokumentation. ## Lizenz DocuMentor ist unter der [MIT License](LICENSE) lizenziert. ### Third-Party-Lizenzen Diese Software verwendet folgende Open-Source-Bibliotheken: - **PySide6** - LGPL-3.0 OR GPL-2.0 OR GPL-3.0 - **Pydantic** - MIT License - **Polars** - MIT License - **pyqtdarktheme** - MIT License - Weitere siehe [THIRD_PARTY_LICENSES.txt](THIRD_PARTY_LICENSES.txt) Externe Tools (separat zu installieren): - **Saxon-HE** - Mozilla Public License 2.0 - **Apache FOP** - Apache License 2.0 Vollständige Lizenzanalyse: [LICENSES.md](LICENSES.md) ## Danksagungen Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken! --- **DocuMentor** - Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte