我有一台打印机,一台HP DeskJet 712C,通过Windows XP工作站共享。我可以从各种应用程序打印到此打印机,但我无法通过PRINT
shell命令打印到该打印机(从打印机连接到的工作站或任何其他应用程序)。我有一个Perl脚本,目前托管在Windows 7工作站上,用于生成文本文件。我希望那些文本文件打印到上述打印机,但由于我无法使用PRINT
shell命令,我不知道如何。如何在Perl中将这些文本文件打印到该打印机?
答案 0 :(得分:2)
我对Windows编程知之甚少,但我可以想到几个选项。
Printer - CPAN上有一个名为 Printer 的模块声称可以处理Windows打印。我没用过它。 YMMV,但它看起来就像你想要的那样。
Wx - Wx GUI工具包具有很好的Windows兼容打印功能。遗憾的是,它只是为简单的命令行脚本添加一个巨大的,复杂的依赖项。我已经使用过这个并且效果非常好。
Win32::API - 这是我的Windows无知真正显示的地方。 Win32 :: API模块允许您调用Windows DLL。如果您知道要使用的相应函数/ DLL,则可以访问它们以启动打印作业。
<强>更新强>
您可能希望在ActiveState的Perl-Win32用户上查看this thread&#39;列表。
显然你可以这样做:
open my $prn, '>', '//mycomputer/PrinterShare' or die "Oh noes $!";
print $prn "Here's some text to print.";
这是未经测试的,未经测试的,也许是不真实的,但请试一试。什么可能出错?这些天打印机很便宜。 ;)