Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: doc-bricks/UniversalInvoiceMail

v2.3.0 - DATEV Export

02 May 22:02
@lukisch lukisch

Choose a tag to compare

Changelog - UniversalInvoiceMail

Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

[2.3.0] - 2026年05月02日

Added

  • DATEV-Export: Rechnungen als DATEV-Buchungsstapel (CSV, cp1252) exportieren
  • Invoice.amount Feld: Rechnungsbetrag direkt in der Tabelle editierbar
  • DATEVSettingsDialog: Berater-Nr. und Mandant-Nr. konfigurierbar

Changed

  • NEU: Nicht-PDF-Anhänge werden jetzt zentral in PDF-Archive umgewandelt
    • Unterstützt Bilddateien (.png/.jpg/.jpeg/.bmp/.tif/.tiff/.webp)
    • Unterstützt .xlsx direkt und .docx wenn python-docx installiert ist
    • Gleiche Konvertierungslogik für Gmail API und IMAP
    • Unterstützt .doc/.xls optional via Word/Excel-COM oder LibreOffice
  • TESTS: Neue Abdeckung für Dateityp-Erkennung, XLSX-Konvertierung, Legacy-Fallbacks und Nicht-PDF-Anhänge in Gmail/IMAP
  • HINWEIS: Wenn weder pywin32/Office noch LibreOffice lokal verfügbar sind, werden .doc/.xls weiterhin sauber mit Hinweis übersprungen

[2.2.3] - 2026年01月16日 - Portable Tesseract

  • NEU: Automatische Erkennung von portablem Tesseract
    • Sucht nach tesseract_portable/tesseract.exe im Anwendungsordner
    • Setzt automatisch pytesseract.tesseract_cmd
    • Setzt automatisch TESSDATA_PREFIX Umgebungsvariable
  • Vorhandene Sprachdaten: deu.traineddata, eng.traineddata
    • Deutsch + Englisch OCR funktioniert out-of-the-box
  • Keine systemweite Tesseract-Installation nötig!
    • Einfach tesseract_portable Ordner mitliefern

[2.2.2] - 2026年01月16日 - Poppler entfernt

  • ENTFERNT: pdf2image und Poppler-Abhängigkeit
    • Poppler musste separat installiert werden (umständlich auf Windows)
  • NEU: pypdfium2 für PDF-zu-Bild Konvertierung
    • Alle Binaries sind im pip-Paket enthalten
    • Keine separate Installation nötig!
    • Schneller als pdf2image/Poppler
  • OCR-Installation jetzt einfacher:
    • pip install pytesseract pypdfium2 pypdf Pillow
    • Nur noch Tesseract OCR separat installieren

[2.2.1] - 2026年01月16日 - OCR Enhancement

  • FIX: OCR läuft jetzt IMMER über Bilder (nicht nur wenn kein Text vorhanden)
    • Wichtig für Temu/Amazon: Text UND Bilder mit Artikelinfos
  • NEU: enhance_with_ocr() Methode im OCRProcessor
    • Original-PDF Layout bleibt erhalten (Browser-Rendering!)
    • OCR-Text wird als zusätzliche Seite am Ende angefügt
    • Überschrift "OCR-Erkannter Text aus Bildern"
    • Alle Seiten werden gescannt, Text wird zusammengefasst
  • OCR-Logik geändert:
    • Vorher: Nur wenn PDF <50 Zeichen Text hatte (has_text Check)
    • Jetzt: Immer wenn OCR aktiviert ist (scannt alle Bilder)

[2.2.0] - 2026年01月16日 - Browser-Rendering

  • NEU: Dritter PDF-Modus "Browser (Edge/Chrome)" - Empfohlen!
    • Nutzt Headless Edge/Chrome für natives HTML-Rendering
    • Chrome DevTools Protocol (CDP) für PDF-Export
    • Beste Qualität: Bilder, Fonts, modernes CSS werden korrekt gerendert
    • Keine PermissionError bei externen Ressourcen
  • NEU: BrowserPDFRenderer Klasse
    • Automatischer Browser-Start (headless)
    • Versucht Edge zuerst, dann Chrome
    • Fallback zu xhtml2pdf wenn Browser fehlschlägt
  • NEU: webdriver-manager Integration
    • Automatischer Download des passenden WebDrivers
    • Keine manuelle Driver-Installation nötig
  • GUI: Browser-Modus nur sichtbar wenn Selenium installiert
  • Optionale Abhängigkeiten: selenium, webdriver-manager
    • pip install selenium webdriver-manager

[2.1.0] - 2026年01月16日 - Zwei PDF-Modi mit OCR

  • NEU: PDF-Modus Auswahl in Einstellungen
    • "Schnell (nur Text)" = Standard, entfernt Bilder (stabil, schnell)
    • "Vollständig (mit Bildern)" = behält Bilder, schöner Output
  • NEU: OCR-Option für bildbasierte Mails (Temu, Amazon)
    • Checkbox "OCR für bildbasierte PDFs" in Einstellungen
    • Nutzt Tesseract + Poppler für Texterkennung
    • Nur wenn PDF keine Textebene hat (automatische Erkennung)
  • NEU: sanitize_html_for_pdf_full() für "Vollständig"-Modus
    • Behält Tags und inline Bilder (CID, Base64)
    • Entfernt nur Scripts und externe URLs
  • NEU: OCRProcessor Klasse (portiert von GmailDocsGrabberV5)
    • has_text() prüft ob PDF durchsuchbaren Text hat
    • add_text_layer() fügt OCR-Textebene hinzu
  • Optionale Abhängigkeiten: pytesseract, pdf2image, pypdf, Pillow
    • Poppler-Installation für Windows notwendig (pdf2image)

[2.0.2] - 2026年01月16日 - PDF & Order-ID Fixes

  • FIX: 0KB PDF-Dateien werden jetzt gelöscht statt behalten
    • html_to_pdf() löscht leere Dateien bei Fehler
    • Verhindert "Datei existiert bereits" bei erneutem Durchlauf
  • FIX: Aggressivere HTML-Bereinigung für xhtml2pdf
    • <style> Tags komplett entfernt (modernes CSS crasht xhtml2pdf)
    • Inline style-Attribute entfernt
    • HTML-Kommentare entfernt
    • Control Characters (0x00-0x1F) entfernt
  • FIX: Order-ID Fallback nutzt jetzt MD5-Hash statt msg['id']
    • Verhindert "-collapse" und "-bottom" in Dateinamen
    • Diese kamen aus HTML-Fragmenten der Gmail Message ID

[2.0.1] - 2026年01月16日 - Gemini Audit Fixes

  • FIX: IMAP Datumsformat Locale-Problem (RFC 3501)
    • Neue Funktion format_imap_date() mit englischen Monatsnamen
    • strftime("%d-%b-%Y") erzeugte auf DE-Systemen "Mai" statt "May"
    • IMAP-Server akzeptieren nur englische Monatsnamen
  • FIX: Base64 Padding-Berechnung mit Whitespaces
    • safe_b64decode() entfernt jetzt Newlines/Spaces vor len()
    • E-Mails enthalten oft Zeilenumbrüche in Base64-Strings
  • FIX: Gmail API Rate Limiting
    • time.sleep(0.1) nach messages().get() Aufrufen
    • time.sleep(0.05) nach attachments().get() Aufrufen
    • Verhindert HttpError 429 bei vielen Mails

[2.0.0] - 2026年01月16日 - Audit-Fix Release

  • FIX #3: Inline-PDFs werden erkannt (data ohne attachmentId)
    • Temu/eBay PDFs die direkt base64-codiert sind werden jetzt gespeichert
  • FIX #7: IMAP BEFORE ist exklusiv -> +1 Tag addiert
    • date_to wird jetzt korrekt als "bis einschließlich" interpretiert
  • FIX #14: Order-ID Regex verschärft
    • UUIDs werden nicht mehr fälschlich als Bestellnummer erkannt
    • Längenbegrenzung auf 5-20 Zeichen
    • Erfordert Kontext-Keyword (Bestellnummer, Order, Invoice etc.)
  • FIX #12: Division by Zero in Progress bereits abgesichert
    • Guard "if t > 0 else 0" vorhanden

[1.9.2] - 2026年01月16日

  • FIX: Vollständige HTML-Bereinigung VOR PDF-Konvertierung
    • Neue Funktion sanitize_html_for_pdf() entfernt:
      • Tags (Hauptursache für Windows PermissionError)
      • Tags (externe Stylesheets)
      • <script> Tags
      • @font-face und @import CSS-Regeln
      • url() Referenzen in CSS
      • Zero-Width-Spaces (\u200b, \u200c, \u200d, \ufeff)
    • link_callback bleibt als Fallback-Schutz
  • FIX: break_long_urls() deaktiviert (verursachte UnicodeEncodeError)
    • CSS word-break: break-all übernimmt URL-Umbruch

[1.9.1] - 2026年01月16日

  • FIX: Korrupte PDFs behoben - link_callback blockiert externe Ressourcen
    • html_to_pdf nutzt jetzt pisa.CreatePDF mit link_callback=lambda: None
    • Keine TTFError/PermissionError mehr durch externe Fonts
    • Ersetzt problematische clean_html_for_pdf() Funktion (gelöscht)
  • FIX: 0-Byte Dateien werden in scan_folders_for_new_files() übersprungen
    • Korrupte/unvollständige Dateien werden nicht mehr importiert

[1.9.0] - 2026年01月16日

  • FIX: Temu-Mails zeigen nun vollständigen HTML-Inhalt statt nur Fallback-Text
    • HTML wird bei multipart/alternative bevorzugt (Gmail API + IMAP)
  • FIX: Lange URLs brechen nun korrekt um (Zero-Width-Space Workaround für xhtml2pdf)
    • URLs in src/href bleiben unverändert (Bilder laden korrekt)
  • FIX: Typ-Spalte zeigt Emoji korrekt (Spaltenbreite 40px, zentriert)
  • FIX: Hash-Sync vor Download - alle PDFs im Ordner werden jetzt korrekt erkannt
    • Auch defekte/manuell hinzugefügte Dateien werden nicht erneut heruntergeladen
    • Neue Funktion _collect_folder_hashes() sammelt alle Hashes aus Zielordnern
  • FIX: Duplikat-Dateien werden jetzt in GUI importiert (Gemini-Fix)
    • Dateien mit bekanntem Hash werden nicht mehr übersprungen
    • Defekte Dateien sind sichtbar und löschbar in der GUI
    • Sender zeigt "Duplikat (Import)" zur Unterscheidung
  • Neue Funktion break_long_urls() für PDF-Lesbarkeit
  • Neue Funktion _get_all_body_parts() für rekursive Part-Sammlung

[1.8.1] - 2026年01月13日

  • FIX: Header-Design nutzt jetzt Tabellen statt CSS-Gradient (xhtml2pdf kompatibel)
  • NEU: Body-Filter im Profil: "Body muss enthalten" und "Body darf nicht enthalten"
  • Beide Body-Filter sind optional (leer = kein Filter)
  • Kommasepariert = ODER-Verknüpfung

[1.8] - 2026年01月13日

  • NEU: "Dem PDF den Mail-Body anhängen" Option in Einstellungen
  • NEU: Hybrid-Design für Body-PDFs mit Header (Datum, Betreff, Absender)
  • Bei aktivierter Option werden PDF-Anhänge + Mail-Body zu einer Datei gemerged
  • Body-PDFs erhalten jetzt einen designten Header-Bereich
  • Benötigt PyPDF2 für Merge-Funktion (Fallback: nur Original)

[1.7.5] - 2026年01月13日

  • NEU: Typ-Symbol in Rechnungsliste (📎 = Anhang, 📄 = Body-PDF)
  • NEU: Blacklist-Feld im Profil "Darf NICHT enthalten"
  • Mails mit Blacklist-Begriffen in Betreff/Body werden übersprungen
  • Tooltip zeigt Typ-Bedeutung bei Hover

[1.6] - 2026年01月13日

  • BUG-Fix: Dateiliste synchronisiert jetzt mit Dateisystem
  • Gelöschte Dateien werden automatisch aus Liste entfernt
  • Neue Methode save_invoices_db() für persistente Speicherung
  • Log-Ausgabe zeigt Anzahl entfernter Einträge

[1.5] - 2026年01月13日

  • NEU: CSV Export Button - Rechnungsliste als CSV exportieren
  • CSV Format: Semikolon-getrennt, UTF-8 mit BOM (Excel-kompatibel)
  • Spalten: Datum, Profil/Shop, Absender, Betreff, Dateiname, Pfad
  • ROADMAP.txt erstellt für zukünftige Features

[1.4] - 2026年01月13日

  • GUI: Von/Bis Datum-Auswahl mit Kalender-Popup
  • GUI: Schnellauswahl-Dropdown ("Letzte 12 Monate", "Dieses Jahr", etc.)
  • Datum-Auswahl: Gespeicherte Werte werden beim Start geladen
  • Bestellnummer: Wird jetzt auch aus Mail-Body extrahiert
  • Gmail/IMAP: Nutzt date_from/date_to s...
Read more

Contributors

import and font-face
Assets 4
Loading

AltStyle によって変換されたページ (->オリジナル) /