2013-01-31 92 views
0

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

+0

我想避免产生Word如果可能,但如果这是唯一的方法来做到这一点,那么我就是这么做的。 –

回答

2

我对windows编程了解不多,但我可以想到的还有一些选项。

  1. Printer - 有在CPAN模块名为Printer声称能办理窗口打印。我没有用过它。 YMMV,但它看起来正是你想要的。

  2. Wx - Wx GUI工具包具有很好的Windows兼容打印功能。不幸的是,它也是一个巨大而复杂的依赖项,仅仅为一个简单的命令行脚本添加。我用过这个,它工作得非常好。

  3. Win32::API - 这是我的Windows无知真正显示的地方。 Win32 :: API模块可以让你调用windows dll。如果您知道使用适当的函数/ DLL,则可以访问它们以开始打印作业。


更新

你可能想看看ActiveState的Perl的Win32用户的名单上this thread

显然,你可以这样做:

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

这是未经测试,未经考验,也许不真实的,但给它一个镜头。什么可能会出错?现在打印机很便宜。 ;)

+0

Win32 :: API的问题是我不知道*要使用哪些函数/ DLL,并且我还没有找到有关该主题的良好文档。我确信有一些方法我可以将此归咎于微软。 ;) –

+1

@KitPeters,我在网上搜索了一下MSDN文档,他们已经Windows 8将它们全部变成了地狱,我找不到任何东西了...... – daotoad

+0

你能链接到Wk工具包吗?我认为这是Ghostscript或者是Ghostscript。 –

相关问题