Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) problemas com impressão direta


flavioavilela

Pergunta

bom dia a todos...

estou fazendo uma impressão direta usando LX300+II com um papel pré-impresso pela porta USB.

não estou conseguindo encaixar de forma alguma as informações nos campos corretamente, sempre sai um pouquinho mais acima, um pouquinho mais abaixo, pra esquerda ou pra direita, nunca onde precisa... e já configurei o papel personalizado com as medidas que preciso aqui e tal....

segue exemplo de um código simples:

with VDOPrinter1 do
  begin
    BeginDoc;
    if PrinterType = ptCanvas then
      CanvasSets.Font.Size:= 14
    else
      //DotMatrixSets.Font.Size:=

    NewLine(2);
    Print(60, EdtNatureza_Operacao.Text, True);
    NewLine(2);
    Print(02, EdtRemetente.Text);
    Print(39, EdtDestinatario.Text, True);
    NewLine(4);
    Print(02, EdtConsignatario.Text, true);
    NewLine(4);
    Print(01, EdtCalculado.Text);
    EndDoc;
  end;

por exemplo, se eu colocar ai 'Print(02, EdtRemetente.Text)', seria pra sair na segunda coluna, mas sai lá pra 10, 12 coluna...

Outra coisa: como eu faço pra saber certin qual a coluna que devo colocar para sair a informação naquele determinado lugar??? alguém já fez isso e possa dar um auxilio????

desde já, obrigado a todos...

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
por exemplo, se eu colocar ai 'Print(02, EdtRemetente.Text)', seria pra sair na segunda coluna, mas sai lá pra 10, 12 coluna...

Outra coisa: como eu faço pra saber certin qual a coluna que devo colocar para sair a informação naquele determinado lugar??? alguém já fez isso e possa dar um auxilio????

Se voce não usar a fonte Courrier ( que tem espaçamentos iguais entre os caracteres ) fica dificil.

outra solução na hora da impressão é controlar a propriedade Top e Left do componente ou do QR

Informações úteis sobre os códigos da impressora

http://scriptbrasil.com.br/forum/index.php...st&p=477817

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
tipo, as configurações do componente (VDOPrint) não funciona... altero a fonte, tamanho, margem esqueda e direita e na hora de imprimir não muda nada... e estou usando a courier mesmo....
Voce deve usar o componente VDODmPrinter

Utilizado para impressão rápida (modo DOS). Específico para impressoras matriciais, opera com padrão Epson, e utiliza o Spool de impressão do Windows

exemplo:

procedure TfrmDemo.SpeedButton2Click(Sender: TObject);

var

I: Byte;

begin

with VDODmPrinter1 do

begin

{ Inicia o Documento }

BeginDoc;

{ Altera o fonte para escrita de um título }

Font.Size := fsLargeCondensed;

{ Imprime o título e avança para linha seguinte }

Print(00,'Título do Relatório', True);

{ Altero o fonte para o tamanho default }

Font.Size := fsCondensed;

{ Imprime um traço e avança para linha seguinte }

Replicate(00, 80);

{ Imprime um cabeçalho de detail e avança para

para linha seguinte apenas quando imprimir a

última coluna }

Print(00,'Código');

Print(10,'Nome');

Print(26,'E-mail');

Print(54,'Linha', True);

{ Imprime um traço e avança para linha seguinte }

Replicate(00, 80);

{ Imprime os detalhes... simulando um loop em um dataset}

for I := 1 to 10 do

begin

Print(00, Format('%6.6d',));

Print(10, 'TVDODmPrinter');

Print(26, 'seuemail@seuservidor.com');

Print(54, 'Esta é a linha numero: ' + Format('%3.3d', [CurrentLine]), True);

end;

{ Avança + duas linhas e imprime o número da página }

NewLine(2);

Print(00,'Página ' + Format('%3.3d', [CurrentPage]), True);

{ Passa à próxima página apenas para exemplificar }

NewPage;

{ Inicio outra paginca para exemplificar o uso das fontes e alinhamento }

Font.Size := fsDefault;

Font.Align := faLeft;

Print(00, 'Fonte padrão, com 10cpp e alinhada a esquerda', True);

Font.Size := fsCondensed;

Font.Align := faCenter;

Print(00, 'Fonte condensada, com 10cpp e alinhada ao centro', True);

Font.Size := fsLargeCondensed;

Font.Align := faRight;

Print(00, 'Fonte condensada expandida, c/10cpp e alinhada a direita', True);

Font.Size := fsLarge;

Font.Align := faLeft;

Print(00, 'Fonte expandida, c/10cpp e al. esquerda', True);

Font.Size := fsDefault;

Font.Align := faLeft;

Font.Style := [fsDmBold];

Print(00, 'Fonte padrão, com 10cpp em "negrito"', True);

Font.Style := [fsDmDoubleStrike];

Print(00, 'Fonte padrão, com 10cpp em "passada-dupla"', True);

Font.Style := [fsDmItalic];

Print(00, 'Fonte padrão, com 10cpp em "italico"', True);

Font.Style := [fsDmSuperScript];

Print(00, 'Fonte padrão, com 10cpp em "sobrescrito"', True);

Font.Style := [fsDmSubScript];

Print(00, 'Fonte padrão, com 10cpp em "subrescrito"', True);

Font.Style := [fsDmUnderline];

Print(00, 'Fonte padrão, com 10cpp em "sublinhado"', True);

Font.Style := [fsDmBold, fsDmItalic];

Print(00, 'Fonte padrão, com 10cpp em "negrito" E "italico"', True);

Font.Style := [];

Font.Pitch := fp12cpp;

Print(00, 'Fonte padrão, com 12cpp', True);

Font.Size := fsCondensed;

Print(00, 'Fonte condensada, com 12cpp', True);

Font.Pitch := fp10cpp;

Font.Size := fsDefault;

Font.FontType := ftNLQ;

Font.NLQFont := ntSansSerif;

Print(00, 'Fonte padrão, com 10cpp e utilizando o tipo NLQ "Sans-Serif"', True);

Font.NLQFont := ntRoman;

Print(00, 'Fonte padrão, com 10cpp e utilizando o tipo NLQ "Roman"', True);

{ Avança + duas linhas e imprime o número da página }

NewLine(2);

Print(00,'Página ' + Format('%3.3d', [CurrentPage]), True);

{ Finalizo o Documento, ejetando a página }

EndDoc;

end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

certo... só estou em dúvida numa coisa... coloquei esse componente e tal... coloquei a fonte como Condensado... só que quando eu coloco essa fonte, antes, para colocar um determinado item em uma linha, eu mandava ele ir pra coluna 20 por exemplo, agora, eu tenho que por 40, 42 pra ir pra mesma linha que antes eu colocava 20... porque isso?????? e outra coisa, não estou conseguindo controlar o espaço entre as linhas... eu coloco uma informação em uma linha e mando ir colocando outras linhas abaixo, ele vai ficando desencaixado, não cai na linha certa.... eu faço assim:

Print(85, qDestinatario.FieldByName('Nome_Fantasia').AsString, true);
o true indica que estou indo pra linha debaixo né... e caso eu preciso ir pra uma, duas linhas abaixo, eu coloco
NewLine(2)

ai ele pula duas linhas.... ai esse pular de linhas está dando boró....

outra coisa que fiz: no papel personalizado, coloquei as margens como 0, pois o papel pré-impresso aqui aparentemente não tem margem, só um contorno aqui.... e ai, o que fazer????

Link para o comentário
Compartilhar em outros sites

  • 0
coloquei esse componente e tal... coloquei a fonte como Condensado... só que quando eu coloco essa fonte, antes, para colocar um determinado item em uma linha, eu mandava ele ir pra coluna 20 por exemplo, agora, eu tenho que por 40, 42 pra ir pra mesma linha que antes eu colocava 20... porque isso??????
Se voce usou

Font.Size := fsCondensed;

significa que os caracteres foram condensados , ou seja , agrupados mais proximos uns dos outros. Então para colocar o caracter novamente na posição correta, voce terá que dar mais espaços ... entendeu ?

exemplo; imagine o espaço normal

1 2 3 4 5 6 7 8 9 0

agora o mesmo espaço condensado

1234567890

por isso tem que dar mais espaços na coluna para imprimir no mesmo lugar anterior

Print(85, qDestinatario.FieldByName('Nome_Fantasia').AsString, true);

o true indica que estou indo pra linha debaixo né..

Veja o exemplo:

{ Imprime um cabeçalho de detail e avança para
para linha seguinte apenas quando imprimir a
última coluna }

Print(00,'Código');
Print(10,'Nome');
Print(26,'E-mail');
Print(54,'Linha', True);
e outra coisa, não estou conseguindo controlar o espaço entre as linhas... eu coloco uma informação em uma linha e mando ir colocando outras linhas abaixo, ele vai ficando desencaixado, não cai na linha certa
{ Avança + duas linhas e imprime o número da página }

NewLine(2);
Print(00,'Página ' + Format('%3.3d', [CurrentPage]), True);
Print(00,''); // voltar a posição inicial de paragrafo

abraço

{ Imprime um traço e avança para linha seguinte }

Replicate(00, 80);

Link para o comentário
Compartilhar em outros sites

  • 0

bom dia meu lider.... está dando quaaaaase certo.... vou simular aqui o que está acontecendo:

Remetente Destinatário

________ ___________

Endereço Endereço

_______ ____________

Município Município

_______ ____________

CNPJ CNPJ

_______ ____________

eu mando imprimir beleza, ele passa pelas linhas do remetente e destinatário beleza, no endereço beleza, ai depois do município já vai ficando ou pouco acima da linha, no CNPJ um pouco mais ainda até chegar um ponto em que uma informação está no lugar da outra saca...... e sempre que eu coloco uma folha pra imprimir sai numa forma, se eu pegar e recolocar ela e mandar imprimir novamente, no mesmo momento em que saiu da impressora, ela já sai ocilando a posição dela novamente saca, nunca vai no mesmo local as linhas......... será porque isso?????? estou usando uma LX300II+.......

desde já, agradeço pela sua atenção....

Editado por flavioavilela
Link para o comentário
Compartilhar em outros sites

  • 0

cara, acho que descobri o problema, só não estou conseguindo resolver rsrs.... quando eu configuro a página personalizada desse papel pré-impresso, ele altera a posição das linhas.... só que, eu messo com a regua certinho, preciso, mas ainda não sai em cima... se eu vou alterando os valores do papel personalizado, ele vai consertando umas linhas e bagunçando outras....... será que eu tenho que configurar também o VDODmPrinter, as propriedades MarginLeft e MarginRight ou outro tipo de configuração????? como fazer isso agora?????? :( :wacko:

Editado por flavioavilela
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...