打印文档控制三则
1、修改打印文档的名称
2、获取打印列队的个数
3、控制打印文档的状态
*-- 说明:我们在用VFP写的程序中需要打印时,WINDOWS的系统打印管理器里会有打印队列,
* 并显示文档名:Visual Foxpro,那么下面这个功能可以帮助我们实现修改
*-- 设置打印改名资源文件
set library to chgname.fll
*-- 得到当前默认的打印机名称
prtname=set("printer",2)
*-- 修改文档名称
chgprtname(prtname,"Visual FoxPro","我的打印文档")
*-- 使用语法:
* ChgPrtName(cPrinterName, cOldPrintedDocumentName, cNewPrintedDocumentName)
*-- 返回:
* 0 成功修改
* -1 没有发现给出的打印机名称
* -2 在队列里的文档发生内部错误
* 注: 如果没有文档在打印队列,则返回 0
* -3 修改打印文档时发生内部错误
* -5 处理时内存不够
其他说明:
你可以使用函数APrinters()获得打印机名称存入变量 cPrinterName 中
或者用命令 SET("PRINTER",2) 得到当前默认打印机名称
举例:
ChgPrtName("EPSON LQ-1600K","Visual FoxPro","我的文档名称")
将打印机 EPSON LQ-1600K 上将打印文件名称为 Visual FoxPro 改为 我的文档名称
注意:
ChgPrtName 将改变所有的同样的打印名称改为自己定义的名称,判断条件采用不精确匹配
比如将名称为 ABC 的文档,只要为A或为AB、ABC都等同与ABC
2、获取打印列队的个数
*-- 说明:获取打印队列的个数 *-- 语法:GetPrtDocs(cPrinterName) *-- 返回: * >0 一个大于0的数,即打印队列里的任务数 * -1 没有发现给出的打印机名称 * -2 在队列里的文档发生内部错误 * 注:如果没有打印文档在队列里,返回0 * -5 处理时内存不够
(在 WinNT 服务器上,如果打印队列包含有大于100个文档,将可以产生一些错误)
举例:
GetPrtDocs("EPSON LQ-1600K") && 将得到该打印机上等待打印的队列个数
3、控制打印文档的状态
*-- 说明:设置打印文档的状态, * 你可以暂停,取消,重新开始,中断一个或多个打印任务 * 给出的文档名称必须和打印管理器里的一致 * 语法:SetPrtDocState(cPrinterName, cDocumentName, nCommand) *-- 参数说明: * 暂停 1 * 中断 2 * 取消 3 * 重新开始 4 *-- 返回: * 0= 命令正常执行 * -1 没有发现给出的打印机名称 * -2 在队列里的文档发生内部错误 * 注:如果没有打印文档在队列里,返回0 * -5 处理时内存不够 * -6 参数不支持
举例:
现在你想在打印机Epson Lq1600K上,暂停名为“我的文档”的打印任务
执行命令:
SetPrtDocState("EPSON LQ-1600K","我的文档",1)
提醒1:
运行这个FLL文件,你必须有MSVCRT.DLL文件在系统上
如果你没有这个文件,在加载FLL文件时,你将被提示“Invalid or corrupted Libary”的错误信息。
你可以将该文件复制到你的系统目录,一般装有VFP的系统上都会有该文件的。
提醒2:
你可以在运行报表时就开始修改打印文档的名称,在报表的第一页就开始修改,书写如下报表控件域:
iif(_PAGENO=1,iif(chgprtname(...)=0,"",""),"")
提醒3:
注册该FLL文件
E-mail: bodecsb@mail.matav.hu or officeline@mail.matav.hu
Phone: +36 30 9 443 113 or +36 30 9 912 050
下载软件包
chgnage.zip 8.6K
博客主要介绍了打印文档控制的三则内容,与信息技术相关,涉及文档的打印控制方面的关键信息。
4352

被折叠的 条评论
为什么被折叠?



