Witam!
Chcę w delphi wydrukować dokument z obrazem i tekstem tzn. układ ma być podobny jak na dowodzie osobistym: Z lewej strony bitmapa a z prawej tekst. Jak to zrobić - w artykułach znalazłem tylko drukowanie tekstu lub bitmapy.
ja kiedys tos takiego rozwiazalem kladac na osobna forme kompponenty (image, shape, label), jej kolor na bialo a potem dawalem Form2.Print;
mi to wystarczalo.
Fajnie, czy to drukuje całą formę(tzn. z paskiem tytułowym)?
wojg768 napisał(a)
Fajnie, czy to drukuje całą formę(tzn. z paskiem tytułowym)?
nie nie, tylko wnetrze.
Dzięki serdeczne - zaraz to ort!.
Trochę ten sposób jakby siermiężny.
Żeby wydrukować tekst i bitmapę równocześnie, nie trzeba żadnych cudów. Korzystasz z właściwości Canvas obiektu printer.
Z grubsza tak to wygląda:
uses printers;
...
var
bmp : TBitmap;
begin
bmp := TBitmap.Create;
bmp.LoadFromFile('Nazwapliku.bmp');
printer.BeginDoc;
printer.canvas.font.size := 16; //np
... //tutaj ustawiasz pozostałe parametry dla tekstu
printer.canvas.textout(50,50,'Tekst do wydrukowania');
printer.canvas.Draw(100,100,bmp); //druk bitmapy
bmp.free;
printer.EndDoc;
end;
szerokość i wysokość canvasu pobierasz z właściwości width i height.
jeżeli masz więcej niż jedną drukarkę w systemie, to ustawiasz jeszcze właściwość index obiektu printer, żeby ustawić na którą drukarkę ma pójść.
frickle napisał(a)
Trochę ten sposób jakby siermiężny.
Żeby wydrukować tekst i bitmapę równocześnie, nie trzeba żadnych cudów. Korzystasz z właściwości Canvas obiektu printer.
[...]
na jedno wychodzi. Form2.Print pobiera obraz formy (GetFormImage) i rysuje go na canvasie i potem drukuje. ale na formie jest szybciej i prosciej. przynajmniej wedlug mnie ;]
Ale co zrobic jesli cala forma nie jest widoczna? Chce wydrukowac format A4 i forma ma bele przewijania w dol i calej jej nie widac i drukuje sie tylko obszar wyswietlany??
Barth napisał(a)
Ale co zrobic jesli cala forma nie jest widoczna? Chce wydrukowac format A4 i forma ma bele przewijania w dol i calej jej nie widac i drukuje sie tylko obszar wyswietlany??
no to wtedy chyba faktycznie trzeba recznie rysowac... :/