Roversi Postado 8 Abril Postado 8 Abril Estou desenvolvendo um serviço fiscal com lazarus. Eu tenho duas versões do mesmo projeto. A versão LCL (visual) que utilizo em desenvolvimento, facilitando o debug. E a versão Daemon, que é utilizado em produção e instalada como serviço do Windows. Sei que serviço do windows tem algumas limitações por não ter o contexto do usuário (eu não deleguei o usuário em LOGON do serviço). Porém estou com alguns problemas ao gerar o arquivo PDF da NFC-e. Na versão LCL, ele gera o arquivo normalmente, com as fontes tudo certo. Porém na versão Daemon, as fontes fica desporporcional. No print a seguir, a imagem da esquerda foi gerada pelo serviço, a da direita pela versão LCL. Estava utilizando o componente Fortes para a geração do PDF. Eu tentei trocar pelo componente TACBrNFCeDANFeFPDF. Aparentemente ajustatando a propriedade LarguraBobina desse novo componente, ele gera com fontes aceitavel. Porém o layout fica diferente do Fortes. Alguém ja passou por algo semelhante? Sei que o problema não está no ACBr em si. Mas existe algo que consiga configurar para corrigir o carregamento das fontes?
Consultores Juliomar Marchetti Postado 8 Abril Consultores Postado 8 Abril é acesso ao fontes do windows. provavelmente por isso. Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Roversi Postado 8 Abril Autor Postado 8 Abril Inicialmente suspeitei que o problema estivesse relacionado ao acesso às fontes do Windows. Para validar isso, configurei o serviço para rodar com um usuário específico, garantindo permissões adequadas. Porém o comportamento permaneceu o mesmo. Em seguida, fiz testes isolados fora do Fortes Report. Criei um TBitmap e renderizei textos utilizando diferentes fontes (Arial, Lucida Console, etc.), tamanhos e estilos (incluindo negrito). Nesses testes, o serviço conseguiu carregar e aplicar corretamente as fontes, sem problemas aparentes. No entanto, identifiquei que a escala de renderização é diferente entre os ambientes. Ao usar o seguinte código para obter o TextWidth, ele retorna tamanhos diferentes de texto da versão LCL para a versão Daemon. LBMP.Canvas.TextWidth Versão LCL: 93 Serviço (Daemon): 65 Acredito que isso impacta diretamente no Fortes ao montar o relatório
Consultores Juliomar Marchetti Postado 8 Abril Consultores Postado 8 Abril Sim mas dai tu tem no componente como configurar isso. só confer ali Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Roversi Postado 8 Abril Autor Postado 8 Abril Eu já habia tentado ajustar as propriedades : AlterarEscalaPadrao := True; NovaEscala := CalculateScale; // Aqui tentei diversos valores, maior ou menor que a escala padrão 96 Eu percebi o valor de Screen.PixelsPerInch no trecho a baixo, são diferentes em um projeto LCL para um projeto Daemon procedure TACBrNFeDANFCeFortes.ImprimirInterno(const Cancelado: Boolean; const DanfeResumido: Boolean; const AFiltro: TACBrNFeDANFCeFiltro; const AStream: TStream); var frACBrNFeDANFCeFortesFr: TACBrNFeDANFCeFortesFr; RLLayout: TRLReport; RLFiltro: TRLCustomSaveFilter; begin frACBrNFeDANFCeFortesFr := TACBrNFeDANFCeFortesFr.Create(Self); try with frACBrNFeDANFCeFortesFr do begin if AlterarEscalaPadrao then begin frACBrNFeDANFCeFortesFr.Scaled := False; frACBrNFeDANFCeFortesFr.ScaleBy(NovaEscala , Screen.PixelsPerInch); end; no LCL retorna 96 no Daemon retorna 72
Consultores Juliomar Marchetti Postado 8 Abril Consultores Postado 8 Abril Hum . mas conseguiu o resultado esperado? Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Roversi Postado 9 Abril Autor Postado 9 Abril Nada ainda. Nessa imagem é como está sendo impresso a NFC-e utilizando o componente Fortes com escala padrão no modo Daemom. Reapare que as letras parecem se sobrepor. Nessa outra imagem, eu ajusto a escala para menos, 60, ainda utilizando o modo Daemon. Repare que ele de fato ajusta a escala, mas a fonte continua sobrepondo Da mesma forma, se eu aumento a escala (120, ainda com o modo Daemon), ele aplica corretamente, porem as fontes continua sobrepondo Agora utilizando o mesmo codebase, porem compilando com o projeto LCL, reparece como as fontes ficam corretas
Roversi Postado 9 Abril Autor Postado 9 Abril Eu fiz um teste, trocando o componente TACBrNFeDANFCeFortes pelo TACBrNFCeDANFeFPDF, a fonte parece normalizada, porém o layout do relatório fica bem diferente da versão do Fortes. Usando o TACBrNFCeDANFeFPDF, o layout permanece o mesmo entre as versões LCL e Daemon Acredito que possa ser algum comportamento do Fortes quando o projeto não há parte visual
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora