在WIN2000/XP下添加自定义纸张的Delphi源代码

2016-02-19 18:25 11 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐在WIN2000/XP下添加自定义纸张的Delphi源代码,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

////////////////////////////
  //  武汉探索电脑工作室    //
  //  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;

来源:http://www.tulaoshi.com/n/20160219/1617608.html

延伸阅读
标签: Delphi
  Delphi 除了支持使用可视化部件所见即所得地建立应用程序外,还支持为开发应用而设计自己的部件。 在本章中将阐述如何为 Delphi 应用程序编写部件。这一章将达到两个目的: ● 教你如何自定义部件 ● 使你的部件成为 Delphi 环境的有机组合部分 19.1 Delphi 部件原理 19.1.1 什么是部件...
标签: Delphi
  一、Win2000服务简介 服务程序(Service Application)是一种运行于WinNT的后台程序,每个服务程序(Service Application)中可能包含若干个服务(Service),每个服务就是其中的一个线程(该服务也可以创建多个子线程)。采用服务,应用程序可以获得特殊的权限,而且不会被用户通过Win2000的任务管理器直接结束程序,所以服务...
标签: Delphi
  19.2.2 Delphi 部件编程 19.2.2.1 创建属性 属性( Property )是部件中最特殊的部分,主要因为部件用户在设计时可以看见和操作它们,并且在交互过程中能立即得到返回结果。属性也很重要,因为如果将它们设计好后,将使用户更容易地使用,自己维护起来也很容易。 为了使你在部件中更好地使用属性,本部分将...
标签: windows 操作系统
在Windows XP/2003中,系统为我们提供了一种显示文件的更直观的方式——缩略图,在这种显示方式下,图片、文本类型文件等的缩略内容会替代文件的图标,这样不用打开文件就能看到它的大致内容,非常方便。但是这种方式也会占用大量的系统资源。如果你的计算机性能不是非常强大,可以通过修改注册表的方法来调整缩略图的大小和质量,从而调整...
只针对2000以上系统,9X的就别问我了,4年没搞了:)     一般有4种方法:     1)DLL挂靠方法   程序改写为DLL结构,挂靠Explorer.exe上运行   好处:没进程实体,普通进程查看无效   缺点:可以通过代码叫Explorer.exe  Unload你的Dll,呵呵,还有Explorer出错时,会重新...

经验教程

611

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部