Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 2792|回复: 1

Lazarus调用打印机进行打印的方法

[复制链接]

该用户从未签到

发表于 2013-4-9 17:03:06 | 显示全部楼层 |阅读模式
引用单元:
  1. unit MainUnt;

  2. {$mode objfpc}{$H+}

  3. interface

  4. uses
  5.   Classes, SysUtils, Forms, Printers;
复制代码
使用现有的打印机:
  1. procedure TForm1.PrintBtnClick(Sender: TObject);
  2. const
  3.   LEFTMARGIN = 100;
  4.   HEADLINE = 'I Printed My Very First Text On ';
  5. var
  6.   YPos, LineHeight, VerticalMargin: Integer;
  7.   SuccessString: String;
  8. begin
  9.   with Printer do
  10.   try
  11.     BeginDoc;
  12.     Canvas.Font.Name := 'Courier New';
  13.     Canvas.Font.Size := 10;
  14.     Canvas.Font.Color := clBlack;
  15.     LineHeight := Round(1.2 * Abs(Canvas.TextHeight('I')));
  16.     VerticalMargin := 4 * LineHeight;
  17.     // There we go
  18.     YPos := VerticalMargin;
  19.     SuccessString := HEADLINE + DateTimeToStr(Now);   
  20.     Canvas.TextOut(LEFTMARGIN, YPos, SuccessString);
  21.   finally
  22.     EndDoc;
  23.   end;
  24. end;
复制代码
打印图形的方法:
  1. procedure TForm1.PrintBtnClick(Sender: TObject);
  2. var
  3.   MyPrinter : TPrinter;
  4.   myBitMap : TBitMap;
  5. begin
  6.   myBitMap := TBitMap.Create;
  7.   myBitMap.Width := page.Width;
  8.   myBitMap.Height := page.Height;
  9.   page.BorderStyle:=bsNone;
  10.   page.PaintTo(myBitMap.Canvas, 0, 0);
  11.   page.BorderStyle:=bsSingle;
  12.   //
  13.   MyPrinter := Printer;
  14.   MyPrinter.BeginDoc;
  15.     //page.PaintTo(myPrinter.Canvas, 0, 0);
  16.     //myPrinter.Canvas.Draw(0,0, myBitMap);
  17.     myPrinter.Canvas.CopyRect(Classes.Rect(0, 0, myPrinter.PaperSize.Width, myPrinter.PaperSize.Height),
  18.        myBitMap.Canvas, Classes.Rect(0, 0, myBitMap.Width, myBitMap.Height));
  19.   MyPrinter.EndDoc;
  20.   myBitMap.Free;
  21. end;
复制代码
回复

使用道具 举报

该用户从未签到

发表于 2013-8-19 10:50:11 | 显示全部楼层
谢谢,可以使用。
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 21:16 , Processed in 0.029229 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表