Assinatura digital de PDFs

1,343 views
Skip to first unread message

Gilberto Dessbesell Jr

unread,
Jul 10, 2017, 1:51:57 PM7/10/17
to dug...@googlegroups.com
Boa tarde pessoal!

O que vocês têm usado para assinatura digital de PDFs?

Att.,
--
Gilberto Dessbesell Jr.

"Simplicidade--a arte de maximizar a quantidade de trabalho não realizado--é essencial."

Daniel Franzini

unread,
Jul 10, 2017, 6:10:46 PM7/10/17
to dug...@googlegroups.com
OpenSSL? PGP? Ou é programaticamente, no Delphi? Programaticamente eu nunca vi nada parecido, mas sempre se pode usar algum wrapper da OpenSSL para Delphi e gerar um arquivo com assinatura digital no formato desejado.

Ainda, usando os recursos de assinatura digital disponíveis no próprio formato PDF eu também nunca vi nada parecido em termos de API. Deve ter, mas tem que procurar.

--
--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-unsubscribe@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Daniel

"Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do." (Donald Knuth)

"Yes, technogeeks can be funny, even if only to each other." (http://www.boogieonline.com/revolution/science/humor/)"

"Man is driven to create; I know I really love to create things. And while I'm not good at painting, drawing, or music, I can write software." (Yukihiro Matsumoto, a.k.a. ``Matz'')

Elazar Dornelles Ceza

unread,
Jul 10, 2017, 9:19:16 PM7/10/17
to dug...@googlegroups.com
Olá

BrySigner até onde recordo realizou uma implementação utilizando a capicom, eles possuem uma api que facilita a implementação.



2017-07-10 19:10 GMT-03:00 Daniel Franzini <daniel....@gmail.com>:
OpenSSL? PGP? Ou é programaticamente, no Delphi? Programaticamente eu nunca vi nada parecido, mas sempre se pode usar algum wrapper da OpenSSL para Delphi e gerar um arquivo com assinatura digital no formato desejado.

Ainda, usando os recursos de assinatura digital disponíveis no próprio formato PDF eu também nunca vi nada parecido em termos de API. Deve ter, mas tem que procurar.

2017-07-10 14:51 GMT-03:00 Gilberto Dessbesell Jr <gdb...@gmail.com>:
Boa tarde pessoal!

O que vocês têm usado para assinatura digital de PDFs?




Atenc
Elazar Dornelles Ceza

Gilberto Dessbesell Jr

unread,
Jul 13, 2017, 9:08:54 AM7/13/17
to dug...@googlegroups.com
Olá!

Daniel: No Delphi mesmo. Geramos um laudo técnico em PDF, que agora precisa ser assinado de forma digital.
A estrutura do PDF prevê este tipo de informação e existem sim APIs para Delphi, tanto para gerar a assinatura quanto para inclui-la no PDF.
Fiz a pergunta para saber se alguém já teve alguma experiência positiva ou negativa com alguma delas.

Elazar: Não encontrei menção à tal API no site, mas vou tentar entender melhor.

Obrigado pessoal.

--
--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-unsubscribe@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Samuel N. Junior

unread,
Jul 13, 2017, 9:38:31 AM7/13/17
to dug...@googlegroups.com
Bom dia Gilberto,

Eu uso o Gnostice eDocEngine VCL (US$ 350,00) que, permite gerar diversos tipos de aquivos (XLS, DOCx, XTML, etc.) e também PDFs (assinados).

Como você gera os laudo técnicos?  Você utiliza algum gerador de relatórios como ReportBuilder, Quick Report, Fast Report, etc.?

Se usar gerador, esse componente pode exportar os relatórios de modo muito simples:  basta incorporar o componente no seu projeto, ativar a propriedade que assina o PDF e, é claro, informar o nome do aquivo que contém seu certificado:



Se não usar gerador de relatórios (isto é, você monta o relatório "na unha"), o eDocEngine também possui recursos para gerar PDFs assinados através de codificação. Abaixo está exemplo do help que mostra como gerar PDFs assinados:

program Digital_Signature_Demo;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, VCL.Graphics,
  gtPDFEng, gtCstPDFEng;

var
  gtPDFEngine1: TgtPDFEngine;
  tNow: TDateTime;
  gtDigitalSignature1: TgtDigitalSignature;
begin
  try begin
    // Create a new PDF document
    gtPDFEngine1 := TgtPDFEngine.Create(Nil);

    with gtPDFEngine1 do begin
      Preferences.ShowSetupDialog := false;
      FileName := 'sample_doc.pdf';
      // Create a hidden digital signature
      with DigitalSignature do begin
        Enabled := true;
        FieldProperties.Visible := false;  // hidden signature
        // Specify signature options
        with SignatureProperties do begin
          CertFileName := 'example-com.pfx'; // assumes current directory
          CertPassword := 'password';
          Location := 'Bangalore';
          Reason := 'Just for this demo';
          DateTime := Now;
        end;
      end;

      BeginDoc;  // Creates a page in the document
        // Render some text on the document
        Font.Size := 16;
        TextOut(1,1,'Long long ago, so long ago, nobody knows how long ago...');
      EndDoc;   // Saves document
    end;
  end
    except on E: Exception do begin
      Writeln('Error - ' + E.ClassName, ': ', E.Message);
      Readln;
    end;
  end;
end.

Você poderá obter uma versão trial dessa VCL no endereço:  https://www.gnostice.com/eDocEngine_VCL.asp.

Lembre-se que você também terá que adquirir um certificado digital de uma empresa certificadora (Comodo, Certisign, Tawte, etc.).

[ ]s

Samuel 

Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+un...@googlegroups.com.

Gilberto Dessbesell Jr

unread,
Jul 13, 2017, 10:09:09 AM7/13/17
to dug...@googlegroups.com
Bom dia Samuel,

uso o Fast Report para gerar os documentos e estou justamente analisando as ferramentas da Gnostice.

Obrigado pele comentário. Provavelmente seguirei por este caminho.

Att.,
Gilberto.

Samuel Carvalho

unread,
Mar 9, 2021, 3:06:05 PM3/9/21
to DUG-RS - Delphi Users Group Rio Grande do Sul
Boa tarde. Depois de muita pesquisa encontrei esse grupo e é exatamente o que necessito.
Preciso assinar pdf com certificado digital A1.
Baixei o componente da Gnostice trial. Fiz como no exemplo que vc (Samuel) deixou e deu certo, mas eu gero meus relatórios no FastReport e já exporto para pdf. Como faço para carregar esse pdf no componente pra poder assinar?
Eu estou testando com o Trial. Vc comprou o componente? Caso sim, qual sua opinião?

Obrigado.
Samuel Carvalho

Samuel Carvalho

unread,
Mar 9, 2021, 3:06:09 PM3/9/21
to DUG-RS - Delphi Users Group Rio Grande do Sul
Boa tarde. Depois de muita pesquisa encontrei esse grupo e é exatamente o que necessito.
Preciso assinar pdf com certificado digital A1.
Baixei o componente da Gnostice trial. Fiz como no exemplo que vc (Samuel) deixou e deu certo, mas eu gero meus relatórios no FastReport e já exporto para pdf. Como faço para carregar esse pdf no componente pra poder assinar?
Eu estou testando com o Trial. Vc comprou o componente? Caso sim, qual sua opinião?

Obrigado.
Samuel Carvalho


Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+un...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Gilberto Dessbesell Jr.

"Simplicidade--a arte de maximizar a quantidade de trabalho não realizado--é essencial."
--
--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para

Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+un...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para

Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
 
Twitter: @dugrs
http://www.facebook.com/groups/dugrs/
http://www.Vimeo.com/dugrs

---
You received this message because you are subscribed to the Google Groups "DUG-RS - Delphi Users Group Rio Grande do Sul" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dug-rs+un...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Samuel N. Junior

unread,
Mar 9, 2021, 5:27:58 PM3/9/21
to dug...@googlegroups.com
Boa noite, Samuel,

Você tentou utilizar o drive para o FastReport que acompanha o eDocEngine? Não conheço esse driver para o FastReport, mas se for como o do QuickReport (ou o do ReportBuilder), é possível exportar o PDF usando o Gnostice.

Não sei se com o eDocEngine é possível abrir um PDF existente e apenas assiná-lo, mas a Gnostice tem outro componente chamado PDFToolKit que deve lhe atender.

Veja um exemplo dele:
program TgtPDFDocument_AddSignature_Hidden;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  gtPDFDoc, gtExPDFDoc;

var
  gtPDFDocument1: TgtPDFDocument;
begin
  // Create a document object
  gtPDFDocument1 := TgtPDFDocument.Create(Nil);

  try
   begin

    // Load input document
    gtPDFDocument1.LoadFromFile('to_be_signed_doc.pdf');
    Writeln('Document opened.');

    // Add a hidden signature field to a page
    gtPDFDocument1.AddSignature(
        'F:\Downloads\sub...@gnostice.com-2010-03-04',
        '-- snipped --',
        'To demonstrate digital signing',
        'Bangalore',
        '+91.80.41.726.529',
        5,
        'fld_sig1');
    Writeln('Document signed.');

    gtPDFDocument1.SaveToFile('signed_doc.pdf');
    Writeln('Document saved.');

   end
  except on Err:Exception do
   begin
     Writeln('Sorry, an exception was raised. ');
     Writeln(Err.Classname + ':' + Err.Message);
   end;
  end;

  // Free resources
  gtPDFDocument1.Reset;

  // Destroy document object
  FreeAndNil(gtPDFDocument1);

  Writeln('Press Enter to exit.');
  Readln;
end.
O link desse componente é: https://www.gnostice.com/PDFtoolkit_VCL.asp

Sim, eu comprei o eDocEngine faz alguns anos e ele funciona bem, porém o suporte da Gnostice é um bem "lento".

[ ]s

Samuel  N. Jr.


Reply all
Reply to author
Forward
0 new messages