[ Vdjuric @ 24.05.2005. 01:45 ] @
Kako da nateram program da odstampa sliku koja je otprilike velicine A4 formata (600dpi) ? Znaci..., imam BMP fajl od oko 60-tak mb, i treba da ga posaljem na stampac. KAKO?! koristim printer.canvas.draw, al nesto ne ide... probao sam i sa copyrect...stretchdraw..
da li neko ima ideju kako da nateram program da radi?

poz
[ DelphiBoy @ 24.05.2005. 08:19 ] @
Verovatno si koristio standardne tehnike stampe koje su objasnjene lepo u knjizi Delphi5, kao sto je npr.:

with Printer do begin
BeginDoc;
Canvas.Draw((PageWidth - Bmp.Width ) div 2,
(PageHeight - Bmp.Height) div 2,
Bmp);
EndDoc;
end;

Problem je sto to nece da funkcionise za Windows2000 i WinXP, dok za 98-smicu sve funkcionise. Problem lezi u tome sto sada moras koristiti DIB (device independent bitmap)
sto je Microsoft na svojoj stranici "naglasio"
http://support.microsoft.com/d...95/8/30.asp&NoWebContent=1

Probaj nesto ovako:

procedure TForm1.Button1Click(Sender: TObject);
var
Info : PBitmapInfo;
InfoSize : DWORD;
Image : Pointer;
ImageSize : DWORD;
Bits : HBITMAP;
bmp : TBitmap;
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile('......');
Bits := bmp.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
try
Image := AllocMem(ImageSize);
try
GetDIB(Bits, 0, Info^, Image^);

StretchDIBits(Printer.Canvas.Handle,
5, 30, bmp.Width, bmp.Height,
0, 0, bmp.Width, bmp.Height,
Image, Info^, DIB_RGB_COLORS, SRCCOPY);

finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
bmp.Free;
end;
end;

Obrati paznju na StretchDIBits() API, jer ti je on (bar ja tako mislim) resenje.
[ Vdjuric @ 25.05.2005. 13:59 ] @
Potpuno isto se ponasa sa ovim kodom... :(
stampac kao nesto radi..., kad pogledam u spisak poslova koji se stampaju, prikazuje se status i kada stigne do kraja posao se obrise... stampac (HP1100) tada upali onu signalnu lampicu zute boje i ne pocinje da stampa. Ako pritisnem dugme, onda odstampa skoro sve kako treba - ali na dnu papira nesto zabrlja...
da li mozda stampac nema dovoljno memorije da odradi posao ili sta je vec problem? :(
Ako stvar moze da se pojednostavi - ta velika slika (A4 BMP, 600dpi) se sastoji od gomile malih slicica u 600DPI, koje su poredjane jedna pored druge... Probao sam i njih direktno da saljem na stampac jednu po jednu ali se ponasa potpuno isto - nece da pocne da stampa, a onda pred kraj papira zabrlja zadnjih 3-4cm... :(

poz
[ bancika @ 25.05.2005. 15:03 ] @
kod mene radi Draw na XP, cudno???
[ Vdjuric @ 25.05.2005. 16:11 ] @
Citat:
bancika: kod mene radi Draw na XP, cudno???


Na kom stampacu? BMP Slika A4, 600dpi (oko 60mb)? Kod mene ne radi na HP1100, moguce da nema dovoljno memorije... Moracu da probam na nekom inkjet stampacu...