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结构设计出几乎包括打印机设置参数的程式。
|