Python编程: 打印机打印

该文章已生成可运行项目,

Python 可以通过多种方式控制打印机进行打印操作,以下是几种常用的方法:

使用 win32print (Windows 系统)

安装

pip install pywin32

示例代码

import win32print
import win32api

# 获取默认打印机
default_printer = win32print.GetDefaultPrinter()
print(f"默认打印机: {default_printer}")

# 列出所有打印机
printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL)
print("可用打印机:")
for printer in printers:
    print(f"- {printer[2]}")

# 打印文本文件
file_to_print = "document.txt"
printer_name = default_printer

# 使用系统命令打印
win32api.ShellExecute(0, "print", file_to_print, f'"{printer_name}"', ".", 0)

使用 cups (Linux/macOS 系统)

安装

pip install pycups

示例代码

import cups

# 连接CUPS服务器
conn = cups.Connection()

# 列出所有打印机
printers = conn.getPrinters()
print("可用打印机:")
for printer in printers:
    print(f"- {printer}")

# 打印文件
printer_name = list(printers.keys())[0]  # 使用第一个打印机
file_to_print = "document.pdf"

job_id = conn.printFile(printer_name, file_to_print, "Python Print Job", {})
print(f"打印任务已提交,ID: {job_id}")

使用 reportlab 生成 PDF 并打印

安装

pip install reportlab

示例代码

from reportlab.pdfgen import canvas
import subprocess

# 创建PDF文档
pdf_file = "output.pdf"
c = canvas.Canvas(pdf_file)
c.drawString(100, 750, "Python 打印测试")
c.drawString(100, 730, "这是一份通过Python生成的PDF文档")
c.save()

# 打印PDF (Linux/macOS)
subprocess.run(["lp", pdf_file])

# Windows系统打印
# subprocess.run(["notepad", "/p", pdf_file])

使用 python-escpos 控制热敏打印机

安装

pip install python-escpos

示例代码

from escpos.printer import Usb

# 连接USB打印机 (需替换厂商ID和产品ID)
p = Usb(0x0416, 0x5011)

# 打印内容
p.text("Python ESC/POS 打印测试\n")
p.text("这是一行文本\n")
p.text("----------------\n")
p.barcode("123456789", "EAN13")
p
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值