public abstract class AbstractPdfExtractor
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.List<PdfEintrag> |
buchungsDaten
List of effective dates for entries
|
protected org.apache.pdfbox.pdmodel.PDDocument |
document
Das PDF Document
|
protected java.lang.String |
kartenNummer
Die Kreditkartennummer
|
protected static int |
MAX_ONE_WORD
Threshold PDFBox value for keeping one word in one line.
|
protected static int |
MAX_TWO_WORD
Threshold PDFBox value for keeping 2 words in one line.
|
protected java.text.NumberFormat |
numFormat
Dezimalformatierer des Saldos
|
protected java.lang.String |
rechungsDatum
Date of the bank statement
|
protected static java.lang.String |
WORT_DELIMITER
The delimiter in the return string from the PDFBox extraction separating the positions and description values.
|
protected static int |
WORT_INFO_LENGTH
Ein extrahiertes Wort muss genau 3 Felder haben: PosX, PosY und das eigentliche Wort.
|
Constructor and Description |
---|
AbstractPdfExtractor(java.io.InputStream inputStream,
java.lang.String kartenNummer)
Abstracter Konstruktor mit Angabe des PDF inputStreams und der Kartennummer.
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
addYear(java.util.List<PdfEintrag> entries)
Adds the year to each entry as this is might be not enclosed in the PDF bank statement entries.
|
void |
close()
Schließt das PDF Dokument
|
protected abstract AbstractBankPDFPage |
getBankPdfPageEven()
Liefert die PDFPage der geraden Seiten des Auszugs.
|
protected abstract AbstractBankPDFPage |
getBankPdfPageFirst()
Liefert die PDFPage der ersten Seite des Auszugs.
|
protected abstract AbstractBankPDFPage |
getBankPdfPageOdd()
Liefert die PDFPage der ungeraden Seiten des Auszugs.
|
protected java.util.List<PdfEintrag> |
getBetraege(AbstractBankPDFPage textAreas)
Liefert die Beträge der Umsä auf dem PDF
|
java.lang.String |
getBic(AbstractBankPDFPage textAreas)
Liefert die BIC des PDF-Auszuges
|
java.util.List<PdfBuchung> |
getExtract()
Extracts all entries from the PDF bank statement and returns them in as a PdfBuchung list.
|
protected java.util.List<PdfEintrag> |
getFremdwaehrungen(AbstractBankPDFPage textAreas)
Liefert die Fremdwährungen.
|
protected java.util.List<PdfEintrag> |
getFremdwaehrungsBetraege(AbstractBankPDFPage textAreas)
Liefert den Fremdwährungbetrag.
|
java.lang.String |
getIban(AbstractBankPDFPage textAreas)
Liefert die IBAN des PDF-Auszuges
|
protected java.lang.String |
getKarteninhaber(AbstractBankPDFPage textAreas)
Liefert den Karteninhaber des PDF-Auszuges
|
protected java.lang.String |
getKartenkonto(AbstractBankPDFPage textAreas)
Liefert das Kartenkonto des PDF-Auszuges
|
protected abstract int |
getLastPage()
Liefert die letzte Seite mit Umsätzen
|
protected abstract java.text.NumberFormat |
getNumberFormat()
Liefert das NumberFormat zum Parsen des Saldos.
|
protected java.math.BigDecimal |
getSaldo(AbstractBankPDFPage textAreas)
Liefert das Saldo des Auszuges
|
protected abstract AbstractTransactionCreator |
getTransactionCreator()
Liefert den konkreten TransactionCreator der Bank.
|
protected abstract void |
removeAnnotations(java.util.List<PdfEintrag> eintragsListe)
Hier kann eine konkrete Implementierung noch Änderungen an der anderen Listen vornehmen.
|
protected abstract void |
removeAnnotationsBookingDates(java.util.List<PdfEintrag> buchungenDatum)
Hier kann eine konkrete Implementierung noch Änderungen an der Liste der Buchungsdaten vornehmen.
|
protected abstract void |
reOrder(java.util.List<PdfBuchung> buchungen)
Here a concrete implementation can add an order mechanism to the transaction list before the saldo is calculated.
|
protected static final int MAX_ONE_WORD
protected static final int MAX_TWO_WORD
protected static final java.lang.String WORT_DELIMITER
protected static final int WORT_INFO_LENGTH
protected java.lang.String rechungsDatum
protected java.util.List<PdfEintrag> buchungsDaten
protected final java.text.NumberFormat numFormat
protected org.apache.pdfbox.pdmodel.PDDocument document
protected final java.lang.String kartenNummer
public AbstractPdfExtractor(java.io.InputStream inputStream, java.lang.String kartenNummer)
inputStream
- das PDF als inputStream.kartenNummer
- die Kartennummer gegen die das PDF geprüft wird.public void close()
public java.lang.String getBic(AbstractBankPDFPage textAreas)
textAreas
- die Textarea in der die BIC-Position definiert ist.public java.util.List<PdfBuchung> getExtract() throws InvalidCardNumber
InvalidCardNumber
public java.lang.String getIban(AbstractBankPDFPage textAreas)
textAreas
- die Textarea in der die IBAN-Position definiert ist.protected abstract void addYear(java.util.List<PdfEintrag> entries)
entries
- protected abstract AbstractBankPDFPage getBankPdfPageEven() throws java.io.IOException
java.io.IOException
protected abstract AbstractBankPDFPage getBankPdfPageFirst() throws java.io.IOException
java.io.IOException
protected abstract AbstractBankPDFPage getBankPdfPageOdd() throws java.io.IOException
java.io.IOException
protected java.util.List<PdfEintrag> getBetraege(AbstractBankPDFPage textAreas)
textAreas
- die TextAre ader Beträge.protected java.util.List<PdfEintrag> getFremdwaehrungen(AbstractBankPDFPage textAreas)
textAreas
- Der Textbereich mit den Fremdwährungen.protected java.util.List<PdfEintrag> getFremdwaehrungsBetraege(AbstractBankPDFPage textAreas)
textAreas
- Der Textbereich mit den Fremdwährungsbeträgen.protected java.lang.String getKarteninhaber(AbstractBankPDFPage textAreas)
textAreas
- die TextArea mit dem Karteninhaberprotected java.lang.String getKartenkonto(AbstractBankPDFPage textAreas)
textAreas
- die TextArea mit der Kartenkontoprotected abstract int getLastPage() throws java.io.IOException
java.io.IOException
protected abstract java.text.NumberFormat getNumberFormat()
protected java.math.BigDecimal getSaldo(AbstractBankPDFPage textAreas)
textAreas
- die textArea mit dem Saldoprotected abstract AbstractTransactionCreator getTransactionCreator()
protected abstract void removeAnnotations(java.util.List<PdfEintrag> eintragsListe)
eintragsListe
- protected abstract void removeAnnotationsBookingDates(java.util.List<PdfEintrag> buchungenDatum)
buchungenDatum
- protected abstract void reOrder(java.util.List<PdfBuchung> buchungen)
buchungen
-