这次真的是出于实际需要,想要用python写个小脚本
老板发给我一份包含几百个人信息的pdf文件,如果一份一份打开文件,点打印我感觉要看到眼花。
但是我可是学过python的(虽然面向对象还没有学完),但是调用第三方库是学了呀,如果有别人的代码看看我还是能改改的。
说干就干
查资料,看别人已经写出来的内容
发现调用电脑程序需要用到win32这个库,而且初略的看了下就发现此库非常NB,怎么说,这个库可以同计算机进行交互,比如弹出提示框,或者调用系统内置一些程序。范围太广,而且不是学习目的,以后再讨论。
最终,发现主要用到的两个库是 win32api和win32print(估计这个就是管打印机的)。
安装win32,直接就 pip install pywin32 或者下面这个通过豆瓣镜像安装的
pip install -i http://pypi.douban.com/simple/ pywin32 --trusted-host pypi.douban.com
其他方法类似,pip安装不多说
在查资料,发现基本上都会用到下面这个代码
import win32print
import tempfile
import win32api
def print_file(filename):
open(filename,"r")
win32api.ShellExecute(
0,
"print",
filename,
'/d:"%s"' % win32print.GetDefaultPrinter(),
".",
0
)
需要注意,这个代码中filename应该是文件路径,具体到文件
eg,要打印11.pdf文件
C:\Users\mik\Desktop\py_word\11.pdf
下面就容易了,写一个得到全部文件内容的代码,然后调用print_file就行了
path = r"C:\Users\mik\Desktop\打印"
for i in os.listdir(path):
file_path = os.path.join(path,i)
print("你要打印的文件是%s"%i)
print_file(file_path)
哈哈,nb,至此大功告成,后来发现,每一个pdf有十几页,而我要把他们都订起来。。。。
下次我可能就要写一个自动订文件打印机的程序了
后记,打印机选择是默认的打印机,我用的是单面打印的打印机,如果是双面打印,可以修改系统默认打印机的设置,这个网上找就行了;我看有的教程需要安装GSPRINT和Ghostscript,并将其添加到系统环境中,但是我并没有安装也可以(如果有特别要求可能要用到“Ghostscript,GhostView”,比如打印特定的页码,这篇文章有涉及可以参考);当然也在于在最后查找文件的时候写一些小范围,比如只打印word之类的。
if i.endswith(“docx”):
print_file(file_path)
2020.10.23