Da ein Mandant einfach beratungsresistent ist und immer wieder in Farbe scannt, mit erheblichen Speicheraufkommen, habe ich mir ein VBSript erstellt, womit ich die PDF-Dateien durch den Acrobat Reader Prof. in Graustufen drucken lasse. Auch große S/W-Dateien lassen sich so wunderbar komprimieren. 😀 'Löschen der alten Dateien
Dim objFSO
'sTargedPath muss mit dem Druckerpfad übereinstimmen!!!
Dim sTargetPath: sTargetPath="C:\Users\ama\Documents\PDF_Ausgabe"
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
If objFSO.FolderExists(sTargetPath) Then
objFSO.DeleteFolder(sTargetPath)
End If
objFSO.CreateFolder(sTargetPath)
'Set DefaultPrinter
SetDefaultPrinter("Adobe PDF")
WScript.Sleep 2000
strFolder = objFSO.GetParentFolderName(WScript.Arguments(0))
Set objFSO = Nothing
' Open the Shell Folders object
Set objShell = CreateObject( "Shell.Application" )
' Create an object for the specified file's parent folder
Set objFolder = objShell.Namespace( strFolder )
' Create a collection for the folder's contents
Set colFiles = objFolder.Items
For i = 0 To WScript.Arguments.Count-1
strfile=WScript.Arguments(i)
' Loop through the collection to find the file specified
If colFiles.Count > 0 Then
For Each objFile In colFiles
If LCase( objFile.Path ) = LCase( strFile ) Then
' Print the file with its associated print command
objFile.InvokeVerbEx( "Print" )
End If
Next
End If
WScript.Sleep 1000
Next
'SetDefaultPrinter.vbs – Windows logon script example
' PrintersDefault.vbs – Set the default printer
' VBScript – to map a network printer
' Author Guy Thomas https://computerperformance.co.uk/
' Version 1.4 – April 24th 2010
' —————————————————-‘
Dim objNetwork, strUNCPrinter
strUNCPrinter = "\\FILES.bns.local\HH_Kopierer_2OG_4555i"
'strUNCPrinter = "Adobe PDF"
Set objNetwork = CreateObject("WScript.Network")
objNetwork.AddWindowsPrinterConnection strUNCPrinter
' Here is where we set the default printer to strUNCPrinter
objNetwork.SetDefaultPrinter strUNCPrinter
WScript.Echo "Alle Dateien wurden gedruckt. Bitte warten Sie, bis der Druckspooler geleert ist."
WScript.Quit
' End of Guy’s Windows logon example VBScript.
' Hilfsprogramme-----------------------------------------------
Sub SetDefaultPrinter(sPrinterName)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = '" & sPrinterName & "'")
For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next
End Sub Meine Druckereinstellung über die Systemsteuerung sind wie folgt: Das VBSript habe ich bei mir auf dem Desktop abgelegt und jetzt brauche ich einfach nur die PDF-Dateien auf das VBS-Tool per Drag&Drop fallen zu lassen und schon werden sämtliche Dateien sauber in Schwarz/Weiß gedruckt. Das Tool einfach laufen lassen. Es dauert natürlich seine Zeit, auch noch die Spoolaufträge abwarten. Man könnten auch noch den Druckspooler überwachen, dafür hatte ich mir einmal eine DLL programmiert, aber das war mir dann doch zu oversized. Gruß Achilleus
... Mehr anzeigen