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