单元名

uses printers;

1、获取控制面板中的打印机列表

Printer.Printers  ;// 返回值类型 TStrings

2、设置打印机的打印属性 打印方向 自定义纸张大小

//参数:lpname  表示指定打印机名字  ''表示非默认打印机
procedure setPrinterInfo(lpname string) ;
varADevice, ADriver, APort: PChar;ADeviceMode: THandle ;PDMode: PDEVMODE;Anew :boolean ;
beginGetMem(ADevice,cchDeviceName);GetMem(ADriver,MAX_PATH);GetMem(APort,MAX_PATH);trytrywith printer dobegin判定打印机是否切换if (lpname <>'') thenbegin Anew := false;if printerindex <> printer.printers.indexof(lpname ) thenAnew := true ;printerindex := printer.printers.indexof(lpname ) ;end;GetPrinter(ADevice, ADriver, APort,ADeviceMode);/**B 针对打印机切换时使用******************************///例如将默认打印机切换到非默认打印机//GetNew_DeviceMode 自定义函数,位置UnitPrinterZDY单元中。if Anew thenbeginADeviceMode := GetNew_DeviceMode(ADevice) ; end;/**E**********************************************/if ADeviceMode <>  0 thenbeginpDMode  :=  GlobalLock(ADeviceMode);if pDMode <>  nil thenbeginpDMode^.dmFields:=pDMode^.dmFields or   DM_ORIENTATION;//设定打印方向横向打印pDMode^.DMORIENTATION:=   DMORIENT_LANDSCAPE ;end;SetPrinter(ADevice,ADriver,APort, ADeviceMode);GlobalUnlock(ADeviceMode);end;/**开始打印*******/BeginDoc ;//此处打印内容EndDoc ;/**结束打印*******/end;exceptApplication.MessageBox('设置失败','提示',MB_OK);end;finallyFreeMem(ADevice,cchDeviceName);FreeMem(ADriver,MAX_PATH);FreeMem(APort,MAX_PATH);end;
end ;
unit UnitPrinterZDY;interfaceuses Windows,winspool ;function GetNew_DeviceMode(ADevice : PChar ) : THandle;implementationfunction GetNew_DeviceMode(ADevice : PChar ) : THandle;
varStubDevMode: TDeviceMode;FPrinterHandle: THandle;DeviceMode: THandle;DevMode: PDeviceMode;
beginDeviceMode := 0 ;if OpenPrinter(ADevice, FPrinterHandle, nil) thenbeginDeviceMode := GlobalAlloc(GHND,DocumentProperties(0, FPrinterHandle, ADevice, StubDevMode,StubDevMode, 0));if DeviceMode <> 0 thenbeginDevMode := GlobalLock(DeviceMode);if DocumentProperties(0, FPrinterHandle, ADevice, DevMode^,DevMode^, DM_OUT_BUFFER) < 0 thenbeginGlobalUnlock(DeviceMode);GlobalFree(DeviceMode);DeviceMode := 0;DevMode := nil;endend;end;result := DeviceMode ;
end ;end.

Printers(一) 打印机配置信息相关推荐

  1. 如何发布打印机文件夹及ICA 客户端打印机配置工具

    如果希望用户自己添加打印机,请发布以下任一工具: ● ICA 客户端打印机配置工具(PrintCfg.exe).Windows CE 和 DOS 用户可使用此工具添 加打印机. ● 添加打印机向导. ...

  2. 虚拟机配置与管理打印服务器,Fedora 28 打印机配置 ( HP pro 1136M ,基于Windows 打印服务器使用 smb 协议)...

    Fedora 28 本身是没有打印服务的.我们需要安装下列软件: System-Config-Printer Common Unix Printing System - CUPS samba 安装好后 ...

  3. C++通过WMI获取硬件配置信息

    C++通过WMI获取硬件配置信息 WMI即Windows管理规范.通过它可以访问.配置.管理和监视几乎所有的Windows资源. WMI提供程序在WMI和托管资源之间扮演着中间方的角色.提供程序代表使 ...

  4. linux佳能打印机服务,linux桌面打印机配置指南

    转载来源: linux桌面打印机配置指南| 2014-01-28 Linux下打印机适配难,主要是Linux版本太多,导致厂商无力也无太大兴趣关心其,个人刚好接触过这一块,专门整理一份文档方便查阅. ...

  5. Linux操作系统打印机配置全攻略(一)(转)

    一.Linux打印系统发展路线图 在Unix世界里,PostScript语言是主要用于打印的接口.所有主要的应用程序都会输出通用的PostScript页面,而这些PostScript经过打印系统处理后 ...

  6. 在Ubuntu 14.04 64bit上查看硬件配置信息

    陪伴我多年的老本ThinkPad T420渐渐垂垂老矣, 我想更新一下可以更新的部分, 比如将2.5寸HDD更换为SSD, 将单条4G内存再增加一根, 凡此种种想法, 可能最后归结为如何获取该笔记本的 ...

  7. Django项目准备和配置(MVT图解、创建项目和应用、更换解释器、安装应用、本地化、模板路径、项目中匹配urls、应用中匹配urls.py、准备视图、开启服务器、修改DATABAS配置信息)

    Django模型主要包含: 模型配置 数据的增删改 增:book = BookInfo() book.save() 和BookInfo.objects.create() 删:book.delete() ...

  8. springboot 加载配置信息(静态)

    springboot 加载配置信息(静态) 举例:动态设置验证码过期时间 application-uat.properties配置(文件路径:/src/main/resources/applicati ...

  9. 在.net中使用强类型来读取配置信息

    在.net应用中,配置信息以XML文档的形式来存储.依.net的惯例,web.config为Asp.net应用(包括Web Service应用)提供配置信息:而*.exe.config为可执行的应用( ...

最新文章

  1. 各种的jsp数据库连接方法代码!(以前收集的)
  2. [转载]动态规划之0-1背包问题
  3. 16-就业课(2.1)-应用容器-Docker
  4. C#设计模式之十八状态模式(State Pattern)【行为型】
  5. JavaScript系列:模块化与链式编程
  6. python fread_fwrite 和 fread函数的用法小结
  7. SpringMvc 最新jar包下载
  8. 二维小游戏,飞机大战,图片素材
  9. python安装pygame的命令是什么_Python的pygame安装教程详解
  10. 公路多孔箱涵设计_双孔箱涵图集图纸
  11. python程序打印出10行的杨辉三角_GitHub 标星 6.5w+,Python 小白 100 天学习计划,从新手到玩转!...
  12. pdf文档怎样转换成word文档?2022pdf转word软件推荐
  13. linux ftp上传命令实例,ftp上传文件命令,Linux中使用ftp命令上传文件
  14. 19年1月底得一些装机心得(一)
  15. 主元排序法c语言写法,快速排序隨即主元法
  16. ns-3 教程 —— 资源
  17. 演讲实录丨朱频频 让Bots无处不在
  18. 天问一号入轨火星成功,火星,我们来了!
  19. java识别图片中文字技术
  20. 图文详解 HBase 的读写流程

热门文章

  1. “四源三步”法降低VOLTE掉话率
  2. matlab k 1 2,试用MATLAB绘出f1[k]={-2,-1,0,1,2}和f2[k]={1,1,1}两离散序列乘法f1[k]×f2[k]的波形。...
  3. vue+ele 实现v-for动态数据循环表单,然后对每个结构进行表单校验的方法
  4. postInvalidate和invalidate的区别
  5. 蜚声国际的烹饪名厨们会选在哪开设食府?
  6. 【报告分享】2030年的元宇宙产业-民生证券(附下载)
  7. agp c语言课程,AGP赛制改变丨2018亚洲国际芭蕾舞大赛报名开始!
  8. 继续firefly,我们来看看as3网游烽烟ol的架设和简单分析
  9. 转置函数学习np.transpose
  10. 以互联网行业为背景下的数据分析通识