Einzelnen Beitrag anzeigen

Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#28

Re: Bitmap an den Drucker senden

  Alt 17. Mär 2008, 16:03
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.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat