certflow.views.certificate_preview_painter module

合格证预览 QPainter 绘制器(C2:替代 QWebEngineView / HTML 渲染)。

统一打印预览坐标源:均来自 TemplateManager(mm 绝对坐标,与 ESC/P 实际打印一致), 因此空白字段不会造成下方字段上移。字段文本格式化复用 TemplateFieldFormatter (配置驱动、支持英制 Lb/in,并与 ESC/P 引擎同源),保证所见即所得。

PrintView``(主预览)与 ``PrintPreviewDialog``(对话框)共用,使单页预览区 收敛为单一 ``QLabel,整个应用不再依赖 Chromium(消除 offscreen/CI 下 setHtml 段错误)。

certflow.views.certificate_preview_painter.render_certificate_pixmap(data, serial_number, template_key, *, show_labels=True, paper_w_mm=60.0, paper_h_mm=100.0, preview_w_px=280, label_x_mm=8.0, bg_show=None, bg_opacity=None)[源代码]

按模板坐标用 QPainter 绘制合格证预览位图。

参数:
  • data (dict[str, Any]) -- 字段原始值字典(field_name → 值);未列出的字段跳过。

  • serial_number (str) -- 当前产品编号(覆盖 data 中的 serial_number 字段)。

  • template_key (str) -- TemplateManager 模板键(决定坐标与语言族)。

  • show_labels (bool) -- 是否绘制字段标题。

  • paper_h_mm (float) -- 纸张尺寸(mm),用于 mm→px 缩放。

  • preview_w_px (int) -- 预览位图宽度(px),高度按纸张比例推导。

  • label_x_mm (float) -- 标题列 x 坐标(mm)。

  • bg_opacity (float | None) -- 底板叠加开关与透明度;None 时读 background 配置(默认显示 / 0.3,见 config/print.yaml)。

  • paper_w_mm (float)

  • paper_h_mm

  • bg_show (bool | None)

  • bg_opacity

返回:

QPixmap 预览位图(白底)。

返回类型:

QPixmap