-
Hallo Leute,
ich suche ein Möglichkeit wie ich unter Windows beliebig viele PDF-Dateien (derzeit etwa 1.300) automatisch drucken lassen kann.
Ansatz (Batch):
Der Code funktioniert soweit. Einzige Probleme:Code :1
@for %%p in ("H:\xampplite\htdocs\bookdbs\trunk\static\bestellzettel\*.pdf") do "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p %%p
* Acrobat Reader verlangt eine Bestätigung um den Druckvorgang zu starten
* Acrobat Reader schließt sich nicht wieder automatisch
Hintergrundinformationen:
* PDF's werden automatisch mit PHP/LaTeX erstellt.
Danke für eure Hilfe, es muss übrigens nicht zwangsläufig Batch sein.
Gruß.
-
Unter VB nutze ich dafür die API-Funktion ShellExecute. Das funktioniert einwandfrei, man muss nach dem Druck nur in einer Schleife prüfen, ob das Acrobat Fenster noch offen ist.
Nur tote Fische schwimmen mit dem Strom.
-
Könntest du mir bitte den entsprechenden Code zur Verfügung stellen?
-
Wie gesagt, ich mache das in VB6. Das sollte aber in VBScript auch so ähnlich möglich sein.
Hiermit wird der Ausdruck durchgeführt, und der Acrobat Reader hinterher geschlossen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Private 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 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Const WM_CLOSE = &H10 Const SW_SHOWNORMAL = 1 Const SW_SHOWMINIMIZED As Long = 2 Const SW_HIDE As Long = 0 Private Sub PrintPDF(FileName as String) Dim Ausdruck As Boolean Dim WinWnd As Long Dim b as Long Ausdruck = ShellExecute(Me.hwnd, "print", Filename, vbNullString, vbNullString, SW_HIDE) DoEvents Sleep 2000 '2 Sekunden warten Do While WinWnd = 0 b = b + 1 '' Schleife, Adobee druckt wohl noch DoEvents WinWnd = FindWindow(vbNullString, "Adobe Reader") DoEvents If b > 3000 Then 'Gucken, ob Adobe Reader mit Datei geöffnet ist (GetFileFromPath ist eine kleine Funktion, die den Dateinamen ohne Pfad zurück gibt) WinWnd = FindWindow(vbNullString, "Adobe Reader - [" & GetFileFromPath(Filename) & "]") Else WinWnd = FindWindow(vbNullString, "Adobe Reader") End If If b > 9000 Then '.Adobe Reader nicht da, ist wohl schon beendet Exit Do End If Loop If b <= 9000 Then '. . . . . . . Acrobat Reader schließen PostMessage WinWnd, WM_CLOSE, 0&, 0& End If End Sub
Ich hoffe, Du kommst damit weiter. Da das ganze bei mir Teil einer komplexen Funktion ist, habe ich hier nur die relevanten Teile raus geholt.
Grüsse
ronaldhNur tote Fische schwimmen mit dem Strom.
-
Werde ich mir in den nächsten Tagen genauer ansehen, danke.
Ähnliche Themen
-
Seite automatisch drucken
Von nDeedy im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 01.10.07, 12:22 -
PDF dateien drucken
Von FlashMX im Forum .NET CaféAntworten: 3Letzter Beitrag: 14.08.05, 20:42 -
Dateien drucken
Von chironex im Forum .NET ArchivAntworten: 4Letzter Beitrag: 26.07.04, 19:07 -
[MS Word] Adressen automatisch auf Etiketten drucken?!
Von daDom im Forum Office-AnwendungenAntworten: 4Letzter Beitrag: 24.02.04, 20:48 -
Html Seite im Explorer automatisch drucken?
Von Atti im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 23.11.03, 00:14



Zitieren
Login





Lesezeichen