我有taht將重複執行的Python應用程序。它將PDF保存爲一個文件,然後將其打印出來。打印結束時會刪除文件。打印PDF和刪除文件時,打印完成
我當前的解決方案(用於打印和刪除部分)是這樣的:
win32api.ShellExecute(0, "print", file_path, None, ".", 0)
time.sleep(10)
os.remove(self.options.dest_name)
time.sleep(10)
是招給印刷工藝文件刪除之前運行的時間。如果沒有它,Acrobat Reader將打開(無論如何會打開)並警告它找不到該文件。這是因爲文件刪除已經發生。
的問題是:
我怎麼能做到這一點沒有這種不可靠的把戲?最好的辦法是爲打印過程設置一個處理程序,並獲取有關打印狀態的信息:我等待它報告它已完成,然後刪除該文件。
它甚至會更好,如果Acrobat Reader軟件打不開,但是這不是一個很大的問題。
編輯:我試圖切換到福昕閱讀器作爲默認PDF閱讀器,現在它不會打開時,我不想要。 ;)
其他可能的解決方案: Cylically檢查文件是否可用(不是由另一個進程使用),當它的可用再刪除它。我怎麼能在Python中做到這一點?
老實說,有沒有知道的東西其實* *打印真正的出路。打印隊列中可能發生100個不同的問題,這些問題永遠不會報告給您。 – 2010-12-17 12:04:02
@Nick Mhm,假設我只需要知道文檔何時發送到打印機。所以我可以把它扔掉。 – bluish 2010-12-17 12:37:35