Jump to content
Notícias do ACBr

click.png

click.png

click.png

logos

Texto.png

p200

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

Fontes DANFE


Go to solution Solved by Rafael Dias,

Recommended Posts

Boa tarde,

Estou utilizando a impressão do DANFE utilizando a "dll" do linux, versão 64bits, MT. Ao imprimir o danfe, parece que o mesmo não está respeitando a fonte que estou colocando no ACBRLib.

image.thumb.png.7149f95aef0a5290dd77306995e49848.png

Em anexo segue o ACBRLib.ini, o qual troquei a propriedade "Fonte.Nome" para 2. Também setei as fontes dos demais campos para 7, mas mesmo colocando valores mais baixos, as fontes desses campos em específico não mudam.

Estou a disposição para dúvidas.

ACBrLib.ini

Link to post
Share on other sites
  • Fundadores

Realmente os nomes das fontes, estão "hardcoded", dentro dos fontes do ACBr.. veja o trecho abaixo

      // Altera a fonte dos demais campos
      case fpDANFe.Fonte.Nome of
        nfArial:
          begin
            if (UmaBand.Controls[i].Tag <> 20) then
              TRLLabel(UmaBand.Controls[i]).Font.Name := 'Arial';   // <----- AQUI ----
            if (UmaBand.Controls[i].Tag = 3) then
              TRLLabel(UmaBand.Controls[i]).Font.Size := (TRLLabel(UmaBand.Controls[i]).Font.Size) - 1;
          end;
        nfCourierNew:
          begin
            TRLLabel(UmaBand.Controls[i]).Font.Name := 'Courier New';  // <----- AQUI ----
            case UmaBand.Controls[i].Tag of
              0, 703, 704, 705:
                begin
                  TRLLabel(UmaBand.Controls[i]).Font.Size := (TRLLabel(UmaBand.Controls[i]).Font.Size) - 1;
                  if (TRLLabel(UmaBand.Controls[i]).Tag = 705) then
                    TRLLabel(UmaBand.Controls[i]).Top := (TRLLabel(UmaBand.Controls[i]).Top) - 1;
                end;
            end;
          end;
      else
        begin
          if (UmaBand.Controls[i].Tag <> 20) then
            TRLLabel(UmaBand.Controls[i]).Font.Name := 'Times New Roman';   // <----- AQUI ----
          if (UmaBand.Controls[i].Tag = 3) then
            TRLLabel(UmaBand.Controls[i]).Font.Size := (TRLLabel(UmaBand.Controls[i]).Font.Size) - 1;
        end;
      end;
            

 

Provavelmente no Linux essas fontes tem outros nomes...
Acho que o mais correto, seria essa propriedade (ou outra) aceitar uma String com o nome da fonte... ou na pior das hipoteses, fazermos um IFDEF para Linux, atribuindo os nomes corretos para o Linux (mas isso pode variar a cada versão do Linux)

O que acham disso, @Rafael Dias e @José M. S. Junior ?

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to post
Share on other sites
  • Solution

Se não me engano tem como instalar estas fontes no linux sim com estes mesmo nomes, é um pacote a parte senão estou errado.

How to Install Microsoft Fonts on Ubuntu Linux [Easy Way] (itsfoss.com)

  • Like 3
Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to post
Share on other sites
5 horas atrás, José M. S. Junior disse:

Talvez pudesse ser um IfDef definindo o nome das fontes que são padrão no Linux

O problema que dependendo do sabor do linux pode ter fontes diferentes, linux é complicado cada sabor tem sua base.

Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to post
Share on other sites
×
×
  • Create New...