certflow.handlers.report_generator module¶
报告生成处理器模块
基于ReportLab库生成PDF格式的试压报告、材质报告和质保书, 支持中英文双语、自定义模板样式、合并单元格和分页等功能。
- class certflow.handlers.report_generator.ReportGenerator(output_dir='reports')[源代码]¶
基类:
object报告生成处理器 - 支持复杂模板和合并单元格
基于ReportLab生成PDF报告,支持试压报告、材质报告和质保书三种类型, 提供中文字体注册、自定义样式、分页和签名栏等功能。
- 参数:
output_dir (str)
- output_dir¶
输出目录路径,用于存放生成的PDF文件
- styles¶
报告样式集合,包含自定义的中文段落样式
- generate_pressure_test_report(data, template_name='pressure_test', language='zh', records_per_page=5)[源代码]¶
生成试压报告
根据测试数据生成PDF格式的试压报告,支持分页和签名栏。
- 参数:
- 返回:
生成的PDF文件完整路径
- 返回类型:
示例
>>> generator = ReportGenerator("output/reports") >>> test_data = [ ... {"test_pressure": "1.5", "hold_time": "60", "test_result": "合格"}, ... {"test_pressure": "2.0", "hold_time": "90", "test_result": "合格"} ... ] >>> filepath = generator.generate_pressure_test_report(test_data) >>> print(f"报告已生成: {filepath}")
- generate_material_certificate(data, material_type='steel', language='zh', records_per_page=6)[源代码]¶
生成材质报告/质保书
根据材质数据生成PDF格式的材质证明书。
- 参数:
- 返回:
生成的PDF文件完整路径
- 返回类型:
示例
>>> generator = ReportGenerator() >>> material_data = [ ... {"material_grade": "Q235B", "specification": "10mm", "heat_no": "H12345"}, ... {"material_grade": "304", "specification": "8mm", "heat_no": "H67890"} ... ] >>> filepath = generator.generate_material_certificate(material_data) >>> print(f"材质报告已生成: {filepath}")
- generate_quality_certificate(data, language='zh')[源代码]¶
生成质保书(单页)
根据质保数据生成单页PDF格式的产品质量保证书。
- 参数:
- 返回:
生成的PDF文件完整路径
- 返回类型:
示例
>>> generator = ReportGenerator() >>> quality_data = { ... "product_name": "阀门", ... "specification": "DN100", ... "quantity": "100", ... "batch_no": "B2024001" ... } >>> filepath = generator.generate_quality_certificate(quality_data) >>> print(f"质保书已生成: {filepath}")