一、需求背景
客户有一个需求吊牌打印,每一份文件都需要进行打印,一份一份手动打开文件,修改几个关键值,然后一份一份点击打印,非常费时,且很重复,那这么重复的场景就可使用影刀来解决了;
二、解决方式
1. 纯代码操作
通过查询资料,发现要操作打印机,需要用到python的两个库,分别是 win32api和win32print。通过这两个库,可实现自定义文件打印以及自定义选择要连接的打印机,接下来请看具体代码演示:
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
def main(args):
pass
import win32api
import win32print
# print(win32print.EnumPrinters(3)) # 获取所有打印机列表
for i in win32print.EnumPrinters(3):
print(i)
def print_file(file_path, printer_name):
try:
# 设置指定打印机为默认打印机
win32print.SetDefaultPrinter(printer_name)
# 打印文件
win32api.ShellExecute(0, "print", file_path, None, ".", 0)
print("文件已发送到指定打印机打印")
except Exception as e:
print("无法打印文件:", str(e))
# 要打印的文件路径
file_path = r"C:\Users\27803\Desktop\1.pdf"
# 要指定的打印机名称
printer_name = "NPI97EDD4 (HP LaserJet MFP M232dwc)"
# 调用打印函数打印文件
for i in range(4):
print_file(file_path, printer_name)
注意:目前测试下来是支持打印pdf的文件
2. 模拟人工操作
- 前提条件:电脑提前连接上打印机
- 操作步骤:使用影刀循环打开PDF文件,并点击打印
- 打印机的使用方法:
1、首先检查的电脑已经连接到一个打印机上,可以打开电脑的控制面板里硬件和声音,里面设备和打印机选项,如果已经正常连接之后就能够看到第一行打印机和传真项目中有一个打勾的打印机。
2、打开您需要打印的文档或者图片,文档打开之后点击左上角的文件选项中,选择打印就可