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)
(完整代码)
(启动图)
(文件内容)
打印结果就不展示了。
慢着,老板说要重视绿色环保,节约用纸,请大家双面打印。那“双面打印”怎么在程序设置啊?额......双面打印不在程序里设置,在打印机里设置。在你的默认打印机上点右键,选择“打印首选项”,然后在“双面打印”那里选“是,翻转”。每个打印机的设置界面可能有差异,但大致差不多就酱。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com