2013-01-31 157 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。 –

相關問題