portfolio-performance / portfolio

Track and evaluate the performance of your investment portfolio across stocks, cryptocurrencies, and other assets.
http://www.portfolio-performance.info
Eclipse Public License 1.0
2.87k stars 592 forks source link

PDF Extractor verbessern / Fehler melden: PDF Datei in Text konvertieren #200

Closed buchen closed 9 years ago

buchen commented 9 years ago

Wenn Fehler beim PDF Import gemeldet werden, dann brauchen wir vermutlich meist die eigenltiche PDF Datei um den Fehler zu verstehen und zu beheben. Als Benutzer möchte ich aber nicht das PDF mit meinen sensitiven Daten uns Entwicklern teilen. Auch brauchen wir Beispieldokumente um weitere Buchunen zu ermöglichen.

Warum also nicht Benutzer mit Hilfe der PDFBox eine Textdatei generiere? Die kann er frei editieren (Namen, Adresse, Preise, Menge, ...) und dann an uns senden. Wir können die dann den Fehler im Extractor korrigieren und die Beispieldatei als Testdatei einchecken.

@simpsus was meinst Du?

simpsus commented 9 years ago

Darüber habe ich mir auch schon Gedanken gemacht!

ein geschwärzter Screenshot hilft da nicht wirklich weiter, denn zb. Die ISIN ist essentiell und auch die Geldbeträge bzw. deren Formatierung.

Insofern ist Dein Vorschlag gut. Ich habe für die Testdateien ja auch welche von mir anonymisiert (nach genau dem gleichen Prinzip). Wirklich spaß hat das nicht gemacht, aber ich weiß sonst auch nicht. „Leider“ verwende ich zum erkennen des Typs ja auch den Dateinamen; den müsste man dann mit übertragen. Das kann man in einer nächsten Version auch ändern, denn ich könnte mir vorstellen, dass jemand die Dateien für seine Ablage umbenennt.

Was dann noch zu tun ist, ist dass ich die Fehlermeldungen beim Parsen ausführlicher mache, also wo er geparsed hat, was er parsen wollte und was er gefunden hat.

Das zusammen sollte uns dann in die Lage versetzen, dass Problem zu reproduzieren und dann auch zu beheben. Wir hätten dann auch gleich die nächsten Testdaten, die in der neuen Version zum Set dazukommen.

Im moment bin ich gerade dabei, die Umgebung auf meinem neuen Apple einzurichten (bin umgestiegen). Ich habe Luna am Laufen, wenn ich mvn oder git eingebe kommt eine ausgabe. Ich habe mich aber noch nicht getraut einen pull zu machen.

Hast Du noch einen Software Tipp für mich, der das Einrichten vereinfacht?

buchen commented 9 years ago

Du hast gesehen, dass ich die Funktion mal als "experimentell" gekennzeichnet habe. Das passt die Erwartungshaltung.

Ich habe vor im Laufe des Tages eine Version zu bauen. Aber es ist ja kein Problem kleine Versionen einfach hinterher zu schieben. :-)

Ich habe für die Testdateien ja auch welche von mir anonymisiert [...]. Wirklich spaß hat das nicht gemacht, aber ich weiß sonst auch nicht.

Das verstehe ich. Die Gefahr ist auch, dass man aus Versehen Zeilen löscht, oder Wörter und Abstände ändert. Das hätte ja auch eine Auswirkung. Aber mit Suchen&Ersetzen kommt man ja schon recht weit.

Hast Du noch einen Software Tipp für mich, der das Einrichten vereinfacht?

Cool. Für die Entwicklung nutze ich Eclipse Luna, Java 8 von Oracle, Source Tree (Achtung, die Version im App Store ist alt) und Sublime Text für Textdateien.

simpsus commented 9 years ago

Ich stelle mir das so vor: Bei den Errors ist nebendran ein Knopf der ein Fenster öffnet mit dem Text der Datei die diesen Error erzeugt hat drin. potentiell gibt es dann mehrere Knöpfe für eine Datei, aber ich finde das natürlich vom Workflow. Der Benutzer sieht einen Fehler und kann "auf" diesen klicken um ihn zu beheben.

Wie stehst Du zu diesem Vorschlag? Leider habe ich keine Ahnung wie ich es mache, dass in der Tabelle jeweils ein Knopf erscheint. Auch muss die Exception wissen von welchem File sie kam. Können wir da irgendwie das File Objekt an die Exception hängen oder eine eigene Exception bauen?

buchen commented 9 years ago

BTW, per Email habe ich Feedback zum Comdirect Import bekommen. Das ist schwer "per Email" zu fixen, aber ein Export als Text würde ich auch helfen.

Super ist der comdirect import (wenngleich er auch nicht immer alle Stückzahlen richtig erkennt - spielt comdirect da am Aufbau der pdf rum?).

Leider lässt sich keine Regelmäßigkeit erkennen, da ich einen Sparplan auf ETF's (in EUR) habe und es von Monat zu Monat unterschiedlich ist, ob es richtig erkannt wird oder nicht. Mal betrifft es den einen ETF, mal den anderen und mal gar keinen. Wenn es falsch erkannt wird, erscheint -1 als Wert, obwohl ich im ganzen Dokument keine -1 finde.

simpsus commented 9 years ago

-1 kommt wenn er die Zahl nicht finden kann, das muss dann nicht im Dokument stehen. Aber ich muss an dieser debug-export funktion arbeiten. Leider bin ich immer noch nicht weiter in meinem Problem, dass ich momentan die Entwicklungsversion nicht starten kann. auf ein maven build oder install schlägt mit Äonen von Fehlermeldungen fehl. Ich verstehe momentan nicht was sich da verändert hat...

buchen commented 9 years ago

Leider bin ich immer noch nicht weiter in meinem Problem, dass ich momentan die Entwicklungsversion nicht starten kann.

Du hast das neue Bundle "n.a.portfolio.bootstrap" bei Dir im Workspace jetzt drin, richtig? Du kompilierst mit Java 8? In meiner Environment habe ich export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/ definiert.