我可以從PDF,PRN或PS文件開始。如何使用Python將其發送到USB打印機?我應該開始使用哪個模塊?使用Python將打印作業發送到USB打印機
6
A
回答
1
據我所知,這是兩個封裝:
2
這聽起來像你正在使用Windows,所以讓我們先從在於 - 如果您使用的是Linux,則應答更改。
在Windows中有兩種打印方法。第一種最常見的方式是通過Windows GDI接口發送各個繪圖命令。要做到這一點,您必須將每個單獨的元素放置在適當的位置(文本字符串,圖像和形狀),同時選擇正確的顏色和字體。如果您要自己生成數據,那麼很容易,如果您必須解析正在閱讀的文件,則要困難得多。
另一種選擇是以「原始」模式發送到打印機,打印機驅動程序基本上被旁路。爲了達到這個目的,打印機必須本地理解你提供給它的字節流。有一些打印機本身可以理解Postscript,但我不確定PDF,PRN不是標準格式。
我從來沒有過的Python做原料印刷自己,但這裏給的示例代碼很短的片段的鏈接(和問題的想法,希望):http://bytes.com/topic/python/answers/512143-printing-raw-postscript-data-windows
0
import wx
import win32api
import win32print
class ComboBoxFrame(wx.Frame):
def __init__(self):
# creates a drop down with the list of printers available
wx.Frame.__init__(self, None, -1, 'Printers', size=(350, 300))
panel = wx.Panel(self, -1)
list=[]
#Enum printers returns the list of printers available in the network
printers = win32print.EnumPrinters(
win32print.PRINTER_ENUM_CONNECTIONS
+ win32print.PRINTER_ENUM_LOCAL)
for i in printers:
list.append(i[2])
sampleList = list
wx.StaticText(panel, -1, "Please select one printer from the list of printers to print:", (15, 15))
self.combo =wx.ComboBox(panel, -1, "printers", (15, 40), wx.DefaultSize,sampleList, wx.CB_READONLY)
btn2 = wx.Button(panel, label="Print", pos=(15, 60))
btn2.Bind(wx.EVT_BUTTON, self.Onmsgbox)
self.Centre()
self.Show()
def Onmsgbox(self, event):
filename='duplicate.docx'
# here the user selected printer value will be given as input
#print(win32print.GetDefaultPrinter())
win32api.ShellExecute (
0,
"printto",
filename,
'"%s"' % self.combo.GetValue(),
".",
0
)
print(self.combo.GetValue())
if __name__ =='__main__':
app = wx.App()
ComboBoxFrame().Show()
app.MainLoop()
+0
代碼轉儲(技術上可能是正確的)並不一定幫助OP或未來的訪問者。我會通過解釋代碼來填補答案,即使代碼中的註釋也很有幫助。 – Bugs 2017-03-06 09:08:14
相關問題
- 1. Java打印服務API:將作業發送到打印機後臺打印?
- 2. python web腳本將作業發送到打印機
- 3. 如何自動將打印作業從「Cloud」服務器發送到打印機?
- 4. Java打印機:將文檔發送到遠程打印機
- 5. Node.js:如何將打印作業添加到打印機
- 6. PDF Java打印:在打印機作業隊列中發送的作業,但沒有打印
- 7. 如何獲取打印機的狀態以及使用wxWidgets發送到打印機的作業
- 8. 如何找到哪臺計算機發送打印作業?
- 9. Python/perl打印服務器;編寫打印作業到文件
- 10. 如何使用C#通過USB將原始ZPL發送到斑馬打印機
- 11. 打印bufferedimage到打印機
- 12. Java「打印機不接受作業」舊Brother打印機
- 13. C++發送圖像到打印機,(打印)
- 14. 發送文件到打印機,什麼都不打印
- 15. USB打印機直通XenServer
- 16. excel bva代碼發送命令到USB打印機
- 17. 如何發送命令到USB打印機?
- 18. 通過USB發送原始ZPL到Zebra打印機
- 19. 如何從Java打印到Windows USB打印機?
- 20. 將JFrame信息發送給打印機
- 21. 發送命令到遠程打印機
- 22. 發送rtf到打印機vb.net
- 23. 發送JTextArea組件到打印機
- 24. 發送一個JPanel到打印機
- 25. 發送數據到Java打印機
- 26. 發送到打印機的URL
- 27. 如何發送GridView到C#打印機#
- 28. 通過tcp發送ZPL到打印機
- 29. 獲取數據發送到打印機
- 30. 發送a.bmp到熱敏打印機
這的確是一個問題超級用戶網站。 – Keith 2011-06-13 02:02:20
你說「USB」就好像它改變了問題。 – 2011-06-13 02:05:40
@Ignacio:也許他認爲它做到了。我們都在這裏學習。 – mpen 2011-06-13 04:20:29