我有一台打印机,HP DeskJet 712C,通过 Windows XP 工作站共享。我可以从各种应用程序打印到这台打印机,但我无法通过PRINT
shell 命令打印到它(从打印机连接到的工作站或任何其他)。我有一个 Perl 脚本,目前托管在 Windows 7 工作站上,它生成文本文件。我想将那些文本文件打印到上述打印机上,但由于我无法使用PRINT
shell 命令,我不知道如何使用。如何在 Perl 中将这些文本文件打印到该打印机?
问问题
1666 次
1 回答
2
我对 Windows 编程了解不多,但我能想到几个选项。
打印机- CPAN 上有一个名为Printer的模块,声称可以处理 Windows 打印。我没用过。YMMV,但它看起来正是你想要的。
Wx - Wx GUI 工具包具有很好的、与 Windows 兼容的打印功能。遗憾的是,它也是一个巨大而复杂的依赖项,仅用于一个简单的命令行脚本。我用过这个,效果很好。
Win32::API - 这是我对 Windows 无知的真正表现。Win32::API 模块允许您调用 Windows DLL。如果您知道要使用的适当函数/DLL,则可以访问它们以开始打印作业。
更新
您可能想在 ActiveState 的 Perl-Win32 用户列表上查看此线程。
显然你可以这样做:
open my $prn, '>', '//mycomputer/PrinterShare' or die "Oh noes $!";
print $prn "Here's some text to print.";
这是未经测试的,未经尝试的,也许是不真实的,但试一试。什么可能出错?这些天打印机很便宜。;)
于 2013-02-01T00:55:32.180 回答