teekanne
Goto Top

Signaturfeld in einer PDF per VBA anlegen

Hallo,

ich stehe vor dem hoffentlich lösbaren Problem, dass ich gerne aus Excel heraus per VBA in einer PDF ein Signaturfeld erzeugen möchte, das neben dem Wort "Erhalten" gesetzt wird.
Nun bin ich, dem mir unbekannten Helfer sei dank, so weit gekommen, dass mir zumindest an einer festgelegten Stelle dieses Feld erzeugt wird, da jedoch der Ort an dem "Erhalten" steht von Dokument zu Dokument unterschiedlich ist,
benötige ich quasi eine vorausgehende Abfrage nach dem Ort dieses Wortes, da hören jedoch meine Kenntnisse auf.

 Public Sub test()
On Error GoTo Err_Handler
    Dim pdfPDDoc As New AcroPDDoc, oJS As Object, oSign As Object, oPpklite As Object, oFields As Object
    Dim strFName As String, strSignFName As String
    Dim oSignInfo As Object, strSecInfo As String
    Dim oParam As Parameter
    
    strSignFName = "C:\Documents and Settings\638423\Ncts\AdobeSignature\testing.pfx"  
            
    strFName = "C:\Users\Nutzer\Desktop\test.pdf"  
    
    If pdfPDDoc.Open(strFName) Then
        Set oJS = pdfPDDoc.GetJSObject
        
        Set oFields = oJS.AddField("SignatureField", "signature", 0, Array(130, 136, 320, 175))  
        pdfPDDoc.Save 1, strFName
   

        
Exit_Proc:
    Exit Sub
        
Err_Handler:
    
    MsgBox "In test" & vbCrLf & Err.Number & "--" & Err.Description  
    
    Resume Exit_Proc
End Sub

Content-ID: 512767

Url: https://administrator.de/contentid/512767

Ausgedruckt am: 25.11.2024 um 04:11 Uhr

colinardo
Lösung colinardo 08.11.2019, aktualisiert am 29.01.2021 um 10:14:38 Uhr
Goto Top
Servus @TeeKanne , willkommen auf Administrator.de!
Da sich die Positionierung mit VBA etwas aufwendiger gestaltet da dort eine Klasse fehlt (Matrix-Transformation zwischen Koordinatensystemen, das Matrix2D Object habe ich kurzerhand als Klasse in der Arbeitsmappe umgesetzt), habe ich dir ein Demo-Paket zusammengestellt welches das erste definierte Wort in einem PDF sucht und dann direkt daneben das Signaturfeld platziert.
Herunterladen kannst du es hier:

add_signature_field_to_pdf_512767.zip

Sollen hingegen bei allen gefundenen Wörtern, Signaturfelder platziert werden dann nutze man folgenden Download

add_multiple_signature_fields_to_pdf_512767.zip

Für beide Scripts ist ein installiertes Adobe Acrobat (kein Reader!) Voraussetzung.

screenshot

Grüße Uwe
miller200
miller200 28.01.2021 um 17:58:01 Uhr
Goto Top
Hallo Leute,
welchen zusätzlichen Programme brauche ich damit das VBA funktioniert?

VG
colinardo
colinardo 28.01.2021 aktualisiert um 18:07:40 Uhr
Goto Top
Servus,
du brauchst für das obige Skript eine Version von Adobe Acrobat Pro (nicht Reader).

Grüße Uwe
miller200
miller200 28.01.2021 aktualisiert um 19:38:14 Uhr
Goto Top
Hallo Colinardo

Danke, hab ich gerade getestet funktioniert soweit.

Leider wird bei "Erhalten" nur einmal eine Singnaturfeld gesetzt, wenn "Erhalten" mehrmals vorkommt wird nur das erst bedient.

vg
colinardo
colinardo 28.01.2021, aktualisiert am 27.01.2024 um 07:32:02 Uhr
Goto Top
Zitat von @miller200:
Leider wird bei "Erhalten" nur einmal eine Singnaturfeld gesetzt, wenn "Erhalten" mehrmals vorkommt wird nur das erst bedient.
Das war Absicht und war vom User @TeeKanne so gewünscht 😉.

Die Variante für multiple Fundstellen des Suchbegriffes findest du oben verlinkt.

Bitte evt. weitere Anliegen nur noch per PN, Danke.