Das mag sein.
Folgend seht ihr meinen letzten Code, der zwar dem Drucker sagt: ok, drucken,aber es wird nichts gedruckt.
Delphi-Quellcode:
...
myGraphic := TBitmap.Create;
if FileExists(ExtractFilePath(Application.ExeName) + '!NewCard.bmp') then
myGraphic.LoadFromFile(ExtractFilePath(Application.ExeName) + '!NewCard.bmp');
X := GetDeviceCaps(PrntHandle,PHYSICALOFFSETX);
Y := GetDeviceCaps(PrntHandle,PHYSICALOFFSETY);
GetDIBSizes(myGraphic.Handle, HeaderSize, ImageSize);
Bitmapheader := VirtualAlloc(nil, HeaderSize, MEM_COMMIT, PAGE_READWRITE);
BitmapImage := VirtualAlloc(nil, ImageSize, MEM_COMMIT, PAGE_READWRITE);
try
StretchDIBits(PrntHandle, 0, 0, 1027, 648, 0, 0, myGraphic.Width, myGraphic.Height, BitmapImage, TBitmapInfo(BitmapHeader^), DIB_RGB_COLORS, SRCCOPY);
finally
...
end;
Noch mal erklärt:
Ich bekomme ein Druckerhandle. Dieses
Handle hält einen angefangenen Druckauftrag fest. Über dieses
Handle muß ich die zu druckenden Daten an den Drucker schicken. Anschließend wird über eine andere Applikation der Druckauftrag mit diesem
Handle beendet.
Ich hoffe das ist soweit verständlich erläutert.