Python-将.xlsx文件发送到打印机时获得通知

时间:2018-08-30 14:13:52

标签: python excel printing operating-system

我使用os.startfile("path/to/some/file.xlsx","print")自动将excel工作簿打印到默认打印机。然后,我需要在文件打印后或至少在将其发送到打印机后删除该文件。

但是,os.startfile()函数在其启动的应用程序完成启动时返回。换句话说,它会在实际打印之前返回,因为应用程序(在本例中为MS Excel)启动,然后 then 打印文件,然后 then 关闭。

这意味着这样的代码将不起作用:

import os
os.startfile("path/to/file.xlsx","print")
os.remove("path/to/file.xlsx")

..因为该文件在被MS Excel发送到打印机之前将被删除。

还有这样的代码:

import os
import time
os.startfile("path/to/file.xlsx","print")
time.sleep(5)  # Delay to make sure the file has time to print
os.remove("path/to/file.xlsx")

..似乎对我来说是一种不好的做法,因为如果某些计算机速度较慢,它们将需要更多时间,并且我的应用程序依赖时间足够来使类似time.sleep(30)的事情无法接受。

我正在寻找的东西是这样的:

import os
os.startfile("path/to/file.xlsx","print")
get_stuck_here_until_the_print_is_done()
os.remove("path/to/file.xlsx")

..或类似的

我想到的一种方法是检查MS Excel进程何时结束,这意味着整个打印过程已经结束了,但就我而言,我不能这样做,因为MS Excel由于某些其他原因已经可以在PC上运行,所以我必须处理。

顺便说一句,Windows 7。

顺便说一下,MS Excel 2013。

0 个答案:

没有答案