staga
Goto Top

VBS PDF aufsteigend drucken

Hallo zusammen

Ich habe mir ein Script zusammengestellt welches mehrere PDF Dateien in einem Ordner ausdruckt. das ganze funktioniert soweit auch. Mein Problem ist nun das ich die Files in willkürlicher Reihenfolge gedruckt werden. Ich möchte diese jedoch aufsteigend drucken. Ich hoffe mir kann jemand weiterhelfen und sagen ob dies überhaupt möglich ist und wenn ja wie.

PS: Die Konvertierung der Files bzw. die Namen sind immer gleich aufgebaut: 100111_AB1_1933123_3653269_13.PDF
100111_AB1_1933321_3547789_13.PDF
100111_AB1_1945698_5698742_13.PDF
usw.

Ich möchte nun aufsteigend drucken bzw. sortiert nach dem 3 Segment xxxxxx_xxx_1966123_xxxxxxx_xx.PDF

Anbei das Script zum Drucken welches ich bereits erstellt habe:

sSourceFolder = "C:\Print\"  
If WScript.Arguments.Count > 0 Then
sSourceFolder = WScript.Arguments(0)
End If
Set fso = CreateObject("Scripting.FileSystemObject")  
If Not fso.FolderExists(sSourceFolder) Then
WScript.Echo "Ordner " & sSourceFolder & " nicht verfügbar!"  
WScript.Quit(2)
Else
bPrintetd = False
Set oShellApp = WScript.CreateObject("Shell.Application")  
For Each oFile In fso.GetFolder(sSourceFolder).Files
If InstrRev(oFile.Name, ".") Then  
If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".pdf" Then  
oShellApp.ShellExecute oFile.Path, "", "", "print", 0  
bPrinted = True
WScript.Sleep(5180)
End If
End If
Next
Set oShellApp = Nothing
If Not bPrinted Then
WScript.Echo "Kein Dokument zum Drucken gefunden!"  
WScript.Quit(1)
End If
End If

Content-Key: 191447

Url: https://administrator.de/contentid/191447

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: bastla
bastla 19.09.2012 aktualisiert um 21:22:56 Uhr
Goto Top
Hallo staga!

Sortieren kannst Du in VBS nach verschiedenen Verfahren - hier ein Beispiel mit einem "Disconnected Recordset":
sSourceFolder = "C:\Print\"  
If WScript.Arguments.Count > 0 Then
    sSourceFolder = WScript.Arguments(0)
End If

Set fso = CreateObject("Scripting.FileSystemObject")  

Const adVarChar = 200
Const MaxCharacters = 255
Const adFldIsNullable = 32
Set DataList = CreateObject("ADOR.Recordset") 'Datenbankobjekt erstellen  
DataList.Fields.Append "Datei", adVarChar, MaxCharacters, adFldIsNullable  'Feld definieren  
DataList.Open

If Not fso.FolderExists(sSourceFolder) Then
    WScript.Echo "Ordner " & sSourceFolder & " nicht verfügbar!"  
    WScript.Quit(2)
Else
    bPrintetd = False
    Set oShellApp = WScript.CreateObject("Shell.Application")  
    For Each oFile In fso.GetFolder(sSourceFolder).Files
        If LCase(fso.GetExtensionName(oFile.Name)) = "pdf" Then  
            DataList.AddNew 'neuen Datensatz erstellen  
            DataList("Datei") = oFile.Path 'dem Feld "Datei" den Pfad als Wert zuweisen  
            DataList.Update 'Datensatz eintragen  
        End If
    Next
    If Not DataList.EOF Then 'gibt es Daten?  
        DataList.Sort = "Datei" 'nach dem Feld "Datei" sortieren  
        DataList.MoveFirst 'beim ersten Datensatz beginnen ...  
        Do Until DataList.EOF '... und bis zum letzten durchgehen  
            oShellApp.ShellExecute DataList.Fields.Item("Datei"), "", "", "print", 0  
            WScript.Sleep(5180)
            DataList.MoveNext 'nächsten Datensatz holen  
        Loop
    Else
        WScript.Echo "Kein Dokument zum Drucken gefunden!"  
        WScript.Quit(1)
    End If
End If
Zu überlegen wäre natürlich auch noch, die gedruckten Dateien zu verschieben, damit sie nicht mehrfach ausgedruckt werden ...

Grüße
bastla