DELPHI基础教程:文本编辑器的设计(二)[4]
文件打印
在Delphi中 文件打印有两种方式
将文件变量分配给打印机 用此变量名创建或打开文件后 往此文件变量写入的任何文本都视为向打印机输出 以下过程可实现文件的打印
procedure TEditForm Print Click(Sender: TObject)
var
Line: Integer;
PrintText: System Text;
begin
if PrintDialog Execute then
begin
AssignPrn(PrintText)
Rewrite(PrintText)
Print CanvasFont := Memo Font;
For Line := to Memo Lines Count do
Writeln(PrintText Memo Line[line];
System Close(PrintText)
end;
end;
利用Printers单元中定义的TPrinter对象进行文件打印 本章例程采用这种方法打印文件
TPrinter对象
TPrinter对象可调用Windows的打印机 在Printer 单元中定义了TPrinter 的实例Printer 用户可直接使用
调用TPrinter的BeginDoc方法可开始一项打印工作 调用EndDoc 方法可结束一项已成功发送给打印机的工作 如果在发送过程中出现问题或用户想中途终止打印工作 可调用Abort方法
通过检查Printing属性可测试当前是否有打印工作 如果打印工作被终止 Abort属性为真
Canvas属性代表打印表面 Brush Font Pen属性可决定打印字体或图像的特征
Printers属性中包含着已安装的打印机列表 PrinterIndex 属性是当前选择的打印
机 Fonts属性中有当前打印机支持的字体 Orientertion属性可决定打印方向
PageHeight PageWith中包含着当前的高度和宽度 PageNanber为当前页的值
设置Title属性可决定在Windows打印管理器或网络中出现的文本
TPrintDialog打印对话框
TPrintDialog部件显示一打印对话框 用户在对话框中 可以选择打印机 打印页数 打印份数 当用户选择对话框中的Setup按钮 则出现打印设置对话框
调用Execute方法显示打印对话框 如图 使用Option属性可设置打印对话框显示的形式 Options的设置如表 所示
PrintRange属性可定义打印的范围 如果PrintPage的值是prPageNums 则可以设置FromPage和ToPage属性来确定打印范围 设置MinPage MaxPage属性可限制用户的打印范围
表 打印对话框的Option属性的取值及含义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
取值 含义
──────────────────────────────────────
PoHelp 如果是真值 对话框出现帮助按钮
PoPageNums 如果是真值 页数按钮有效 用户可以设置打印范围
PoPrintToFile 如果是真值 文件打印检查框将出现在对话框中 用户可以选
择文件打印
PoSelection 如果是真值 选择按钮有效 用户可打印文件中所选择的文本
PoWarning 如果是真值 在打印机尚未安装时 用户选择OK 按按钮将出现警告信息
PoDisablePrinttoToFile 如果是真值 而PoPrintToFile亦是真值时 当对话框出现时 文件打印对话框将无效
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
本章例程是利用Printer的画布进行文本打印的 用户选择打印菜单后 将弹出打印对话框 用户可设置各种参数 当用户选择打印按钮后 打印工作进行发送 此时将弹出打印取消对话框 见图 用户可中止打印工作 有关打印和打印取消的代码如下
procedure TEditForm Print Click(Sender: TObject)
var
DistanceLine Line: Integer;
PrintText: System Text;
begin
if PrintDialog Execute then
begin
Printer Canvas font := Memo Font;
DistanceLine := Trunc( *FontDialog font size)
OpenPrintCancelDialog;
Printer BeginDoc;
for line := to Memo Lines Count do
begin
Printer canvas textout( DistanceLine*Line Memo lines[Line])
end;
Printer EndDoc;
BtnBottomDlg free;
end;
end;
procedure TEditForm OpenPrintCancelDialog;
begin
BtnBottomDlg := TBtnBottomDlg Create(Application)
BtnBottomDlg show;
BtnBottomDlg canvas Brush Color := clActiveBorder;
BtnBottomDlg canvas TextOut( Print +FileName)
BtnBottomDlg canvas TextOut( if you want to
stop please choice Cancel Button )
end;
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25251
2024-09-19 广告