0

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

4

1 回答 1

2

我对 Windows 编程了解不多,但我能想到几个选项。

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

  2. Wx - Wx GUI 工具包具有很好的、与 Windows 兼容的打印功能。遗憾的是,它也是一个巨大而复杂的依赖项,仅用于一个简单的命令行脚本。我用过这个,效果很好。

  3. 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 回答