Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

printanje obrazaca

[es] :: Pascal / Delphi / Kylix :: printanje obrazaca

[ Pregleda: 3312 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jhondoe
jhon doe

Član broj: 102619
Poruke: 13
*.cmu.carnet.hr.



Profil

icon printanje obrazaca15.08.2006. u 11:06 - pre 215 meseci

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??
 
Odgovor na temu

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Re: printanje obrazaca15.08.2006. u 11:45 - pre 215 meseci
Mozes lijepo preko apija, imas par fja za to.. pribavis DC printera (device context) i lijepo slazes po njemu..
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: printanje obrazaca15.08.2006. u 21:37 - pre 215 meseci
> 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);  




 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.229.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: printanje obrazaca16.08.2006. u 11:59 - pre 215 meseci
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...
 
Odgovor na temu

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Re: printanje obrazaca18.08.2006. u 09:28 - pre 215 meseci
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
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.229.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: printanje obrazaca18.08.2006. u 11:20 - pre 215 meseci
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 ...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: printanje obrazaca

[ Pregleda: 3312 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.