perl在win32平台上直接操作打印机
敬业的IT人
互联网
佚名
2008-4-15 11:58:13
注:内容是我参考得到,只有很少细节是由我补充,在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模块的注册表操作注册表可获得相应信息,再进行相应的更改文件句柄应该就能做到(没实践).
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 ..[04-15]
- PerlScript编写ASP[04-15]
- 大家有没有碰到过unix上,一个目录文件太多,无法删除的现象..[04-15]
- 网站 PAGEVIEW 分析系统 CGI[04-15]
- 实战 FastCGI[04-15]
- 在Windows NT 4.0下安装ActivePerl[04-15]
- 相关文章
- OSCON Perl Guru 波特兰小电影 - Perl ..[04-15]
- PerlScript编写ASP[04-15]
- 大家有没有碰到过unix上,一个目录文件太多,无法删除的现象..[04-15]
- 在Windows NT 4.0下安装ActivePerl[04-15]
- Perl语言的文字处理模式[04-15]
- 用Perl语言进行Socket编程[04-15]
