Einzelnen Beitrag anzeigen

Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#4

Re: kurioses Problem: TBitmap drucken -> Lexmark druck ni

  Alt 23. Jul 2008, 16:38
Hallo,

hatte auch mal ein ähnliches Problem, wo bei bestimmten Druckern nur ein weißen Blatt heraus kam. Habe dann irgendwo im Forum eine Lösung gefunden und entsprechend angepasst.

Delphi-Quellcode:
procedure PrintBitmap(aCanvas: TCanvas; Dest: TRect; Bitmap: TBitmap);
var Info: PBitmapInfo;
    InfoSize: DWord;
    Image: Pointer;
    ImageSize: DWord;
begin
  with Bitmap do
  begin
    GetDIBSizes(Handle, InfoSize, ImageSize);
    Info := AllocMem(InfoSize);
    try
      Image := AllocMem(ImageSize);
      try
        GetDIB(Handle, Palette, Info^, Image^);
        if not Monochrome then
          SetStretchBltMode(ACanvas.Handle, STRETCH_DELETESCANS);
        with Info^.bmiHeader do
          StretchDIBits(aCanvas.Handle, Dest.Left, Dest.Top,
            Dest.RIght - Dest.Left, Dest.Bottom - Dest.Top,
            0, 0, biWidth, biHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
      finally
        FreeMem(Image, ImageSize);
      end;
    finally
      FreeMem(Info, InfoSize);
    end;
  end;
end;
aCanvas ist die Drucker-Zeichenfläche, Dest die Seitengröße.

Sollte es immer noch nicht klappen, ist Dein Drucker entweder wirklich kaputt oder der Tank ist leer...

Gruß RoGa
Ronald
  Mit Zitat antworten Zitat