Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[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

Antworten Top


Gehe zu:


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