certflow.services.printer_manager module¶
Windows 打印机管理服务
封装 win32print + win32ui 底层调用,提供打印机枚举、状态查询、 GDI 精确打印、PDF/图片/HTML 打印等功能。
64-bit Python 环境兼容,不依赖 Access/32位 ODBC。
- class certflow.services.printer_manager.PrinterStatus(*values)[源代码]¶
基类:
Enum打印机状态枚举
- READY = '就绪'¶
- PAUSED = '暂停'¶
- ERROR = '错误'¶
- PENDING = '待机'¶
- PAPER_OUT = '缺纸'¶
- OFFLINE = '离线'¶
- UNKNOWN = '未知'¶
- class certflow.services.printer_manager.PaperSize(*values)[源代码]¶
基类:
Enum纸张大小枚举
- CERTIFICATE_60x100 = (60, 100, '合格证标准 (60x100mm)')¶
- CERTIFICATE_130x75 = (130, 75, '合格证 (130x75mm)')¶
- A4 = (210, 297, 'A4 (210x297mm)')¶
- CUSTOM = (0, 0, '自定义')¶
- class certflow.services.printer_manager.PrinterInfo(name, port='', driver='', status=PrinterStatus.UNKNOWN, is_default=False, paper_sizes=<factory>)[源代码]¶
基类:
object打印机信息
- 参数:
- status: PrinterStatus = '未知'¶
- class certflow.services.printer_manager.PrintJob(job_id, document_name, printer_name, pages=0, copies=1, status='', submitted_time='')[源代码]¶
基类:
object打印任务信息
- 参数:
- class certflow.services.printer_manager.PrinterManager[源代码]¶
基类:
QObject打印机管理器
封装 Windows 打印子系统,提供打印机枚举、状态监控、 GDI 精确文字打印、文件打印等功能。
分层说明:本模块归属 services 层,不应被 UI 库强制绑定导入。 在无 PySide6(headless / 无 X11)环境下,信号与监控定时器自动降级为空操作, 模块仍可导入与实例化,仅丢失 GUI 事件通知能力。
- Signals(仅 Qt 环境生效):
printer_added: 新增打印机 (name) printer_removed: 移除打印机 (name) printer_status_changed: 状态变化 (name, status) print_started: 打印开始 (doc_name, job_id) print_completed: 打印完成 (doc_name, job_id) print_failed: 打印失败 (doc_name, error_msg) progress_updated: 进度更新 (current, total)
- printer_added¶
- printer_removed¶
- printer_status_changed¶
- print_started¶
- print_completed¶
- print_failed¶
- progress_updated¶
- printers: dict[str, PrinterInfo]¶
- get_printer_status(printer_name=None)[源代码]¶
获取打印机状态。
- 参数:
printer_name (str | None) -- 打印机名称,为 None 时使用默认打印机。
- 返回:
对应打印机状态,未知时返回 PrinterStatus.UNKNOWN。
- 返回类型:
- print_text_only(data, serial_number, printer_name=None)[源代码]¶
使用 win32 GDI 精确打印文字到预印卡纸
在 60mm × 100mm 预印卡纸的指定坐标位置输出文字。 卡纸已预印底板(边框、标题、品保章等),打印机只输出动态文字。 跳过空值字段,避免覆盖卡纸原有内容。
- save_settings(settings_file='printer_settings.json')[源代码]¶
保存打印机设置到 JSON 文件。
- 参数:
settings_file (str) -- 设置文件路径,默认为 "printer_settings.json"。
- 返回类型:
None
- load_settings(settings_file='printer_settings.json')[源代码]¶
从 JSON 文件加载并设置默认打印机。
- 参数:
settings_file (str) -- 设置文件路径,默认为 "printer_settings.json"。
- 返回类型:
None
- staticMetaObject = PySide6.QtCore.QMetaObject("PrinterManager" inherits "QObject": Methods: #4 type=Signal, signature=printer_added(QString), parameters=QString #5 type=Signal, signature=printer_removed(QString), parameters=QString #6 type=Signal, signature=printer_status_changed(QString,PyObject), parameters=QString, PyObject #7 type=Signal, signature=print_started(QString,int), parameters=QString, int #8 type=Signal, signature=print_completed(QString,int), parameters=QString, int #9 type=Signal, signature=print_failed(QString,QString), parameters=QString, QString #10 type=Signal, signature=progress_updated(int,int), parameters=int, int )¶