Drukowanie blankietów opłat

0

Cześć. Mam do napisania program, którego zadaniem głównym ma być drukowanie blankietów opłat(te śmieszne różowe druczki :))

I teraz mam do Was pytanie. Jak będzie mi lepiej? Czy może rysować to wszystko na Canvasie np. Image'a, czy jest jakiś fajny komponencik? Osobiście bym chyba wolał na canvasie, ale nie jestem pewien, czy to dobry pomysł, więc pomóżcie.

0

Jeju robiłem taki program chyba 8 miesięcy temu i sprzedawałem go na allegro, a szedł jak woda:) Zeskanuj sobie ten druczek i przeskaluj go tak aby po wydruku był rozmiar oryginalny. A co do pisania na nim zrób przezroczyste labele, czyli w properties daj transparent:=true. Zrób Savedialoga aby zapisywać dane do pliku.
Drukowanie zrób przez printers (uses printers). Resztę zrobisz sobie sam :)

0

Jeju robiłem taki program chyba 8 miesięcy temu i sprzedawałem go na allegro, a szedł jak woda:) Zeskanuj sobie ten druczek i przeskaluj go tak aby po wydruku był rozmiar oryginalny. A co do pisania na nim zrób przezroczyste labele, czyli w properties daj transparent:=true.

No o tym nie pomyślałem. Jak zawsze utrudniać chcę sobie robotę :)
Rozumiem, że mam go dawać powiedzmy na IMAGE'a i te labele też, a potem drukować image'a tak? Ale czy wydrukuje mi wszystko, co jest na imagu(czyli razem z labelami), czy tylko zawartość imaga?

Jeśli się mylę w czymś, to popraw mnie.

0

Wydrukuje Ci wszystko:) Tylko daj na drukowanie formy a nie image'a. Najlepiej jakbyś zrobił aby przy drukowaniu wszystkie komponenty były na Visible:=false; a były tylko widoczne Image czyli ten obrazek oraz Labele:) Jeśli klikniesz na Button Drukuj to żeby też potem zniknął i fajnie wszystko Ci wydrukuje :)

0

Możesz mieć problemy z wpisywaniem do Labela po skompilowaniu programu, więc podaję Ci tu kodzik mały.
Daj na formę Labela. W Properties Formy daj Keypreview:=true; A potem w Events tej Formy w onKeyPress daj taki kodzik:

begin
   if Key<>chr(8) then
      Label1.Caption := Label1.Caption + Key + ' '
   else
      Label1.Caption := Copy(Label1.Caption, 1, Length(Label1.Caption) -2);
end; 

Końcowe

-2

oznacza odległość między znakami czyli literkami. W tym kodzie masz też od razu obsługę usuwania znaków czyli obsługę Backspace :) Labela oczywiście ustaw na Transparent:=true;

Miłego kombinowania :)

0

No właśnie chcę zrobić taką rzecz, że jest forma zmaksymalizowana.
Po lewej stronie różne opcje do wyboru, a po prawej jakby podgląd wydruku.
I chcę, że jak wcisnę DRUKUJ, żeby mi wydrukowało tylko to, co ma wydrukować, a nie całą formę. Czy i jak mogę określić obszar drukowania i skale? Tzn., image oczywiście nie będzie miał rozmiarów A4, a, żeby zrobić jakąś skalę, czy coś, że ma drukować większe niż jest IMAGE(czyli no format A4). I jeszcze oczywiście, żeby nie było jakiś pustych plam na wydruku. Mam nadzieję, że wiesz o co mi chodzi :)

0

Mógłbyś zrobić tak, aby to co wpisujesz na Image'a od razu go drukował bez podglądu żadnego, bo to więcej roboty jest. Mój druczek w rzeczywistości miał 15 na 10,5cm a w Delphi miał wymiary: Width:=510; Height:=361; Więc możesz sobie policzyć jakie wymiaryTwój druczek będzie miał. Ja tu się posłużę do obliczeń moimi wymiarami: (Blankiet 15x10,5cm)
Width:
510pix - 15cm
x - szerokość Twojego druczka
15x = 510szerokość Twojego druczka
x = 510
szerokość Twojego druczka / 15

x to szerokość Twojego wydruku w Delphi (pixele)

Tak samo robisz teraz z wysokoscią:
Height:
361pix - 10cm
y - wysokość Twojego druczka
10x - 361wysokość Twojego druczka
y = 361
wysokość Twojego druczka / 10

y to wysokość Twojego wydruku w Delphi (pixele)

W Properties Formy miałem w opcji PrintScale ustawione PrintToFit. Możesz sobie popróbować z różnym skalowaniem i wydruk zmierzyć linijką i zobaczyć czy się zgadza z faktycznymi wymiarami druczka.

0

OK, wielkie THX!
Jak będę miał jakiś problem jeszcze, to będę pytał :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1