Übernahme unstrukturierter Daten aus PDF in eine gut strukturierte Tabelle
Das Problem: Eine Abrechnung kommt als PDF. Für dem menschlichen Betrachter sieht sie sauber und übersichtlich aus, aber für den Buchhalter, der jeden einzelnen Posten ind eine Tabellenkalkulation oder in eine Datenbank importieren möchte, ist PDF nicht gerade hilfreich.
Sofern das PDF-Dokument nicht aus einen Bild, zum Beispiel einem eingescannten Papier-Ausdruck, erstellt wurde, kann man die Daten kopieren und in einen Texteditor einfügen. Doch dann sind sie nicht mehr so sauber angeordnet wie im PDF, und man muss einige Tricks und Kniffe anwenden, um sie in Tabellenform zu bringen.
Genau darauf sind wir bei Calya Consult spezialisiert: Wir bringen Ihre Daten aus einen beliebigen Ausgangsformat in ein beliebiges Zielformat.
Beispiel-Arbeitsablauf
Für die Extraktion und Umwandlung der Daten sind Scripts in Python oder Javascript vorgesehen, einige davon massgeschneidert. In einer vereinfachten Form vollzieht sich der Ablauf der Datenübernahme in folgenden Schritten:
1) Originaldaten als PDF (z.B. Kreditkartenabrechnung)

2) Mit Copy/Paste aus dem PDF übernommene Textdaten
[51] 14.04.2025 ZVV-App Zürich [52] Transportunternehmen [53] 12.04.2025 [54] 13.50 [55] 14.04.2025 Migros Zürich Airport Zürich [56] Lebensmittelgeschäft [57] 12.04.2025 [58] 22.20 [59] 14.04.2025 Kuhn Back & Gastro AG Winterthur [60] Bäckerei [61] 12.04.2025 [62] 16.60 [63] 14.04.2025 DB Vertrieb GmbH 383593603448 DEU [64] Eisenbahnen [65] 13.04.2025 [66] Kurs 0.9473184 vom 11.04.2025 [67] Bearbeitungszuschlag 1.75% [68] EUR 15.60 15.04
3) Tabellarische Darstellung der Daten
4) Tabellarische Darstellung nach SQL transformiert
CREATE TABLE `transaktionen` ( `Zeile` INT, `Datum_Buchung` DATE, `Datum_Einkauf` DATE, `Verkäufer` TEXT, `Kategorie` TEXT, `Betrag` TEXT, -- Als TEXT definiert, um verschiedene Währungen zuzulassen `Betrag CHF` DECIMAL(10,2) ); INSERT INTO `transaktionen` (`Zeile`, `Datum_Buchung`, `Datum_Einkauf`, `Verkäufer`, `Kategorie`, `Betrag`, `Betrag CHF`) VALUES (51, STR_TO_DATE('14.04.2025', '%d.%m.%Y'), STR_TO_DATE('12.04.2025', '%d.%m.%Y'), 'ZVV-App Zürich', 'Transportunternehmen', "", 13.50), (55, STR_TO_DATE('14.04.2025', '%d.%m.%Y'), STR_TO_DATE('12.04.2025', '%d.%m.%Y'), 'Migros Zürich Airport Zürich', 'Lebensmittelgeschäft', "", 22.20), (59, STR_TO_DATE('14.04.2025', '%d.%m.%Y'), STR_TO_DATE('12.04.2025', '%d.%m.%Y'), 'Kuhn Back & Gastro AG Winterthur', 'Bäckerei', "", 16.60), (63, STR_TO_DATE('14.04.2025', '%d.%m.%Y'), STR_TO_DATE('13.04.2025', '%d.%m.%Y'), 'DB Vertrieb GmbH 383593603448 DEU', 'Eisenbahnen', 'EUR 15.60', 15.04);
5) Daten sind in der Datebank

Und nun?
JETZT Anfragen per Telefon: 041 743 09 09 oder per E-Mail an hello@calyaconsult.ch