Imprimir o tamanho certo do relatório na impressora
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
Desde já agradeço!
dio
Dio
Curtidas 0
Respostas
Flaviocont
26/12/2003
vc tem que mandar os dados direto para a impressora
GOSTEI 0
Nigro
26/12/2003
qual é a impressora que está usando e qual o métido de impressaão que está usando?
GOSTEI 0
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
26/12/2003
Qual impressora?
GOSTEI 0
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
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
26/12/2003
Sim... faz diferença pois sem o driver, sem o windows reconhecer é dificil de imprimir
GOSTEI 0
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;
//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