python调用打印机打印文档linux(Python实现打印机批量打印文件)

有大量的文件要打印,一个一个点开打印,机械重复?Python, help!

环境准备:

python3.8、pywin32、os

首先,需要安装第三方库pywin32,这样才能用Python调用Windows API(应用程序编程接口)。

若未安装,则运行"cmd",输入"pip3 install pywin32",等待安装完成即可。

C:\Users\Administrator>cd.. C:\Users>cd.. C:\> C:\>cd python38 C:\Python38>pip3 install pywin32

(启动cmd,进入python目录,然后安装第三方库pywin32)

然后导入win32api,定义一个打印函数Print,以便后续重复调用。函数里面主要的部分就是win32api.ShellExecute。它用于启动应用程序,其第2个参数用于指定操作,这里的"print"表示启动打印应用程序。其余参数见如下程序部分的注释。

#定义打印函数,以便重复调用 import win32api def Print(fileName): win32api.ShellExecute ( 0, #指定父窗口句柄,搞不懂 "print", #指定操作,这里的"print"表示启动打印应用程序 fileName, #要打印的文件名 None, #打印机设置,若是"None",则使用windows设置的默认打印机 ".", #指定默认目录,照抄的,搞不懂 0 #若fileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0 )

打印函数定义好后,就可以指定文件夹,将其中待打印的文件逐个送入打印函数,进行批量打印了。

高能预警这个打印函数非常NB,包治百病,只要是平时工作中能打印的文件都能打印,不管是word,txt,还是excel,PPT,PDF,通吃。你要做的就只是事先调整好文档里的打印设置,其他就只等着收打印稿了。

#获取待打印文件的路径 import os path='文件' #文件所在文件夹 files = [path "\\" i for i in os.listdir(path)] #获取文件夹下的文件名,并拼接完整路径 files >> ['文件\\test.docx', '文件\\test.txt']

批量打印:

#批量打印 for file in files: Print(file)

import win32api import os #定义打印函数,以便重复调用 def Print(fileName): win32api.ShellExecute ( 0,#指定父窗口句柄,搞不懂 "print",#指定操作,这里的"print"表示启动打印应用程序 fileName, #要打印的文件名 None,#打印机设置,若是"None",则使用windows设置的默认打印机 ".",#指定默认目录,照抄的,搞不懂 0 #若fileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0 ) #获取待打印文件的路径 path='d:\d12' #文件所在文件夹 #或 path= input("请在英文输入法状态下输入文件目录,然后回车运行。文件目录:") files = [path "\\" i for i in os.listdir(path)] #获取文件夹下的文件名,并拼接完整路径 files Print(files) #获取文件夹下的文件完整路径 #批量打印 for file in files: Print(file)

(完整代码)

python调用打印机打印文档linux(Python实现打印机批量打印文件)(1)

(启动图)

python调用打印机打印文档linux(Python实现打印机批量打印文件)(2)

(文件内容)

打印结果就不展示了。

慢着,老板说要重视绿色环保,节约用纸,请大家双面打印。那“双面打印”怎么在程序设置啊?额......双面打印不在程序里设置,在打印机里设置。在你的默认打印机上点右键,选择“打印首选项”,然后在“双面打印”那里选“是,翻转”。每个打印机的设置界面可能有差异,但大致差不多就酱。

python调用打印机打印文档linux(Python实现打印机批量打印文件)(3)

python调用打印机打印文档linux(Python实现打印机批量打印文件)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页