PDF-Import von Consorsbank

Die Bank App verändert nichts. Aber wenn du beispielsweise ein PDF in einem PDF-Viewer öffnest und dann als PDF druckst, wird ein neues PDF generiert. Dieses neu generierte PDF sieht für das menschliche Auge aus wie vorher, aber der Inhalt ist komplett anders.

Hier z.B. der Debug von einem als PDF gedruckten PDFs, wie du siehst, ist kein Text mehr vorhanden, aber wenn ich dieses PDF mit einem PDF-Viewer öffne, ist weiter alles optisch wie vorher, aber ich kann in diesem PDF auch keinen Text mehr kopieren, da durch den PDF-Druck alles als Bild abgeändert wurde:

Noch hat keiner der iOS an iCloud sendenden Usern den Prozess detailliert genug beschrieben oder Beispiele gesendet. Es bringt also nichts hier weiter zu spekulieren und es hat auch nichts mit den Dokumenten zu tun, welche bei dir nicht importiert werden können.

Das ist klar. Dennoch denke ich nicht, dass das auf iOS bzw. durch das Teilen in die Cloud passiert - aus verschiedenen Gründen. Vielleicht kann das jemand mit iOS bestätigen - oder widerlegen.

Und wir sollten den Fokus nicht verlieren - der Consorsbank Importer hat definitiv Probleme mit den echten PDFs aus dem OnlineArchiv, die behoben werden sollten.

Wie gesagt, sobald irgendwer Lust hat das in seinem Freizeit zu programmieren.

Ich will es nicht runterreden (hat meinen Inneren Monk auch schon ein paar mal getriggert - aber noch nicht genug :wink: wenn mal wieder ein Import deswegen eine Fehlermeldung aufploppen lässt.

Beim initialen Befüllen von PP ist so was immer lästig, im weiteren Verlauf wirst du aber vermutlich nicht mehr 100 PDFs am Stück importieren, sondern die paar bis ein Dutzend, die so im Laufe eines Tages zusammenkommen und dann ist die Prüfung und Entscheidung, dass man das ignorieren kann, deutlich weniger aufwändig.

Nachprüfen, ob die Imports alle sauber waren, kann man, indem man die Saldi der einzelnen Konten mit den errechneten solchen vergleicht.

Kann man so pauschal eben nicht sagen, beim “Teilen” von Bildern wird da auch schon mal gerne größenoptimiert, daher ja meine Bitte, einmal einen Dump vom Problembären^HPDF bereitzustellen. Gut möglich, dass sich dann herausstellt, dass es ganz was anderes war, aber selbst dann braucht man besagten Dump, damit man darauf basierend einen Fix bauen kann.

Hallo zusammen,

wenn ich die Datei mit der iOS App App speichere, entsteht eine PDF mit Version 1.3 und diese enthält wahrscheinlich nur Bilder, man kann dann auch keinen Text mehr rauskopieren, wenn ich das selbe auf dem Mac mache oder über den internen Browser unter iOS (Safari) entsteht eine PDF mit Version 1.4, die kann PP lesen und man kann auch Text rauskopieren.
Man kann auch sehen, dass bei der Consors App beim Öffnen oben dann PDF Reader Application steht. Es liegt also dem verhalten der Consors App. Bei mir war das so, dass eine Zeit lang beim abspeichern die Datei auch immer nur V1.PDF als Dateiname war.

Einen OCR-Scanner werden wir wohl nicht in den Import integrieren :wink:, aber selbst wenn es doch noch Text ist ist dort nur vom iOS die Berechtigung zum Textkopieren entfernt wurde, scheint dabei auch die bei der Umwandlung von PDF zu Text herauskommende Struktur nicht mehr so vorzuliegen, wie es der Importer erwartet.

Das dürfte dann aber auch so bleiben. Das eigentlich Format, das die Banken verwenden, wechselt oft genug (siehe die ständig neu aufploppenden Threads inkl. diesem) und mit jedem Wechsel wird die Importlogik immer komplexer (die alten Varianten müssen ja weiterhin noch unterstützt werden). Da noch Varianten für diverse Konvertierer aufzunehmen, dürfte den Rahmen sprengen.

Hallo zusammen,

Version 0.87.0 (macOS). Dividendengutschriften, die Consorsbank in USD auf mein Fremdwährungskonto gutschreibt, werden vom Importer als EUR-Buchung erkannt. Im Importdialog wird deshalb nur die Zeile „EUR“ mit den EUR-Konten angeboten; weise ich der Buchung per Rechtsklick → „Konto“ das USD-Konto zu, kommt „Buchungswährung EUR passt nicht zu Kontowährung USD“.

Erwartet: Dividende 11,26 USD (Brutto 13,25 USD, Quellensteuer 1,99 USD) auf das USD-Konto, Valuta 01.07.2026. Tatsächlich: Buchung über 11,56 EUR – das ist der Wert der Zeile „Brutto in EUR“.

Ursache (aus dem Quellcode nachvollzogen): Betroffen sind alle Belege, bei denen keine Kapitalertragsteuer abgezogen wird (bei mir wegen Sparerpauschbetrag, siehe Seite 2). Dann fehlt die Zeile „Netto in EUR“, und die Zeile „Netto in USD“ ist die Zwischensumme vor der Umrechnung. Die Section

.find("Netto in [A-Z]{3}")
.match("^(?<amount>[\\.,\\d]+) (?<currency>[A-Z]{3})$")
.match("^Netto in [A-Z]{3} (zugunsten|zulasten) .*$")

aus #5217 greift sich daher „Netto in USD“ (Zwischensumme) und als nächsten Betrag „11,56 EUR“. Belege mit KapESt-Abzug (Layout wie Dividende30.txt) funktionieren korrekt, weil dort „Netto in EUR“ direkt vor dem USD-Betrag steht.

Debug-Text (anonymisiert, Beträge unverändert):

PDFBox Version: 3.0.7
Portfolio Performance Version: 0.87.0
System: macosx | aarch64 | 21.0.5+11-LTS | Azul Systems, Inc.
-----------------------------------------
Consorsbank • 90318 Nürnberg
Depotnummer: 7731468801
1501642667/00
Vermerk der Bank: 1000
2
nCeld sjDqXgRv
Datum: 07.07.2026
Fk XesBURSLC 6
Seite: 1 von 2
58381 MVwNApE
Dividendengutschrift
Wertpapierbezeichnung WKN ISIN
COCA-COLA CO., THE Registered Shares DL -,25 850663 US1912161007
Bestand
25 Stück
Dividende pro Stück 0,53 USD Schlusstag 14.06.2026
Brutto in USD 13,25 USD
abzgl. Quellensteuer 15,00 % von 13,25 USD 1,99 USD
11,26 USD
Netto in USD
Devisenkurs 1,14630 USD / EUR
11,56 EUR
Brutto in EUR
1,74 EUR
Quellensteuer in EUR
11,26 USD
Netto in USD zugunsten IBAN DE49 6789 3605 4408 5892 04
Valuta 01.07.2026 BIC DABBDEMMXXX
Anrechenbare Quellensteuer EUR
15,00 % von 13,25 USD 1,74
Bitte beachten Sie die weiteren Informationen auf Seite 2.
Consorsbank ist eine eingetragene Marke der BNP Paribas S.A. Niederlassung Deutschland (AG nach franz. Recht).
Standort Nürnberg: Bahnhofstraße 55, 90402 Nürnberg, HRB Nürnberg 31129, USt-IdNr. DE191528929
Fon +49 (0) 911 / 369-30 00, Fax +49 (0) 911 / 369-10 00, info@consorsbank.de, www.consorsbank.de
Sitz der BNP Paribas S.A.: 16, boulevard des Italiens, 75009 Paris, Frankreich, Registergericht: R.C.S. Paris 662 042 449
Président du Conseil d‘Administration (Präsident des Verwaltungsrates): Jean Lemierre, Directeur Général (Generaldirektor): Jean-Laurent Bonnafé
1EEB2591-3A99-CFFD-D19E-17X22315LRv0
Depotnummer: 0428318068
1501642667/00
Vermerk der Bank: 1000
2
Datum: 07.07.2026
Seite: 2 von 2
Details zur Abrechnung
Steuerpflichtiger Gesamtertrag 11,56 EUR
Mit Verrechnungstopf "Allgemein" verrechnet 0,00 EUR
Mit Sparerpauschbetrag verrechnet -11,56 EUR
Mit Quellensteuer verrechnet 0,00 EUR
somit verrechnete Quellensteuer 0,00 EUR
Bemessungsgrundlage für Kapitalertragsteuer gesamt 0,00 EUR
Details zu den Verrechnungstöpfen
Verrechnungstopf "Allgemein" vor der Abrechnung 0,00 EUR
Mit Verrechnungstopf "Allgemein" verrechnet 0,00 EUR
Verrechnungstopf "Allgemein" nach der Abrechnung 0,00 EUR
Sparerpauschbetrag vor der Abrechnung 673,33 EUR
Mit Sparerpauschbetrag verrechnet -11,56 EUR
Sparerpauschbetrag nach der Abrechnung 661,77 EUR
Verrechnungstopf "Quellensteuer" vor der Abrechnung 73,69 EUR
Änderung Verrechnungstopf "Quellensteuer" 1,74 EUR
Verrechnungstopf "Quellensteuer" nach der Abrechnung 75,43 EUR

Lösungsvorschlag: eine zusätzliche Section vor der oben zitierten Section, die genau dieses Layout erkennt (Betrag → „Netto in XXX“ → danach „Devisenkurs“ → „Netto in XXX zugunsten“). Bei Belegen mit KapESt-Abzug steht „Devisenkurs“ nicht mehr nach „Netto in EUR“, sodass die neue Section dort nicht greift und alles beim Alten bleibt:

// 11,26 USD
// Netto in USD
// Devisenkurs 1,14630 USD / EUR
// ...
// 11,26 USD
// Netto in USD zugunsten IBAN DE49 6789 3605 4408 5892 04
section -> section //
                .attributes("amount", "currency") //
                .match("^(?<amount>[\\.,\\d]+) (?<currency>[A-Z]{3})$") //
                .match("^Netto in [A-Z]{3}$") //
                .find("Devisenkurs.*") //
                .match("^Netto in [A-Z]{3} (zugunsten|zulasten) .*$") //
                .assign((t, v) -> {
                    t.setCurrencyCode(asCurrencyCode(v.get("currency")));
                    t.setAmount(asAmount(v.get("amount")));
                }),

Einen Patch mit dieser Section, dem Debug-Text als Dividende31.txt und zwei Testfällen (testDividende31, testDividende31WithSecurityInEUR, erwartet 11,26 USD / Brutto 13,25 USD / Steuern 1,99 USD, bei Wertpapier in EUR zusätzlich Forex-Brutto 11,56 EUR) hänge ich an. Die vorhandenen Consorsbank-Testbelege liefern mit der zusätzlichen Section weiterhin dieselben Beträge; die Maven-Testsuite konnte ich lokal allerdings nicht laufen lassen.

Viele Grüße

consorsbank-dividende-usd-ohne-kapest.patch.txt (9,6 KB)

sorry für die Frage warum Postest du das nicht so auf GitHub als pull requests?
Wenn du das nicht möchtest kann ich das aber auch für dich tun.

@heizie78 wie gewünscht habe ich es gepostet

Was ich stattdessen geändert habe

  1. Bestehende Variante mit „Netto in EUR“: Sie sucht „Netto in …“ jetzt erst nach der Devisenkurs-Zeile. Dadurch greift sie bei Dividende31 nicht mehr fälschlich. Nebenbei habe ich dort das fehlende // am Zeilenende ergänzt.
  2. Neue Variante direkt danach: Sie sucht die Zeilenfolge „Devisenkurs“ → „Quellensteuer in EUR“ → Betrag → „Netto in USD zugunsten/zulasten“. Sie nimmt also den Betrag direkt vor der Gutschriftszeile.
  3. Kommentar: Der Erklärtext steht jetzt außerhalb von @formatter:off/on, darin nur noch der wörtliche Dokumenttext.

@stoeggich Großartig, vielen Dank fürs Übernehmen! :folded_hands: Ich war die letzten Tage nur eingeschränkt online.