我遇到过一个需求,按顺序打印一个文件夹内多份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按照队列顺序打印文件相关推荐

  1. RH358管理打印机和打印文件--配置和管理打印机

    RH358管理打印机和打印文件–配置和管理打印机 来到最鸡肋的章节.打印机上的使用肯定是windows上秒杀了,所以这功能应该毫不犹豫地在WIN上玩耍. RH358专栏地址:https://blog. ...

  2. python设置打印机参数_打印文件并配置打印机设置

    我试图在Windows上使用Python编写打印机自动化程序,但无法完成. 我不是真的理解这个话题,我有点惊讶-一个"简单"的方法来完成这个似乎不存在..?有这么多的api允许以一 ...

  3. python读取文件夹-Python按顺序读取文件夹中文件

    参考资料: 涉及到文件操作,我们有时候会读取一个文件夹中的所有的文件.这些文件可能是文件名完全混乱的,也可能是完全格式化的(如1.png,2.png...).下面介绍Python中的几种按顺序(假如有 ...

  4. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

  5. python改文件名_通过python顺序修改文件名字的方法

    通过python顺序修改文件名字的方法 更新时间:2018年07月11日 11:48:55 作者:longma666666 今天小编就为大家分享一篇通过python顺序修改文件名字的方法,具有很好的参 ...

  6. Python 按时间顺序读取所选目录下文件

    Python 按时间顺序读取所选目录下文件 不是很复杂,但用的次数比较频繁,作一个记录吧. import tkinter as tk from tkinter import filedialog im ...

  7. python处理问题汇总二(重复值索引,顺序读取文件,drop函数,数组元素排名)

    文章目录 1. python处理重复值索引问题 2.python读取文件夹列表的问题 3. dataframe删除指定行.列 1)drop函数 2)inplace参数 4. argsort数组索引排名 ...

  8. 使用python和pywin32模块实现连接打印机批量打印文件

    使用python实现连接打印机批量打印文件 python打印文件 python连接打印机 python打印文档文件 python打印图片文件 python批量打印文文件 python打印文件 pyth ...

  9. python 打印文件名_Python | 打印文件内容以及文件名

    python 打印文件名 打印文件名 (Printing file name ) To print the filename, we use "file_object.name". ...

最新文章

  1. ASP.net 2.0 自定义控件的开发之数据分页 第二章
  2. Flutter开发之MVC设计模式:新建文件与导入文件(八)
  3. 植物2 IOS 怎么实名认证_抖音怎么开店图解,抖音开店必须实名认证吗?,抖音开店需要什么条件...
  4. 李洪强-C语言2-字符串
  5. Foundation框架集合 ---- NSArray和NSMutableArray
  6. 现代新赛道(现代教育)高考日语主编董文彦
  7. Html5之canvas清除特定矩形、getContext、fillStyle、fillRect、clearRect、strokeRect
  8. [usOJ5529]小奇探险
  9. EBS R12: 通过FND_PRODUCT_INSTALLATIONS中字段STATUS确认安装使用了哪些产品(或模块)
  10. 微信iOS WKWebview 网页开发适配指南
  11. imagenet/ILSVRC2012数据集百度云及其具体分类
  12. 0.96寸OLED(SSD1306)屏幕显示(一)——基础功能介绍
  13. 一个与小球碰撞有关的有趣问题
  14. Hook是什么,React为什么要引入Hook
  15. MATLAB画ROC曲线
  16. 【带着canvas去流浪(9)】粒子动画
  17. 湖南科技大学数据挖掘复习提纲
  18. OpenDDS系列(3) —— 第一个OpenDDS程序
  19. 营改增后计算机维修费税率,软件行业的维修费税率是多少?
  20. 想学java老师建议学python怎么办?IT培训常见骗局汇总

热门文章

  1. 网易云课堂学习-TCP/UDP协议
  2. KEBA控制器通过NT50连接西门子S71200系列PLC
  3. 华为LAB实验室5—花卉分类
  4. querylist 入门query部署,获取网页的信息。
  5. 世界这么大,我想出网关:欧洲十国游与玄奘西行
  6. 《多媒体技术及应用Ⅰ》在线平时作业1
  7. 利用python addin插件开发实例
  8. ffmpeg 的各种声明已被否决,整理
  9. 嵌入式Linux设备驱动面试题汇总
  10. s8 android z,三星S8官方国行版安卓9固件系统线刷升级包:CHC-G9500ZCS4DSI1