Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Bild in TImage auf dem Drucker ausdrucken

  Alt 31. Jul 2021, 11:10
Hi x86DOS
Delphi-Quellcode:
var
  image:TImage;
  txt:String;
  printDialog:TPrintDialog;
  ...
  image:=...;
  txt:='...';

  printDialog:=TPrintDialog.Create(nil);
  printDialog.FromPage:=1;
  printDialog.ToPage:=1;
  printDialog.MinPage:=1;
  printDialog.MaxPage:=1;
  printDialog.PrintRange := TPrintRange.prAllPages;
  if printDialog.Execute() Then
  begin
    Printer.Title:=txt;
    Printer.ActivePrinter;
    Printer.ActivePrinter.SelectDPI(600,600);
    Printer.Canvas.Fill.Color := TAlphaColors.Black;
    Printer.Canvas.Fill.Kind := TBrushKind.Solid;
    Printer.BeginDoc;
    Printer.Canvas.Font.Size:=120;
    Printer.Canvas.FillText(RectF(0,0,Printer.PageWidth,Printer.PageWidth/20),txt,True,1,[],TTextAlign.Leading,TTextAlign.Leading);
    Printer.Canvas.DrawBitmap(Image.bitmap,
                              RectF(0,0,Image.bitmap.Width,Image.bitmap.Height),
                              RectF(0,Printer.PageWidth/20,Printer.PageWidth/3,Printer.PageWidth/10+Printer.PageWidth/3),1,false);
    Printer.EndDoc;
  end;
  printDialog.Free();
Und wo bestimmst du hier, welcher Drucker verwendet werden soll? Mit Printer.ActivePrinter jedenfalls nicht - in diesem Property ist der Drucker gespeichert, der zuletzt verwendet wurde, und das kann irgendeiner sein - oder eben der, den du verwendest, wenn du irgendwas ausdruckst. Falls seit dem letzten Windowsstart nichts gedruckt wurde, ist das der oberste Item in der Windows Druckerliste.
Es sei denn, du weist dem Property einen Drucker zu.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat