前言

环境

操作系统:win10
python:3.8.16

依赖

pip install openpyxl qrcode pillow pypiwin32 reportlab

功能

python printer.py 运行后,会检索本机已经连接的打印机设备,然后通过需要选择打印机,然后传入图片路径即可下发打印任务到打印机(期间会对图片转矢量图)。
可以对图片输入部分做个批量自动化,就可以批量打印了。

效果图

源码

直接打印版本

import win32print
import win32ui
from PIL import Image, ImageWin# 列出所有打印机
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):print(f"{i+1}: {printer}")# 选择打印机
choice = int(input("选择要使用的打印机 (输入对应的序号): ")) - 1
printer_name = printers[choice]# 加载图片
image_path = input("输入要打印的图片的路径: ")
image = Image.open(image_path)# 创建设备描述表
hDC = win32ui.CreateDC()
hDC.CreatePrinterDC(printer_name)# 开始文档
hDC.StartDoc(image_path)# 开始页面
hDC.StartPage()# 绘制位图
dib = ImageWin.Dib(image)
dib.draw(hDC.GetHandleOutput(), (0, 0, image.width, image.height))# 结束页面
hDC.EndPage()# 结束文档
hDC.EndDoc()# 删除设备描述表对象
del hDCprint("打印成功!")

打开edge进行打印的版本

会运行edge让你手动打印0.0

import subprocess
import win32print
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, landscape
from PIL import Image# 列出所有打印机
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):print(f"{i+1}: {printer}")# 选择打印机
choice = int(input("选择要使用的打印机 (输入对应的序号): ")) - 1
printer_name = printers[choice]# 加载图片
image_path = input("输入要打印的图片的路径: ")
image = Image.open(image_path)# 转换图片为PDF
pdf_path = image_path.rsplit('.', 1)[0] + '.pdf'
c = canvas.Canvas(pdf_path, pagesize=landscape(letter))
width, height = landscape(letter)
c.drawImage(image_path, 0, 0, width, height)
c.showPage()
c.save()# 打印PDF
edge_path = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' # 默认的Edge路径
cmd = [edge_path, '--kiosk-printing', pdf_path]
subprocess.run(cmd)print("打印成功!")

python实现 发送图片到打印机 进行打印相关推荐

  1. 发送文件到打印机,打印机收不到(无线打印机)

    发送文件到打印机,打印机收不到(无线打印机) 文章目录: 一.打印机收不文件 二.打印的时候说页数受限 一.打印机收不文件 在打印的时候,明明已经发送文件了,但是打印机那边还是查收不到.但是打印机旁边 ...

  2. 用Python定时发送图片到群消息,并艾特了所有人!

    大家好,我是小一 昨天关于excel自动化的那篇文章发出之后,感觉大家对这个还挺感兴趣,并且在才哥那边有好几位读者在追问如何实现图片自动发送 说实话,有点惊讶大家对图片定时发送感兴趣,我原以为会有读者 ...

  3. python 微信发送图片给好友_Python给指定微信好友自动发送信息和图片

    importosimport win32gui #pywin32-221.win-amd64-py3.7.exeimportwin32con from ctypesimport * importwin ...

  4. python 微信发送图片_使用python向企业微信发送文字和图片消息

    使用python向企业微信发送文字和图片消息 吐槽一下企业微信的api文档真的不好读······ 企业微信本来是有功能,可以直接把图片显示到正文的,但是那个api我调用一直出错,各种折腾也没解决.后来 ...

  5. python 微信发送图片失败什么原因_[已解决] Appium-Python 测试聊天时同时发送 9 张图片的问题...

    测试的功能 模拟微信聊天,测试一次发送 9 张图片,图片是否全部发送成功的功能,未成功的图片左侧出现小感叹号的图标. 我的思路 同时选择 9 张图片发送后,获取聊天列表 textview,通过 tex ...

  6. python socket 发送图片

    服务端 # -*- coding=utf-8 -*- import socket import threading import sys import os import structdef deal ...

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

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

  8. python打印机打印图片_python连接打印机实现打印文档、图片、pdf文件等功能

    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块. 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档.p ...

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

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

最新文章

  1. 【iOS_Development】文件操作
  2. 《Python从小白到大牛》第4章 Python语法基础
  3. 超20亿!2018年国家自然科学基金(重点项目)出炉!
  4. Ciruy英雄谭 Chapter 2 Web浏览器如何将数据委托出去(一)
  5. DBA查询命令积累——不断更新
  6. java弱_Java 强、弱、软、虚,你属于哪一种?
  7. 如何使用FlashgameMaster修改游戏
  8. Servlet 身份验证体系结构
  9. Gdevops广州站:主流数据库的选型、架构设计与迁移实战,一网打尽!
  10. [暑假]简单认识一下常用的字体 <<微软雅黑 黑体 和 宋体>>
  11. 写网页设计与制作的博雅互动的作业
  12. 黑莓蓝牙摇杆-Zeemote
  13. UVA 10115 Automatic Editing (字符串的替换和查找)
  14. MySQL多表查询优化
  15. 计算机的医学应用,计算机技术在医学中的应用
  16. 怎样将PDF设置成阅后即焚的文件
  17. C语言第13课——文件读写
  18. OpenSSL生成PKCS#8私钥和公钥
  19. 梦幻维护测试服务器怎么看平转,梦幻2.9维护没有测试服 百服平转要开放了
  20. hdu 1078 FatMouse Chees

热门文章

  1. 上善若水(9.18)
  2. Unity3D游戏优化方案
  3. shell 动态变量名
  4. 造车新势力包揽2家,IDG资本投资的小鹏汽车市值超1026亿!
  5. 老老实实的程序员该如何描述自己的缺点
  6. 如何看文献(个人经验)
  7. 浅谈 PHY 芯片 UTP 接口直连(不使用变压器)的设计
  8. 熊抱烧香源码c语言,李栋旭后台熊抱灿烈“亲密”耳语 显真情
  9. 2021-04-17如何追女生
  10. 2021最新版谷歌卫星地图已出炉,纯免费下载