3 Punkte von GN⁺ 2025-12-24 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Eine Python-Bibliothek, die unsachgemäße Schwärzungen in PDF-Dokumenten automatisch erkennt und Fälle identifiziert, in denen Text lediglich mit schwarzen Rechtecken überdeckt wurde
  • Entwickelt vom Free Law Project, um ein wiederkehrendes Problem zu lösen, das beim Sammeln von Millionen von PDFs entdeckt wurde
  • Kann über die Kommandozeile oder aus Python-Code heraus ausgeführt werden und gibt die Ergebnisse als JSON oder Python-Objekte zurück
  • Verwendet intern PyMuPDF, um Rechtecke, Text und Farbinformationen in PDFs zu analysieren und zu bestimmen, ob eine Schwärzung tatsächlich Text verbirgt
  • Besonders nützlich als automatisches Prüfwerkzeug zum Schutz vor der Offenlegung personenbezogener Daten in Rechtsdokumenten oder öffentlich zugänglichen Materialien

Überblick

  • x-ray ist eine Python-Bibliothek zur Erkennung fehlerhafter Schwärzungen (redactions) in PDF-Dateien
    • Wenn der Benutzer einen PDF-Pfad angibt, findet das Tool Bereiche, in denen die Schwärzung nicht korrekt durchgeführt wurde
    • Das Ergebnis wird im JSON-Format pro Seite ausgegeben und enthält Koordinaten (bbox) sowie den Text (text) des betreffenden Bereichs

Hintergrund der Entwicklung

  • Das Free Law Project stieß beim Sammeln von Millionen von PDFs auf zahlreiche Dokumente mit nicht korrekt durchgeführten Schwärzungen
    • Einige Nutzer verwendeten schwarze Rechtecke oder Hervorhebungen, um Text zu überdecken, anstatt ihn tatsächlich zu löschen
    • In solchen Fällen wird der Originaltext unverändert offengelegt, sobald man den Text unter dem Rechteck auswählt
  • Um die Häufigkeit dieses Problems zu erfassen, wurde das Tool x-ray entwickelt

Verwendung

  • Installation
    • Installation mit pip install x-ray oder uv add x-ray
  • Ausführung über die Kommandozeile
    • Mit xray path/to/file.pdf wird das Tool ausgeführt und gibt ein JSON-Ergebnis aus
    • Bei Eingabe einer URL wird die entfernte PDF heruntergeladen und anschließend geprüft
    • Um mehrere URLs auf einmal zu prüfen, kann xargs -n 1 xray < urls.txt verwendet werden
  • Verwendung in Python-Code
    • xray.inspect("file.pdf") gibt das Ergebnis als Python-Objekt zurück
    • Ist der Eingabewert ein String, wird er als lokale Datei behandelt; beginnt er mit https://, als URL; bei bytes als PDF im Speicher
    • Wird ein Dateipfad als Typ bytes übergeben, funktioniert dies nicht

Funktionsweise

  • Intern wird PyMuPDF zur Analyse der PDF verwendet
    1. Suche nach Rechtecken (rectangle) in der PDF
    2. Suche nach Zeichen (letter) an derselben Position
    3. Rendern des Rechtecks als Bild
    4. Ist das Rechteck mit einer einzigen Farbe gefüllt, wird es als fehlerhafte Schwärzung eingestuft
  • Da die PDF-Struktur komplex ist, ist eine perfekte Erkennung schwierig, das Tool wird jedoch laufend verbessert
  • Das Projekt wird durch Spenden und Sponsoring getragen

Beiträge und Veröffentlichung

  • Über die Issues-Liste auf GitHub lassen sich nicht unterstützte Fälle oder Verbesserungswünsche prüfen
  • Vor dem ersten Beitrag ist die Unterzeichnung eines Contributor License Agreement (CLA) erforderlich
  • Die Veröffentlichung ist über GitHub Actions automatisiert; für eine manuelle Veröffentlichung wird der Befehl poetry publish --build verwendet

Lizenz

  • Veröffentlicht unter der BSD-Lizenz und damit frei in andere Projekte integrierbar
  • Pull Requests und Funktionsvorschläge sind willkommen; Änderungen können direkt über die GitHub-Weboberfläche vorgenommen werden

Noch keine Kommentare.

Noch keine Kommentare.