Convert ING PDFs into CSV:
https://github.com/mkoderer/ing-pdf-to-csv?tab=readme-ov-file
`ing-pdf-to-csv.py`:
```python
from subprocess import getstatusoutput
import re
import sys
# CVS values
print ("Buchung;Valuta;Auftraggeber/Empfänger;Buchungstext;Verwendungszweck;Saldo;Währung;Betrag;Währung")
for fn in sys.argv[1:]:
# we use iconv to ignore the encoding issues
# TODO: better to use subprocess for this
ret, output = getstatusoutput("pdftotext %s -layout -nopgbrk -| iconv --to-code utf-8//IGNORE" % fn)
if ret != 0:
print ("Error while reading file %s:" % fn)
raise Exception(output)
first_line_date_value = r'.*(\d\d\.\d\d\.\d\d\d\d) +(.*) +(.*,\d\d)'
sec_line_date = r'.*(\d\d\.\d\d\.\d\d\d\d) +(.*)'
first_line = None
for line in output.split('\n'):
m = re.match(first_line_date_value, line)
if m and first_line is None:
first_line = m
else:
m = re.match(sec_line_date, line)
if m and first_line is not None:
date = first_line.group(1)
valuta = m.group(1)
type_emp = first_line.group(2).rstrip()
type_emp = type_emp.split(" ", 1)
trans_type = type_emp[0]
try:
empf = type_emp[1]
except:
empf = trans_type
text = m.group(2)
value = first_line.group(3)
csv_line = "%s;%s;%s;%s;%s;%s;%s;%s;%s" % (date, valuta, empf, trans_type, text, value ,"EUR", value, "EUR")
print (csv_line)
first_line = None
```
```bash
$ pip3 install pdftotext
$ python3 ing-pdf-to-csv.py *.pdf
```