当前位置:编程学习 > Delphi >>

用Delphi实现打印功能

 

 

下面以打印在纸张的矩形框内为例简单介绍:
  程序要求:
  单击[打印]按钮,把Memo的内容最多分三行打印出来,每行最多能容纳22个三号字,限定汉字上限为50个汉字。
  编程思路:
  用LineTo和MoveTo函数画一矩形框,根据Memo组件的内容长度用Copy函数把它分割为1到3个子串。在矩形框内美观地输出文字时技术处理为:当输出一行时最多可打印18个汉字,当输出多行时第一、二行分别打印16、18个汉字。
  编程步骤:
  1、首先新建一工程,在窗体上加一个Memo组件Button组件。
  2、Memo组件的Lines值为空,MaxLength值为“100”(即50个汉字),字体为“三号字”;Button的Caption值为“打印”。
  3、添加[打印]按钮的事件处理过程代码Button1.Click,首先在Interface的Uses部分添加Printers,其完整代码如下:

  procedure TForm1.Button1Click(Sender: TObject);

  var StrLen , Left,Top , WordHeight , wordWidth : Integer;

   ContentStr : String[100];

   Str1, Str2, Str3 : String[36];

  begin

   with Printer do

   begin

   Canvas.Font.Size:=16;

   wordHeight:=Canvas.TextHeight

  (字);

   wordWidth:=Canvas.TextWidth

  (字);

   Left:=(Printer.PageWidth-wordWidth*22) div 2;

   Top:=(Printer.PageHeight-wordHeight*7) div 2;

   BeginDOC;

   With Canvas do

   begin

   Pen.Width:=3;

   {画一个22字宽,7个字高的矩形框}

   MoveTo(Left,Top);

   LineTo(Left+wordWidth*22,Top);

   LineTo(Left+wordWidth*22,

  Top+wordHeight*7);

   LineTo(Lef						
		
	
补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,