tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Benutzerbild von cameeel
    cameeel cameeel ist offline Mitglied Platin cameeel hat eine blütenweiße Weste
    Registriert seit
    Dec 2004
    Beiträge
    677
    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):
    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
    Der Code funktioniert soweit. Einzige Probleme:
    * 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ß.
    Nein, ich bin nicht die Signatur, ich putz hier nur.

    URL's kürzen | Code's speichern

  2. #2
    ronaldh ronaldh ist offline Mitglied Brillant ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein
    Registriert seit
    Apr 2007
    Ort
    Hannover
    Beiträge
    865
    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.

  3. #3
    Benutzerbild von cameeel
    cameeel cameeel ist offline Mitglied Platin cameeel hat eine blütenweiße Weste
    Registriert seit
    Dec 2004
    Beiträge
    677
    Könntest du mir bitte den entsprechenden Code zur Verfügung stellen?
    Nein, ich bin nicht die Signatur, ich putz hier nur.

    URL's kürzen | Code's speichern

  4. #4
    ronaldh ronaldh ist offline Mitglied Brillant ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein ronaldh kann auf vieles stolz sein
    Registriert seit
    Apr 2007
    Ort
    Hannover
    Beiträge
    865
    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
    ronaldh
    Nur tote Fische schwimmen mit dem Strom.

  5. #5
    Benutzerbild von cameeel
    cameeel cameeel ist offline Mitglied Platin cameeel hat eine blütenweiße Weste
    Registriert seit
    Dec 2004
    Beiträge
    677
    Werde ich mir in den nächsten Tagen genauer ansehen, danke.
    Nein, ich bin nicht die Signatur, ich putz hier nur.

    URL's kürzen | Code's speichern

Ähnliche Themen

  1. Seite automatisch drucken
    Von nDeedy im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 01.10.07, 12:22
  2. PDF dateien drucken
    Von FlashMX im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 14.08.05, 20:42
  3. Dateien drucken
    Von chironex im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 26.07.04, 19:07
  4. [MS Word] Adressen automatisch auf Etiketten drucken?!
    Von daDom im Forum Office-Anwendungen
    Antworten: 4
    Letzter Beitrag: 24.02.04, 20:48
  5. Html Seite im Explorer automatisch drucken?
    Von Atti im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 23.11.03, 00:14

Lesezeichen

Lesezeichen