2012-10-12 105 views
0

我在Linux下开发了一个Python脚本(2.6)。Python共享名称打印机

我从网络中的Windows机器运行此脚本。

我将通过USB连接的打印机共享到Windows电脑。

我希望通过脚本检索打印机的共享名称。

谢谢您的帮助

+0

看一看这个答案:http://stackoverflow.com/a/558133/ 1129194 –

+0

如何分享打印机?从Linux电脑?使用CUPS(IPP)或Samba? –

+0

是的,我的打印机被CUPS识别。我通过CUPS中的samba选项共享。我会在Windows中给出与共享名称相同的名称。 我的目标是能够在打印机上打印执行我的脚本,知道我有5台连接和共享5台打印机的PC。 – Hadramos

回答

0

注:此解决方案假定您有一个CUPS服务器上的Linux机器上运行和pycups包还您的Python环境(于Debian/Ubuntu可供选择: apt-get install python-cups,Red Hat/Fedora/CentOSyum install python-cups或从source安装:更复杂,因为它取决于libcups开发文件是否可用于编译成功)。

添加远程的Windows打印机对Linux的 CUPS 服务器。这将使打印机本地可访问Python脚本在Linux上运行。

然后使用pycups包与打印机进行交互(documentation)。例如,要列出安装在本地CUPS服务器的打印机和打印文件到安装的打印机之一:

import cups 

conn = cups.Connection() 

# get printers available in the local CUPS server 
printers = conn.getPrinters() 
for printer in printers: 
    print printer, printers[printer]["device-uri"] 

# get the first key from the printers dictionary as a sample printer name 
printer_name = printers.keys()[0] 
conn.printFile(printer_name, 'test_file_name.raw', 'job title', {}) 
+0

嗨,我的脚本是在Linux机器上执行,而不是在Windows机器上执行。它是在Windows机器上通过http执行的。我看到pywin32,但这个模块只适用于Windows下的Python。我想要的是什么pywin32,但Linux。 – Hadramos

+0

因此,为了澄清:您已经在Windows共享的Windows计算机上安装了打印机,并且您想从Linux打印这些打印机。是吗? –

+0

是的确实如此... – Hadramos