certflow.services.cert_print_engine module

合格证打印引擎

提供 GDI 精确打印、HTML 降级打印和打印策略选择。

class certflow.services.cert_print_engine.CertPrintEngine(printer_name='')[源代码]

基类:object

合格证打印引擎

提供打印的核心能力: - GDI 精确打印到预印卡纸 - HTML 降级打印方案 - 打印策略选择(GDI / ESC/P-K)

参数:

printer_name (str)

printer_name

默认打印机名称

property last_os_job_id: int | None

最近一次打印提交的 OS 作业 ID(GDI 路径经 hdc.StartDoc、ESC 路径 经策略委托 PrinterService 捕获)。headless 下为 None

print_single(data, serial_number, printer_name=None, print_fields=None)[源代码]

打印单台合格证(策略模式入口)

根据 config.yaml → print.engine 自动选择 GDI 或 ESC/P-K 引擎。

参数:
  • data (dict[str, Any]) -- 打印数据字典(含 product_name、dn、pn 等字段)

  • serial_number (str) -- 合格证编号(SN)

  • printer_name (str | None) -- 打印机名称,None 则使用默认打印机

  • print_fields (list[str] | None) -- 需要打印的字段名列表,None 表示打印全部字段

返回:

是否打印成功

返回类型:

bool

print_html_fallback(data, serial_number)[源代码]

HTML 降级打印方案

GDI 打印失败时生成 HTML 文件用浏览器打印。

参数:
  • data (dict[str, Any]) -- 打印数据字典

  • serial_number (str) -- 合格证编号(SN)

返回:

临时 HTML 文件路径,失败返回 None

返回类型:

str | None