Files

155 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

2026-01-02 17:40:03 +01:00
# 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.
2026-01-02 17:40:03 +01:00
## 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
2026-01-02 17:40:03 +01:00
### 🔍 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
2026-01-02 17:40:03 +01:00
- 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
2026-01-02 17:40:03 +01:00
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))
2026-01-02 17:40:03 +01:00
## Verwendung
### Anwendung starten
```bash
uv run python src/main.py
```
### Erste Start
Konfigurieren Sie Ihre Tools (Saxon, Apache FOP, diff-pdf) in den Einstellungen
2026-01-02 17:40:03 +01:00
### 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
2026-01-02 17:40:03 +01:00
### 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