Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Automatisches ausdrucken von PDF Dateien ohne Druckdialog - Script

Frage Entwicklung VB for Applications

Mitglied: Readme

Readme (Level 1) - Jetzt verbinden

21.09.2006, aktualisiert 05.01.2007, 17506 Aufrufe, 11 Kommentare

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.
Mitglied: bastla
21.09.2006 um 15:54 Uhr
Hallo Readme!

Wenn denn Dein Script tatsächlich über CMD ausgeführt werden muss:

01.
'Script RunPrintFile.vbs 
02.
strFile = WScript.Arguments(0) 
03.
'zum Testen gehe ich davon aus, dass die PDF-Datei als Argument übergeben wird 
04.
 
05.
strProg = """C:\Dokumente und Einstellungen\Tester\Desktop\PrintFile.vbs""" 'Pfad zum Script (bei mir) 
06.
'Die ganzen Anführungszeichen, weil im Pfad eine Leerstelle enthalten ist 
07.
 
08.
set WshShell = WScript.CreateObject("WScript.Shell") 
09.
 
10.
WshShell.Run "cmd /c CScript.exe //nologo " & strProg & " " & Chr(34) & strFile & Chr(34), 1 ,1 
11.
'Gleich nochmal die Sache mit den Anführungszeichen, diesmal als Chr(34) geschrieben - als Vorsorge, 
12.
falls der Pfad des PDF-Files Leerstellen enthält 
13.
 
14.
'Der Schalter /c sorgt für das Schließen des Konsolen-Fensters (/k würde es offen lassen)
HTH
bastla
Bitte warten ..
Mitglied: Readme
21.09.2006 um 16:12 Uhr
Vielen Dank für die Antwort.

Leider habe ich vergessen zu erwähnen, das ich nur allgemeine Grundkenntnisse in programmieren verfüge. Daher verstehe ich nicht ganz, wie ich den Script richtig ausführen soll.

Über CMD muss der Script nicht ausgeführt werden.
Es wäre natürlich viel besser und einfacher, wenn ich einfach ein Script hätte, welches eine vorgegebene Datei (PDF) ausdruckt ohne den Druck-Dialog anzuzeigen.
Für mich wäre es eine sehr große Hilfe, wenn Du oder jemand anders mir diesen Script programmieren könnte, vorzugsweise in VBS. Falls dies nicht gehen sollte oder es über eine andere Programmiersprache besser funktionieren würde, wäre es auch kein Problem.
Das was wichtig wäre, das ich den Script in einer HTML Website einfügen und über ein Link ausführen kann. Die Website wird nur auf einem PC laufen und nicht über das Internet verfügbar sein.
Bitte warten ..
Mitglied: bastla
21.09.2006 um 20:40 Uhr
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
Bitte warten ..
Mitglied: Readme
22.09.2006 um 08:13 Uhr
Es soll nur immer die selbe Datei im selben Pfad gedruckt werde.
Wir haben nähmlich Kundentage. Wenn die Kunden Interesse haben, sollen sie sich dann die Vorstellung ausdrucken können über einen PC. Dabei soll dies über eine simplen HTML Startseit, die im Browser läuft, über ein Link ausgedruckt werden können. Es wird nur die eine PDF Datei in C: zum ausdrucken geben. Dabei soll halt kein Druckdialog erscheinen.
Sonst hat der PC nichts zu tun ausser zu drucken. Wo bestimmt dann nur der Browser läuft.
Bitte warten ..
Mitglied: Readme
22.09.2006 um 11:40 Uhr
So, ich habe es geschaft.

Dieser Script:

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.SendKeys "printfile.vbs c:\Test.pdf "
WScript.Sleep 100
WSHShell.SendKeys "{Enter}"
WScript.Sleep 100
WSHShell.SendKeys "Exit"
WScript.Sleep 100
WSHShell.SendKeys "{Enter}"


führt dieses Script 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


So wird endlich die PDF Datei ausgedruckt und die CMD Konsole nach dem Voragang geschlossen.
Das letzte Problem wäre jedoch, das sich die Anwendung (Adobe Reader) sich am Ende schliessen soll.
Kann mir jemand sagen, welche änderung ich im Script vornehmen soll, damit sich Adobe Reader sich am Ende schliesst nachdem es gestartet wurde?
Bitte warten ..
Mitglied: bastla
23.09.2006 um 18:52 Uhr
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
Bitte warten ..
Mitglied: Readme
25.09.2006 um 08:50 Uhr
Die Obere Beschreibung werde ich mal versuchen auszuprobieren. Ich habe hier auch ein weiteren Script gefunden:

Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"""
WScript.Sleep 1000*15
WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"" /t
""F:\EigeneDateien\#PDF\http --192.168.1.1-doc-online.sht.pdf"" ""LJ4 an
LPT1""" , , True
WScript.Sleep 1000*7
WSHShell.run """C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"" /t
""F:\EigeneDateien\#PDF\http --192.168.1.1-doc-online.sht.pdf"" ""LJ4 im
Netz""" , , True
WScript.Sleep 1000*7
WSHShell.SendKeys "%{F4}"
WScript.Sleep 1000*1
MsgBox "Das wars . . . "

Kann mir jemand sagen ob das funktionieren würde?Muss ich einfach da den Standard Druckernamen einsetzten?Oder den Freigabename des Druckers?
Bitte warten ..
Mitglied: Readme
25.09.2006 um 14:20 Uhr
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

Leider klappt es nicht bei mir.
Bitte warten ..
Mitglied: chip62-m
05.01.2007 um 14:03 Uhr
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
Bitte warten ..
Mitglied: chip62-m
05.01.2007 um 14:03 Uhr
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
Bitte warten ..
Mitglied: chip62-m
05.01.2007 um 14:04 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Drucker und Scanner
Problem mit Ausdruck von PDF Dateien (4)

Frage von CountryBoy zum Thema Drucker und Scanner ...

Viren und Trojaner
gelöst "Gefährlichkeit" von PDF-Dateien (8)

Frage von thaefliger zum Thema Viren und Trojaner ...

Windows 8
PDF Dateien öffnen sich nicht (3)

Frage von andywolf zum Thema Windows 8 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...