首页 > 其他分享 >影刀RPA之接入草料二维码实现自动生成标签图片与打印

影刀RPA之接入草料二维码实现自动生成标签图片与打印

时间:2024-09-29 20:52:14浏览次数:7  
标签:img height RPA 影刀 二维码 api hdc key import

如果您还不认识(影刀RPA)这个宝藏应用强烈建议您阅读这篇文章(影刀RPA之我对这个宝藏应用的见解) 

运行的流程和调用的解释说明:

其实这个是通过调用草料二维码官方的接口来实现批量生成图片的,然后生成的图片在本地的文件夹内。生成图片的代码可以参考(对接草料二维码批量生成标签的Python代码),然后其他的是使用了影刀官方自带的一个打印图片,先设置默认的打印机,然后给打印机设置打印任务,由于官方的打印板块无法设置图片方向,所以我用Python开发了一个自定义指令来实现图片的方向,具体的代码可以查看(批量打印的Python代码)

以下是影刀板块的流程

对接草料二维码批量生成标签的Python代码

# 使用提醒:
# 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 hashlib
import requests
from openpyxl import load_workbook

#NOTE 运行前请安装好 hashlib、requests、openpyxl 依赖库
def download_images(file, api_key, api_secret, cliT, folder):
    '''
    读取excel数据,生成url并下载对应的图片到`folder`目录
    @param file: excel文件路径
    @param api_key: 用户账号api key
    @param api_secret
    @param cliT: 标签样式编号
    @param folder: 图片保存路径
    '''
    wb = load_workbook(file)
    ws = wb.active
    for i, row in enumerate(ws.iter_rows(min_row=2)):
        dct = {f'cliF{i}': row[i].value for i in range(1, ws.max_column)}
        dct['api_key'] = api_key
        dct['cliD'] = row[0].value
        dct['cliT'] = cliT
        dct['return_file'] = ''

        lst = [str(key) + '=' + str(dct[key]) for key in sorted(dct.keys())]
        string = '&'.join(lst) + api_secret
        md5 = hashlib.md5()
        md5.update(string.encode('UTF-8'))
        sign = md5.hexdigest()
        string = string.replace(f'return_file={api_secret}', f'sign={sign}&return_file=')
        url = 'https://open-api.cli.im/cli-open-platform-service/v1/labelStyle/createWithKey'
        _url = url + '?' + string
        resp = requests.get(_url)
        with open(f'{folder}/image{i+1:0>3}.png', 'wb') as f:
            f.write(resp.content)

def main(args):
    api_key = '修改成你自己的key'
    api_secret = '修改成你自己的secret'
    cliT = '标签样式编号'
    file = 'demo.xlsx'
    folder = '.'
    download_images(file, api_key, api_secret, cliT, folder)

批量打印的Python代码

# 使用提醒:
# 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 win32print
import win32ui
import win32con
from PIL import Image, ImageWin

def print_image(image_path):
    """
    使用默认打印机打印图片,并设置图片为横向
    :param image_path: 图片文件的路径
    """
    # 打开默认打印机
    printer_name = win32print.GetDefaultPrinter()
    hprinter = win32print.OpenPrinter(printer_name)

    try:
        # 打开图片
        img = Image.open(image_path)
        
        # 设置打印机的设备上下文(DC)
        hdc = win32ui.CreateDC()
        hdc.CreatePrinterDC(printer_name)

        # 开始文档
        hdc.StartDoc("Printing Image")
        # 开始页面
        hdc.StartPage()

        # 获取图片的宽度和高度
        img_width, img_height = img.size

        # 获取打印纸的宽度和高度
        paper_width = hdc.GetDeviceCaps(win32con.HORZRES)
        paper_height = hdc.GetDeviceCaps(win32con.VERTRES)

        # 设置打印机分辨率(DPI)
        dpi_x = hdc.GetDeviceCaps(win32con.LOGPIXELSX)
        dpi_y = hdc.GetDeviceCaps(win32con.LOGPIXELSY)

        # 计算打印尺寸(将图片尺寸按DPI缩放)
        printable_width = paper_width
        printable_height = int((img_height * paper_width) / img_width)

        if printable_height > paper_height:
            # 如果计算后的高度超过纸张高度,则按比例缩小
            printable_height = paper_height
            printable_width = int((img_width * paper_height) / img_height)

        # 将图片绘制到打印机DC上
        dib = ImageWin.Dib(img)
        dib.draw(hdc.GetHandleOutput(), (0, 0, printable_width, printable_height))

        # 结束页面和文档
        hdc.EndPage()
        hdc.EndDoc()

    finally:
        # 关闭打印机
        win32print.ClosePrinter(hprinter)

# 示例调用
#image_path = r"C:\Users\windows\Desktop\1\新建文件夹\ba4c0ce6693ef2f482b52ff3ff43c6e.png"
#print_image(image_path)

标签:img,height,RPA,影刀,二维码,api,hdc,key,import
From: https://blog.csdn.net/weixin_43321334/article/details/142487052

相关文章

  • 火语言RPA流程组件介绍--处理网页对话框
    ......
  • 影刀RPA实战:CSDN资料查看小工具
    1.实战目标本次带来的实战,是制作一个查询小工具,作为技术人员,不可避免的就是查资料,在一个搜索引擎上来回折返跑,浏览页面,打开页面,关闭页面,反反复复,今天呢,将这些工作交给影刀,我们就专注阅读可以了。主要的流程:设定查询内容与过滤条件,本次的过滤条件依据文章的点赞数循环过滤文......
  • Android 热点分享二维码功能简单介绍
    Android热点分享二维码文章目录Android热点分享二维码一、前言二、热点二维码1、热点分享的字符串2、代码中热点字符串拼接和设置示例3、一个图片示例三、其他1、Android热点分享二维码小结2、Android11设置默认热点名称和热点密码、密码长度一、前言比较新......
  • pbootcms自动生成当前页面二维码
    在PbootCMS中,生成二维码标签可以帮助用户更方便地访问特定的页面或内容。下面详细介绍如何在首页、列表页和文章内容页生成二维码标签。生成二维码标签的方法PbootCMS提供了 {pboot:qrcode}标签来生成二维码图片。这个标签可以用于生成对应文本的二维码图片,适用于各种页面,如......
  • 【影刀RPA-网页自动化烟草采集】
    工具简介:帮助用户高效地完成重复性的数据采集和信息处理任务。可以模拟人工操作,自动执行网页上的点击、输入和数据提取等动作,从而大幅提高工作效率,减少人为错误。使用场景:1.市场调研:企业可以从多个竞争对手的网站上自动抓取产品信息、价格、促销活动等数据,为市场分析提供依......
  • maven annotationProcessorPaths
    <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><annotat......
  • 影刀RPA实战:网页爬虫之天猫商品数据
    1.实战目标1.1实战目标在电商行业,我们经常爬取各个平台的商品数据,通过收集和分析这些商品数据,企业可以了解市场趋势、消费者偏好和竞争对手的动态,从而制定更有效的市场策略。爬取商品数据对于企业在市场竞争中把握先机、优化运营策略、提升产品和服务质量具有重要的价值分......
  • 您可以为网站 URL 创建二维码
    您可以使用react-qr-code库为网站url“https://www.npmjs.com/package/react-qr-code”创建二维码。该库提供了一种在react应用程序中生成qr码的简单有效的方法。使用方法如下:安装:首先,在项目目录中运行以下命令来安装react-qr-code包:npmireact-qr-code登录后复制如果您使用......
  • 影刀RPA之自动化上传填表
    了解影刀学习影刀:影刀RPA下载教学版工具名称:影刀-自动化上传填表程序简介:   该程序是模拟人工登录操作,读取文件夹里面的文件上传到该网站并选择填写内容然后提交,依次循环。使用场景:    该程序的优势在于操作方法节省了时间成本,提高了工作效率,从而减少错误率的......
  • 影刀RPA之成绩批量查询系统
    如果你还不知道影刀RPA是什么,那就快来这看看吧影刀RPA下载教学版工具名称:影刀RPA-成绩批量查询系统工具介绍:   自动化登录账号,读取数据表中内容去填写信息去查询,并判断多个数据不同的页面去不同的读取查询结果内容,如考生各项信息与各科成绩,总分和查询时间,采集出来到指......