Imprimir o tamanho certo do relatório na impressora

Delphi

26/12/2003

Estou fazendo um programa que imprimi os pedidos em uma impressora pequena, uma espécie de impressora fiscal que possue um rolo de papel que vai sendo puxado a medida que vai sendo impresso, o problema e que existem pedidos que ficam pequenos e pedidos que ficam grandes, desta forma queria que quando estiver acabado de imprimir o pedido a impressora pare de ´soltar´ o papel, do jeito que estou fazendo ela sempre puxa o mesmo tanto de papel toda vez disperdiçando assim muito papel, alguém sabe como posso resolver esse problema????

Desde já agradeço!

dio


Dio

Dio

Curtidas 0

Respostas

Flaviocont

Flaviocont

26/12/2003

vc tem que mandar os dados direto para a impressora


GOSTEI 0
Nigro

Nigro

26/12/2003

qual é a impressora que está usando e qual o métido de impressaão que está usando?


GOSTEI 0
Dio

Dio

26/12/2003

Usando quick report, defini o tamanho do relatório mais no momento de imprimir sempre sai do tamanho A4


GOSTEI 0
Nigro

Nigro

26/12/2003

Qual impressora?


GOSTEI 0
Dio

Dio

26/12/2003

Caro Nigro,

Devolvi a impressora e não estou me recordando qual era, sei que não é tão conhecida pois além de o meu cliente comprar usada ela não vei com driver, não foi reconhecida pelo windows e instalei ela como impressora genérica o negócio tá complicado. Mas faz diferença a impressora nesse tipo de problema?

dio


GOSTEI 0
Nigro

Nigro

26/12/2003

Sim... faz diferença pois sem o driver, sem o windows reconhecer é dificil de imprimir


GOSTEI 0
Jocelino Godoi

Jocelino Godoi

26/12/2003

Aqui vai um exemplo acho que vai ajudar :)

//Impressão direta na impressora, usada para notas fiscais e boletos
//chr(15) - ON Condensada
//chr(18) - OFF Condensada
//chr(27)+chr(64) - Limpa impressora
//chr(14) - ON Expandido
//chr(20) - OFF Expandido

//Usei a porta da impressora
AssignFile(arqprn,´\\servidor\LX300´); ou LPT1
//Usei o arquivo da impressora
ReWrite(arqprn);
//Limpei o BUFFER (memória) da impressora
Write(arqprn,#27 + 64);
//Imprimi o tipo do relatório
WriteLn(arqprn,15 + 14 + ´RELATORIO DE PRODUTOS´ + 20 + 18);
//Imprimi uma linha de 120 caracteres
WriteLn(arqprn,15 + StringOfChar(´-´,130) + 18);
//Fui para o primeiro registro da tabela
dados.tbProd.First;
//Fiz um laço que lerá do 1o. registro até o último
For i:= 1 to dados.tbProd.RecordCount do
begin
//Imprimi o código do produto
WriteLn(arqprn, #15 + ´CODIGO : ´+ FormatFloat(´00000´, StrToFloat(dados.tbProd.FieldByName(´CProd´).AsString)));
WriteLn(arqprn,´NOME : ´+ dados.tbProd.FieldByName(´NProd´).AsString);
WriteLn(arqprn,´MARCA : ´+ dados.tbProd.FieldByName(´NMarca´).AsString);
WriteLn(arqprn,´REFER. : ´+ dados.tbProd.FieldByName(´Ref´).AsString);
WriteLn(arqprn,´FISICO : ´+ FormatFloat(´,0.00´, StrToFloat(dados.tbProd.FieldByName(´Fisico´).AsString)));
WriteLn(arqprn,´CUSTO : ´+ FormatFloat(´,0.00´, StrToFloat(dados.tbProd.FieldByName(´Custo´).AsString)));
WriteLn(arqprn,´VENDA : ´+ FormatFloat(´,0.00´, StrToFloat(dados.tbProd.FieldByName(´Venda´).AsString)) + 18);
WriteLn(arqprn,´ ´);

//Movendo sempre para o próximo registro
dados.tbProd.Next;
end;
//Fechei o arquivo para impressão
WriteLn(arqprn, #15 + StringOfChar(´-´,130) + 18);
Closefile(arqprn);
end;


GOSTEI 0
POSTAR