Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Apache PDFBox to 3.x #4449

Open
buchen opened this issue Jan 3, 2025 · 14 comments
Open

Upgrade Apache PDFBox to 3.x #4449

buchen opened this issue Jan 3, 2025 · 14 comments
Labels

Comments

@buchen
Copy link
Member

buchen commented Jan 3, 2025

PP uses Apache PDFBox to extract a text presentation of the PDF document for further processing.

By now, Apache PDFBox is released in version 3.0.3. We plan to use this issue to track an update of the library within PP.

Problem statement:

The process of importing works like this:

PDF ---(PDFBox)--> Plain Text ---(regex)--> Transactions

The challenge is that we have almost no test cases that take the PDF as input. Why? Because users want to provide anonymous content, we generate the text in the desktop application, let the user anonymize and then share the plain text. That means a) we cannot test if the new version of PDFBox creates the same text output and b) potentially break many importers which would require new sample files to fix the code.

Options:

  • Create a distribution of PP that contains both PDFBox versions: the old and the new (latest) version
  • Attempt to import the PDF using the new PDFBox version
  • If that fails, attempt to import the PDF the old PDFBox version
  • When creating a debug text document, use the new PDFBox version (--> collect examples in new version)

Technical considerations:

  • We must extract the PDFBox dependencies in separate bundles so that each bundle (old and new) and have a dependency to the old and new PDFBox
@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

Collecting changes in the extracted text:

Delta in Baader Bank document of February 2023 --> only in the address, not a problem.

7,8c7
< 04.02.2023
< Muster Str. 42
---
> Muster Str. 42 04.02.2023
71c70,71
<  
\ No newline at end of file
---
>  
>

@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

Consorsbank from 2021 --> not a problem

1c1
< Consorsbank • 90318 Nürnberg
---
> Consorsbank  90318 Nürnberg
8,10c8
< Datum: 15.12.2021
< 12345 Musterstadt
< Seite: 1 von 1
---
> 12345 Musterstadt Datum: 15.12.2021Seite: 1 von 1
37c35
< Président du Conseil d‘Administration (Präsident des Verwaltungsrates): Jean Lemierre, Directeur Général (Generaldirektor): Jean-Laurent Bonnafé
---
> Président du Conseil dAdministration (Präsident des Verwaltungsrates): Jean Lemierre, Directeur Général (Generaldirektor): Jean-Laurent Bonnafé

buchen added a commit that referenced this issue Jan 6, 2025
buchen added a commit that referenced this issue Jan 6, 2025
@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

Degiro

--- 1.8.17
+++ 3.0.3
@@ -7,2 +7,2 @@
-Datum Uhrzeit Produkt ISIN Börse Anzahl Kurs Wert inLokalwährun Wert
-Wechselkur
+Datum Uhrzeit Produkt ISIN Börse Anzahl Kurs Wert in
+Lokalwährun Wert Wechselkur

@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

Onvista

Mon Jan 06 11:34:21 CET 2025
Onvista_20161214_Wertpapierertrag.pdf

--- 1.8.17
+++ 3.0.3
@@ -13,1 +13,2 @@
-Herr ADRESSZEILE5=01.05.2016 - 30.04.2017
+Herr ADRESSZEILE5=
+01.05.2016 - 30.04.2017
@@ -17,1 +18,2 @@
-42699 Solingen 247281000 14053767 / 14.12.2016 SEITENNUMMER=1STEUERERSTATTUNG=N
+42699 Solingen 247281000 14053767 / 14.12.2016 SEITENNUMMER=1
+STEUERERSTATTUNG=N

@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

comdirect (imported without fallback)

--- 1.8.17
+++ 3.0.3
@@ -6,2 +6,3 @@
-25449 Quickborn unverzüglich zu erheben.
-fon   : 04106-708 25 00                                                  Tele   
+unverzüglich zu erheben.
+25449 Quickborn                                        
+Telefon   :   04106-708 25 00           
@@ -16,2 +17,1 @@
-                             
-                             
+                                                          
@@ -26,2 +26,1 @@
-                                                                                                                                    
-*
+*                                                                                                                                     
@@ -68,4 +67,5 @@
-8746901  Max Mustermann Musterstadt                           
-                                                  
-            
-123 111 11 Musterweg 3 A                                       12345 Musterstadt                                   
+Max Mustermann  Musterstadt                          
+ 8746901  
+                                                              
+Musterweg 3 A                                       
+123 111 11 12345 Musterstadt                                   
@@ -73,2 +73,1 @@
-                              
-                                              ----                    
+                                              ----                                                  
@@ -77,2 +76,2 @@
- 2  5  4  5  1   Q  u  i c  k  b  o  r n                   
-0  1   0  1  1887
+2   5  4  5  1   Q  u  i c  k  b  o  r n                   
+0  1  0   1  1887
@@ -80,1 +79,1 @@
-T   e  le  f o  n  :              0  4  1  0  6   -  7  0 8 25 00
+T   e  le  f o  n  :             0   4  1  0  6   -  7  0 8 25 00
@@ -82,4 +81,4 @@
-Herrn                         D   a  t u  m   :                       1   6  . 0  9  .2016         
-M   ax  M u st er ma nn                D   e  p  o  t  n  u  m   m  er:         1  2  3  4  5  0 1 00  
- W   e  g    3    A                     
- 8 75  R  e  f e  r e  n  z  - N   u mmer:    2 I I A   X  W    7  N  E 6A000M8       2  7   M  u  s te r s ta d t                   
+H   e  r r n                           D   a  t u  m   :                       1   6  . 0  9  .2016
+M   ax  M  us  t   e   r  m  a n n   i m                 D  e  p  o  t  n  u  m   m  er:         1  2  3  4  5  0 1 00  
+W   e  g    7    A                     
+1  2  3  4  5   M   u  s  t e  r  s t  a d  t                   R   e  f e  r e  n  z  - N   u mmer:    2 I I A   X  W    7  N  E 6A000M8  
@@ -92,1 +91,1 @@
- Zu  Ih r e n L a s te n  v o r  S te u e r n:                                                                                                       E U R             -65,9 8   
+Z u  Ih r e n L a s te n  v o r  S te u e r n:                                                                                                       E U R             -65,9 8   
@@ -104,1 +103,1 @@
- K ap i ta le r tr a gs t e ue r                                                                        E  U   R                                  0 , 0 0                          
+K  ap i ta le r tr a gs t e ue r                                                                        E  U   R                                  0 , 0 0                          
@@ -106,2 +105,2 @@
- K irc h e n s te u e r                                                                              E_  _U   R_  _  _  _   _  _  _   _  _  _  _   _  _  _   _  _0 ,_ _0 0_                          
-a b g e f ü h rt e S t e u er n                                                                                                                    E_ U_ R_ _ _ _ _ _ _ _ _  __  _ __ _ 0_,_0_ 0_   
+K  irc h e n s te u e r                                                                              E_  U_   R_  _  _  _   _  _  _   _  _  _  _   _  _  _   _  0_ ,_ 0_ 0_                          
+a b g e f ü h rt e S t e u er n                                                                                                                    E_ U_ R_ _ _ _ _ _ _ _  _ _ _ _ _ _ _0_,_0_ 0_   
@@ -126,6 +125,4 @@
-in 2016 einbehaltene einbehaltener einbehaltene angerechneteKapitalertragsteuer Solidaritätszuschlag Kirchensteuer ausländische Quellensteuer
-vor Ermittlung
-               81,03                 4,41
-                0,00                11,17
-nach Ermittlung
-               81,03 4,41                 0,00                11,17                
+in 2016 einbehaltene einbehaltener einbehaltene angerechnete
+Kapitalertragsteuer Solidaritätszuschlag Kirchensteuer ausländische Quellensteuer
+vor Ermittlung                81,03                 4,41                 0,00                11,17
+nach Ermittlung                81,03                 4,41                 0,00                11,17
@@ -133,6 +130,4 @@
-in 2016 Gewinne / Verluste sonstige anrechenbare verfügbareraus Aktien Gewinne / Verluste ausländische Quellensteuer Freistellungsauftrag
-vor Ermittlung
-                0,00               468,77                 0,00                 0,00
-nach Ermittlung
-                0,00               468,77
-                0,00                 0,00
+Gewinne / Verluste sonstige anrechenbare verfügbarer
+in 2016 aus Aktien Gewinne / Verluste ausländische Quellensteuer Freistellungsauftrag
+vor Ermittlung                 0,00               468,77                 0,00                 0,00
+nach Ermittlung                 0,00               468,77                 0,00                 0,00

@buchen
Copy link
Member Author

buchen commented Jan 6, 2025

Sparkassen Broker (imported without fallback)

Mon Jan 06 11:42:04 CET 2025
2016-04-06_Wertpapierkauf ComStage-MSCI World TRN U.ETF Inhaber-Anteile I o.N..pdf

--- 1.8.17
+++ 3.0.3
@@ -1,29 +1,27 @@
-OBERLIGEIGDRUCK=J
-Wertpapierabrechnung EFAMXAVILE
-NA
-VRES
-L=1
-DEPOTNUR
-ASNADN=DN=N
-KKoaumf
-M
-missionsgeschäft DVEERPOSATUNNDTAE
-M
-RR
-E
-TB
-R
-EE
-=Z7E12/533NSCIHCLHUNEU
-5/N00G9=
-ADRESSZEILE1=Herrn SSEL=0000
-AADDRREESSSSZZEEIILLEE23=Max MustermannHMeircrhn
-=Weg 28
-ax Mustermann        D7e1p2ot/-5N3r.35/009 9Ab6r4ec8hn2u4ng8s2-N r. AADDRREESSSSZZEEIILLEE54==12345 MusterstadntA91u2w2e0g S 8usterstadt BAEDLREEGSNSZUEMILMEE6R==7361
-Depo S
-STEIETUEENRNEURMSTMAETRT=U1NG=N
-Maxtihnhaaebelr Mustermann
-WNVi-rB hesacbheeNr. 2 EStG i
-nni gfüunrg S gieem gäeß k§a 4u4fat Abs. 1 Nr. 2 und Abs. 2 Wiesbaden, 06.04.2016
-GCaottumngSsbteazegiceh-nMungSCI World TRN U.ETF Inhaber-Anteile I o.N. LISIUN0392494562
-NSoTmKina l2,571 KEuUrsR 38,6900
+BELEGDRUCK=J
+ORIGINAL=1
+Wertpapierabrechnung FAXVERSAND=N
+EMAILVERSAND=N
+DEPOTNUMMER=712/1234/009
+Kauf DEPOTUNTERBEZEICHNUNG=
+Kommissionsgeschäft VERSANDARTENSCHLUESSEL=0000
+ADRESSZEILE1=Herrn
+ADRESSZEILE2=Max Mustermann
+H        ADRESSZEILE3=Weg 42
+Depot-Nr. Abrechnungs-Nr.
+Meircr
+A hn
+uw ax Mustermann ADRESSZEILE4=12345 Musterstadt
+712/12345/009 123456789 ADRESSZEILE5=
+ADRESSZEILE6=
+9122e0g M 8usterstadt BELEGNUMMER=1234
+SEITENNUMMER=1
+Depotinhaber STEUERERSTATTUNG=N
+Max Mustermann
+Wir haben für Sie gekauft
+NV-Bescheinigung gemäß § 44a Abs. 1 Nr. 2 und Abs. 2 Wiesbaden, 06.04.2016
+Nr. 2 EStG
+Gattungsbezeichnung ISIN
+ComStage-MSCI World TRN U.ETF Inhaber-Anteile I o.N. LU0392494562
+Nominal Kurs
+STK 2,571 EUR 38,6900
@@ -31,4 +29,3 @@
-Handelszeit
-Handelsplatz GirosammelverwahX
-09e:t0r4a
-Verwahrart rung
+Handelszeit 09:04
+Handelsplatz Xetra
+Verwahrart Girosammelverwahrung
@@ -37,3 +34,3 @@
-Ddiiee  jHähörhliec hd ezsu v zoanh der KapitalverVertragsbedingungleennd zeu V eenrtwneahltmu
-wnaglstvuenrggsügteusnegll sucnhda fdti e(K GVeGen. sa
-)m fteksotgsetelengqtueont eA suisngda dbeemau fV- ebrzkwau. fRspürcoksnpaehkmt ebazbws.c dhelanges sowie
+Die Höhe des von der Kapitalverwaltungsgesellschaft (KVG) festgelegten Ausgabeauf- bzw. Rücknahmeabschlages sowie
+die jährlich zu zahlende Verwaltungsvergütung und die Gesamtkostenquote sind dem Verkaufsprospekt bzw. den
+Vertragsbedingungen zu entnehmen.
@@ -41,1 +38,2 @@
-SM iBt frroekunedr liAchGen & G rCüßoe.n KG
+Mit freundlichen Grüßen
+S Broker AG & Co. KG

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

I now checked out the new feature branch and used the new option "Diffs from PDFs":

Results:

AKF Bank (Account Statements):
93 PDF files checked, 9 with following difference:

Kontoauszug für Konto 10014137 20130402.pdf

--- 1.8.17
+++ 3.0.3
@@ -6,1 +6,2 @@
-Herrn Kunde Max Muster Tel. 018 03-22 42 52*
+Herrn Kunde Max Muster
+Tel. 018 03-22 42 52*
@@ -12,1 +13,1 @@
-Blatt 1 von 1 *9 Ct./Min. aus dem
+Blatt 1 von 1 *9 Ct./Min. aus dem
@@ -14,1 +15,2 @@
-Kontonummer 10014137 Telekom; max. 42 Ct./
+Kontonummer 10014137
+Telekom; max. 42 Ct./
@@ -16,1 +18,1 @@
-313,21 netzenin EUR
+in EUR 313,21 netzen

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

Bank11 (Account Statements):
3 PDF files (only yearly statements available) checked, 0 with differences.

0 of 3 documents show a difference.

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

ING Diba (Account Statements Extra Konto and VL Sparen):
9 PDF files checked, 0 with differences.

0 of 9 documents show a difference.

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

J&T Direktbank:
18 PDF files checked, 0 with differences.

0 of 18 documents show a difference..

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

Volksbank Raiffeisenbank Hochtaunus / MeineBank
21 PDF files checked, 0 with differences.

0 of 21 documents show a difference.

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

Merkurbank
5 PDF files checked, 0 with differences.

0 of 5 documents show a difference.

-> should be not critical.

@ZfT2
Copy link
Contributor

ZfT2 commented Jan 13, 2025

Renault Bank (Account Statements):
45 PDF files checked, 6 with following difference:

290900100_2020_Nr.006_Kontoauszug_vom_2020.11.20_20240117114344.pdf

--- 1.8.17
+++ 3.0.3
@@ -16,1 +16,1 @@
-                                                             _ _  __  __IH_R__ _KO_N__T_OS__T_AN__D _A_U_F_ _E__I_N_E_N _B__L_IC__K
+                                                              _ _ _ _ _I_H_R_ _K_O_N_T_O_S_T_A_N_D_ _A_U_F_ _E_I_N_E_N_ _B_L_I_C_K_
@@ -21,3 +21,3 @@
-_ _ _ _ _ _  __  __  __ _ _ _ _ _  __ _  __  __  __  _ __ _ _  __  _ __  _ _ _ __ _ _ _ _  __ _ _  __ _ _  __ _  _ _ __  __  __ _ _ _  _ __ _ _ _  __ _  _ _ __  __  __ _ _ _ _ _  __  __  _ _ __ _ _ _                                 FA0942339500SL         00  
-D_A__TU_M_ __ _ B__UC_H_U_N_G__SV__O_R_G_A_N_G_ _  __ _ _ _ _ _ _ _  __ _  __ _  _ _ __ _ _ _ _  __  _ __ _ _ _ _ _  _ __ _ _ _ _ _  _ _ __  _ __  __ _  _ _ _ _S_O__LL_ _ _ _ __  _ _ _ _ _ __H_AB__EN_ 
- __ _  __  _ _ __A_L_T_E_R_ _K_ON_T_O__S_T_AN__D __VO_M_ _3_0_.__1_0.__2_02_0_ _I_N__ _E_UR__ _  _ _ _ _ _ _ __  _ _ _ _ _ __ _ _ _  _ _ __ _ _  _ _ _ _ _ __ _ _ _ _ _ _  _ __  _ __1_0_.1_5_6_,__23__+
+ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _                                FA0942339500SL         00  
+D_A_T_U_M_ _ _ _B_U_C_H_U_N_G_S_V_O_R_G_A_N_G_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_O_L_L_ _ _ _ _ _ _ _ _ _ _ _H_A_B_E_N_ 
+ _ _ _ _ _ _ _ _A_L_T_E_R_ _K_O_N_T_O_S_T_A_N_D_ _V_O_M_ _3_0_._1_0_._2_0_2_0_ _I_N_ _E_U_R_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_0_._1_5_6_,_2_3_+_
@@ -53,1 +53,1 @@
-_ _  _ __ _ _  _E__i_n_z_a_hl_u__ng__ _00_6__ R_e_n__a_u_lt__B_a_n_k _ __ _ _ _  _ __  _ _ _ __ _  __  __ _  __ _ _  __ _ _ _ _  _ __ _  _ _ _ _ __  __  __  _ _ _ _ __ _ _ _  __ _ _ _  _ _ __  _ _ _ _
+ _ _ _ _ _ _ _ _E_i_n_z_a_h_l_u_n_g_ _0_0_6_ _R_e_n_a_u_l_t_B_a_n_k_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@@ -55,1 +55,1 @@
-_  _ __ _  __  _N_E_U_E__R_ K__O_NT__O_S_T_A_N_D_ _VO_M__ 2_0_._1__1_._2_0_20__ I__N_ _E_U_R _ __  _ _ _ __  __ _ _ _ _  _ __ _  __  _ __  _ _ _ __  _ _ __  __ _ _  _ _ _ _ __  _ __1_2._4_7__2,_2_3_+_
+ _ _ _ _ _ _ _ _N_E_U_E_R_ _K_O_N_T_O_S_T_A_N_D_ _V_O_M_ _2_0_._1_1_._2_0_2_0_ _I_N_ _E_U_R_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _1_2_._4_7_2_,_2_3_+_

-> should be not critical.

@buchen
Copy link
Member Author

buchen commented Jan 17, 2025

Thanks @ZfT2 for the detailed feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: In Progress
Development

No branches or pull requests

2 participants