Membros Pro arpa_sistemas Postado 24 Setembro Membros Pro Postado 24 Setembro (editado) Bom dia. Estou desenvolvendo uma aplicação que irá rodar em windows/linux, responsável por realizar a emissão de documentos fiscais. Porém ao gerar o DANFe da NF-e/NFC-e utilizando o FPDF no linux(sem ambiente visual), está gerando problemas de codificação. Fiz inumeros testes antes de solicitar auxílio aqui no fórum, porém sem sucesso. Meu ambiente linux é um Debian 12 (Bookworm) sem GUI, com o pacote ttf-mscorefonts instalado e a configuração de locale em UTF-8 conforme imagem enviada. Exemplo de requisição do app demo em anexo. DemoACBr.zip Editado 24 Setembro por arpa_sistemas Corpo da mensagem ficou com dados errados
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro Tópico movido para a área do SAC, para que o SLA de respostas seja considerado 14 minutos atrás, arpa_sistemas disse: Bom dia. Estou desenvolvendo uma aplicação que irá rodar em windows/linux, responsável por realizar a emissão de documentos fiscais. Porém ao gerar o DANFe da NF-e/NFC-e utilizando o FPDF no linux(sem ambiente visual), está gerando problemas de codificação. Fiz inumeros testes antes de solicitar auxílio aqui no fórum, porém sem sucesso. Meu ambiente linux é um Debian 12 (Bookworm) sem GUI, com o pacote ttf-mscorefonts instalado e a configuração de locale em UTF-8 conforme imagem enviada. Exemplo de requisição do app demo em anexo. DemoACBr.zip 13.04 kB · 0 downloads Um momento
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro 29 minutos atrás, arpa_sistemas disse: Bom dia. Estou desenvolvendo uma aplicação que irá rodar em windows/linux, responsável por realizar a emissão de documentos fiscais. Porém ao gerar o DANFe da NF-e/NFC-e utilizando o FPDF no linux(sem ambiente visual), está gerando problemas de codificação. Fiz inumeros testes antes de solicitar auxílio aqui no fórum, porém sem sucesso. Meu ambiente linux é um Debian 12 (Bookworm) sem GUI, com o pacote ttf-mscorefonts instalado e a configuração de locale em UTF-8 conforme imagem enviada. Exemplo de requisição do app demo em anexo. DemoACBr.zip 13.04 kB · 1 download Use o comando file no arquivo gerado para saber o tipo de codificação do arquivo: file <nome do arquivo>
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro Eu já havia feito isso para tentar identificar. Segue imagem.
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro Pode ser a maneira que o encoding está sendo tratado no processo de geração do pdf. O locale está correto. Consegue fazer um teste com outro arquivo?
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro Os fontes estão atualizados?
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro (editado) Sim, estão atualizados. Segue: Editado 24 Setembro por arpa_sistemas
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro Como está a configuração de região e idioma?
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro Estou subindo um ubuntu também para efetuar outros testes. 2 minutos atrás, Júlio Cavalcanti disse: Como está a configuração de região e idioma? Seria a imagem que te passei no início?
Consultores Júlio Cavalcanti Postado 24 Setembro Consultores Postado 24 Setembro 4 minutos atrás, arpa_sistemas disse: Estou subindo um ubuntu também para efetuar outros testes. Seria a imagem que te passei no início? Isso mesmo, aparentemente está correto
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro Ocorreu a mesma coisa no ubuntu, com as mesmas configurações
Fundadores Daniel Simoes Postado 24 Setembro Fundadores Postado 24 Setembro Qual compilador é IDE você está usando no Linux ? Observe no código do DANFCe que ele liga os IsITF8 se for FPC... creio que seja necessário o mesmo quando for Linux Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro Eu compilo no Delphi 12 e rodo no Linux, pois o meu Linux não tem interface gráfica. Tentei ativar via código também, porém da mesma forma não obtive sucesso. Continuo testando aqui, caso tenha algum parecer informo.
Consultores Daniel InfoCotidiano Postado 24 Setembro Consultores Postado 24 Setembro Tente reconfigurar: sudo dpkg-reconfigure locales Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro (editado) Já tentei isso também, testei tanto no Debian 12 quando no Ubuntu 22.04. Já testei usando instalação normal do Linux, usando o WSL do windows e usando docker. Editado 24 Setembro por arpa_sistemas
Fundadores Daniel Simoes Postado 24 Setembro Fundadores Postado 24 Setembro 46 minutos atrás, arpa_sistemas disse: Já tentei isso também, testei tanto no Debian 12 quando no Ubuntu 22.04. Por favor teste com a Unit em anexo... Mudei a linha abaixo: SetUTF8({$IfDef USE_UTF8}true{$else}false{$EndIf}); ACBrNFCeDANFeFPDF.pas Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro (editado) Ocorre a mesma coisa. Estou testando as conversões de UTF-8 para Ansi no método ConvertTextToAnsi, para ver se surte algum efeito. Editado 24 Setembro por arpa_sistemas
Fundadores Daniel Simoes Postado 24 Setembro Fundadores Postado 24 Setembro Os fontes estão em ANSI, cp1252... Mas estou desconfiado que o compilador Linix do Delphi converte ele para UTF8.. Por favor experimente cercar uma String acentuada com o ACBrStr() Exemplo; ACBrStr('Homologação') 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Fundadores Daniel Simoes Postado 24 Setembro Fundadores Postado 24 Setembro Consegui reproduzir o problema e estou investigando... Aparentemente ele só ocorre em Delphi compilando em Linux (talvez tb em Android) 2 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro arpa_sistemas Postado 24 Setembro Autor Membros Pro Postado 24 Setembro Boa noite Daniel, efetuei os testes que solicitou e continua ocorrendo o problema. Também tentei alterar o CodePage na compilação do Delphi nesse local, para ver se resolvi o problema. 1
Fundadores Daniel Simoes Postado 24 Setembro Fundadores Postado 24 Setembro Notei que o comando final, que salva o Buffer em Disco, quando em Linux, sempre salva o arquivo como UTF8... e não ANSI (e por enquanto, o FPDF-Pascal, só suporta ANSI) Vou tentar algum ajuste nessa rotina procedure TFPDF.SaveToFile(const vFile: String); begin //Save file locally Close; try Self.buffer.SaveToFile(vFile); except on E: Exception do Error('Unable to create output file: ' + vFile, E); end; end; 4 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro arpa_sistemas Postado 26 Setembro Autor Membros Pro Postado 26 Setembro Bom dia, @Daniel Simoes estava efetuando alguns testes e percebi o seguinte. Primeiramente desliguei a flag Compress para obter o texto em plain text, após isso, fiz gravar o conteúdo do pdf em Stream sem passar pelo disco, e comecei a validação da codificação do mesmo. Usando a função TEncoding.GetBufferEncoding retorna que o texto é ANSI, e usando a função IsUTF8String da unit System.WideStrUtils retorna que o texto é UTF8. Retornando o texto gerado pelo FPDF para o Windows ocorre o problema dos caracteres, agora, se utilizado a função UTF8ToAnsi e retornar o texto gerado o problema dos caracteres é resolvido. Acredito que algo no FPDF continua gerando o caracteres em UTF8 mesmo após a tua sugestão de alteração. Não sei se te ajuda em algo, mas continuo tentando achar uma solução aqui também. 2
Fundadores Daniel Simoes Postado 26 Setembro Fundadores Postado 26 Setembro Oi @arpa_sistemas, sim.. eu notei que parece haver algo errado até mesmo na Unit ACBrUtil.Strings, quando em POSIX (Linux)... Ainda estou investigando o problema... (mas infelizmente estou com pouco tempo para "sentar" na frente do PC) Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Fundadores Daniel Simoes Postado 30 Setembro Fundadores Postado 30 Setembro Ainda não consegui compreender, em que momento, o Delphi Linux, converte o conteúdo para UTF8... De forma paliativa, você poderia: - Remover todos os acentos do PDF - Rodar o comando abaixo, para converter o arquivo de UTF8 para ANSI CP1252 iconv -f UTF-8 -t CP1252 -o ArquivoEmCP1252.pdf ArquivoEmUTF8.pdf Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Fundadores Solution Daniel Simoes Postado 30 Setembro Fundadores Solution Postado 30 Setembro @arpa_sistemas, creio que consegui... enviei uma possível correção ao SVN Commit [r35417] e também ao GIT do FPDF-Pascal https://github.com/Projeto-ACBr-Oficial/FPDF-Pascal 3 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Recommended Posts