Problema com alinhamento no VDOPrint

Delphi

Automação Comercial

02/06/2016

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

Curtidas 0

Respostas

Robson Pinheiro

Robson Pinheiro

02/06/2016

estou com o mesmo problema , consegui alguma solução?
GOSTEI 0
Vitor Ferreira

Vitor Ferreira

02/06/2016

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!
GOSTEI 0
Robson Pinheiro

Robson Pinheiro

02/06/2016


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