Ir para conteúdo
  • Cadastre-se

dev botao

Fontes DANFE


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

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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Instalando o pacote que o @Rafael Dias sugeriu, ele ficou idêntico ao que eu possua anteriormente (na versão windows).

image.thumb.png.8a7bec70d0255fc741459b4fc8bc666d.png

 

Acho que seria interessante na versão linux ter essa opção de setar a fonte dos próprios sistemas linux, pois dá um trabalhinho pra instalar esse pacote 😅

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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