Skip navigation
D. H. Wagner
Currently Being Moderated

E-Mail in Outlook über Visual Basic mit Hilfe von AdobePDFMakerforOffice erstellen

Sep 17, 2013 11:10 PM

Ich möchte gerne aus Visual Basic eine E-Mail aus Outlook als PDF abspeichern, wobei ich auch gerne die Anhänge mit im PDF abspeichern möchte. Dazu möchte ich das Addin in Outlook über Visual Basic verwenden.

Ich verwende derzeit VisualBasix Express und Adobe Acrobat XI Version 11.0.4.

 

Ich habe aufgrund von Quelltexten im Internet nachfolgenden Code erstellt, wobei ich das Objekt bzw. das Addin in Outlook das "AdobePDFMakerforOffice" anscheind nicht finden bzw. zuordnen kann.

 

Von Visual Basic wurde folgende Fehlermeldung angezeigt bei der markierten "-------->>" Zeile angezeigt:

"Zusätzliche Informationen: Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "AdobePDFMakerForOffice.PDFMaker" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{1FE6F30F-4AA0-4EB5-A61C-00C14761EC3E}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))."

 

Es gibt wohl verschiedene Möglichkeiten das Objekt zu übernehmen, aber ich bekomme immer diese Fehlermeldung. Die Meldungen zwischendurch habe ich nur zur Bestätigung, dass Outlook bzw. das AdobePDFForOffice gefunden w bzw. connectet ist hinzugefügt.

 

Weiß hier jemand Rat ?

 

Der Code lautet:

 

Imports System.Diagnostics

Imports System.Linq

Imports System.Reflection

Imports System.Runtime.InteropServices

Imports Microsoft.Office.Interop

Imports AdobePDFMakerForOffice

 

Private Sub BtnEmailOutlookPdf_Click(sender As Object, e As EventArgs) Handles BtnEmailOutlookPdf.Click

        Dim appAdobe As AdobePDFMakerForOffice.PDFMaker

        Dim appsettings As AdobePDFMakerForOffice.ISettings

        Dim Result As Boolean = EnumWindows(Callback, IntPtr.Zero)

        Dim ObjOl As Object

        Dim myItem As Outlook.Inspector

        Dim SpeichernameMSG, SpeichernamePDF As String

        Dim a

        Dim IndX As Int16

        Dim objInterOL As Microsoft.Office.Interop.Outlook.Application

        Dim objSelection As Microsoft.Office.Interop.Outlook.Selection

        Dim objItems As Microsoft.Office.Interop.Outlook.Items

        Dim objMailItem As Microsoft.Office.Interop.Outlook.MailItem

        ' Outlook suche und Objekt übernehmen

        If Process.GetProcessesByName("OUTLOOK").Count() > 0 Then

            ' If so, use the GetActiveObject method to obtain the process and cast it to an Application object.

            objInterOL = DirectCast(Marshal.GetActiveObject("Outlook.Application"), Outlook.Application)

            'MsgBox("Outlook-Objekt übergeben: Erfolg")

        Else

            MsgBox("Outlook ist nicht geöffnet, bitte Outlook starten")

        End If

        'Acrobat Objekt in Outlook suchen

        With objInterOL

            Do

                IndX = IndX + 1

                If IndX > .COMAddIns.Count Then Exit Do

            Loop Until .COMAddIns(IndX).Description = "Acrobat PDFMaker Office COM Addin"

            If IndX > .COMAddIns.Count Then

                MsgBox("Unable to locate Acrobat PDFMaker COM Add-In for Microsoft Office." & vbCrLf & "Please contact an MIS associate for assistance", vbCritical, "Cannot Export PDF")

            Else

                'MsgBox("My ProgID is " & .COMAddIns(1).ProgID & " and my GUID is " & .COMAddIns(1).Guid)

                If .COMAddIns(IndX).Connect Then

                    MsgBox("The add-in is connected.")

                Else

                    MsgBox("The add-in is not connected.")

                End If

---->>>>       appAdobe = .COMAddIns(IndX).object                       <<---------------------

                MsgBox("appAdobe zugewiesen !")

            End If

        End With

        SpeichernamePDF = "Test.PDF"

        appAdobe.GetCurrentConversationSettings(appsettings)

        With appsettings

            .IsConversionSilent = True

            .IsAutomation = True

            .ShouldShowProgressDialog = True

            .AddTags = False

            .ConvertComments = True

            .AddBookmarks = False

            .AddLinks = False

            .OutputPDFFileName = SpeichernamePDF

            .ViewPDFFile = True

            .AttachSourceFile = False

        End With

        appAdobe.CreatePDFEx(appsettings, 0)

    End Sub

 

 
Replies

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points