PDF mit VBSkript erstellen
Hi,
ich würde gerne aus einem VB-Skript heraus eine PDF Datei erzeugen.
Ideal wäre wenn es eine Möglichkeit gäbe das PDF direkt zu erzeugen, vielleicht über irgendein Kommandozeilentool.
Alternativ wäre mir aber auch schon geholfen, wenn ich die zu druckende Datei (ist ein txt-Datei) zum PDF-Druckspooler schicken könnte.
Der PDF-Drucker ist aber nicht der Standarddrucker !
Gruß
Markus
ich würde gerne aus einem VB-Skript heraus eine PDF Datei erzeugen.
Ideal wäre wenn es eine Möglichkeit gäbe das PDF direkt zu erzeugen, vielleicht über irgendein Kommandozeilentool.
Alternativ wäre mir aber auch schon geholfen, wenn ich die zu druckende Datei (ist ein txt-Datei) zum PDF-Druckspooler schicken könnte.
Der PDF-Drucker ist aber nicht der Standarddrucker !
Gruß
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 134098
Url: https://administrator.de/contentid/134098
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo bordermax!
Bei der Installation des PDFCreator werden (hoffentlich auch bei der aktuellen Version 0.9.9) in den Ordner "Programmordner\COM\Windows Scripting Host\VBScripts" eine Reihe von Scripts gelegt ...
Grüße
bastla
Bei der Installation des PDFCreator werden (hoffentlich auch bei der aktuellen Version 0.9.9) in den Ordner "Programmordner\COM\Windows Scripting Host\VBScripts" eine Reihe von Scripts gelegt ...
Grüße
bastla
Hi!
Habe hier ein kleines Häppchen gefunden aus einem alten Projekt das wir aber nie abgeschlossen haben
' Transfer Print Jobs to a Different Print Queue
'VBS
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objPrinter = objWMIService.Get _
("Win32_Printer.DeviceID='DER_GESUCHTE_DRUCKER'")
objPrinter.PortName = "Der gewünschte Port z.B LPT1"
objPrinter.Put_
Grüße
Mayho
Habe hier ein kleines Häppchen gefunden aus einem alten Projekt das wir aber nie abgeschlossen haben
' Transfer Print Jobs to a Different Print Queue
'VBS
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objPrinter = objWMIService.Get _
("Win32_Printer.DeviceID='DER_GESUCHTE_DRUCKER'")
objPrinter.PortName = "Der gewünschte Port z.B LPT1"
objPrinter.Put_
Grüße
Mayho
Hallo bordermax!
Wenn das Ausdrucken zum Standarddrucker schon funktioniert, könntest Du es so versuchen:
Grüße
bastla
P.S.: Für das Posten von Code hätten wir hier die Tags <code> und </code> ...
Wenn das Ausdrucken zum Standarddrucker schon funktioniert, könntest Du es so versuchen:
PDFPrinter = "Druckername PDF-Drucker"
If WScript.Arguments.Count < 1 Then
WScript.Echo("Usage: printfile.vbs file.doc")
WScript.Quit
End If
strFile = WScript.Arguments(0)
'Standarddrucker zwischenspeichern
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer where Default = 'True'")
For Each objPrinter in colInstalledPrinters
Def = objPrinter.DeviceID
Next
'PDF-Drucker als Standard setzen
objWMIService.ExecMethod "Win32_Printer.DeviceID='" & PDFPrinter & "'", "SetDefaultPrinter"
Set objShellApp = WScript.CreateObject("Shell.Application")
objShellApp.ShellExecute strFile, "", "/D:\\Rechnername\Spoolername", "print", 0
WScript.Sleep(5000)
Set objShellApp = Nothing
'Wieder alten Standarddrucker setzen
If Def <> "" Then objWMIService.ExecMethod "Win32_Printer.DeviceID='" & Def & "'", "SetDefaultPrinter"
bastla
P.S.: Für das Posten von Code hätten wir hier die Tags <code> und </code> ...
Hi Bordermax!
Sorry, ist etwas stressig in letzter Zeit
Also das Script oben macht eigentlich nichts anderes als dass es den Port des Druckers ändert und das dauerhaft. Im Treiber des Druckers kannst du einen eigenen Port definieren auf den du dann umleiten kannst. Würde sicher auch per Script gehen.
Das script müsste für temp. Druck also vorher auf den Port "Keine-Ahnung" umstellen und dann wieder zurück. Wie du das aber während des Drucks machst kann ich dir auf die Schnelle echt nicht sagen.
Sorry
MAyho
Sorry, ist etwas stressig in letzter Zeit
Also das Script oben macht eigentlich nichts anderes als dass es den Port des Druckers ändert und das dauerhaft. Im Treiber des Druckers kannst du einen eigenen Port definieren auf den du dann umleiten kannst. Würde sicher auch per Script gehen.
Das script müsste für temp. Druck also vorher auf den Port "Keine-Ahnung" umstellen und dann wieder zurück. Wie du das aber während des Drucks machst kann ich dir auf die Schnelle echt nicht sagen.
Sorry
MAyho