pdf - Dateien aus Netzwerkordner in bestimmter Reihenfolge ausdrucken
Hallo zusammen
Wir bekommen von einem Kunden dreimal täglich Lieferscheine und dazugehörende Listen und Barcodes in einen Netzwerkordner übermittelt. Dabei handelt es sich um 100 bis 200 Dateien. Aktuell werden alle Dateien unter Windows 10, 8 und 7 manuell (nacheinander) in der richtigen Reihenfolge ausgedruckt. Dies ist extrem Zeitaufwändig, da sich die Dateien nicht einfach aufsteigend oder absteigend sortieren lassen. Die Formatierung des Dateinamens ist immer gleich und sieht wie folgt aus:
1. Datei: OWRLS_111356789.pdf
2. Datei: OWRELS_111356789.pdf
3. Datei: OWRETI_111356789.pdf
Bei der ersten Datei handelt es sich um den Lieferschein. Die zweite und die dritte die sind jeweils zugehörig zur ersten Datei. Dies heisst aber nicht dass immer die zweite und dritte Datei vorhanden ist. Die Zahl nach dem Tiefstrich ist jeweils die selbe für die erste, zweite und die dritte Datei. Ausserdem ist diese Zahl fortlaufend.
Nun um die ganze Sache einfach sortiert ausdrucken zu können, habe ich mir folgendes überlegt: man könnte die Buchstaben und den Tiefstrich durch eine Zahl oder einen Buchstaben am Ende der fortlaufenden Zahl ersetzen. So könnte man die ganze Sache einfacher sortieren. Was man sortiert hat, sollte man eigentlich auch in der richtigen Reihenfolge ausdrucken können. Auch wenn Windows das von Haus aus nicht beherrscht.
Die Dateinamen müssten also wie folgt umformatiert werden können:
1. Datei: OWRLS_111356789.pdf nach 111356789A.pdf
2. Datei: OWRELS_111356789.pdf nach 111356789B.pdf
3. Datei: OWRETI_111356789.pdf nach 111356789C.pdf
Nun könnte man diese Dateinamen Sortiert auf dem Standarddrucker ausdrucken.
Leider bin ich nich so versiert in Sachen Script und Batch-Dateien. Könnte man für diesen Vorgang vom Umformatieren und in der richtigen Reihenfolge ausdrucken in einer Batch-Datei oder in einem Script automatisieren? Suchen und Ersetzen von Teilen des Dateinamen ist wahrscheinlich nicht das Problem. In diesem Fall muss ja gesucht, gelöscht und angehängt werden. Und dies in Abhängigkeit des Dateinamenanfangs. Funktionieren sollte es ab Windows 8.
Hat irgend wer von euch eine Idee, wie ich das Problem lösen könnte? Besten Dank schon mal für eure Hilfe.
Wir bekommen von einem Kunden dreimal täglich Lieferscheine und dazugehörende Listen und Barcodes in einen Netzwerkordner übermittelt. Dabei handelt es sich um 100 bis 200 Dateien. Aktuell werden alle Dateien unter Windows 10, 8 und 7 manuell (nacheinander) in der richtigen Reihenfolge ausgedruckt. Dies ist extrem Zeitaufwändig, da sich die Dateien nicht einfach aufsteigend oder absteigend sortieren lassen. Die Formatierung des Dateinamens ist immer gleich und sieht wie folgt aus:
1. Datei: OWRLS_111356789.pdf
2. Datei: OWRELS_111356789.pdf
3. Datei: OWRETI_111356789.pdf
Bei der ersten Datei handelt es sich um den Lieferschein. Die zweite und die dritte die sind jeweils zugehörig zur ersten Datei. Dies heisst aber nicht dass immer die zweite und dritte Datei vorhanden ist. Die Zahl nach dem Tiefstrich ist jeweils die selbe für die erste, zweite und die dritte Datei. Ausserdem ist diese Zahl fortlaufend.
Nun um die ganze Sache einfach sortiert ausdrucken zu können, habe ich mir folgendes überlegt: man könnte die Buchstaben und den Tiefstrich durch eine Zahl oder einen Buchstaben am Ende der fortlaufenden Zahl ersetzen. So könnte man die ganze Sache einfacher sortieren. Was man sortiert hat, sollte man eigentlich auch in der richtigen Reihenfolge ausdrucken können. Auch wenn Windows das von Haus aus nicht beherrscht.
Die Dateinamen müssten also wie folgt umformatiert werden können:
1. Datei: OWRLS_111356789.pdf nach 111356789A.pdf
2. Datei: OWRELS_111356789.pdf nach 111356789B.pdf
3. Datei: OWRETI_111356789.pdf nach 111356789C.pdf
Nun könnte man diese Dateinamen Sortiert auf dem Standarddrucker ausdrucken.
Leider bin ich nich so versiert in Sachen Script und Batch-Dateien. Könnte man für diesen Vorgang vom Umformatieren und in der richtigen Reihenfolge ausdrucken in einer Batch-Datei oder in einem Script automatisieren? Suchen und Ersetzen von Teilen des Dateinamen ist wahrscheinlich nicht das Problem. In diesem Fall muss ja gesucht, gelöscht und angehängt werden. Und dies in Abhängigkeit des Dateinamenanfangs. Funktionieren sollte es ab Windows 8.
Hat irgend wer von euch eine Idee, wie ich das Problem lösen könnte? Besten Dank schon mal für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 504703
Url: https://administrator.de/forum/pdf-dateien-aus-netzwerkordner-in-bestimmter-reihenfolge-ausdrucken-504703.html
Ausgedruckt am: 14.05.2025 um 16:05 Uhr
17 Kommentare
Neuester Kommentar
Schönen Abend,
Ihr bekommt von euren Kunden Lieferscheine? Warum lässt du nicht in einem gewissen Turnus einen Job drüber laufen Suche alle Dateien mit Nummer xx und druck erst owrls dann owrels und dann owreti aus?
Dazu muss man in batch nicht sonderlich versiert sein. Im Zweifel Google und paar Minuten
VG
Ihr bekommt von euren Kunden Lieferscheine? Warum lässt du nicht in einem gewissen Turnus einen Job drüber laufen Suche alle Dateien mit Nummer xx und druck erst owrls dann owrels und dann owreti aus?
Dazu muss man in batch nicht sonderlich versiert sein. Im Zweifel Google und paar Minuten
VG
Nach folgendem Schema sollte es funktionieren:
Mit Powershell kein Problem
PS:
Wieso ihr von Kunden Lieferscheine bekommt ist mir allerdings auch nicht ganz klar.
Manuel
- alle Dateien auflisten die mit OWRLS beginnen
- im Ergebnis bei allen Einträgen das OWRLS entfernen
- das Ergebnis aufsteigend sortieren
- für jeden Wert im Ergebnis prüfen, ob eine entsprechende OWRLS-/OWRELS-/OWRETI-Datei vorhanden ist und wenn ja ausdrucken
Mit Powershell kein Problem
PS:
Wieso ihr von Kunden Lieferscheine bekommt ist mir allerdings auch nicht ganz klar.
Manuel
Hi
Hat irgend wer von euch eine Idee, wie ich das Problem lösen könnte? Besten Dank schon mal für eure Hilfe.
Alle Dateinamen nehmen, in ein Array laden, den Kram bis inkl. dem unterstrich wegwerfen, das Ergebnis gruppieren und dann in einer Schleife durch die nun jeweils 1x vorkommenden Zahlen laufen. In der Schleife einfach 3 DruckJobs hintereinander starten mit dem jeweiligen Prefix + Zahl
Moin,
Zur LS Anomalie:
Es mag Konstrukt geben, da ist das Korrekt:
Wir sind teilweise als Lohnfertiger unterwegs. Unsere Kunden = Lieferanten wollen auch Lieferscheine der angelieferten Mengen per Mail erhalten, da nicht unser Kunde das Zeug zu uns schickt, sondern unser Kunde das Material direkt von seinem Lieferanten zu uns kommen lässt. Damit er (=unser Kunde) weiß, was angeliefert wurde (und er an seinen Lieferanten zahlen muss), senden wir unserem Kunden/ Lieferanten die Lieferscheine zu...
Etwas kurios, aber so ist das Manchmal...
Zur Umsetzung ist ja schon alles gesagt:
Den „Stamm“ aus der ersten Datei ermitteln, dann die dazugehörigen Dateien dazu suchen und danach: ab zum Drucker.
Gruß
em-pie
Zur LS Anomalie:
Es mag Konstrukt geben, da ist das Korrekt:
Wir sind teilweise als Lohnfertiger unterwegs. Unsere Kunden = Lieferanten wollen auch Lieferscheine der angelieferten Mengen per Mail erhalten, da nicht unser Kunde das Zeug zu uns schickt, sondern unser Kunde das Material direkt von seinem Lieferanten zu uns kommen lässt. Damit er (=unser Kunde) weiß, was angeliefert wurde (und er an seinen Lieferanten zahlen muss), senden wir unserem Kunden/ Lieferanten die Lieferscheine zu...
Etwas kurios, aber so ist das Manchmal...
Zur Umsetzung ist ja schon alles gesagt:
Den „Stamm“ aus der ersten Datei ermitteln, dann die dazugehörigen Dateien dazu suchen und danach: ab zum Drucker.
Gruß
em-pie
Fnde ich gut. Integer mittels regex o.ä. "freistellen" und unique sorteiren.
In die Schleife noch Existenzprüfung und gut ist.
Womit soll aber PDF gedruckt werden? Adobe macht ja GUI auf. Würde da FoxitReader nehmen oder den abgekündigten PDF-XChange Viewer.
Letzterer ist ein Leichgewicht und läd recht schnell.Grad bei 200 und mehr Dateien würd das Sinn machen. Nutze selber den PDF-XChange Viewer unter Windows 10 für PDF Preview und Druck im Hintergrund.
Ansonsten wäre deine Lösung auch mein Favorit.
mfg Crusher
In die Schleife noch Existenzprüfung und gut ist.
Womit soll aber PDF gedruckt werden? Adobe macht ja GUI auf. Würde da FoxitReader nehmen oder den abgekündigten PDF-XChange Viewer.
Letzterer ist ein Leichgewicht und läd recht schnell.Grad bei 200 und mehr Dateien würd das Sinn machen. Nutze selber den PDF-XChange Viewer unter Windows 10 für PDF Preview und Druck im Hintergrund.
Ansonsten wäre deine Lösung auch mein Favorit.
mfg Crusher
Ich habe auf die Schnelle das hier gefunden:
http://www.columbia.edu/~em36/pdftoprinter.html
Das ist ein Wrapper-Script basierend auf AutoIt mit passendem Programm.
Vielleicht kannst Du diesen Ansatz für Dich weiterentwickeln.
http://www.columbia.edu/~em36/pdftoprinter.html
Das ist ein Wrapper-Script basierend auf AutoIt mit passendem Programm.
Vielleicht kannst Du diesen Ansatz für Dich weiterentwickeln.
Da brauchst nichtmal nen Regex, split einfach nach " " oder "-" oder whatever und gut ist, der Grundaufbau scheint ja gleich zu bleiben. Interessant wird es, wenn das ein Riesenheckmeck ist (musste mal so eine Prozedur bei einem Wildwuchs ohne Konzept digitalisierter Rechtsanwaltsschreiben umsetzen...ging aber auch.)
Muss ich mir mal anschauen. Bei uns in der Klinik sind digitale Amöben am Start! Foxit mag ich, weil man mittels GPO und eigenen Menü das ding so kastrieren kann, dass nur ein paar Buttons über bleiben. Dank des Command Line Print nur 1x Software für mehrere Zwecke. Aber Sumatra schau ich mir für anderes Projekt auch mal an. ;)
Hatte langeweile. Bauer sucht Frau vorbei.....
Fehlt noch statt "Get-Content " Druckaufruf und verschieben in Verzeichnis, damit nich immer die selben gedruckt werden.....
Invoke-Command xxxxx.exe -ArgumentList arg1,arg2,arg3 -Wait
So mal angedacht.
Fehlt noch statt "Get-Content " Druckaufruf und verschieben in Verzeichnis, damit nich immer die selben gedruckt werden.....
$ordner = "c:\temp\"
gci -Path $ordner | ? {$_.BaseName -match "OWRLS"} | % {
$sub = $_.BaseName.Substring(6)
$file2 = $ordner + "OWRETI_" + $sub + $_.Extension
$file3 = $ordner + "OWRELS_" + $sub + $_.Extension
if (Test-Path -Path $_.FullName) {Get-Content -Path $_.FullName}
if (Test-Path -Path $file2) {Get-Content -Path $file2}
if (Test-Path -Path $file3) {Get-Content -Path $file3}
}
Invoke-Command xxxxx.exe -ArgumentList arg1,arg2,arg3 -Wait
So mal angedacht.

Gruppieren und sortieren ist ein Kinderspiel in der PS
Zum Druckbefehl noch Suche benutzen und fertig:
PDF via Powershell drucken - Reader nach druck schließen
Get-Childitem "d:\daten" -File -Filter *.PDF | group {$_.Basename.split("_")[1]} | %{
Write-Host "Drucke Gruppe $($_.Name)" -F Green
$_.Group | sort {@{OWRLS=1;OWRETI=2;OWRELS=3}[($_.Basename.split("_")[0])]} | %{
# Hier Druckbefehl einsetzen, in $_.Name befindet sich jeweils der Dateiname, in $_.Fullname der Absolute Pfad zur Datei
# Für den Test nur Name der Datei ausgeben
$_.Name
}
}
Zum Druckbefehl noch Suche benutzen und fertig:
PDF via Powershell drucken - Reader nach druck schließen