我似乎无法将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;