certflow.services.scan_service module

合格证扫描件生成服务

提供扫描件生成的业务逻辑: - 批量生成扫描件 - 模板坐标管理 - 调用 Handler 进行底层绘制

class certflow.services.scan_service.ScanService(session=None)[源代码]

基类:object

扫描件生成服务

封装扫描件生成的业务逻辑,支持单张与多张拼接两种模式, 并委托底层 Handler 完成画布创建、字段绘制与文件导出。

参数:

session (Session | None)

load_certificates(certificate_ids)[源代码]

加载合格证记录

参数:

certificate_ids (list[int]) -- 合格证 ID 列表

返回:

合格证列表

返回类型:

list[Certificate]

generate_scans(certificate_ids, output_dir, template_type='全中文', output_format='JPG', rows=1, cols=1, paper_width_mm=60, paper_height_mm=100, data_overrides=None, dual_code=False, progress_callback=None)[源代码]

生成扫描件

参数:
  • certificate_ids (list[int]) -- 合格证 ID 列表

  • output_dir (str) -- 输出目录

  • template_type (str) -- 模板类型 (全中文/中英文/俄英文)

  • output_format (str) -- 输出格式 (JPG/PDF)

  • rows (int) -- 每页行数

  • cols (int) -- 每页列数

  • paper_width_mm (float) -- 纸张宽度 (mm)

  • paper_height_mm (float) -- 纸张高度 (mm)

  • progress_callback (Callable[[int, int, str], None] | None) -- 进度回调函数 fn(current, total, message)

  • data_overrides (dict[int, dict] | None)

  • dual_code (bool)

返回:

{

"success": int, # 成功生成的文件数 "failed": int, # 失败的数量 "files": list[str], # 生成的文件路径列表 "message": str # 结果消息

}

返回类型:

生成结果字典