python按照队列顺序打印文件
我遇到过一个需求,按顺序打印一个文件夹内多份pdf文件。其中有的文件几页,有的文件五六十页。我参考了其他一些人的打印程序,虽然能用,但是最后打印顺序是混乱的。普通的sleep能有效按顺序打印几页的文件,但是一遇到几十页的就会失效。
以下是我参考了其他人的代码及微软官方api写出的代码,因为实际需求比较复杂,因此我只贴出核心部分的代码。
# order_to_print_file为数组,每一项为需打印文件的绝对路径,将按数组顺序打印
def to_print(order_to_print_file):while True:flag = input('您是否确定打印以上文件?(y/n):')if flag == 'y':print('正在打印......')default_printers = win32print.GetDefaultPrinter() # 获取默认打印机的名称handle = win32print.OpenPrinter(default_printers) # 获取打印机的handlefor file in order_to_print_file:if os.path.exists(file):win32api.ShellExecute(0, "print", file, '/d:"%s"' % win32print.GetDefaultPrinter(), ".", 0) # 这个是执行打印的命令,按照默认打印设置打印time.sleep(2) # sleep一下才能有效获取打印机的队列,特别是遇到大文件。文件非常大可适当增加sleep的时间tasks = win32print.EnumJobs(handle,0, -1, 1) # 按顺序打印的核心if tasks:print('任务阻塞中,正持续打印,请稍等...')while tasks: # 发现打印队列中有任务就持续sleep直到打印完成time.sleep(2)tasks = win32print.EnumJobs(handle, 0, -1, 1)breakelif flag == 'n':print('正在取消打印,如有需要请重试。')breakelse:print('请正确输入指令(y/n)!')
按顺序打印,起关键的是获取打印队列的命令EnumJobs。
参考:EnumJobs 函数 (Winspool.h) - Win32 apps | Microsoft Docs
使用python的win32模块打印PDF_揭晖的博客-CSDN博客_python win32print
Python监控打印机队列_IT蜗壳_IT蜗壳-Tango_InfoQ写作社区
如果你不要求双面打印,有个最简单的方法是将全部pdf合并成一个pdf再打印
如果需要边打印边工作,推荐使用福昕pdf阅读器,可以挂后台让它自己打印。用Adobe Acrobat会一闪一闪的白屏,十分影响。
python按照队列顺序打印文件相关推荐
- RH358管理打印机和打印文件--配置和管理打印机
RH358管理打印机和打印文件–配置和管理打印机 来到最鸡肋的章节.打印机上的使用肯定是windows上秒杀了,所以这功能应该毫不犹豫地在WIN上玩耍. RH358专栏地址:https://blog. ...
- python设置打印机参数_打印文件并配置打印机设置
我试图在Windows上使用Python编写打印机自动化程序,但无法完成. 我不是真的理解这个话题,我有点惊讶-一个"简单"的方法来完成这个似乎不存在..?有这么多的api允许以一 ...
- python读取文件夹-Python按顺序读取文件夹中文件
参考资料: 涉及到文件操作,我们有时候会读取一个文件夹中的所有的文件.这些文件可能是文件名完全混乱的,也可能是完全格式化的(如1.png,2.png...).下面介绍Python中的几种按顺序(假如有 ...
- 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法
22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...
- python改文件名_通过python顺序修改文件名字的方法
通过python顺序修改文件名字的方法 更新时间:2018年07月11日 11:48:55 作者:longma666666 今天小编就为大家分享一篇通过python顺序修改文件名字的方法,具有很好的参 ...
- Python 按时间顺序读取所选目录下文件
Python 按时间顺序读取所选目录下文件 不是很复杂,但用的次数比较频繁,作一个记录吧. import tkinter as tk from tkinter import filedialog im ...
- python处理问题汇总二(重复值索引,顺序读取文件,drop函数,数组元素排名)
文章目录 1. python处理重复值索引问题 2.python读取文件夹列表的问题 3. dataframe删除指定行.列 1)drop函数 2)inplace参数 4. argsort数组索引排名 ...
- 使用python和pywin32模块实现连接打印机批量打印文件
使用python实现连接打印机批量打印文件 python打印文件 python连接打印机 python打印文档文件 python打印图片文件 python批量打印文文件 python打印文件 pyth ...
- python 打印文件名_Python | 打印文件内容以及文件名
python 打印文件名 打印文件名 (Printing file name ) To print the filename, we use "file_object.name". ...
最新文章
- ASP.net 2.0 自定义控件的开发之数据分页 第二章
- Flutter开发之MVC设计模式:新建文件与导入文件(八)
- 植物2 IOS 怎么实名认证_抖音怎么开店图解,抖音开店必须实名认证吗?,抖音开店需要什么条件...
- 李洪强-C语言2-字符串
- Foundation框架集合 ---- NSArray和NSMutableArray
- 现代新赛道(现代教育)高考日语主编董文彦
- Html5之canvas清除特定矩形、getContext、fillStyle、fillRect、clearRect、strokeRect
- [usOJ5529]小奇探险
- EBS R12: 通过FND_PRODUCT_INSTALLATIONS中字段STATUS确认安装使用了哪些产品(或模块)
- 微信iOS WKWebview 网页开发适配指南
- imagenet/ILSVRC2012数据集百度云及其具体分类
- 0.96寸OLED(SSD1306)屏幕显示(一)——基础功能介绍
- 一个与小球碰撞有关的有趣问题
- Hook是什么,React为什么要引入Hook
- MATLAB画ROC曲线
- 【带着canvas去流浪(9)】粒子动画
- 湖南科技大学数据挖掘复习提纲
- OpenDDS系列(3) —— 第一个OpenDDS程序
- 营改增后计算机维修费税率,软件行业的维修费税率是多少?
- 想学java老师建议学python怎么办?IT培训常见骗局汇总