Jump to content
Fivewin Brasil

Assinar digitalmente PDF


william

Recommended Posts

Bom dia, estou trabalhando num sistema de acervo digital e os documentos em PDF devem ser digitalizados e assinados digitalmente por um certificado digital. Manualmente consigo fazer isso usando o adobe acrobat , porem queria fazer automaticamente via programação. Alguem saberia dizer se isso é possivel? tem algum exemplo?

Obrigado

William

 

 

Link to comment
Share on other sites

boa tarde, estou testando o programa pdfpowertool.exe que faz a assinatura digital , via linha de comando passando parametros. Aparentemente está dando certo e vai dar para ser usado dentro do sistema. Fora isso , creio que deva existir algum componente activex que possa assinar o pdf diretamente, porem ainda nao encontrei. E deve ser isso que o Giovany faz com o Chilkat, que é um activex que trabalha com HTTP. Em Java encontrei varios codigos no github que fazem a assinatura do pdf. Me corrija se eu estiver errado Giovany, mas deve ser assim que vc faz. Comunica seu programa com um script web atraves do Chilkat.

Todas a opinioes e sugestoes sao bem vindas !

William

 

Link to comment
Share on other sites

Tem o chilkat https://www.chilkatsoft.com/ que tem um custo de +- 2500 reais

Eu tive que adquirir ele porque tenho sistema de cartórios e a demanda de assinaturas digitais em um pequeno cartório passa de 200 documentos hoje em dia.

Este componente tem muitas outras funções uteis, e estou usando somente a assinatura de documentos.

Se quiser testar o DEMO dele eu passo a classe que faz as assinaturas.

Link to comment
Share on other sites

Assim que eu chegar em casa envio pra você.

A respeito de varias assinaturas em um único arquivo, creio que funciona sim. Não testei porque para mim não há exigências de varias assinaturas.

Sei que funciona também em certificado A3, mais isto em um cartório fica inviável ja que o certificado A3 tem que estar ligado ao computador.

Com certificado A1 eu salvei o PFX em um campo BLOB no banco de dados. Quando vai assinar os documentos, o PFX é extraído para o computador local e com a senha e o serial do certificado eu assino os documentos sem precisar de instalar o certificado no repositorio do windows.  

Link to comment
Share on other sites

Boa noite Giovany, muito legal sua lógica de gravar o pfx no campo blob. O documento PDF vc tambem grava em BLOB depois de assinado ?  Se o cliente quizer uma copia , puxa  do BLOB gerando o PDF fisicamente, é isso?

No mais vou estudar sua classe para começar os testes.

Muito obrigado,

Att,

William

Link to comment
Share on other sites

 

Boa noite Giovany, muito legal sua lógica de gravar o pfx no campo blob. O documento PDF vc tambem grava em BLOB depois de assinado ?  Se o cliente quizer uma copia , puxa  do BLOB gerando o PDF fisicamente, é isso?

No mais vou estudar sua classe para começar os testes.

Muito obrigado,

Att,

William

Sim, pelas exigências governamentais os documentos originais tem que ser armazenados em uma pasta segura e manter a integridade da assinatura. Então faço melhor, compacto os pdfs com senha e gravo no campo Binario da tabela. Isto porque uso Dicionario de dados do ADS com tabelas ADT.

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
 

Sim, pelas exigências governamentais os documentos originais tem que ser armazenados em uma pasta segura e manter a integridade da assinatura. Então faço melhor, compacto os pdfs com senha e gravo no campo Binario da tabela. Isto porque uso Dicionario de dados do ADS com tabelas ADT.

Giovany, Boa tarde, por favor, seria possível postar aqui ao menos a lógica de gravar o PFX na base de dados?

 

[]s,

Link to comment
Share on other sites

Oi Jorge
Eu uso a minha classe tAds para isto: https://github.com/giovanyvecchi/tAdsGit.git

Para gravar

::oDb_Certificado := DB_CERT_A1():OpenRdd()
::oDb_Certificado:rLock()
::oDb_Certificado:Files2BlobZip({"C:\PASTA\CertificadoA1.pfx"},"bCertificados") //Grava compactado no campo bCertificados 
::oDb_Certificado:Commit(.T.)

Para extrair

::oDb_Certificado := DB_CERT_A1():OpenRdd()
aFilesInZip := ::oDb_Certificado:Blob2ZipFiles("C:\PASTA","bCertificados") // Extrai os arquivos na pasta
? aFilesInZip[1] // Primeiro arquivo gravado

 

Link to comment
Share on other sites

  • 6 months later...

Olá Giovany,

Você teria como mostrar sua linha de comando para assinatura de documentos PDF com a PDFPowertool? Pergunto isso pois implementei a assinatura mais não consigo mudar a posição da assinatura e que  ele autentique a assinatura, só aprece uma "?".

Desde já agradeço.

Att.,

Oliveiros Junior

 

 

Link to comment
Share on other sites

  • 8 months later...
Em 13/11/2019 at 13:45, william disse:

boa tarde, estou testando o programa pdfpowertool.exe que faz a assinatura digital , via linha de comando passando parametros. Aparentemente está dando certo e vai dar para ser usado dentro do sistema. Fora isso , creio que deva existir algum componente activex que possa assinar o pdf diretamente, porem ainda nao encontrei. E deve ser isso que o Giovany faz com o Chilkat, que é um activex que trabalha com HTTP. Em Java encontrei varios codigos no github que fazem a assinatura do pdf. Me corrija se eu estiver errado Giovany, mas deve ser assim que vc faz. Comunica seu programa com um script web atraves do Chilkat.

Todas a opinioes e sugestoes sao bem vindas !

William

 

Boa tarde, tentei como pdfpowertool e está dando erro: a senha da rede especificada não está correta. Poderia passar como fez? obg 

Marcelo 

email/skype: malcarli@life.com.br

wz 14 997043158

Link to comment
Share on other sites

boa tarde com o pdfpowertools uso a seguinte linha de comando num arquivo .BAT para assinar. A senha tem que ser a senha do certificado digital

PdfPowerTool.exe /INPUT taylor.pdf /OUTPUT taylor3.pdf /SIGNCERTIFICATE Ivair.pfx /SIGNPASSWORD 1234 /DISPLAYSIGNATURE /SIGN

Mas no final resolvi meu problema utilizando a solução do Giovanyvecchi

 

Att.

 

William

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...