• 12 odgovora
  • 9.495 pregleda
Stampanje na starim matricnim stampacima?! 02.04.2006. u 08:17 · pre 250 meseci #1
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
Re: Stampanje na starim matricnim stampacima?! 02.04.2006. u 13:12 · pre 250 meseci #2
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) 
Re: Stampanje na starim matricnim stampacima?! 03.04.2006. u 06:50 · pre 250 meseci #3
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.
Re: Stampanje na starim matricnim stampacima?! 03.04.2006. u 12:53 · pre 250 meseci #4
Instaliraj 'Generic / Text Only' iz spiska ponudjenih stampača.
Vezi ga za LPT1: odnosno za port koji ti je vezan printer..
i ... vozi misko

Re: Stampanje na starim matricnim stampacima?! 24.08.2006. u 07:21 · pre 245 meseci #5
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
Re: Stampanje na starim matricnim stampacima?! 28.08.2006. u 23:41 · pre 245 meseci #6
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?
Re: Stampanje na starim matricnim stampacima?! 02.09.2006. u 14:28 · pre 245 meseci #7
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.
Re: Stampanje na starim matricnim stampacima?! 04.09.2006. u 19:53 · pre 245 meseci #9
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;
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Stampanje na starim matricnim stampacima?! 18.12.2006. u 14:04 · pre 241 meseci #10
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;

Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Stampanje na starim matricnim stampacima?! 10.07.2007. u 10:10 · pre 234 meseci #11
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
Re: Stampanje na starim matricnim stampacima?! 12.07.2007. u 09:55 · pre 234 meseci #13
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme