[ MatezYU @ 02.04.2006. 08:17 ] @
Kako bi moglo da se odradi, da se stampac (matricni) ponasa kao u DOS-u, tj. da se koriste njegovi interni fontovi i tako dobije i na brzini i dugotrajnosti trake, umesto da mu se daju instrukcje da stampa preko windows-a kada pola sata stampa jednu a4 stranicu. Dakle hteo bi napraviti neki report u delphiju, ali da naredbe koje dobija printeru za stampanje budu tako shvacene da stampac stampa kao iz dosa...

Pozz
[ badam @ 02.04.2006. 13:12 ] @
Kad mi je to trebalo, snimao sam text koji se štampa u .txt file, a onda ga kopirao na lpt1.
Primer:
Code:

          CopyFile(pchar('c:\aa.txt'),pchar('LPT1'),False) 
[ miksi @ 03.04.2006. 06:50 ] @
Imas razne komponente, pa googlaj, ja koristim z-report sa sorsom, pa je to zgodno jer mozes menjati.Dobra strana su i razne mogucnosti kondenzovane stampe.
[ jozimir @ 03.04.2006. 12:53 ] @
Instaliraj 'Generic / Text Only' iz spiska ponudjenih stampača.
Vezi ga za LPT1: odnosno za port koji ti je vezan printer..
i ... vozi misko

[ juha5803 @ 24.08.2006. 07:21 ] @
Pozdrav,

Imam sličan problem. Instaliran LX-300, u QReportu veličina strane CUSTOM, štampač podešen na veličinu strane 4 inča, ipak kad god odštampam obrazac izađe čitava A4 stranica. Šta ne vidim???

Fontove nekako sredim
[ _v!rus_ @ 28.08.2006. 23:41 ] @
Citat:

Imam sličan problem. Instaliran LX-300, u QReportu veličina strane CUSTOM, štampač podešen na veličinu strane 4 inča, ipak kad god odštampam obrazac izađe čitava A4 stranica. Šta ne vidim???


IMHO, QReport se nekako ne snalazi bas najbolje sa custom velicinama papira, mada to verovatno zavisi i od verzije.
Ja sam par puta morao da koristim CrystalReport od VB 6-ice uvezen kao AX kontrolu, npr. za stampanje uplatnica...

A i epsoni imaju obicaj da na kraju stampe odrade FF (form feed), pa izadje cela strana. Sta ti kaze TQReport.Preview?
[ juha5803 @ 02.09.2006. 14:28 ] @
Preview da izgled i velicinu koja treba. Problem je u tome sto kod XP nema (ili nevidim) mogucnost custom velicine strane u properties od printera. Zalosno sto na W98 to radi bez problema. A nemam mogucnosti da sve vratim na W98.
[ X Files @ 04.09.2006. 19:01 ] @
Bio je davno neki kod za C++ Builder:
http://tinyurl.com/fqe3y
... pa pretpostavljam da se lako moze transfor,isati na Delphi.
[ chachka @ 04.09.2006. 19:53 ] @
Code:

procedure PrintToGeneric(pPrinterName: String; pText: TStrings; pReportName: String; pNoOfColumns: Integer = 80; pMaxNoOfLines: Integer = 66);

  var
    lLineNo, lPageNo: Integer;
    BytesWritten    : DWORD;
    hPrinter        : THandle;
    DocInfo         : TDocInfo1;

  (** procedure PrintOut
   *  Stampa jednu liniju teksta.
   *)
  procedure PrintOut(const pLine: String);
  begin
    if not WritePrinter(hPrinter, @pLine[1], Length(pLine), BytesWritten) then Abort;
  end;

  (** procedure SetupGenericPrinter
   *  Postavlja gustinu karaktera u zavisnosti od broja kolona koje treba stampati
   *  Radi za Epson LX-300 i slicne stampace
   *)
  procedure SetupGenericPrinter;
  begin
    PrintOut(ESC+'x'+#0); // draft
    if      pNoOfColumns <=  80 then PrintOut(ESC+'P'+DC2)  // 10cpi + not condensed
    else if pNoOfColumns <=  96 then PrintOut(ESC+'M'+DC2)  // 12cpi + not condensed
    else if pNoOfColumns <= 137 then PrintOut(ESC+'P'+SI )  // 10cpi + condensed
    else                             PrintOut(ESC+'M'+SI ); // 12cpi + condensed
  end;

begin

  if not WinSpool.OpenPrinter(PChar(pPrinterName), hPrinter, nil) then
    raise Exception.Create('Stampac pod imenom '+pPrinterName+' nije pronadjen!');

  try

    DocInfo.pDocName    := PChar(pReportName);
    DocInfo.pOutputFile := nil;
    DocInfo.pDataType   := 'RAW';

    if StartDocPrinter(hPrinter, 1, @DocInfo) = 0 then Abort;

    try

      if not StartPagePrinter(hPrinter) then Abort;

      try

        SetupGenericPrinter;

        for lPageNo := 0 to pText.Count div pMaxNoOfLines do begin
          for lLineNo := 0 to pMaxNoOfLines-1 do begin
            PrintOut(pText.Strings[pMaxNoOfLines*lPageNo+lLineNo]+CR+LF);
          end;
          PrintOut(FF);
        end;

      finally
        EndPagePrinter(hPrinter);
      end;

    finally
      EndDocPrinter(hPrinter);
    end;
    
  finally
    WinSpool.ClosePrinter(hPrinter);
  end;
  
end;
[ chachka @ 18.12.2006. 14:04 ] @
Da bi gornja procedura radila potrebno je jos i:
Code:

uses
  Classes, Windows, SysUtils, WinSpool;
const
  LF  = #10;
  FF  = #12;
  CR  = #13;
  SI  = #15;
  DC2 = #18;
  ESC = #27;

[ Dejan1985 @ 10.07.2007. 10:10 ] @
I ja imam taj problem sa uplatnicama!
Potrebno je da stampac stampa format uplatnice,
a ne A4, posto se radi o kontinuiranom papiru...
Da li mogu da zamolim bilo koga ko moze da mi da
opsirnije objasnjene za postupak stampanja istih!
Vidim da ste stampali uplatnice, pre...
Hvala
[ stankons @ 10.07.2007. 16:32 ] @
Mi smo koristili FastReport, odlicna komponenta za stampanje na matricnim stampacima... Lepo i jednostavno :)
[ Dejan1985 @ 12.07.2007. 09:55 ] @
Hvala, problem sam resio na uz pomoc samog stampaca,
ne kodom mog programa. Za sada sve funkcionise kako treba,
ukoliko ne bude FastReport cu imati na umu...
Hvala jos jednom!
poz