Membros Pro arpa_sistemas Postado Terça as 12:27 Membros Pro Compartilhar Postado Terça as 12:27 (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 Terça as 12:30 por arpa_sistemas Corpo da mensagem ficou com dados errados Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 12:38 Consultores Compartilhar Postado Terça as 12:38 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 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 12:58 Consultores Compartilhar Postado Terça as 12:58 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> Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 13:00 Autor Membros Pro Compartilhar Postado Terça as 13:00 Eu já havia feito isso para tentar identificar. Segue imagem. Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 13:07 Consultores Compartilhar Postado Terça as 13:07 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? Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 13:13 Consultores Compartilhar Postado Terça as 13:13 Os fontes estão atualizados? Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 13:14 Autor Membros Pro Compartilhar Postado Terça as 13:14 (editado) Sim, estão atualizados. Segue: Editado Terça as 13:15 por arpa_sistemas Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 13:51 Consultores Compartilhar Postado Terça as 13:51 Como está a configuração de região e idioma? Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 13:52 Autor Membros Pro Compartilhar Postado Terça as 13:52 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? Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Júlio Cavalcanti Postado Terça as 13:56 Consultores Compartilhar Postado Terça as 13:56 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 Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 14:44 Autor Membros Pro Compartilhar Postado Terça as 14:44 Ocorreu a mesma coisa no ubuntu, com as mesmas configurações Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Terça as 15:42 Fundadores Compartilhar Postado Terça as 15:42 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. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 16:50 Autor Membros Pro Compartilhar Postado Terça as 16:50 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. Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Daniel InfoCotidiano Postado Terça as 18:38 Consultores Compartilhar Postado Terça as 18:38 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 Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 18:43 Autor Membros Pro Compartilhar Postado Terça as 18:43 (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 Terça as 18:45 por arpa_sistemas Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Terça as 19:31 Fundadores Compartilhar Postado Terça as 19:31 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. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 20:12 Autor Membros Pro Compartilhar Postado Terça as 20:12 (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 Terça as 20:14 por arpa_sistemas Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Terça as 20:37 Fundadores Compartilhar Postado Terça as 20:37 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. Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Terça as 23:21 Fundadores Compartilhar Postado Terça as 23:21 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. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Terça as 23:47 Autor Membros Pro Compartilhar Postado Terça as 23:47 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 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Terça as 23:50 Fundadores Compartilhar Postado Terça as 23:50 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; 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. Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro arpa_sistemas Postado Quinta as 14:30 Autor Membros Pro Compartilhar Postado Quinta as 14:30 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 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado Quinta as 22:02 Fundadores Compartilhar Postado Quinta as 22:02 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. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts