Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


[VBA] VBA und PDF-Creator 2
#1
Wie viele von euch vielleicht schon wissen wurde mit dem PDF-Creator 2 eine neue COM-Schnittstelle eingeführt. Die alten VBA-Codes für den PDF-Creator bis Version 1.7.3 funktionieren nicht mehr.

//edit: Bitte schaut auch im Installationsverzeichnis des pdfcreator nach. Wenn Ihr die Beispiele installiert habt, findet Ihr dort verschiedene Programmiersprachen, u.a. auch VBA. Damit könnt Ihr ggf. auf Änderungen in der Syntax reagieren und seht auch den Verweis, falls Ihr Early Binding anwendet. Hier im Beispiel betrifft die Syntaxänderung z.B. das Objekt "PDFCreatorBeta.JobQueue", welches je nach Version auch ohne Beta auskommt: "PDFCreator.JobQueue"//

Hier ein Beispiel zum Konvertieren einer Exceltabelle in PDF mit der neuen COM-Schnittstelle im PDF-Creator 2.

Option Explicit

Sub PdfWithPDFCreatorZwei()

Dim pdfJob              As Object
Dim printJob            As Object
Dim wshNetwork          As Object

Dim bolSendAsAttach     As Boolean

Const Drucker1          As String = "PDFCreator"
Const Drucker2          As String = "Samsung ML-2850 Series"


If MsgBox("Soll die Datei nach dem Erstellen versendet werden?", 36, "Senden?") = vbYes Then bolSendAsAttach = True

On Error GoTo Ende

Set pdfJob = CreateObject("PDFCreatorBeta.JobQueue")

    pdfJob.Initialize

Set wshNetwork = CreateObject("WScript.Network")
    wshNetwork.SetDefaultPrinter Drucker1 'Standarddrucker auf PDFCreator setzen
   
    Worksheets("Tabelle1").PrintOut

    pdfJob.WaitForJob (10)

    Set printJob = pdfJob.NextJob

        With printJob
            .SetProfileByGuid ("DefaultGuid")
           
            If bolSendAsAttach Then
              .SetProfileSetting "EmailClient.Enabled", "true" 'Datei als Email senden einschalten
              .SetProfileSetting "EmailClient.Subject", "Test" 'Betreff
              .SetProfileSetting "EmailClient.Content", "Hallo,<br><br>anbei gewünschte Unterlagen." & _
                                                        "<br><br>Gruß, Max<br><br>" 'Body
              .SetProfileSetting "EmailClient.Recipients", "test@server.de;test2@server.de" 'Empfänger
            End If
           
            .ConvertTo (Environ("USERPROFILE") & "\Desktop\Test.pdf") 'Pfad und Dateiname für PDF-Datei, und konvertieren
          
           If .IsFinished = True Then
              pdfJob.ReleaseCom 'PDFCreator-Instanz beenden
              wshNetwork.SetDefaultPrinter Drucker2 'Standarddrucker wiederherstellen
           End If
        End With
       
Exit Sub

Ende:
pdfJob.ReleaseCom
End Sub


VBA/HTML - CodeConverter für Office-Foren, AddIn für Office 2002-2013 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:mumpel

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste