Einzelnen Beitrag anzeigen

Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#1

Große Bitmaps drucken zerschiessen Spoolsystem

  Alt 9. Okt 2006, 15:37
Hallo,

ich muss Bitmaps mit einer Auflösung von ca. 3500x2400 bzw. 2400x3500 Pixel drucken.
Dabei habe ich das Problem, das mir regelmäßig das Drucksystem von Windows XP (wahrscheinlich auch andere Systeme ) den Bach runter geht. Das macht sich Bemerkbar, das beim erneuten Ausdruck eine leere Seite ausgedruckt wird.
Erst ein Neustart der Druckerwarteschlange unter Verwaltung->Dienste bringt das System wieder zum drucken.

Hier der relativ simple Quellcode:
Delphi-Quellcode:
   seitenHoehe:=printer.PageHeight;
   seitenBreite:=printer.PageWidth;

                
        Printer.BeginDoc;
        image:=TImage.create(nil);
   try
      image.Picture.LoadFromFile(bildpfad);
        except
      messagedlg('Konnte das Bild "'+bildpfad+'" nicht laden',mterror,[mbok],0);
                image.free;
              continue;
        end;
   bitmap:=TBitmap.Create;

   GRect.Left:=0;
   GRect.Top :=0;
   bitmap.assign(image.Picture.graphic);

   w:=Image.Picture.width;
        h:=Image.Picture.height;
        if w > h then begin
      rotateBitmap(bitmap,90);
      hlp:=w;
      w:=h;
      h:=hlp;
   end;

   if h/w < seitenHoehe / seitenBreite then begin
      GRect.Bottom := Trunc(((h / f) / (w/f)) * seitenBreite);
      GRect.Right := trunc(seitenBreite);
   end else begin
      GRect.Bottom := trunc(seitenHoehe);
      GRect.Right := Trunc( (w/f) / (h/f) * seitenHoehe);
   end;

        Printer.Canvas.StretchDraw(Grect,bitmap);

   bitmap.Free;
   image.free;
   Printer.enddoc;
Freue mich über anregungen wie man das Problem in den Griff bekommen kann.

Mir ist auch aufgefallen, das einige Drucker(treiber) direkt eine weiße Seite ausdrucken, andere wenigstens das Bild einmal ausdrucken bevor das Spoolsystem den Geist aufgibt.

Sven
PS:Benutze Delphi6
:wq /dev/null
He who fights with monsters might take care lest he thereby become a monster - Nietzsche
  Mit Zitat antworten Zitat