Clever-Excel-Forum

Normale Version: Per VBA PDF öffnen und signieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Problem: Ich versuche per VBA eine PDF zu öffnen, meine Signatur zu wählen und diese dann selbst zu platzieren.
Ziel soll es sein, per VBA viele Dateien zu signieren. Da die Signatur nicht immer an der selben Stelle platziert wird, kann ich mit Koordinaten leider nichts anfangen. Daher muss ich den Ort irgendwie selbst wählen.

Ich habe vieles versucht, jedoch kommt entweder ein Fehler oder aber es passiert nichts. Ich habe hier im Forum leider auch nichts dazu gefunden.
Folgenden Code nutze ich gerade:

Code:
Sub Signatur()

Dim acroApp As Acrobat.AcroApp
Dim acroAVDoc As Acrobat.AcroAVDoc
Dim acroPDDoc As Acrobat.AcroPDDoc
Dim jso As Object


Set acroApp = CreateObject("AcroExch.App")
Set acroAVDoc = CreateObject("AcroExch.AVDoc")


If acroAVDoc.Open("C:\pdf1.pdf", "") Then
    Set acroPDDoc = acroAVDoc.GetPDDoc
    Set jso = acroPDDoc.GetJSObject

    acroApp.Show
    acroApp.MenuItemExecute "Tools:Signature:Sign & Certify:Place Signature"

    jso.signature.setActive(jso.signature.list(0))

End If

' Clean up
Set acroPDDoc = Nothing
Set acroAVDoc = Nothing
Set acroApp = Nothing

End Sub


Was mache ich falsch? Ist sowas überhaupt möglich? Vielleicht gehe ich das ganze auch falsch an...

Ich habe Adobe Acrobat Professional und der Verweis ist auch aktiv.


Würde mich über jede Hilfe freuen!

VG
Moin,

du erhöhst die Chance auf qualifizierte Antworten, wenn du in einem Adobe-Forum nachfragst. Das Problem hat nullkommnullsieben mit Excel zu tun. Du nutzt nur ExcelVBA für das Skript. Das Geheimnis liegt aber im Objektmodell von Adobe.

Viele Grüße
derHöpp
Hallo!

Funktioniert nicht mit VBA. Denn VBA wartet nicht bis das Signaturfeld manuell gesetzt wurde.

Gruß, René
Hallöchen,

wann kommt was für ein Fehler, wann passiert nix?
Man kann z.B. im Code Wartezeiten programmieren - z.B. unter Nutzung der Sleep-API, mit einer Msgbox pausieren, mittels einem File oder anderen Mittel im System was triggern, ...