# DocuMentor - XSL-Transformations-Toolkit

BIOS POST abgeschlossen
PySide6 Runtime v6.8 geladen
Saxon HE 12.5 initialisiert
Apache FOP 2.10 bereit
PostgreSQL-Verbindung hergestellt
XSL-Abhängigkeitsgraph aufgebaut
blake2b Hash-Engine aktiv
System bereit. Starte DocuMentor...

# DocuMentor

user@documentor:~$ ./erkunde_features.sh

// KERNFUNKTIONEN

## Feature-Matrix

[/\]

### Baumstruktur

Hierarchische Organisation von XSL-Transformationen mit TreeNode-Architektur. Verwalte komplexe Abhängigkeitsketten über eine intuitive Baumansicht mit Drag-and-Drop.

[<>]

### PDF-Diff

Visueller Drei-Panel-Vergleich: Referenz, Differenz und Neu. Alpha-Blending Overlay mit Zoom- und Pan-Funktionalitaet zum pixelgenauen Abgleich von PDF-Änderungen.

[##]

### Hash-Tracking

Automatische blake2b-Hashsummen für alle XML-Dateien. Änderungen werden zuverlässig erkannt und im project.yaml persistent gespeichert.

[~~]

### Async-Verarbeitung

Nicht-blockierende Hintergrund-Threads für Hash-Berechnung und Datenbankabfragen. Die GUI bleibt stets responsiv - mit Abbrechen-Dialog und Timeout-Steuerung.

[db]

### PostgreSQL

Native Datenbankintegration mit ConnectorX und Polars DataFrames. SSL-Modus-Unterstützung und asynchrone Verbindungstests inklusive.

[=>]

### Toolchain-Konfiguration

Flexible Verwaltung von Java VM, Saxon, Apache FOP und diff-pdf. ID-basierte Referenzierung ermöglicht projektübergreifende Konfigurationsprofile.

// ARBEITSABLAUF

## Workflow-Pipeline

01

### XSL-Dateien bearbeiten

Führe die benötigten Änderungen an den XSL-Stylesheets durch. DocuMentor Überwacht den Abhängigkeitsgraphen von über 100 verknüpften Dateien via xsl:import und xsl:include.

vim vorlage_urkunde.xsl
02

### Transformation starten

Starte die Saxon-Transformation direkt aus dem DocuMentor. Die gesamte Toolchain - von XSLT über FOP bis zur PDF-Generierung - wird automatisch orchestriert.

saxon -> fop -> pdf-output/
03

### PDF-Diff begutachten

Vergleiche die neu generierte PDF mit der Referenzversion im Drei-Panel-Viewer. Visuelles Alpha-Blending hebt jede Änderung hervor - Schrift, Layout, Positionen.

diff-pdf --view referenz.pdf neu.pdf
04

### Ergebnis verifizieren

Prüfe: Wurden nur die beabsichtigten PDF-Dateien geändert? Stimmt die Änderung mit der Erwartung überein? Bei Bedarf: zurück zu Schritt 1.

status: VERIFIED | RETRY
// LIVE-AUSGABE

## Terminal-Vorschau

documentor@workstation:~/projekte/flexnow
user@documentor:~$ documentor --projekt flexnow_urkunden
[INFO] Lade project.yaml ...
[INFO] Projektverzeichnis: /srv/flexnow/xsl-vorlagen
[INFO] Gefundene XSL-Dateien: 147
[INFO] Abhängigkeitsgraph: 23 Import-Ketten aufgeloest
[INFO] Hash-Berechnung gestartet (blake2b, async) ...
[HASH] urkunde_basis.xml blake2b:a4f8e2..OK
[HASH] zeugnis_master.xml blake2b:7c3d91..OK
[HASH] bescheid_v3.xml blake2b:GEÄNDERT
[HASH] notenblatt.xml blake2b:f1b8a0..OK
[XSLT] Saxon HE 12.5 - Transformation läuft ...
[FOP ] Apache FOP 2.10 - PDF-Generierung ...
[DONE] 4 PDFs generiert in 3.2s
[DIFF] Vergleiche Referenz <-> Neu ...
[DIFF] urkunde_basis.pdf IDENTISCH
[DIFF] zeugnis_master.pdf IDENTISCH
[DIFF] bescheid_v3.pdf 2 Seiten geändert
[DIFF] notenblatt.pdf IDENTISCH
user@documentor:~$
// TECHNOLOGIE

## Tech-Stack

Py
Python
Laufzeitumgebung
Qt
PySide6
GUI-Framework
Sx
Saxon
XSLT-Prozessor
Fp
Apache FOP
PDF-Generierung
Df
diff-pdf
PDF-Vergleich
Pg
PostgreSQL
Datenbank
Pl
Polars
DataFrames
Pd
Pydantic
Konfiguration
// INSTALLATION

## Erste Schritte

Repository klonen
$ git clone https://github.com/your-org/documentor.git
[KLICK ZUM KOPIEREN]
Abhängigkeiten installieren
$ cd documentor && uv sync
[KLICK ZUM KOPIEREN]
Anwendung starten
$ uv run python src/main.py
[KLICK ZUM KOPIEREN]

// Verwendet den uv-Paketmanager für schnelle, reproduzierbare Builds

- Python 3.13 oder höher
- Java Runtime für Saxon
- Apache FOP 2.x
- diff-pdf (optional, für PDF-Vergleich)
- PostgreSQL-Server (optional, für Datenbankintegration)
- uv-Paketmanager