首页 > 新闻

VFP下打印机的设置编程

时间:2009-12-08 07:06:31  作者:  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
VFP下打印机的设置编程2008-09-29 13:03VFP本身提供了部分相关打印机的数据返回函数以及部分设置项,但在打印机的直接控制方面没有提供相应的策略,这里从分析打印......

这样设置打印机是不是很简单?如果在VFP中测试本段代码会发现在VFP中打印机设置确实变了,但在控制面板中并没有变,这就是所谓的
DocumentProperties函数是用来设置当前单一程序的打印机。
OK,接下来我们再利用SetPrinter来设置系统打印机:
示例2:用SetPrinter来进行系统打印机的走向和纸张设置
*-----------------------------------------------------------------*
*-VFP应用程式算法群:12787940 行者孙:310727570-*
*-----------------------------------------------------------------*
nOrient=2&&横向
PaperSize=0x0B&& A5
nSize=0
lcBuffer = Repli(Chr(0), 120)
GetProfileString("Windows", "Device", ",,,", @lcBuffer, Len(lcBuffer))
lcBuffer = STRTRAN(lcBuffer, Chr(0), "")
cPrinter = SUBSTR(lcBuffer, 1, AT(",", lcBuffer, 1)-1)&&系统当前默认打印机名称
hPrinter = 0
OpenPrinter(cPrinter,@hPrinter,0)
nBufsize = DocumentProperties(0, hPrinter,cPrinter,0,0,0)
GetPrinterA(hPrinter,2,0,0,@nSize)
pPrinter=REPLICATE(CHR(0),nSize)
GetPrinterA(hPrinter,2,@pPrinter,nSize,@nSize)
s=CTOBIN(SUBSTR(pPrinter,29,4),'4rs')
cDevmode=SYS(2600,s,nBufsize)&&读取Devmode结构
aDevmode=AT(cDevmode,pPrinter)&&找出Devmode结构在PRINTER_INFO_2中的位置
&&设置新的走向,就是把PRINTER_INFO_2中的Devmode结构中的走向改掉
pPrinter=STUFF(pPrinter,aDevmode 44,1,CHR(nOrient))
pPrinter=STUFF(pPrinter,aDevmode 76,1,CHR(nOrient))
&&纸张就是把PRINTER_INFO_2中的Devmode结构中的纸张改掉
pPrinter=STUFF(pPrinter,aDevmode 46,1,CHR(PaperSize))
pPrinter=STUFF(pPrinter,aDevmode 78,1,CHR(PaperSize))
SetPrinter(hPrinter,2,@pPrinter,0)
ClosePrinter(hPrinter)

再打开控制面板中的默认打印机看看是不是走向和纸张都变了?
就这么简单,大家可以利用Devmode结构设计出几乎包括打印机设置参数的程式。
如果您需转载 VFP下打印机的设置编程,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门