Problema com alinhamento no VDOPrint

02/06/2016

0

Olá a todos!

Estou tentando fazer a impressão dos cupons não fiscais, porém estou com um problema na hora de posicionar os elementos no papel.

Quando utilizo a propriedade Font.Align do VDOPrinter e alinho o elemento a direita, ele não aparece no papel, assim como quando uso o "taCenter" ele nao fica exatamente no centro.

http://prntscr.com/bbjdg3

Eu acho que tem a ver com o fato de a configuração do papel estar maior do que deveria ser! Alguem sabe como resolver isto? Obrigado.
Vitor Ferreira

Vitor Ferreira

Responder

Posts

07/06/2016

Robson Pinheiro

estou com o mesmo problema , consegui alguma solução?
Responder

07/06/2016

Vitor Ferreira

Sim, eu formatei a fonte para Courier New e contei quantos caracteres cabe por linha. Vou citar o código pra ser mais fácil de explicar:

texto := length((FMForm.empresaQuery['nome']));
AlignCenter(29, texto);
Print(00, (branco + FMForm.empresaQuery['nome']) + branco, True);


29 é o numero de caracteres que cabe na linha
texto é o numero de caracteres que vao ser digitados na linha (ps: texto: extended)
branco vai armazenar os espaços que depois vao ser inseridos para deixar no meio


procedure TCIForm.AlignCenter(linha: extended; texto:extended);
var i : integer;
espaco: extended;
begin
branco := '';
espaco := (linha-texto)/2;
for i := 1 to Round(RoundDn(espaco)) do
branco := ' ' + branco;
end;


Utilizei a função RoundDn pra sempre arredondar pra baixo no caso de der números decimais. Ela não é nativa do Delphi.
espaco é os caracteres que sobrarão sem preencher, dividimos por 2 para colocarmos metade dos espaços à esquerda e a outra à direita.

Se conseguir resolver usando o outro método me avise!
Responder

22/06/2016

Robson Pinheiro


amigo como vc fez essa função RoundDn funcionar , não consegui :(
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar