网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章编程心得 → 在WIN2000/XP下添加自定义纸张的Delphi源代码
在WIN2000/XP下添加自定义纸张的Delphi源代码
日期:2006年11月3日 作者:yangliu 的 Blog 人气: 查看:[大字体 中字体 小字体]
 ////////////////////////////
//  武汉探索电脑工作室    //
//  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;

(出处:DelphiFans.com)

相关文章:
·在Windows 2000和Windows XP操作系统中如何自定义纸张?
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved