我需要直接打印一些信息(沒有用戶確認),我使用Python和win32print
模塊。蟒蛇win32print不打印
我已經讀過整個Tim Golden win32print page(甚至讀win32print doc,這很小),我使用的是他自己寫的那個例子,但我什麼也沒有打印。
如果我進入交互式shell並一次完成一個步驟,我在打印機隊列中獲取文檔(在StartDocPrinter
之後),然後獲取文檔大小(在StartPagePrinter, WritePrinter, EndPagePrinter
塊之後),然後文檔消失從隊列中(EndDocPrinter
之後)不打印。
我知道0123金色的ShellExecute
方法。它在這裏工作,但它需要創建一個臨時文件,它打印這個文件名,我不想要的兩件事。
任何想法?提前致謝。
這是我測試(蒂姆·金的複製和粘貼)代碼:
import os, sys
import win32print
import time
printer_name = win32print.GetDefaultPrinter()
if sys.version_info >= (3,):
raw_data = bytes ("This is a test", "utf-8")
else:
raw_data = "This is a test"
hPrinter = win32print.OpenPrinter (printer_name)
try:
hJob = win32print.StartDocPrinter (hPrinter, 1, ("test of raw data", None, "RAW"))
try:
win32print.StartPagePrinter (hPrinter)
win32print.WritePrinter (hPrinter, raw_data)
win32print.EndPagePrinter (hPrinter)
finally:
win32print.EndDocPrinter (hPrinter)
finally:
win32print.ClosePrinter (hPrinter)
[編輯]
我安裝在我的電腦的PDF打印機與其他的打印機進行測試(CutePDF作家),我可以生成test of raw data.pdf
文件,但是當我向內看時,什麼也沒有。含義:除WritePrinter
之外的所有命令似乎都在執行它們應該執行的操作。但是,正如我在評論中所說的那樣,WritePrinter
返回應該寫入打印機的正確字節數。我沒有其他想法如何解決這個問題,但只是簡單地說我的打印機沒有問題。
要查看是否有問題並瞭解它是什麼,請更改異常處理,以便將出現的任何內容打印到控制檯而不是用'finally'忽略它們。 – martineau
剛剛測試過。沒有例外發生。 – marcelocra
其實代碼不處理異常,所以如果我有任何它會在控制檯中顯示,我猜。但是,無論如何感謝= D。 – marcelocra