如何在FireMonkey中打印TMemo文本

时间:2015-05-19 12:28:16

标签: delphi firemonkey

我似乎无法将TMemo的文本打印出来。我可以打印它,但它打印3个相同的页面。另外,我如何计算totalPages以便程序知道何时停止打印?我不应该使用任何第三方组件。

这是我的代码

function PrintPage(sText:string):boolean;
var
  DestRect:TRectF;
  align:TTextAlign;
  textFill: tFillTextFlags;
  printDialog: TPrintDialog;
  totalPages : integer;
begin
  printDialog := TPrintDialog.Create(nil);
  printDialog.PrintRange := TPrintRange.prAllPages;
  textFill := [];
  align:=TTextAlign.taLeading;
  totalPages := 3;
  if printDialog.Execute() Then
  begin
    with Printer do
    begin
      ActivePrinter;
      BeginDoc;
      while Printer.Printing do
      begin
         DestRect := RectF(50,50,(Printer.Pagewidth - 50),(Printer.PageHeight - 50));
         Canvas.FillText(DestRect,sText,True,1,textFill,align,align);
         if Printer.PageNumber <> totalPages then
           Printer.NewPage
         else
           EndDoc;
       end;
     end;
     Result := not Printer.Aborted;
   end;
 end;

0 个答案:

没有答案