Eingangsordner verteilen - PDF dazu auslesen
Hallo zusammen,
ich habe leider nur rudimentäre Kenntnisse die Batch-Programmierung betreffend. Vielleicht hat jemand die Zeit und Möglichkeit mir zu helfen. Das Thema wurde schon des öfteren hier behandelt - aber irgendwie finde ich mich darin nicht wieder.
Ist-Zustand Zur Zeit:
Aus verschiedenen Multifunktionsgeräten werden die Lieferscheine in einem zentralen Ordner abgelegt. Die Art der Dateinamen variiert; ist jedoch immer mit Datum Uhrzeit oder laufender Nummer versehen. Es handelt immer um PDF´s, die ich noch automatisch in durchsuchbare PDF´s umwandeln kann.
Bisher verteile ich diese PDF´s dann händisch in Verzeichnisse für die einzelnen Lieferanten - das ist auf die Dauer doch sehr aufwändig
Meine Vorstellung:
Eine Datei aus e:\lieferscheine\ausgang in e:\lieferscheine\arbeit verschieben
Den Inhalt in eine Text-Datei mit PDFTOTEXT exportieren.
Nun die Text-Datei analysieren nach dem Motto:
wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
.
.
.
wenn nichts gefunden dann die PDF in den Ordner e:\lieferscheine\nacharbeiten verschieben
die TXT-Datei löschen und dann die nächsten Datei verarbeiten.
Das wars.
Gruß
Joe
ich habe leider nur rudimentäre Kenntnisse die Batch-Programmierung betreffend. Vielleicht hat jemand die Zeit und Möglichkeit mir zu helfen. Das Thema wurde schon des öfteren hier behandelt - aber irgendwie finde ich mich darin nicht wieder.
Ist-Zustand Zur Zeit:
Aus verschiedenen Multifunktionsgeräten werden die Lieferscheine in einem zentralen Ordner abgelegt. Die Art der Dateinamen variiert; ist jedoch immer mit Datum Uhrzeit oder laufender Nummer versehen. Es handelt immer um PDF´s, die ich noch automatisch in durchsuchbare PDF´s umwandeln kann.
Bisher verteile ich diese PDF´s dann händisch in Verzeichnisse für die einzelnen Lieferanten - das ist auf die Dauer doch sehr aufwändig
Meine Vorstellung:
Eine Datei aus e:\lieferscheine\ausgang in e:\lieferscheine\arbeit verschieben
Den Inhalt in eine Text-Datei mit PDFTOTEXT exportieren.
Nun die Text-Datei analysieren nach dem Motto:
wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
.
.
.
wenn nichts gefunden dann die PDF in den Ordner e:\lieferscheine\nacharbeiten verschieben
die TXT-Datei löschen und dann die nächsten Datei verarbeiten.
Das wars.
Gruß
Joe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 589183
Url: https://administrator.de/contentid/589183
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
8 Kommentare
Neuester Kommentar
Löschen durch durch Verschieben ersetzen
PowerShell Skript zum Auslesen von PDF und anschließendem Löschen des gesamten Ordners
Powerhellskript zum Auslesen von Kundennummern aus diversen PDFs, mit anschließender Umbenennung der Datei
Fertsch.
PowerShell Skript zum Auslesen von PDF und anschließendem Löschen des gesamten Ordners
Powerhellskript zum Auslesen von Kundennummern aus diversen PDFs, mit anschließender Umbenennung der Datei
Fertsch.
wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
By the way ist das nicht zu Ende gedacht wenn man es nicht genauer mit Regex definiert ausliest.wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
Stell dir einfach mal vor das du bei Amazon einen Telekom Artikel kaufst, da kommen beide Strings vor . Ohne genauere Definition wo die Strings stehen dürfen also ein Himmelfahrtskommando.
Zitat von @Joe2011:
Meine Vorstellung:
Eine Datei aus e:\lieferscheine\ausgang in e:\lieferscheine\arbeit verschieben
Den Inhalt in eine Text-Datei mit PDFTOTEXT exportieren.
Nun die Text-Datei analysieren nach dem Motto:
wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
.
.
.
wenn nichts gefunden dann die PDF in den Ordner e:\lieferscheine\nacharbeiten verschieben
die TXT-Datei löschen und dann die nächsten Datei verarbeiten.
Das wars.
Ja wenn das so einfach wäre...Meine Vorstellung:
Eine Datei aus e:\lieferscheine\ausgang in e:\lieferscheine\arbeit verschieben
Den Inhalt in eine Text-Datei mit PDFTOTEXT exportieren.
Nun die Text-Datei analysieren nach dem Motto:
wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
.
.
.
wenn nichts gefunden dann die PDF in den Ordner e:\lieferscheine\nacharbeiten verschieben
die TXT-Datei löschen und dann die nächsten Datei verarbeiten.
Das wars.
...dann würden entsprechende Lösungen am Markt nicht so dermaßen teuer sein!
Aber mal im Ernst. Prinzipiell gibt es 2 Lösungsansätze.
1. Formularbasierte Belegerkennung
Hierbei "lernt" man das jeweilige Belegformular des Lieferanten an (Erkennungszonen). Zusätzlich können dann bei Bedarf noch weitere Belegdaten ausgelesen werden (z.B. Belegnummer, Datum, usw.).
Wenn Du diesen Ansatz mal ausprobieren willst, kannst Du Dir z.B. mal die Testversion von ELO Office herunterladen. Dort ist mit dem ELO Connector eine formularbasierte Belegerkennung integriert.
PS: Mit etwas Scripting (vbs) kann man den ELO Connector (Formularerkennung) auch nutzen, ohne die komplette ELO Archivlösung nutzen zu müssen!
Nachteil der formularbasierten Belegerkennung ist klar. Ändert sich das Formular des Lieferanten, muss auch die Formularerkennung wieder angepasst werden. So etwas ist m.E. nur sinvoll nutzbar, wenn man nur wenige Lieferanten hat (aber hohes Belegaufkommen von diesen Lieferanten!).
Gescannte Belege sind bei so einer Lösung immer problematisch, da durch das Scannen die Postion der Inhalte auf dem Beleg um einige Millimeter abweichen können.
Ich habe mit dem ELO Connector schon eine Erkennung der Speditionsbestätigungen/Abliefernachweise gebaut.
2. Belegerkennung per Mustererkennung
Wenn es nur darum geht denn Lieferanten zu erkennen, bietet sich eine Ähnlichkeitsanalyse an. Hier wird insbesondere der Kopf- und Fußbereich eines Belegs auf Textähnlichkeit analysiert (Levenshtein-Distanz). Im Kopf- und Fußbereich stehen ja überwiegend statische Informationen (Kontonummer, Adresse, Telefonnummer usw.).
Vorteil dieser Lösung ist, dass man unabhängig vom Layout des Belegs bist. Es wird nur verglichen wie ähnlich sich die Textinhalte von Belegen sind.
Optimalerweise lässt sich so etwas dann noch per 'Eindeutigkeitssuche' ergänzen. So ist z.B. die EU Steuernummer absolut eindeutig. Findest Du also die EU Steuernummer Deines Lieferanten auf dem Beleg, ist es wohl 100%ig ein Beleg Deines Lieferanten.
Fazit:
Belegerkennung ist ein sehr komplexes Thema. Wirklich gute Lösungen kosten schnell mal einige Tausend Euro.
Zitat von @144705:
Stell dir einfach mal vor das du bei Amazon einen Telekom Artikel kaufst, da kommen beide Strings vor . Ohne genauere Definition wo die Strings stehen dürfen also ein Himmelfahrtskommando.
Richtig!wenn gefunden "Amazon" dann die PDF-Datei in den Ordner e:\lieferscheine\amazon verschieben
wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
By the way ist das nicht zu Ende gedacht wenn man es nicht genauer mit Regex definiert ausliest.wenn gefunden "Telekom" dann die PDF-Datei in den Ordner e:\lieferscheine\Mobilfunk\ verschieben
Stell dir einfach mal vor das du bei Amazon einen Telekom Artikel kaufst, da kommen beide Strings vor . Ohne genauere Definition wo die Strings stehen dürfen also ein Himmelfahrtskommando.
Von daher immer auf eindeutige Informationen setzen. Die EU Steuernummer ist z.B. sehr gut geeignet, da eindeutig. Oder auch Konto- und Telefonnummern eignen sich gut um einen Beleg eindeutig einem Kunden/Lieferanten zuzuordnen!
Zitat von @Joe2011:
Ich verstehe euch schon. Die Thematik begleitet mich in vielen anderen Dingen tagtäglich und kostet fast immer ab 10.000 aufwärts bei speziellen Anpassungen. Nun hatte ich gehofft, das diese einfache Fragestellung relativ einfach kostenlos (!) realisierbar ist. Für jemanden, der Powershell aus dem ff kennt ist es bestimmt auch einfach.
Fazit: ich werde nun wieder jemanden professionell mit einer Banalität beauftragen und dafür entsprechend löhnen.
Nun ja, es steht Dir ja frei es z.B. mit der Testversion ELO Office/ELO Connector selbst mal zu probieren Deine Anforderung umzusetzen. Dann wirst Du schnell feststellen, dass eine solche Aufgabe Alles Andere als trivial oder banal ist.Ich verstehe euch schon. Die Thematik begleitet mich in vielen anderen Dingen tagtäglich und kostet fast immer ab 10.000 aufwärts bei speziellen Anpassungen. Nun hatte ich gehofft, das diese einfache Fragestellung relativ einfach kostenlos (!) realisierbar ist. Für jemanden, der Powershell aus dem ff kennt ist es bestimmt auch einfach.
Fazit: ich werde nun wieder jemanden professionell mit einer Banalität beauftragen und dafür entsprechend löhnen.
https://elooffice.elo.com/blog/wp-content/uploads/2014/03/Connector-1.pd ...
Kostenlos ist schon mal gar nichts! Zeit kostet es immer. Entweder Deine eigene Zeit, der halt die Zeit eines Anderen.
Es gibt auch die Möglichkeit die Dokumentenerkennung in die Cloud auszulagern.
https://aws.amazon.com/de/textract/
Und Du bist nicht der Erste, der meint so etwas wäre 'einfach' umzusetzen:
https://www.java-forum.org/thema/ocr-rechnungserkennung-wie-geht-das-gen ...