AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Bitmap drucken erzeugt nur ein weißes Blatt

Bitmap drucken erzeugt nur ein weißes Blatt

Ein Thema von tofse · begonnen am 3. Mai 2012 · letzter Beitrag vom 3. Mai 2012
Antwort Antwort
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#1

Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:42
Hallo,

ich versuche, ein Bitmap zu drucken. Im PDFCreator klappt das, aber sobald ich einen anderen Drucker auswähle, kommt nur ein weißes Blatt raus
Im Forum habe ich diese Lösung gefunden:
Code:
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;
Damit funktioniert es, aber ich würde gerne verstehen, wo das Problem liegt. Bei uns im Haus gibt es doch viele verschiedene Druckermodelle, und da möchte ich mich schon auf eine Lösung verlassen können, ohne jeden Drucker auszutesten...

Gruss
Christof
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:45
Funktioniert der Quelltext generell oder ist das der Quelltext der nicht immer funktioniert?

Ich vermute mal das ist der Quelltext der immer funktioniert. Dir jetzt zusagen warum mit deinem anderen Quelltext das ganze nicht immer funktioniert fällt natürlich schwer wenn man den Quelltext nicht kennt. Ich vermutet du verwendest StretchBlt oder BitBlt in deinem anderen Quelltext anstelle von Stretchdibits
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#3

AW: Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:47
Achso
der obige Code funktioniert.
Mein Versuch ist mit Printer.Canvas.StretchDraw(); gescheitert (aus bei einem PDF Drucker)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:48
Dann sollte meine Begründung stimmen. Es liegt am Stretchdraw.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
131 Beiträge
 
Delphi XE Professional
 
#5

AW: Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:50
Es liegt am Stretchdraw.
Und warum ?
Mit Draw hat es auch nicht funktioniert, und das habe ich aus diesem Tipp: Bild drucken
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Bitmap drucken erzeugt nur ein weißes Blatt

  Alt 3. Mai 2012, 12:52
Weil das zeichnen von StretchBlt und BitBlt (was intern verwendet wird) nicht für Drucker geeignet ist. Deswegen verwendet man StretchDIBits
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz