在Perl WITHOUT shell命令中打印到Windows网络打印机

时间:2013-01-31 20:48:43

标签: windows perl printing

我有一台打印机,一台HP DeskJet 712C,通过Windows XP工作站共享。我可以从各种应用程序打印到此打印机,但我无法通过PRINT shell命令打印到该打印机(从打印机连接到的工作站或任何其他应用程序)。我有一个Perl脚本,目前托管在Windows 7工作站上,用于生成文本文件。我希望那些文本文件打印到上述打印机,但由于我无法使用PRINT shell命令,我不知道如何。如何在Perl中将这些文本文件打印到该打印机?

1 个答案:

答案 0 :(得分:2)

我对Windows编程知之甚少,但我可以想到几个选项。

  1. Printer - CPAN上有一个名为 Printer 的模块声称可以处理Windows打印。我没用过它。 YMMV,但它看起来就像你想要的那样。

  2. Wx - Wx GUI工具包具有很好的Windows兼容打印功能。遗憾的是,它只是为简单的命令行脚本添加一个巨大的,复杂的依赖项。我已经使用过这个并且效果非常好。

  3. Win32::API - 这是我的Windows无知真正显示的地方。 Win32 :: API模块允许您调用Windows DLL。如果您知道要使用的相应函数/ DLL,则可以访问它们以启动打印作业。


  4. <强>更新

    您可能希望在ActiveState的Perl-Win32用户上查看this thread&#39;列表。

    显然你可以这样做:

    open my $prn, '>', '//mycomputer/PrinterShare' or die "Oh noes $!";
    print $prn "Here's some text to print.";
    

    这是未经测试的,未经测试的,也许是不真实的,但请试一试。什么可能出错?这些天打印机很便宜。 ;)

相关问题