From eb32528f7ec6846af0bf02dec96e153570b07ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E9=9B=A8?= Date: Fri, 5 Dec 2025 16:34:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8F=90=E4=BA=A4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 5 +++-- service/format_template_resume.py | 35 ++++++++++++++++++++++++++++++ service/template.docx | Bin 0 -> 15846 bytes 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 service/format_template_resume.py create mode 100644 service/template.docx diff --git a/requirements.txt b/requirements.txt index 7705871..e9e78db 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ -python-docx== 0.8.11 +python-docx fastapi -uvicorn \ No newline at end of file +uvicorn +docxtpl \ No newline at end of file diff --git a/service/format_template_resume.py b/service/format_template_resume.py new file mode 100644 index 0000000..863388f --- /dev/null +++ b/service/format_template_resume.py @@ -0,0 +1,35 @@ +from docxtpl import DocxTemplate +from pathlib import Path + +context = { + 'name': '张三', + 'sex': '男', + 'nation': '汉族', + 'brith': '1990-01-01', + 'address': '北京市海淀区西二旗', + 'education': '本科', + 'degree': '学士', + # 籍贯 + 'origin': '山东', + 'politics': '党员', + # 部门 + 'department': '数信部', + 'position': '助理开发工程师', + 'phone': '13812345678', + 'title': '后端开发工程师', + 'start_work_time': '2018-01-01', + # 身份证 + 'id_number': '500221199001010010101', + # 荣誉,交给大模型 + 'honor': '一等奖', + # 工作内容 + 'work_text': ''' + 2023.12-2024.10:负责《边缘计算+5G自组网的水电物联网系统建设与研究》项目异常检测算法和项目实施:利用5G自组网技术、自建边缘计算单元等,实际实现在线异常检测、时间序列趋势分析、模型轻量化等功能,缓解通信带宽压力;在观音岩、彭水、渝能等场站实施应用。完成项目科技成果凝练、项目报奖等工作。本项目工作获得第六届全国设备管理与技术创新成果一等奖、中电联职工创新成果二等奖。 +2024.04-2025.至今:广西河池源网荷储一体化项目/大唐西藏玉曲河扎拉电厂可行性研究报告&方案编写、AI支持中心方案策划 +''' + +} +file_path = Path.cwd().joinpath('template.docx') +template = DocxTemplate(file_path) +template.render(context) +template.save('E://resu//output.docx') diff --git a/service/template.docx b/service/template.docx new file mode 100644 index 0000000000000000000000000000000000000000..77ee22f35c6a209a3e9a88876cf2c0cfdf54e635 GIT binary patch literal 15846 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 R_)lW?^yl>i!1f#Te*ovtryT$Q literal 0 HcmV?d00001