Automatisches ausdrucken von PDF Dateien ohne Druckdialog - Script
Hallo!
Ich hoffe Ihr könnt mir helfen.
Habe folgendes Problem:
Ich habe ein Script, welches beim aktivieren eine PDF Datei ausdrucken soll ohne das der Druck-Dialog angezeigt wird.
Dieser Script sieht so aus:
Option Explicit
Dim objShellApp
Dim argument
Dim strFile
If WScript.Arguments.Count < 1 Then
WScript.Echo("Usage: printfile.vbs file.doc")
WScript.Quit
End If
strFile = Wscript.Arguments(0)
Set objShellApp = WScript.CreateObject("Shell.Application")
objShellApp.ShellExecute strFile, "", "", "print", 0
Wscript.Sleep(5000)
Set objShellApp = Nothing
Soweit so gut, nun muss aber über CMD der Befehl printfile.vbs c:\test.pdf eingeben werden damit das Script ausgeführt werden soll.
Jedoch brauche ich ein weiteres Script welches genau dieses Befehl ausführt. Dazu habe ich im Internet was gefunden:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.SendKeys "printfile.vbs c:\Test.pdf"
Wenn ich das ausführe wird zwar in CMD der Befehl eingeben aber nicht ausgeführt. Was muss ich tun damit es den ausführt und die CMD Konsole wieder schliesst?
Das nächste wär, das ich gerne diesen Script in einer Website einbauen möchte so das ich mit einem Klick die vorgegebene Datei drucken kann.
Hoffe sehr das Ihr mir helfen könnt. Dies ist meine erste "große" Aufgabe (bin Azubi seit 01.09.06 als FI/SI ) :D.
Ich hoffe Ihr könnt mir helfen.
Habe folgendes Problem:
Ich habe ein Script, welches beim aktivieren eine PDF Datei ausdrucken soll ohne das der Druck-Dialog angezeigt wird.
Dieser Script sieht so aus:
Option Explicit
Dim objShellApp
Dim argument
Dim strFile
If WScript.Arguments.Count < 1 Then
WScript.Echo("Usage: printfile.vbs file.doc")
WScript.Quit
End If
strFile = Wscript.Arguments(0)
Set objShellApp = WScript.CreateObject("Shell.Application")
objShellApp.ShellExecute strFile, "", "", "print", 0
Wscript.Sleep(5000)
Set objShellApp = Nothing
Soweit so gut, nun muss aber über CMD der Befehl printfile.vbs c:\test.pdf eingeben werden damit das Script ausgeführt werden soll.
Jedoch brauche ich ein weiteres Script welches genau dieses Befehl ausführt. Dazu habe ich im Internet was gefunden:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.SendKeys "printfile.vbs c:\Test.pdf"
Wenn ich das ausführe wird zwar in CMD der Befehl eingeben aber nicht ausgeführt. Was muss ich tun damit es den ausführt und die CMD Konsole wieder schliesst?
Das nächste wär, das ich gerne diesen Script in einer Website einbauen möchte so das ich mit einem Klick die vorgegebene Datei drucken kann.
Hoffe sehr das Ihr mir helfen könnt. Dies ist meine erste "große" Aufgabe (bin Azubi seit 01.09.06 als FI/SI ) :D.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 40617
Url: https://administrator.de/forum/automatisches-ausdrucken-von-pdf-dateien-ohne-druckdialog-script-40617.html
Ausgedruckt am: 23.12.2024 um 05:12 Uhr
11 Kommentare
Neuester Kommentar
Hallo Readme!
Wenn denn Dein Script tatsächlich über CMD ausgeführt werden muss:
HTH
bastla
Wenn denn Dein Script tatsächlich über CMD ausgeführt werden muss:
'Script RunPrintFile.vbs
strFile = WScript.Arguments(0)
'zum Testen gehe ich davon aus, dass die PDF-Datei als Argument übergeben wird
strProg = """C:\Dokumente und Einstellungen\Tester\Desktop\PrintFile.vbs""" 'Pfad zum Script (bei mir)
'Die ganzen Anführungszeichen, weil im Pfad eine Leerstelle enthalten ist
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd /c CScript.exe //nologo " & strProg & " " & Chr(34) & strFile & Chr(34), 1 ,1
'Gleich nochmal die Sache mit den Anführungszeichen, diesmal als Chr(34) geschrieben - als Vorsorge,
falls der Pfad des PDF-Files Leerstellen enthält
'Der Schalter /c sorgt für das Schließen des Konsolen-Fensters (/k würde es offen lassen)
HTH
bastla
Hallo Readme!
Das Script zum Ausdruck hast Du ja eigentlich schon selbst gepostet (Stichwort ShellExecute).
Ich kann noch immer nicht genau nachvollziehen, wie (bzw auch warum) der Ausdruck über eine Webseite erfolgen soll. Ist gemeint, dass immer eine Datei mit gleichem Namen und Pfad (zB c:\Test.pdf) gedruckt werden soll oder muss die PDF-Datei variabel übergeben werden?
bastla
Das Script zum Ausdruck hast Du ja eigentlich schon selbst gepostet (Stichwort ShellExecute).
Ich kann noch immer nicht genau nachvollziehen, wie (bzw auch warum) der Ausdruck über eine Webseite erfolgen soll. Ist gemeint, dass immer eine Datei mit gleichem Namen und Pfad (zB c:\Test.pdf) gedruckt werden soll oder muss die PDF-Datei variabel übergeben werden?
bastla
Hallo Readme!
Falls es noch nicht zu spät kommt:
http://66.249.93.104/search?q=cache:weKFPXS6S3cJ:forums.oracle.com/foru ...
Zum Download des erwähnten Tools: pdfp
Es scheint allerdings generell Probleme beim Schließen des Acrobat Readers zu geben, denn eigentlich müsste er sich über DDE steuern lassen (siehe Explorer / Extras / Ordneroptionen / Dateitypen / PDF / Bearbeiten oder Erweitert / print) - mögliche DDE-Befehle sollten sein (immer in eckigen Klammern verwenden) : CloseAllDocs, DocClose, DocGoTo, DocGoToNameDest, DocOpen, FileOpenEx, FilePrintEx, FilePrintSilentEx, FilePrintToEx, and AppExit
Eigentlich sollte die Kombination [FilePrintSilentEx("%1")][AppExit] drucken und den Reader schließen - tut sie aber bei mir nicht! Vielleicht hast Du mehr Glück.
Alles Gute
bastla
Falls es noch nicht zu spät kommt:
http://66.249.93.104/search?q=cache:weKFPXS6S3cJ:forums.oracle.com/foru ...
Zum Download des erwähnten Tools: pdfp
Es scheint allerdings generell Probleme beim Schließen des Acrobat Readers zu geben, denn eigentlich müsste er sich über DDE steuern lassen (siehe Explorer / Extras / Ordneroptionen / Dateitypen / PDF / Bearbeiten oder Erweitert / print) - mögliche DDE-Befehle sollten sein (immer in eckigen Klammern verwenden) : CloseAllDocs, DocClose, DocGoTo, DocGoToNameDest, DocOpen, FileOpenEx, FilePrintEx, FilePrintSilentEx, FilePrintToEx, and AppExit
Eigentlich sollte die Kombination [FilePrintSilentEx("%1")][AppExit] drucken und den Reader schließen - tut sie aber bei mir nicht! Vielleicht hast Du mehr Glück.
Alles Gute
bastla
Ich benutze die Funktion ShellExecute schon lange und ausgiebig, weil es eine Eier legende Wollmilschsau ist. Mail versand, öffnen drucken auf dem Standard drucker. Unter VB wird diese importiert mit:
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten
Ich benutze die Funktion ShellExecute schon lange und ausgiebig, weil es eine Eier legende Wollmilschsau ist. Mail versand, öffnen drucken auf dem Standard drucker. Unter VB wird diese importiert mit:
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten
Ich benutze die Funktion ShellExecute schon lange und ausgiebig, weil es eine Eier legende Wollmilschsau ist. Mail versand, öffnen drucken auf dem Standard drucker. Unter VB wird diese importiert mit:
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Der Aufruf für den Druck eines beliebigen Dokumentes (also auch PDF) lautet dann
ShellExecute ShellExecute (0,"print","<Name des dokumentes>","","",0)
oder
ShellExecute ShellExecute (0,"printto","<Name des dokumentes>","","",0)
nShowCmd=0 Server versteckt starten
nShowCmd=5 Server sichtbar starten