当前位置:编程学习 > CGI >>

perl在win32平台上直接操作打印机

答案:注:内容是我参考得到,只有很少细节是由我补充,在win2000下通过:)
1,本地打印机
直接将文件句柄指向LPT1或LPT2,再向文件句柄传数据就行了。
例:

open PRINTER, ">LPT1" || die "Can't connect to printer!"; #特别要注意的是别少了那个">"符号。
print PRINTER "This is a test page!\n";
print PRINTER "what you get is what you print";
print PRINTER "\f"; #最后别忘了加上这个打印符号
close PRINTER;


2, 网络打印机
将文件句柄指向主机名+打印机共享名,再将要打印的数据传给该文件句柄。
例:

主机名:server 打印机共享名:LPlaserjet
$data = "This is a test page!\n1234567890";
open PRINTER, '>\\server\LPlaserjet' || die "Can't connect to printer!";
print PRINTER $data,"\f";
close PRINTER;

总得来说方法都非常简单,与在linux下将数据直接写入设备文件即是向该设备传输数据相同。须要注意的一点就是在网络打印机名应该是打印机设置共享时的共享名。
至于使用win32的默认打印机,及更换打印机操作,用win32API模块的注册表操作注册表可获得相应信息,再进行相应的更改文件句柄应该就能做到(没实践).

上一个:OSCON Perl Guru 波特兰小电影 - Perl && Fun : - P
下一个:Windows2000下实现FastCGI(PERL版)

更多图片编程知识:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,