Ir para conteúdo
  • Cadastre-se

dev botao

Fontes DANFE


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

Recommended Posts

Postado

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

  • Fundadores
Postado

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.

Postado
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.

 

×
×
  • 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.