Textdatei auslesen, zusammenfügen und dazugehörige PDF zusammenfügen
Hallo zusammen, vielleicht kann mir hier jemand helfen.
Für jeden Tipp wäre ich dankbar, leider bin ich ein absoluter Anfänger daher habt bitte etwas Geduld mit mir.
Ich habe eine unterschiedliche Anzahl von Dateien(Rechnungen), bestehend jeweils aus einer PDF(mehrseitig) und einer gleichnamigen Textdatei.
Ich muss aus der Textdatei die Kundennummer auslesen(feste Position) und dann alle Textdateien und PDF Dateien
mit der gleichen Kundennummer zusammenfügen. So das ich pro Kundennummer eine Textdatei und eine PDF habe, Dateiname ist jeweils
die Kundennummer(feste Position in der Texdatei).
In einem 2 Step muss ich dann die Belege zusammenlegen deren Rechnungsbetrag 1000€ übersteigt und die ins Ausland oder Inland(
im Kopftext steht Ausland oder Inland) gehen. Die Dateinamen müssen hier Auslandsrechnung und Inlandsrechnung sein.
Dieser Lauf muss automatisiert ablaufen und wird dann täglich wiederholt.
Beispiel:
Verzeichnis mit 200 Text Dateien und 200 PDF's mit insgesamt 30 unterschiedlichen Kundennummern und 20 Rechnungen über 1000€ und dem
Aufdruck Ausland und 10 Rechnungen über 1000€ mit dem Aufdruck Inland.
Das Ergebniss müssten dann 30 PDF's und 30 gleichnamige Textdateien(Name = Kundennummer), 1 PDF inkl. Textdateien
mit dem Namen Auslandsrechnung sein und 1 PDF inkl. Textdatei mit dem Dateinamen Inlandsrechnung.
Ich hoffe Ihr könnt mir hier helfen oder mir ein paar Tipps geben, vorab vielen DANK!
Für jeden Tipp wäre ich dankbar, leider bin ich ein absoluter Anfänger daher habt bitte etwas Geduld mit mir.
Ich habe eine unterschiedliche Anzahl von Dateien(Rechnungen), bestehend jeweils aus einer PDF(mehrseitig) und einer gleichnamigen Textdatei.
Ich muss aus der Textdatei die Kundennummer auslesen(feste Position) und dann alle Textdateien und PDF Dateien
mit der gleichen Kundennummer zusammenfügen. So das ich pro Kundennummer eine Textdatei und eine PDF habe, Dateiname ist jeweils
die Kundennummer(feste Position in der Texdatei).
In einem 2 Step muss ich dann die Belege zusammenlegen deren Rechnungsbetrag 1000€ übersteigt und die ins Ausland oder Inland(
im Kopftext steht Ausland oder Inland) gehen. Die Dateinamen müssen hier Auslandsrechnung und Inlandsrechnung sein.
Dieser Lauf muss automatisiert ablaufen und wird dann täglich wiederholt.
Beispiel:
Verzeichnis mit 200 Text Dateien und 200 PDF's mit insgesamt 30 unterschiedlichen Kundennummern und 20 Rechnungen über 1000€ und dem
Aufdruck Ausland und 10 Rechnungen über 1000€ mit dem Aufdruck Inland.
Das Ergebniss müssten dann 30 PDF's und 30 gleichnamige Textdateien(Name = Kundennummer), 1 PDF inkl. Textdateien
mit dem Namen Auslandsrechnung sein und 1 PDF inkl. Textdatei mit dem Dateinamen Inlandsrechnung.
Ich hoffe Ihr könnt mir hier helfen oder mir ein paar Tipps geben, vorab vielen DANK!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164032
Url: https://administrator.de/forum/textdatei-auslesen-zusammenfuegen-und-dazugehoerige-pdf-zusammenfuegen-164032.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
12 Kommentare
Neuester Kommentar
Moin motec,
das "hilfreich" in bastlas Kommentar könnte auch als "unabdingbar" übersetzt werden.
Unabhängig davon, dass es sich sicherlich irgendwie zum Fliegen bringen lässt...
Lässt sich die Automatisierung nicht schon an einer früheren Stelle im Prozess sinnvoller integrieren?
Diese "Textdateien" sind doch vermutlich auch nur Abfallprodukte aus der vorangegangenen Verarbeitung (vermutlich aus irgendeiner Datenbank-Appz), oder?
Können wir nicht dort schon ansetzen?
Grüße
Biber
das "hilfreich" in bastlas Kommentar könnte auch als "unabdingbar" übersetzt werden.
Unabhängig davon, dass es sich sicherlich irgendwie zum Fliegen bringen lässt...
Lässt sich die Automatisierung nicht schon an einer früheren Stelle im Prozess sinnvoller integrieren?
Diese "Textdateien" sind doch vermutlich auch nur Abfallprodukte aus der vorangegangenen Verarbeitung (vermutlich aus irgendeiner Datenbank-Appz), oder?
Können wir nicht dort schon ansetzen?
Grüße
Biber

moin,
ich geb dir etwas Nachhilfe...
for /f %a in ('dir *.pdf^|find "Datei(en)"') do echo %a
for /f %b in ('dir *.txt^|find "Datei(en)"') do echo %b
mit z.B more oder auch einer Schleife kannst du gezielt eine Zeile ausgeben
mit find oder findstr Inhalte durchsuchen z.B um deine Kundennummer oder Rechnungsbetrag zu finden,
Mach was draus - wir helfen dir.
Gruß
edit - jetzt wart ihr beiden aber schnellla...
ich geb dir etwas Nachhilfe...
- pdf2text von Google oder pdftk helfen dir die pdfs auszulesen
- For schleife hilft dir u.a herauszufinden, ob vor der ganzen Aktion 22 .txt Dateien in dem Ordner sind und auch 22 pdf Dateien - denn stimmt das nicht überein - würde ich den ganzen weiteren Salmon gleich abbrechen.
for /f %a in ('dir *.pdf^|find "Datei(en)"') do echo %a
for /f %b in ('dir *.txt^|find "Datei(en)"') do echo %b
mit z.B more oder auch einer Schleife kannst du gezielt eine Zeile ausgeben
mit find oder findstr Inhalte durchsuchen z.B um deine Kundennummer oder Rechnungsbetrag zu finden,
Mach was draus - wir helfen dir.
Gruß
edit - jetzt wart ihr beiden aber schnellla...

moin,
wie weit bist du denn mit den von mir genannten Ansätzen gekommen?
Die Tipps hab ich dir ja gegeben und Geduld hab ich mehr, als Lust darauf - das das wieder eine B Lösung ohne eigeninitiative des Fragestellers wird.
gruß
wie weit bist du denn mit den von mir genannten Ansätzen gekommen?
Für jeden Tipp wäre ich dankbar, leider bin ich ein absoluter Anfänger daher habt bitte etwas Geduld mit mir.
Die Tipps hab ich dir ja gegeben und Geduld hab ich mehr, als Lust darauf - das das wieder eine B Lösung ohne eigeninitiative des Fragestellers wird.
gruß

moin,
Fahrlässigerweise hat Du Bibers Counter erwischt....
(wobei das mal eben nicht doch schnell zusammenbratzeln deutlich mehr von uns verlangt, als dich Schritt für Schritt dahin zuleiten.) Nur bringen wird es dir nix. (gibt da grade ein tagesaktuelles Paradebeispiel)
Aber ehrlich:
Gruß
Fahrlässigerweise hat Du Bibers Counter erwischt....
- die beiden einzeiler kannst du ja problemlos laufen lassen und sehen, ob bei einem Ordner - der x pdfs und x txt Dateien hat zufälligerweise auch x ausgegeben wird.
1200€ für den ganzen Aufwand...
und ich hoffe, wir machen es nicht umsonst - sondern maximal gratis(wobei das mal eben nicht doch schnell zusammenbratzeln deutlich mehr von uns verlangt, als dich Schritt für Schritt dahin zuleiten.) Nur bringen wird es dir nix. (gibt da grade ein tagesaktuelles Paradebeispiel)
Aber ehrlich:
- ist es deine Kohle - die 1punkt2k Mücken?
- gehts auf deine Kappe, wenn du das mit unserer oder ohne unsere Hilfe versemmelst?
- Firmenrechnungen wären ganz ehrlich für mich der letzte Grund mich erstmalig mit Batch zu beschäftigen.
kann leider nur Abends dran, ist eine rein private Herausforderung
Naja und wir machen es ja auch auch irgendwann aus privatvergnügen....Gruß
@t-mo
Wenn ich das inzwischen richtig verstanden habe
So - jetzt wieder Du ... 
Grüße
bastla
Wenn ich das inzwischen richtig verstanden habe
- hast Du recht, dass vorweg die Vollständigkeit der Dateien geprüft werden sollte - dann aber gleich genau, indem jeweils in einer Schleife über alle ".txt"-Dateien die zugehörige ".pdf" gecheckt wird und analog per zweiter Schleife das ganze umgekehrt
- müssen die PDF-Dateien nicht ausgelesen, sondern nur zusammengefügt werden (per "pdftk" - ist etwas knifflig, weil, als ich's das letzte Mal verwendet habe, ich keine Möglichkeit gefunden habe, an bestehende Dateien anzufügen, sodass immer nur aus zwei oder mehr Dateien eine neue erzeugt werden konnte; wenn zuerst alle Dateinamen gesucht und in einer Variablen zusammengefasst werden, geht es um das Mengengerüst: wieviele Dateien können gleichzeitig als Parameter übergeben werden? Alternativ kann mit 2 abwechselnden Dateien auch schrittweise zusammengesetzt werden - diesen Ansatz habe ich in einem anderen Thread schon mal realisiert)
- müssen keine einzelnen Zeilen (anhand ihrer Zeilennummer) "gezielt ausgegeben", sondern nur die relevanten Daten herausgefiltert werden - ich spendiere motec dazu mal eine Zeile als Grundlage (hoffentlich habe ich mich nicht verzählt
):
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#" "100023.txt"') do echo %%a_%%b_%%c
Grüße
bastla

salü,

kleiner Tipp % zählen - bätch will doppelte prozente, cmd einfache
Und wenn er das Tut für die Schleifchen gefunden hat, hat er bestimmt auch eine Idee, wie man die 100023.txt als Variablen Punkt nutzen kann.
Retour
Zitat von @bastla:
@t-mo
Wenn ich das inzwischen richtig verstanden habe
per zweiter Schleife das ganze umgekehrt
yupp - das ist ja das, was ich "eigentlich" erreichen will - "wir" werfen Schritt für Schritt einzelne Schritte in den Raum - diskutieren drüber und am Ende gewinnt nicht nur der TO sondern das / der beste Batch. @t-mo
Wenn ich das inzwischen richtig verstanden habe
- hast Du recht, dass vorweg die Vollständigkeit der Dateien geprüft werden sollte - dann aber gleich genau, indem
per zweiter Schleife das ganze umgekehrt
* müssen die PDF-Dateien nicht ausgelesen, sondern nur zusammengefügt werden
- yupp - denn offenbar stehen die Infos ja in der txt Datei...
(per "pdftk" - ist etwas knifflig, weil, als ich's das letzte Mal verwendet habe, ich keine Möglichkeit gefunden habe, an bestehende Dateien
anzufügen, sodass immer nur aus zwei oder mehr Dateien eine neue erzeugt werden konnte.
anzufügen, sodass immer nur aus zwei oder mehr Dateien eine neue erzeugt werden konnte.
- yupp kenn ich auch nur so - macht aber nix
wenn zuerst alle Dateinamen gesucht und in einer Variablen zusammengefasst werden, geht es um das Mengengerüst: wieviele Dateien können gleichzeitig als
Parameter übergeben werden?
Parameter übergeben werden?
- meine Idee - wäre es (so nutze ich das PDFToolkit) ich werfe alles (richtig benannt) in einen Ordner und dann mit pdftk xyz*.pdf cat output blabub.pdf
Alternativ kann mit 2 abwechselnden Dateien auch schrittweise zusammengesetzt werden - diesen
Ansatz habe ich in einem anderen Thread schon mal realisiert)
):
Ansatz habe ich in einem anderen Thread schon mal realisiert)
- müssen keine einzelnen Zeilen (anhand ihrer Zeilennummer) "gezielt ausgegeben", sondern nur die relevanten Daten
for /f "tokens=11,23,25 delims=#" %%a in ('findstr "#Rechnung#"> "100023.txt"') do echo %%a_%%b_%%c
So - jetzt wieder Du ... 
Nein - den Ball werfe ich zurück an Motec - was ist der Unterschied zwischen deiner Zeile und einer von "meinen"kleiner Tipp % zählen - bätch will doppelte prozente, cmd einfache
Und wenn er das Tut für die Schleifchen gefunden hat, hat er bestimmt auch eine Idee, wie man die 100023.txt als Variablen Punkt nutzen kann.
Grüße
bastla
bastla
Retour