Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 4.106 pregleda

Najnovija ↓

printanje obrazaca 15.08.2006. u 12:06 · pre 246 meseci #1

Pomoć molim. koji je najjednostavniji način za printanje labela na neki obrazac npr. svjedodžbu.
Dosad sam radio sa "printer.Canvas.TextOut(400,300,label1.caption);", ali na printerima različite kvalitete printe na različitim položajima.
kako da postignem da na svim printerima ispisuje labele na istom mjestu tj. neovisno o kvaliteti printera??
Re: printanje obrazaca 15.08.2006. u 12:45 · pre 246 meseci #2
Mozes lijepo preko apija, imas par fja za to.. pribavis DC printera (device context) i lijepo slazes po njemu..
Re: printanje obrazaca 15.08.2006. u 22:37 · pre 246 meseci #3
> Pomoć molim. koji je najjednostavniji način za printanje labela na neki obrazac npr. svjedodžbu.
> Dosad sam radio sa "printer.Canvas.TextOut(400,300,label1.caption);", ali na printerima različite kvalitete printe na različitim položajima.
> kako da postignem da na svim printerima ispisuje labele na istom mjestu tj. neovisno o kvaliteti printera??

Razlog je rezolucija štampača. Pre štampanja moraš saznati rezoluciju štampača pomoću GetDeviceCaps funkcije, npr.
Code:

  // Pronalazimo rezoluciju u dpi (tackama po incu)
  PrinterRes.x := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
  PrinterRes.y := GetDeviceCaps(Printer.Handle, LOGPIXELSY);

  // Rezolucija u milimetrima
  HorResolution := FPrinterRes.x / 254 * 10;
  VerResoulution := FPrinterRes.y / 254 * 10;  


Dalje je lako, pomnožiš poziciju teksta u mm sa gore dobijenom rezolucijom u mm a dobijenu poziciju u pikselima posle regularno koristiš u funkcijama za štampanje teksta.

Za slučaj da ti zatreba i nonprintable area štampača:

Code:

  PrintOrigin.X := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
  PrintOrigin.Y := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);  



Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: printanje obrazaca 16.08.2006. u 12:59 · pre 246 meseci #4
A zasto se uopste patis sa stampanjem tako kako vec stampas? Uzmi lepo neki report engine tipa QuickReport ili RaveReport zavisno od verzije Delphija koju koristis i lepo slozis vizuelno kako ces da ti izgleda stranica koju stampas i gotovo, nema gledanja koji je printer i koja mu je rezolucija vec ce ti se to kako namestis uvek stampati isto...
Potpis
ex Strog

http://www.zeussoftware.rs
Re: printanje obrazaca 18.08.2006. u 10:28 · pre 246 meseci #5
Ja sam uvijek za sto manje koristenje tudjih komponenata i engineova.. ne govorim da opet treba izmisljat toplu vodu, al BDS je sa VCL-om sam po sebi zeznut jer je prelagan za koristenje i onda svi odmah umisle da znaju programirat jer rade dosta programa za cas posla... a onda kad predju na C++ i cist WinAPI.. onda se malo useru :)
Re: printanje obrazaca 18.08.2006. u 12:20 · pre 246 meseci #6
Ne vidim nikakav razlog za zagorcavanje zivota samom sebi... Zasto ne bih koristio ono sto je puno lakse za koriscenje i uradio relativno brzo neki program od kojeg mogu lepo da zivim umesto da se zezam sa WinAPI-jem i da 100 godina jurim bagove posto nista "ne vidim". A ako budem prelazio na C++ preci cu opet na Borlandovu varijantu pa ce mi biti isto kao i sa Delphijem :D...
Potpis
ex Strog

http://www.zeussoftware.rs
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme