Jump to content

Transforme seu banco de dados
em um app mobile!

botao_e_logo_plugmobile1.png

click.png  

 

 

 

 

 

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Ricardo Rohde

ANSWERED Linhas tortas na impressão

Recommended Posts

Olá,

Estou com problema na impressão do boleto usando o FortesReport

Na primeira vez em que gero o boleto as linhas saem tudo bonitinho, já na segunda vez elas ficam todas tortas

o objeto é criado, passado as infos, gerado pdf e na sequência destruido 

linhaTorta.PNG

Share this post


Link to post
Share on other sites

Bom dia, 

Que esquisito, acontece em qualquer impressora?

Att.

  • Like 1

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Share this post


Link to post
Share on other sites
Agora, Juliana Tamizou disse:

Bom dia, 

Que esquisito, acontece em qualquer impressora?

Att.

Juliana, eu não mando imprimir em impressora... no pc em que estou agora nem tem rsrsrs

eu dou um gerar pdf e imprimir pra exibir na tela, o mesmo o ocorre com bradesco e banco do brasil

meu código está assim... eu achei um outro tópico no forum mas o mesmo está sem resposta 

  Boleto := TACBrBoleto.Create(nil);
  BoletoFR := TACBrBoletoFCFortes.Create(nil);
  Boleto.ACBrBoletoFC := BoletoFR;

Boleto.ACBrBoletoFC.LayOut := lPadrao;

Boleto.Cedente ......

Boleto.LayoutRemessa

Titulo := Boleto.CriarTituloNaLista;
with Titulo do
 preenche com todos os dados necessarios...
...
Boleto.ACBrBoletoFC.NomeArquivo := diretorio
    Boleto.GerarPDF;
    Boleto.Imprimir;
    FreeAndNil(BoletoFR);
    FreeAndNil(Boleto);

 

 

Share this post


Link to post
Share on other sites

Olha só o bom é pegar e colher informações para que possamos entender.

Windows é o mesmo de todos?

Versão do Delphi?

Ocorre em ambos? Fortes e Fast?

  • Like 1

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites
23 horas atrás, Juliomar Marchetti disse:

Olha só o bom é pegar e colher informações para que possamos entender.

Windows é o mesmo de todos?

Versão do Delphi?

Ocorre em ambos? Fortes e Fast?

* Windows 7 em todos

* Delphi Berlin

* Só uso Fortes

Share this post


Link to post
Share on other sites

No meu caso consegui resolver tirando do meu fonte essa função que eu usava arredonda ro valor "RoundTo5", acho que ela dava conflito com alguma coisa do LAYOUT do BOLETO. Procura no fonte do sistemas de vocês se estão usando essa função, ou verifica se esta fazendo conta de trucar ou arredondar, divisão.

Share this post


Link to post
Share on other sites
35 minutos atrás, antonio_jr disse:

No meu caso consegui resolver tirando do meu fonte essa função que eu usava arredonda ro valor "RoundTo5", acho que ela dava conflito com alguma coisa do LAYOUT do BOLETO. Procura no fonte do sistemas de vocês se estão usando essa função, ou verifica se esta fazendo conta de trucar ou arredondar, divisão.

Essa função chama a SetRoundMode da unit Math.

Ela altera globalmente a forma como são calculados os arredondamentos, então aparentemente é algo com o Fortes Report, quando o modo está configurado como rmDown ou rmUp.

Foi o que descobri nos testes.

Chamando SetRondMode(rmNearest); antes de executar o método de impressão ou geração do PDF deve resolver.

Ou alterando a função RoundTo5 para voltar ao modo anterior:

var
  rm: TRoundingMode;

[...]

  rm := GetRoundMode;
  try
    xDecimais := Copy(xValor, p + 1, Length(xValor));
    if Length(xDecimais) > nCasas then
    begin
      if xDecimais[nCasas + 1] >= '5' then
        SetRoundMode(rmUP)
      else
        SetRoundMode(rmNearest);
    end;
    nValor := RoundTo(Valor, Casas);
  finally
    SetRoundMode(rm);
  end;

 

  • Like 1

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...