Clebergyn 21/4/2022, 17:06
Bom dia, boa noite Damasceno Jr.
Obrigado pelo Post. Estou precisando mesmo é de uma dll ou codigo vba-Access que funcione, para assinar digitalmente um PDF (com Certificado Digital - A1 ou A3).
Se voce puder dar uma dica, ou se voce ja tiver este codigo...se puder nos ajudar...sem preço ou com preço.
Vou estudar o C# e tentar fazer a dll...mas vai ser dificil e demorado...rsrs
Tenho este código em vba que não funcionou no meu pc, com Acrobat Reader Pro instalado, referencia Adobe Acrobat 10.0 type Library.
Se alguém conseguir fazer este código funcionar, para assinar um pdf, nos avise.
- Código:
Function CreateDigitalSignature()
Dim Acro_App As Acrobat.AcroApp
Dim Acro_PDdoc As Acrobat.AcroPDDoc
Dim oJS As Object
Dim SGH_Ppklite As Object
Dim ppklite_login
Dim SignField As Object
Dim senhacertificado
Dim Getsignfield As Object
Dim OinforArray As String
Dim Signature_Coord As Variant
Dim sg As Signature
Const Bottom_Left_x = 400
Const Bottom_Left_y = 200
Const Wdth = 100
Const Hght = 60
Signature_Coord = Array(Bottom_Left_x, Bottom_Left_y + Hght, Bottom_Left_x + Wdth, Bottom_Left_y)
Set Acro_App = New Acrobat.AcroApp
Set Acro_PDdoc = New Acrobat.AcroPDDoc
If Acro_PDdoc.Open("C:\Certificados\testedec.pdf") Then
Set oJS = Acro_PDdoc.GetJSObject
Set SGH_Ppklite = oJS.security.getHandler("Adobe.PPKLite", True)
Set SignField = oJS.AddField("MysignField", "signature", 0, Signature_Coord)
'Set SignField = oJS.AddField("MysignField", "signature", 0, Array(0, 0, 0, 0))
'Lets Login
ppklite_login = SGH_Ppklite.login(senhacertificado, "C:\Certificados\CertificadoTeste.pfx")
'Mention time out
SGH_Ppklite.setpasswordtimeout senhacertificado, 200
' Get signature field reference
Set Getsignfield = oJS.GetField("MysignField")
OinforArray = VBA.Split("", ",")
' Sign the signature Field
Signdone = Getsignfield.signatureSign(SGH_Ppklite, OinforArray, "C:\Certificados\testeAssinado.pdf")
'Last Step Logout
SGH_Ppklite.logout
End If
End Function