Ir para conteúdo
  • Cadastre-se

Erro ao obter PDF do CIOT


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

Recommended Posts

  • Consultores
Postado

Dúvida esse campo retorna uma URL ou o arquivo binário do PDF?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Bom dia Cleonir,

No manual que tenho, consta que na versão 3.6 do mesmo publicado em 04/01/2016 diz:

Melhorias nas explicações de parâmetros de quebra e diferença de frete. Método ObterOperacoesTransporteAgrupadasPdf foi descontinuado.

Se o método que retorna o PDF foi descontinuado porque ele continua funcionando?

Em vez de retornar o PDF deveria pelo menos retornar uma rejeição acusando que o método foi descontinuado.

Fiz uma alteração no componente, mudei o tipo da propriedade PDF de String para AnsiString e na unit ACBrCIOTWebServices alterei o método responsável por salvar o PDF em disco, pois o que estava sendo utilizado pressupunha que o conteúdo do arquivo a ser salvo é um XML, que não é o caso.

Favor atualizar os fontes e faça novos testes.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

na classe gerado pela importação do WSDL o campo pdf ficou do tipo TByteDynArray do  System.Types

para salvar em arquivo eu fiz da seguinte forma

var  Arquivo:TStringStream;

Arquivo:=TStringStream.Create;

Arquivo.WriteData(Retorno.Pdf, Length(Retorno.Pdf));
Arquivo.Seek(0,0);
Arquivo.SaveToFile(extractfilepath(application.exename) +'PDF_CIOT\'+nomeArquivo.pdf');

Arquivo.Free;

 

Não sei se isso ajuda em alguma coisa...

  • Curtir 1
  • Consultores
Postado

Bom dia Cleonir,

A ultima alteração que fiz ficou desta forma:

          PDF := leitor.rCampo(tcEsp, 'Pdf');

          if PDF <> '' then
            PDF := UnZip(DecodeBase64(PDF));

Se a sua unit esta exatamente desta forma, experimente remover o UnZip, deixando a linha da seguinte forma:

PDF := DecodeBase64(PDF);

Faça um novo teste e vamos ver se o PDF é salvo corretamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia a todos...

Quando precisei do CIOT o componente do ACBR ainda não estava pronto, e eu tive que desenvolver por conta própria...

Lembro que nessa parte do PDF apanhei um pouco também.

Acho que isso possa ajudar vocês...

Fiz dessa forma.

function Converter(P: TByteDynArray): string;
var
  Buffer: AnsiString;
begin
  SetLength(Buffer, Length(P));
  System.Move(P[0], Buffer[1], Length(P));
  Result := EncodeBase64(Buffer);
end;

 

var
  MStream : TMemoryStream;
  Decoder : TidDecoderMIME;
  Base64, AuxDtCIOT: string;
 

    Decoder   := TidDecoderMIME.Create(nil);
    MStream   := TMemoryStream.Create;
    Base64    := Converter(Retorno.Pdf);
    Decoder.DecodeStream(Base64,MStream);
    MStream.SaveToFile(xCamCIOT+'\'+AuxDtCIOT+'\'+TiraZeros(txtCod.Text)+'.pdf');
    FreeAndNil(Decoder);
    FreeAndNil(MStream);

 

Grato,

Wagner

  • Curtir 1
Postado
3 horas atrás, Italo Jurisato Junior disse:

Se a sua unit esta exatamente desta forma, experimente remover o UnZip, deixando a linha da seguinte forma:

PDF := DecodeBase64(PDF);

Faça um novo teste e vamos ver se o PDF é salvo corretamente.

Boa tarde Italo.

Removendo o UnZip resolveu o problema.

Você faz este ajuste ou precisa que eu adicione o arquivo alterado?

Postado
Em 10/03/2020 at 09:35, Italo Jurisato Junior disse:

Bom dia Cleonir,

Legal, já fiz a correção no componente e enviei para o repositório.

Muito obrigado pelos testes.

Beleza.

Atualizei hoje, testei e esta tudo ok.

  • Curtir 2
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 2290 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...