|
引用单元:- unit MainUnt;
-
- {$mode objfpc}{$H+}
-
- interface
-
- uses
- Classes, SysUtils, Forms, Printers;
复制代码 使用现有的打印机:- procedure TForm1.PrintBtnClick(Sender: TObject);
- const
- LEFTMARGIN = 100;
- HEADLINE = 'I Printed My Very First Text On ';
- var
- YPos, LineHeight, VerticalMargin: Integer;
- SuccessString: String;
- begin
- with Printer do
- try
- BeginDoc;
- Canvas.Font.Name := 'Courier New';
- Canvas.Font.Size := 10;
- Canvas.Font.Color := clBlack;
- LineHeight := Round(1.2 * Abs(Canvas.TextHeight('I')));
- VerticalMargin := 4 * LineHeight;
- // There we go
- YPos := VerticalMargin;
- SuccessString := HEADLINE + DateTimeToStr(Now);
- Canvas.TextOut(LEFTMARGIN, YPos, SuccessString);
- finally
- EndDoc;
- end;
- end;
复制代码 打印图形的方法:- procedure TForm1.PrintBtnClick(Sender: TObject);
- var
- MyPrinter : TPrinter;
- myBitMap : TBitMap;
- begin
- myBitMap := TBitMap.Create;
- myBitMap.Width := page.Width;
- myBitMap.Height := page.Height;
- page.BorderStyle:=bsNone;
- page.PaintTo(myBitMap.Canvas, 0, 0);
- page.BorderStyle:=bsSingle;
- //
- MyPrinter := Printer;
- MyPrinter.BeginDoc;
- //page.PaintTo(myPrinter.Canvas, 0, 0);
- //myPrinter.Canvas.Draw(0,0, myBitMap);
- myPrinter.Canvas.CopyRect(Classes.Rect(0, 0, myPrinter.PaperSize.Width, myPrinter.PaperSize.Height),
- myBitMap.Canvas, Classes.Rect(0, 0, myBitMap.Width, myBitMap.Height));
- MyPrinter.EndDoc;
- myBitMap.Free;
- end;
复制代码 |
|