打印文档控制三则

打印文档控制三则


1、修改打印文档的名称
*-- 说明:我们在用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值