Ir para conteúdo
  • Cadastre-se

dev botao

ASSINAR ARQUIVOS PDF E XML


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1584 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
41 minutos atrás, UEMERSON NEGREIRO DA SILVA disse:

Bom dia  como que faço para assinar Documentos em PDF e XML ?

Xml já é feito no ACBr basta olhar como é feito

PDF tem que usar alguma ferramenta, por exemplo gnostice tem e outros da tms senão me engano

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Juliomar Marchetti disse:

Xml já é feito no ACBr basta olhar como é feito

PDF tem que usar alguma ferramenta, por exemplo gnostice tem e outros da tms senão me engano

O xml eu já estou conseguindo assinar ele....

já o PDF que esta meio complicado...

Talvez você possa me ajudar Juliomar..

eu estou usando esse Código para poder assinar o PDF...

Só que o Validador de assinatura diz que o documento não foi assinado...

function TFCenprot.assinar(caminho: string): string;
var
  fs : TFileStream;
  qt : integer;
  ch : PChar;
  msg, content : WideString;
   SignedData : ISignedData;
 ISigner : ISigner2;
begin
  { Abre o arquivo original para obter dele o conteúdo a ser assinado }

  fs := TFileStream.Create (caminho, fmOpenRead);
  New (ch);
  repeat
  qt := fs.Read(ch^, 1);
  if (qt > 0) then
  content := content + ch^;
  until qt = 0;
  fs.Free;
  Dispose (ch);


    if(Certificado = nil) Then
     buscaceritifcado;


   ISigner := CoSigner.Create;
   ISigner.Certificate := Certificado;

   SignedData := CoSignedData.Create;
   SignedData.Content := content;

    msg := SignedData.Sign(ISigner, true, CAPICOM_ENCODE_BASE64 );

   fs := TFileStream.Create ('C:\XML\13112019144_Ass.pdf', fmCreate);
    for qt := 1 to Length (msg) do
    fs.Write(msg[qt], 2);

  
    fs.Free;


end;

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1584 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.