certflow.handlers.template_handler module¶
模板配置管理器
管理合格证打印模板的配置,包括内置模板(全中文/中英文/全英文/俄英文) 和用户自定义模板。提供 templates.xlsx 历史模板数据的读写功能。
从 certificate_printer v2.0 移植,整合到 CertFlow 架构中。
- 分层说明:
本模块为纯数据处理层(handlers),不依赖 PySide6,可在无 Qt (headless / 无 X11)环境导入。模板切换通知采用普通回调机制 (
on_template_changed),由上层 View 自行桥接到 Qt 信号。
- class certflow.handlers.template_handler.FieldMapping(source_field, target_cell='', display_name='', show_label=False, x=0, y=0, align='left', font_size=8, is_required=False, default_value='', format_string='')[源代码]¶
基类:
object字段映射 — 数据源字段到打印目标位置的映射
- 参数:
- class certflow.handlers.template_handler.TemplateConfig(name, display_name, template_type='全中文', page_width=60, page_height=100, background_image='', fields=<factory>)[源代码]¶
基类:
object合格证打印模板配置
- 参数:
- fields: list[FieldMapping]¶
- class certflow.handlers.template_handler.TemplateManager(templates_xlsx_path='')[源代码]¶
基类:
object模板管理器
管理合格证打印模板的配置,支持内置模板和用户自定义模板。 提供 templates.xlsx 历史模板数据的查询和回填功能。
- 通知机制:
模板切换时回调
on_template_changed注册的监听器(携带模板名称)。 本类不依赖 Qt;如需 Qt 信号,由上层 View 注册回调后自行转发。
- 参数:
templates_xlsx_path (str)
- templates: dict[str, TemplateConfig]¶
- current_template: TemplateConfig | None¶
- add_template(template)[源代码]¶
添加模板
- 参数:
template (TemplateConfig) -- 要添加的模板配置对象
- 返回:
None
- 返回类型:
None
- get_template(name)[源代码]¶
获取模板
- 参数:
name (str) -- 模板内部名称
- 返回:
命中的模板配置,未找到时返回 None
- 返回类型:
TemplateConfig | None
- get_template_by_display_name(display_name)[源代码]¶
根据显示名称获取模板
- 参数:
display_name (str) -- 模板用户可见名称
- 返回:
命中的模板配置,未找到时返回 None
- 返回类型:
TemplateConfig | None
- import_template(file_path)[源代码]¶
从 JSON 导入模板配置
- 参数:
file_path (str) -- 源 JSON 文件路径
- 返回:
导入成功的模板配置,异常时为 None
- 返回类型:
TemplateConfig | None
- load_from_xlsx(xlsx_path=None)[源代码]¶
从 templates.xlsx 的「数据库」工作表加载历史模板数据
- 参数:
xlsx_path (str | None) -- xlsx 文件路径,默认使用初始化时指定的路径
- 返回:
DataFrame 或 None
- 返回类型:
DataFrame | None