Desktop-Anwendung // PySide6 // Open Source

DOCUMENTOR

XSL-Transformationen unter Kontrolle. Validieren. Vergleichen. Verifizieren. Die Toolchain für Entwickler, die PDF-Dokumente aus XSL/XML erzeugen und Änderungen lückenlos nachverfolgen muessen.

100+ XSL-Dateien
3 PDF-Panels
BLAKE2B Hash-Tracking
∞ Transformationen
SAXON • APACHE FOP • DIFF-PDF • POSTGRESQL • PYSIDE6 • BLAKE2B • XSL • XML • PDF • SAXON • APACHE FOP • DIFF-PDF • POSTGRESQL • PYSIDE6 • BLAKE2B • XSL • XML • PDF • SAXON • APACHE FOP • DIFF-PDF • POSTGRESQL • PYSIDE6 • BLAKE2B • XSL • XML • PDF • SAXON • APACHE FOP • DIFF-PDF • POSTGRESQL • PYSIDE6 • BLAKE2B • XSL • XML • PDF •
01 // Features

Was DocuMentor leistet

☰ Feature 01

Baumstruktur

Hierarchische Organisation von XSL-Transformationen. TreeNode, XslFile und XmlFile bilden eine übersichtliche Projektstruktur. Import- und Include-Abhängigkeiten auf einen Blick.

▦ Feature 02

PDF-Diff

Drei-Panel-Ansicht: Referenz, Diff und Neu. Visueller Vergleich mit Alpha-Blending. Änderungen in PDF-Dokumenten sofort erkennen — Pixel für Pixel.

#_ Feature 03

Hash-Tracking

BLAKE2B-Hashing zur Änderungsverfolgung von XML-Dateien. Automatische Berechnung beim Laden. 64-Zeichen-Hexdigest in project.yaml persistiert.

⇄ Feature 04

Async-Verarbeitung

Hintergrund-Threads für Hash-Berechnungen und Datenbank-Abfragen. Die UI bleibt reaktionsfähig — auch bei 100+ Dateien. Abbrechen-Dialog inklusive.

⎓ Feature 05

PostgreSQL

Datenbankintegration mit Polars und ConnectorX. SSL-Unterstützung. SQL-Abfragen direkt aus der Anwendung. Ergebnisse als DataFrames.

⚙ Feature 06

Toolchain-Konfig

Zentrale Verwaltung: Java VM, Saxon JAR, Apache FOP, diff-pdf. ID-basierte Referenzierung. Projekte koennen verschiedene Tool-Versionen verwenden.

02 // Workflow

Vier Schritte zum Ergebnis

01

XSL bearbeiten

Änderungen an den XSL-Dateien durchführen. Import- und Include-Verknüpfungen beachten — eine Änderung kann viele Dokumente betreffen.

▶
02

Transformation starten

Saxon führt die XSLT-Transformation durch. Apache FOP erzeugt die PDF-Ausgabe. Alles konfigurierbar über die Toolchain.

▶
03

PDF-Diff begutachten

Die Drei-Panel-Ansicht zeigt Referenz, Differenz und neues Dokument. diff-pdf markiert alle Änderungen visuell.

▶
04

Ergebnis verifizieren

Wurden die richtigen PDFs geändert? Entsprechen die Änderungen den Erwartungen? Bei Bedarf: zurück zu Schritt 1.

03 // Oberfläche

Die Anwendung im Einsatz

DocuMentor v1.0 — Projekt: Pruefungsdokumente ■ PySide6
▼ Urkunden
▼ bachelor_urkunde.xsl
● student_01.xml
● student_02.xml
● student_03.xml
▶ master_urkunde.xsl
▼ Zeugnisse
▶ zeugnis_ba.xsl
▶ zeugnis_ma.xsl
▶ Bescheide
Referenz-PDF
◼ Referenz
■ Diff-Ansicht
◼ Differenz
Neues PDF
◼ Neu generiert
student_02.xml — BLAKE2B: a3f7c9... ■ Transformation abgeschlossen
04 // Tech-Stack

Gebaut mit roher Kraft

◆

Python

Kern-Sprache

▣

PySide6

Qt-GUI-Framework

♦

Saxon

XSLT-Prozessor

▮

Apache FOP

PDF-Erzeugung

▬

diff-pdf

PDF-Vergleich

⎓

PostgreSQL

Datenbank

☷

Polars

DataFrames

⚙

Pydantic

Konfiguration

05 // Loslegen

Jetzt installieren

Voraussetzungen

DocuMentor läuft auf Linux, Windows und macOS. Die Konfiguration wird plattformspezifisch gespeichert.

  • [x] Python 3.13+
  • [x] Java VM (für Saxon)
  • [x] Saxon HE/PE/EE JAR
  • [x] Apache FOP
  • [x] diff-pdf
  • [x] PostgreSQL (optional)
Dokumentation
Terminal
# Repository klonen
$ git clone https://github.com/user/xsl-validator.git
$ cd xsl-validator

# Abhängigkeiten installieren
$ uv sync

# Anwendung starten
$ uv run python src/main.py
Linting
$ uv run ruff check
$ uv run ruff format