Vielen Dank für die Unterstützung!
@Carsten: Der Link half leider nicht. Durch den Befehl "BringtToFront" wird der Acrobat gestartet. Gerade das wollte ich ja vermeinden. Und dann steigt mir der Code eben wieder bei GetActiveDoc aus.
@jBubbleBoy: Den Shell- bzw. den shellExecute-Befehl setze ich jetzt schon ein. Auch das bewirkt ein Öffnen des Acrobat, was ich aber vermeiden möchte.
Update: Nachdem ich etwas im Adobe-Forum gekramt habe, bin ich auf die Lösung gekommen:
Function PrintPDFFile (PDFFile As String)
Dim AcroApp As Variant
Dim AcroAVDoc As Variant
Dim AcroPDDoc As Variant
Dim retVal As Variant
Dim NumPages As Integer
Set AcroApp = CreateObject("AcroExch.App")
Set AcroAVDoc = CreateObject("AcroExch.AVDoc")
retVal = AcroAVDoc.open(PDFFile, "")
Set AcroAVDoc = AcroApp.GetActiveDoc()
Set AcroPDDoc = AcroAVDoc.GetPDDoc()
NumPages = AcroPDDoc.GetNumPages() - 1
retVal = AcroAVDoc.PrintPagesSilent(0, NumPages, 3, True, False)
AcroApp.CloseAllDocs
AcroApp.Exit
Set AcroPDDoc = Nothing
Set AcroAVDoc = Nothing
Set AcroApp = Nothing
End Function
Es war also fast alles richtig. Der Unterschied liegt in der Verwendung von Klammern beim Aufruf der Methoden!
Ich bin kein Computersprachen-Expterte und kann nicht erklären, warum ein VB-Script anscheinend mit und ohne Klammern funktioniert, LS aber nur mit.
Die meisten Programmbespiele sind eben in VB geschrieben.
Grüße
Frank