• advertisement_alt
  • advertisement_alt
  • advertisement_alt
ELIELSON

[RESOLVIDO] Assinar PDF

4 posts in this topic

Estou tendo dificuldade para assinar um PDF. Segui os exemplos do Windev e nada. Alguém tem um exemplo funcional? O meu código é o seguinte:

// exemplo do windev

//MySignature is pdfSignature

//MySignature..Certificate = CertificateLoad("test.pfx", "pwd")

//MySignature..Caption = "Signed by test"

//PDFSign("mypdf.pdf", MySignature)

////////////////////////////////////

//// meu código

MyCertificate is Certificate

edt_certificate is string = CertificateSelect()

edt_pass is string = "1234"

ar_certificate is array of Certificate

ar_certificate = CertificateLoad(edt_certificateedt_pass)

MyCertificate = ar_certificate[1]

MySignature is pdfSignature

MySignature..Certificate = MyCertificate

MySignature..Caption = "Teste de Assinatura"

mRes is boolean = PDFSign("C:\My Projects\sign_mod\Exe\pedido_comanda_mesa_12.pdf", MySignature)

IF mRes = True THEN

     Info("PDF Assinado")

ELSE

     Info("PDF Não Assinado")

END

 

Share this post


Link to post
Share on other sites

Bom dia,

Não sei ajudar, mas sei que o @Mello Junior assina pdf's com sucesso. 

Espero que ele veja essa msg e possa te ajudar

1 person likes this

Share this post


Link to post
Share on other sites

Testei aki e não deu certo tb...

Não poderia ser uma POG?

Vc extrai a pagina do PDF q vira uma Imagem, altera ela e salva...

Segue imagem de como ficou e o código

xpto is Image = PDFExtractPage("D:\Telefone.pdf",1)

IMG_NoName1 = xpto
IMG_NoName1.DrawText(100, 200, "wxdev.com.br/forum",DarkBlue)
dSaveImageJPEG(IMG_NoName1,"d:\xptoteste.jpg")
ShellExecute("d:\xptoteste.jpg")

 

ApplicationFrameHost_yATmqwW2ll.png

Share this post


Link to post
Share on other sites

Depois de apanhar igual a "mulher de bandido" e mais alguns dias de estudo, cheguei ao consenso sobre a certificação digital sobre o arquivo PDF. Na realidade tanto faz se for utilizar A1 ou A3, o ponto está em permitir que o usuário escolha com qual certificado ele irá utilizar. Então vejamos:

  • MyCertificate is Certificate    = CertificateSelect()
  • IF MyCertificate..Name = "" THEN
  •     RETURN
  • END
  • MySignature is pdfSignature
  • MySignature..Certificate = MyCertificate

Não há necessidade de informar nem o arquivo PFX e muito menos a senha, pois ao tentar selecionar o próprio Windows se encarrega dessa parte. se Name retornar vazio, é porque o usuário escolheu cancelar ao invés de ter selecionado algum certificado.

Fiz muitos testes e todos vieram a contento e a imagem ficou muito legal dentro do PDF, contudo não consegui dar uma boa opacidade.

 

Abraços

 

3 people like this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now