python批量打印word文件
坚持学python的决定
今天在工作中发现有一个问题,就是需要批量打印的科室的改善提案,平时的操作就是一个一个的打开后,然后点击文件》》打印》》预览》》打印,这样下来的功夫可不少,尤其是针对整个科室的工作量是非常的多的(几百份),而且也没有响应的挑战性。以前尝试过查询调用python的win32接口试着看能不能进行批量打印,尝试失败后就没有尝试了。但是基本上每个月这样的工作的确是烦人,所以还是硬着头皮不断搜索资料看能不能用python直接批量打印。搜了很多资料,但是总觉得调用不了相关的程序,哪怕是直接copy代码也不行,接着我再csdn搜了一遍关于这个的文章,文章链接如下:
https://blog.youkuaiyun.com/chent86/article/details/77100380
再次尝试,发现可以在shell模式下进行打印调用,不过里面的代码还是需要进行更改的,我经常需要用到这样的功能,所以我打算将其打包成一个包,以后调用就直接import,修改如下:
import tempfile
import win32api
import win32print
def printer_loading(filename):
open (filename, "r")
win32api.ShellExecute (
0,
"print",
filename,
#
# If this is None, the default printer will
# be used anyway.
#
'/d:"%s"' % win32print.GetDefaultPrinter (),
".",
0
)
下次调用的话就直接printer.priter_loading(filename)就好了
面对我们管理系的文件,如图:
大概有32个word文件,接着用os进行遍历获取相关的文件地址,调用printer就可以了,废话不多说,直接上完整代码:
import os
import printer
path=r'E:\工作共享\改善提案提交\2019年1月\管理系'
for a,b,c in os.walk(path):
print(c)
for i in c:
f=os.path.join(path,i)
if f.endswith("docx"):
printer.printer_loading(f)
就这样,等了大概1分钟的时间,将该文件夹当中的所有的word文件进行批量打印,(当然前提是需要你确认好每一份的word文件里面的格式是否符合相应的格式),工作效率提交至少有30倍左右,O(∩_∩)O哈哈哈~