Delphi 打印 Tprinter(1)

本文详细介绍了Delphi中使用TPrinter对象进行打印的基础知识,包括如何开始和结束打印作业,以及TPrinter的重要属性和方法。通过TPrinter.Canvas,开发者可以方便地在打印机上输出文本和图像。文章还讨论了屏幕与打印机分辨率的差异,以及在打印过程中需要注意的事项,如预览、分辨率匹配和用户交互。此外,提到了Windows API中与打印相关的函数,以及打印文本、位图和RTF格式内容的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   打印
         打印对于许多 Windows 程序员来说是十分棘手的问题。

        Delphi 简化了打印时用户所必须了解的大部分内容。用户可以很轻松地写出简单的打印程序来输出文本和位图化了的图像。
对于更为复杂的打印,仅需了解几个要领和技术,用户就可以实现任何类型的自定义打
印。
当了解了这些后,打印也就不那么困难了。
Delphi 的TPrinter对象封装了 Windows 的打印引擎,为程序员做了大量原本需要亲自做的工作。

本章告诉用户怎样用TPrinter来完成各种打印作业。用户可以看到一个简单的例子,
从中可以了解到创建高级打印程序的技术,而这些技术正是用户成为打印高手的起点。

5.1  TPrinter 对象
        Delphi 中的 TPrinter类可以方便地实现通常的打印任务。通过Printer 全局函数可以返回TPrinter类的一个对象,该对象在Printers单元中定义。

       可以把Printer 全局函数看作一个全局变量,并利用这个全局变量来与打印机进行打印操作。
利用 Printer 来实现打印的一般过程如下:
1)调用BeginDoc 过程向打印机发送一个打印作业(此时还没有在打印机上开始打
印)。
(2)通过一个 Text 变量或调用 Canvas 对象方法建立打印输出。
(3)调用 EndDoc过程结束当前的打印作业,该打印作业开始在打印机上打印。
(4)如果出现问题,调用 Abort过程取消当前打印的作业。
表5-1 所示是 TPrinter对象的几个常用属性:


表5-1  TPrinter对象的常用属性
属性  作用
Aborted  判断是否中止打印作业
Canvas  画布属性
Capabilities  当前打印机驱动设备的设置信息
Copies  打印的份数
Fonts  字体属性
Handle  打印机句柄
Orientation  纸张的方向:横向或纵向
PageHeight  纸张的高度
PageNumber  当前打印的页数
PageWidth  纸张的宽度
Printers  系统中安装的所有打印机
Printing  标识是否正在进行一个打印作业
PrinterIndex  打印机属性中当前打印机的索引值

表5-2 所示是 TPrinter对象的几个常用方法
表5-2  TPrinter的方法
方法  作用
Abort  中止正在打印的打印作业
BeginDoc  向打印机发送一个打印作业
EndDoc  结束当前的打印作业并关闭文本文件变量
GetPrinter  获得当前打印机序号
NewPage  开始新的一页并增加 PageNumber属性
Refresh  更新字体和打印机的属性


通常,在打印前要进行打印预览。在打印预览的时候,往往要将打印的结果在屏幕上显示出来。

这时,就要注意屏幕的分辨率和打印机的分辨率的差别了。读取屏幕信息可以通过全局变量 Screen 来实现,Screen 为TScreen类的一个实例,在创建工程的时候就自动创建了,并在程序开始运行时读取了屏幕的一些设置信息。

值得注意的一点是 TPrinter.Canvas。TPrinter.Canvas 对于窗体来说像一个画布,在它上面可以显示文本和图形

         不同的是, TPrinter.Canvas 表示的是打印输出的画布,而非显示用的画布。大多数用来显示文本、图像和画图的程序可以用同一种方式来打印输出。

         但是,在打印时必须考虑到其中的不同之处:
        ¾  在屏幕上绘画是动态的,可以擦去在屏幕上输出的内容。而向打印机中输出则不那么灵活,凡是向 TPrinter.Canvas 输出的内容将被打印机打印出来。
       ¾  在屏幕上

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值