Zum Inhalt springen

Automatisches ausdrucken von PDF Dateien ohne Druckdialog - Script


Empfohlene Beiträge

Geschrieben

Hallo,

ich hoffe Ihr könnt mir helfen.

Gibt es die möglickeit ein Script zu programmieren, welches direkt eine PDF Datei ausdrucken soll ohne das der Druckdialog erscheint? Dieser Script wird auf einem Rechenr ausgeführt werden,

der nur die Aufgabe hat eine PDF Datei auszudrucken.

Ich wäre für Eure Hilfe sehr dankbar. Diese Aufgabe soll ich nähmlich bis morgen Freitag versuchen hinzubekommen (bin Azubi in FI/SI). Leider habe ich nur Allgemine Grundkenntnisse in programmieren.

Wäre es daher möglich das jemand mir den Script programmieren könnte?

Über jede Hilfe wäre ich sehr dankbar :) .

Haben diese Anfragen schon in diesem Forum gestellt, leider unter der falschen Rubrik. Hoffe daher, das hier mir besser geholfen werden kann ;).

Geschrieben

Hi,

wenn Du davon ausgehen kannst, dass ein PDF Reader installiert ist, dann geht das mit der ShellExecute Api:


'API declare

' public im Modul, private auf form !!!

Public 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


' ausdrucken

Private Sub cmdPrintPDF_Click()

       Call ShellExecute(0, "print", "C:\Test.pdf" , vbNullString, ".", 0)

End Sub

Geschrieben

Vielen Dank für Deine schnelle Antwort!

Haben den Script kopiert, in den Editor eingefügt und als test.vbs abgespeichert. Demenstprechend habe ich auch eine PDF Datei mit dem Namen Test.pdf und C: gespeichert. Beim Ausführen des Script kommt aber

die Fehlermeldung:

---------------------------

Windows Script Host

---------------------------

Skript: C:\Dokumente und Einstellungen\xxxxx\Desktop\Skript01.vbs

Zeile: 3

Zeichen: 16

Fehler: Anweisungsende erwartet

Code: 800A0401

Quelle: Kompilierungsfehler in Microsoft VBScript

---------------------------

OK

---------------------------

Ich denke, das ich bestimmt den Script falsch ausgeführt habe.

Wie soll ich ihn richtig zum laufen bringen?

Geschrieben

der obige ausschnitt funktioniert auch nur mit VB/VBA, nicht mit VBS.

versuchs mal so:

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

s'Amstel

Geschrieben

Super! Es klappt, vielen Dank! :marine

Jetzt hätte ich eine letzte Frage:

Ist es möglich diesen Script über ein Html Link auszuführen, sodas auch der

Befehl printfile.vbs c:\test.pdf automatisch in CMD ausführt?

Das wäre die letzte Hürde, ich hoffe Ihr könnt mir bei dem letzten Schritt helfen. ;)

Geschrieben

Ich habe hier was gefunden, wenn ich ein weitern Script mache, trägt er in CMD den Befehl ein. Was mir aber nocht fehlt , das er das "Enter" bestätigen soll.

Das ist der weiter Script der beim bestätigen den weitern Script ausführt.

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "cmd"

WScript.Sleep 100

WshShell.AppActivate "Calculator"

WScript.Sleep 100

WshShell.SendKeys "printfile c:\Test.pdf"

WScript.Sleep 500

WshShell.SendKeys ""

WScript.Sleep 500

Geschrieben

ich verstehe den sinn deines letzten scripts nicht. wozu benötigst du ein script, das mittels SendKeys etwas auf die console schreibt, wenn du die printfile ohnehin von überall aus (sei es aus einer VB-anwendung, sei es aus dem taskplaner, sei es eine andere batchdatei) aufrufen kannst.

s'Amstel

Geschrieben

Die Sache ist die, das ich das ganze in einer Website einbinden möchte und durch ein Klick die PDF Datei ausgedruckt werden soll.

Wenn ich printfile.vbs aktiviere, erscheint folgende Meldung, bei der aber nichts geruckt wird:

---------------------------

Windows Script Host

---------------------------

Usage: printfile.vbs file.doc

---------------------------

OK

---------------------------

Dies funktioniert aber nur wenn ich über CMD (wenn ich es richtig verstanden habe) den direkten Befehl eingeben, nähmlich printfile.vbs c:\test.pdf. Da ich aber nicht jedes mal den Befehl in der Konsole eingeben möchte, habe ich ein Script gefunden welches den Script printfile.vbs richtig ausführt und so mit einem Klick das Dokument ausgedruckt wird.

Das Problem ist nur das der Script den Befehl in der Konsole eingibt, aber nicht ausführt. Ich möchte aber das der Befehl ausgeführt wird und anschliessend die Konsole geschlossen wird.Das wäre das letzte Problem was ich hätte. Zum Schluss würde ich dann den Script in einer Website einbinden.

Geschrieben
der obige ausschnitt funktioniert auch nur mit VB/VBA, nicht mit VBS.

versuchs mal so:

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

s'Amstel

Jetzt bin ich weiter gekommen. Kann mir jemand sagen wie das geht, das der Adobe Reade sich dann am Ende schliessen soll?

Geschrieben

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?

Geschrieben

Ich habe hier 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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...