首先从我的工作特点出发,介绍如果通过编程实现繁琐的工作简单化。

我在一家进口食品供应链企业工作,我的工作内容常常涉及到PDF文件的打印,比如:报关单,上回我在头条分享了两篇文章,关于 EXCEL - VBA代码的实现批量打印PDF打印文件的文章:1、EXCE-VBA-批量打印单元格内指定文件名的文件;2、批量打印PDF文件 Excel VBA;今天还是围绕打印PDF文件的,不过这次是用 Python代码实现。

Python和Pycharm的安装我这里就直接跳过,搜索一下有很多教程的,Pycharm用免费版就可以了。

首先,实现方式完全是按照自己的想法来的,每个公司都自己的系统或者表格记录着公司的重要信息,然而我们通过系统或者表格筛选出需要的数据后,通过复制相关信息后运行python程序后,程序会根据所复制的内容,在指定的文件夹内检索相关PDF文件,进行PDF文件的复制和打印。

我们用到的库有以下,安装方法可以通过Win+R,运行:CMA,输入pip install 库名安装;或者 通过Pycharm的的文件-设置-python解释器+ 搜索安装,搜索一下有很多教程的;

import os
import shutil
from tkinter import *
from tkinter import filedialog
import glob
import pyperclip
import win32api,win32con,win32print

定义def函数:

1、用于存放复制过来的PDF文件,这个文件夹我叫它“需打印的报关单”(我的电脑桌面路径是:C:\Users\Administrator\Desktop),主要功能就是判断一下这个文件夹是否存在,不存在就直接创建,已存在的话弹出提示框;

def mkdir():  # 文件夹是否存在处理过程isExists = os.path.exists("C:\\Users\\Administrator\\Desktop\\需打印的报关单")  # 判断路径是否存在  # 存在True  # 不存在Falseif not isExists:  # 判断os.makedirs("C:\\Users\\Administrator\\Desktop\\需打印的报关单")  # 不存在创建文件夹return Trueelse:   #存在就弹出提示框win32api.MessageBox(0, "帅哥美女:桌面已经有所需的文件夹了,文件夹内可能有之前的文件,请妥善处理后再点击 确认 。", "小叶提醒", win32con.MB_ICONASTERISK)

2、定义打印PDF文件指令,自动选择 电脑默认打印机;

def print_file(print_file):  #定义打印PDF文件指令open(print_file,"r")win32api.ShellExecute(0,"print",print_file,'/d:"%s"' % win32print.GetDefaultPrinter(),".",0)

3、程序入口,已标注得非常清楚,这里就不再扒拉巴拉了;

if __name__ == '__main__':a = 0   #定义一个变量,赋值为0,这个变量用于统计打印报关单的份数mkdir()   #调用函数 def mkdir(): 文件夹是否存在处理过程path0 = "C:\\Users\\Administrator\\Desktop\\需打印的报关单\\"   #定义一个变量,将创建的文件夹路径赋值给它path2 = pyperclip.paste() #定义一个变量,存放获取的剪切板数据filelist0 = path2.split("\r\n")  #定义一个变量,存放列表化的剪切板数据if not path2:   #剪切板为空的时候弹出提示框win32api.MessageBox(0, "帅哥美女:没有复制到柜号 或者 复制了其他无关内容,请重新到Excel表格复制柜号。", "小叶提醒QQ308699402", win32con.MB_ICONASTERISK)root = Tk()  #创建一个窗体,通过这个窗口选择指定的目标文件夹,目标文件夹存放着很多PDF文件,我们要通过这个程序在这个文件夹中筛选出需要的文件root.withdraw()  # 隐藏主窗口path1 = filedialog.askdirectory()  #定义一个变量,存放存放目标文件夹内容filelist1 = os.listdir(path1)   #定义一个变量,存放文件内容列表化数据for aa in filelist0:   #将列表化的剪切板数据一个一个的循环赋值给 aafor bb in filelist1:   #将文件内容列表化数据一个一个的循环赋值给 bbbb1 = bb[0:7]      #过滤文件名bb2 = bb[3:10]     #过滤文件名bb3 = bb[-13:-6]   #过滤文件名bb4 = bb[-14:-7]   #过滤文件名if bb1 == aa or bb2 == aa or bb3 == aa or bb4 == aa:  #判断过滤后的文件名与剪切板数据是否一致,直到全部剪切板数据比对完成 aafor cc in glob.glob(path1 +"/*" + aa + "*关*.pdf"):  #循环选取一致的文件shutil.copy(cc,path0)  #复制PDF文件到需打印的报关单文件夹win32api.MessageBox(    #批次量打印前的一次重要提醒,点击 确认 便开始打印复制好的PDF文件0,"帅哥美女:\n""电脑自动选择默认打印机\n""请检查打印机里面的纸张是否全部都是白纸,白纸是否足够\n""点击 确定 后开始打印文件夹内的报关单", "小叶提醒QQ308699402", win32con.MB_ICONASTERISK)desktop_path = "C:\\Users\\Administrator\\Desktop\\"  #定义一个变量,赋值一个路径,用于存放打印结果full_path = desktop_path + '已打印的报关单详细清单.txt'  # 创建一个txt文件,也可以创建一个.doc的word文档file = open(full_path, 'w')      #打开txt文档,写入数据file.write("已打印的报关单有:\n")for i in os.listdir(path0):    #循环打印报关单,直到 文件夹需打印的报关单里的全部文件加载到打印file_path = os.path.join(path0, i)print_file(file_path)  #调用打印PDF文件指令函数a += 1  #打印计数file.write(str(i) + "\n")   #已打印的文件名file.write("一共打印了" + str(a) + "份报关单,请等待打印机完成全部打印!!!")file.close()  #写入关闭

大功告成,运行一下吧!

注意:

1、电脑必须安装Adobe的PDF阅读器,并且将Adobe的PDF阅读器必须设为置为PDF文件的默认打开方式,否则程序会报错(error: (31, 'ShellExecute', '连到系统上的设备没有发挥作用。'))

2、运行前先复制好数据;

3、相关图片

Python 实现 批量 复制指定PDF文件 到指定文件夹并批量打印出来相关推荐

  1. Python+Excel系列:案例七:将一个工作薄的所有工作表批量复制到其他工作簿、将某个工作表的数据批量复制到其他工作簿的指定工作表中

    文章目录 将一个工作薄的所有工作表批量复制到其他工作簿 将某个工作表的数据批量复制到其他工作簿的指定工作表中 将一个工作薄的所有工作表批量复制到其他工作簿 import os #导入os模块 impo ...

  2. ffmpeg批量转换flac为wav,m4a转换为wav,批量删除目录下某一后缀名文件,复制文件中有相同部分的文件

    m4a转换为wav建立python文件: def convert(save_path):files = glob.glob('%s/voxceleb2/*/*/*.m4a'%save_path)fil ...

  3. 用.NET SqlBulkCopy类执行批量复制

    在不同数据源之间转移数据是一个常见的开发任务.如果你应用过SQL Server,就会熟悉bcp(批量复制)命令. 它允许你快速将大型文件批量复制到SQL Server表或视图中.在.NET Frame ...

  4. 海康工业相机功能模块-参数保存、加载、批量复制参数

    海康工业相机功能模块-参数保存与加载 前言 相机参数保存的快速方法 相机参数导入导出的操作方法 UserSetLoad 加载相机内部参数 FeatureLoad/FeatureSave FileAcc ...

  5. 批量复制IE临时文件(Temporary Internet Files)

    建一批处理文件:BatchCopyIETempFiles.bat REM 批量复制IE临时文件中的SWF文件,示例为获取Android*.swf的swf文件. cd /d "%userpro ...

  6. 【Python】pdfminer3k模块批量转换本地PDF文件

    上一篇文章自己研究了一下如何批量将word或者ppt文件转换为PDF文件,但是有时候我们也想要将pdf文件转换为word或者txt文件,方便复制和处理.本文主要通过调用pdfminer3k模块进行处理 ...

  7. python下的所有文件_python批量复制文件夹下所有文件大小

    python复制文件夹下所有文件 Python---进阶---文件操作---获取文件夹下所有文件的数量和大小 一.####编写一个程序,统计当前目录下每个文件类型的文件数 ####思路: - 打开当前 ...

  8. 【Python】comtypes模块Windows环境下使用批量转换成PDF文件

    最近在微信看到一篇文章介绍说批量将ppt文件转化为pdf文件,自己尝试了一下,后面想能否自己封装一个类,既能将ppt转换为pdf,而且能够将word转换为pdf,或者其他类型转化为pdf.花了半天时间 ...

  9. python ppt转pdf macos_如何在 macOS 上一键批量把 PPT 和 Word 文件转成 PDF

    相信不少人都有或曾经有过需要将多个 PPT/Word 文件转为 PDF 的需求,可能是一堆 PPT 课件为了方便批注,也可能是一些 Word 文档为了方便阅读.每次只能打开一个文档,选择「另存为」,选 ...

  10. Python3,9行批量提取PDF文件的指定内容,这种操作,保证人见人爱....

    批量提取PDF文件指定内容 1.引言 2.代码实战 2.1 介绍 2.2 安装 2.3 实例 3.总结 1.引言 小屌丝:鱼哥, 你有没有什么办法,提取PDF文档的内容. 小鱼:这个还问我?? 小屌丝 ...

最新文章

  1. Mysql4种方式避免重复插入数据!
  2. 初中英语八下单词表(SuperMemo QA文本格式)
  3. 51Testing第二十一期软件测试免费沙龙开始报名(上海)
  4. Windows10+GPU版 pytorch 安装
  5. cad 怎么显示块句柄_cad怎么显示工具栏
  6. 【渝粤题库】国家开放大学2021春1366英语教学理论与实践题目
  7. DeepLesion 更新下载
  8. batch、epoch、iteration的区别
  9. FreeBSD tips
  10. HTML网页设计结课作业——19张精美网页!
  11. Chrome 插件PPAPI 开发(一)环境搭建
  12. 游戏王决斗连接显示服务器错误,游戏王决斗链接
  13. OpenCV-Python 图像平移
  14. 黑莓android系统,黑莓Passport的手机系统是什么?能升级安卓5.0吗?
  15. Vivado综合running时间太长
  16. 合并的表格怎么加横线_word
  17. Elasticsearch Kibana Filebeat开启SSL通信
  18. 张勋说:简述球磨机内介质(钢球|钢棒|衬板)运动动力学(图文)
  19. char* 和 char[]的区别
  20. 地球投影的分类和实例

热门文章

  1. 汽车制造行业OEM Tier1 Tier2指代什么?
  2. 登录账号提示服务器出错怎么办,教育平台号和密码都正确,就是显示用户名和或密码错误,登不上怎么办呀?...
  3. qt html转pdf 怎么取消页码,更改或删除QPrintPreviewWidg中的页码
  4. 快速截图工具——百度输入法的扩展功能
  5. word批量调整图片大小--宏
  6. java倍数增长计算公式,增长倍数计算公式是什么
  7. 中英文自动翻译(有道翻译、彩云小译)
  8. ubantu 14.04重置密码
  9. 高考成绩真的可以改了?
  10. Android studio 突然连接不上夜神模拟器