procedure PrintMemo(M: TMemo, ACaption: string); begin with TRichEdit.Create(M.Parent) do try Lines.Assign(M.Lines); Print(ACaption); finally Free; end; end;
Sorry:TMemo后面的逗号“,”应为分号“;”。
在printer对象的canvas上直接画文字。 如: Printer.Title:='BKReport'; Printer.BeginDoc; Printer.Canvas.Font.Name:=TransStr('TitleFont',Canvas.Font.Name); Printer.Canvas.Font.Size:=25; Printer.Canvas.Font.Style:=[fsBold]; Printer.Canvas.Font.Color:=clBlack; PrintRect.Left:=Round(Wid*1.6) div 21; PrintRect.Top:=Hei*5 div 30; PrintRect.Right:=Wid*14 div 21; PrintRect.Bottom:=PrintRect.Top+100; Printer.Canvas.TextRect(PrintRect,PrintRect.Left,PrintRect.Top,TransStr('Section1Label1','Section1Label1')+Edit1.Text); Printer.EndDoc; Screen.Cursor:=crDefault;
呵呵,昨天也写了一个,现在贴出来 procedure TForm1.Button1Click(Sender: TObject); var i:integer; prntext:system.Text; begin if printdialog1.Execute then assignprn(prntext); rewrite(prntext); printer.Canvas.Font :=memo1.Font; for i:=0 to memo1.Lines.Count -1 do writeln(prntext,memo1.lines[i]); system.Close(prntext); end;
begin
with TRichEdit.Create(M.Parent) do try
Lines.Assign(M.Lines);
Print(ACaption);
finally
Free;
end;
end;
如:
Printer.Title:='BKReport';
Printer.BeginDoc; Printer.Canvas.Font.Name:=TransStr('TitleFont',Canvas.Font.Name);
Printer.Canvas.Font.Size:=25;
Printer.Canvas.Font.Style:=[fsBold];
Printer.Canvas.Font.Color:=clBlack;
PrintRect.Left:=Round(Wid*1.6) div 21;
PrintRect.Top:=Hei*5 div 30;
PrintRect.Right:=Wid*14 div 21;
PrintRect.Bottom:=PrintRect.Top+100;
Printer.Canvas.TextRect(PrintRect,PrintRect.Left,PrintRect.Top,TransStr('Section1Label1','Section1Label1')+Edit1.Text); Printer.EndDoc;
Screen.Cursor:=crDefault;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
prntext:system.Text;
begin
if printdialog1.Execute then
assignprn(prntext);
rewrite(prntext);
printer.Canvas.Font :=memo1.Font;
for i:=0 to memo1.Lines.Count -1 do
writeln(prntext,memo1.lines[i]);
system.Close(prntext);
end;