To imprimindo via assignPrn - Como evitar saltar página

Delphi

01/10/2003

Olá, to usando a Rotina do Zanela p/ imprimir direto na Impressora via AssignPrn....

que comando tenho q injetar (´heroina não ;-)´) na impressora p:

1o. Saltar página

2o. Não saltar página - Qdo terminar de imprimir ficar parado onde ta a impressora

Desde já Agradeço a Grande Ajuda.


Rfpsatin

Rfpsatin

Curtidas 0

Respostas

Cernica

Cernica

01/10/2003

Tabém estou precisnado de algo que imprima direto para impressora e não salte a página, para onde terminar de imprimir.

Se alguém tiver idéias, agradeço.


GOSTEI 0
Rfpsatin

Rfpsatin

01/10/2003

hehehe
legal,legal

não to ferrado sozinho rs....

salve colega, tenha fé rs..


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

01/10/2003

Colega,

Ao invés de AssignPrn, utilize AssignFile(File, ´LPT1:´).


GOSTEI 0
Rdare

Rdare

01/10/2003

Procure um componente na pagina do Elivaldo.
http://www.elivaldo.com.br/


GOSTEI 0
Rfpsatin

Rfpsatin

01/10/2003

AssignFile(arquivo, ´LPT1:´);

// AssignPrn(Arquivo);

// ReWrite(Arquivo); Dá erro nas 2 formas
// Reset(Arquivo);



Write(Arquivo,Char(27)+´M´+Char(18)); // Modo condensado
Write(Arquivo,Char(27)+´X´+´0´); // Rápido

Imprimir := PadR(´ORCAMENTO NUMERO: ´ + ´2225´,51,´ ´) +
´DATA: ´ + DateToStr(Date) +
´ HORA: ´ + TimeToStr(Time);
WriteLn(Arquivo, Imprimir);

Não to conseguindo imprimir Aroldo, vc pode me dizer q q ta errado, da erro de I/O 105.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

01/10/2003

Colega,

Achei um outro exemplo:

Const nSalto = 54;
var Arquivo: TextFile;
Linha: String;
    Tbl: String;
    nLPP: Integer; // Linhas por página
    nPagina: Integer; // Número da página
    cDestino: String;
    nI, nTotal: Integer; // Registro atual e total de registros
begin

ConfigLocal1.Execute;

if rgDispositivo.ItemIndex=0 then // 0 = Arquivo, 1 = Impressora
  if sdArquivo.Execute then cDestino:= sdArquivo.FileName
  else
  cDestino:= ConfigLocal1.CaminhoLPT; // Pega a impressora da rede

AssignFile(Arquivo,cDestino);
  ReWrite(Arquivo);

Tbl := ´ ´;
  nPagina:= 0;
qPrecos.Open;

  nTotal := qPrecos.RecordCount;
  nI      := 0;

  while not qPrecos.Eof do
  begin
  Inc(nPagina);
  WriteLn(Arquivo,ConfigLocal1.Denominacao);
  WriteLn(Arquivo,´TABELA DE PRECOS                                               EMISSAO: ´+FormatDateTime(´ddddd´,Date));
  WriteLn(Arquivo,´CODIGO        DESCRICAO                                VR PROMOCAO   VR DE VENDA´);
  WriteLn(Arquivo,´------------- ---------------------------------------- ------------ ------------´);
  nLPP:= 0;
  while (not qPrecos.Eof) and (nLPP <= nSalto) do
  begin
Inc(nI);
      Inc(nLPP);
      WriteLn(Arquivo,
      PadR(qPrecosBARRAS.AsString,13,´ ´) + Tbl +
              PadR(qPrecosDESCRICAO.Value,40,´ ´) + Tbl +
              PadL(FloatToStrF(qPrecosVR_PROMO.Value,ffNumber,12,2),12,´ ´) + Tbl +
              PadL(FloatToStrF(qPrecosVR_VENDA.Value,ffNumber,12,2),12,´ ´));

gProgresso.Progress:= Trunc((nI/nTotal) * 100);
  qPrecos.Next;
end;
    while (nLPP <= nSalto) do
    begin
     WriteLn(Arquivo,´´);
      Inc(nLPP);
    end;
    WriteLn(Arquivo,´PAG: ´+Format(´¬5d´,[nPagina])+12);
  end;

  qPrecos.Close;
  CloseFile(Arquivo);
  Close;



GOSTEI 0
Aroldo Zanela

Aroldo Zanela

01/10/2003

Colega,

Quanto ao erro e I/O, certifique-se na configuração de sua impressora (propriedades) que a mesma está em LPT1, ou \\rede\nomeLPT.


GOSTEI 0
Rfpsatin

Rfpsatin

01/10/2003

Obrigado Aroldo, vou fazer alguns testes aqui.

Só um detalhe, a impressora esta corretamente configurada em LPT1, pela rede + está.

muito obrigado novamente.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

01/10/2003

Colega,

Se é uma impressora de rede, você deve colocar o compartilhamento ao invés de LPT, por exemplo: AssignFile(Arquivo, ´\\servidor\hp´);.


GOSTEI 0
Rfpsatin

Rfpsatin

01/10/2003

rs...

A ficha Caiu.

Obrigado.


GOSTEI 0
POSTAR