python实现自动化打印

这次真的是出于实际需要,想要用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

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值