当前位置:主页>Delphi教程>文章内容
在WIN2000/XP下添加自定义纸张的Delphi源代码
来源: 作者: 发布时间:2007-04-29  
////////////////////////////
//  武汉探索电脑工作室    //
//  http://tansuo.51.net  //
////////////////////////////

//增加规格自定义纸张
//PaperName: 自定义纸张名称
//PaperWidth: 纸张的宽度,以0.1mm为单位
//PaperLength: 纸张的高度,以0.1mm为单位
procedure TDM.AddCustomPaper(const PaperName: string; PaperWidth, PaperLength:integer);
var
PrintDevice, PrintDriver, PrintPort : array[0..255] of Char;
hDMode   : THandle;
hPrinter : THandle;
FormInfo : TFormInfo1;
begin
Printer.GetPrinter(PrintDevice, PrintDriver, PrintPort, hDMode);
OpenPrinter(PrintDevice, hPrinter, nil);
if hPrinter = 0 then
raise Exception.Create('联接打印机失败!');

with FormInfo do
begin
Flags := FORM_USER;
pName := PChar(PaperName);
Size.cx := PaperWidth*100;
Size.cy := PaperLength*100;
ImageableArea.Left := 0;
ImageableArea.Top := 0;
ImageableArea.Right := PaperWidth*100;
ImageableArea.Bottom := PaperLength*100;
end;

//修改纸型,如果没有就新增
if not SetForm(hPrinter, PChar(PaperName), 1, @FormInfo) then
AddForm(hPrinter, 1, @FormInfo);

ClosePrinter(hPrinter);
end;

//删除自定义规格纸张
//PaperName: 自定义纸张名称
procedure TDM.DeleteCustomPaper(const PaperName: string);
var
PrintDevice, PrintDriver, PrintPort : array[0..255] of Char;
hDMode   : THandle;
hPrinter : THandle;
begin
Printer.GetPrinter(PrintDevice, PrintDriver, PrintPort, hDMode);
OpenPrinter(PrintDevice, hPrinter, nil);
if hPrinter = 0 then
raise Exception.Create('联接打印机失败!');
DeleteForm(hPrinter, PChar(PaperName));
ClosePrinter(hPrinter);
end;


 
上一篇:borland工程师如何保证父类(TStream)的两个overload的seek,至少有一个必须被override   下一篇:三层数据库与应用程序服务器的小型介绍(Delphi&BCB)
 
  相关文章
·borland工程师如何保证父类(TStream)的
·三层数据库与应用程序服务器的小型介绍
·Delphi2005学习笔记4(续)——再谈Dll以
·用Delphi2005和DUnit搭建敏捷开发平台
·singleton之我见
·Delphi实现Singleton模式
·delphi中宏小用
·Delphi编程实现Ping操作
·实现QQ窗体的缩入伸出功能
·delphi的接口的意义是不是跟C++和Java
·如何判断一个机器的MSSQL是否启动
·Delphi编写数据库程序要点(一)
 
【关闭窗口】
推荐本站资源
最新文章