教育领域:教师可快速处理教案(docx 文件),统一格式(如标题样式、字体)、优化图片显示,或一键将教案转换为 PPT 课件,提升备课效率;
科研机构:研究人员可将包含公式的 docx 文档转换为结构化知识(如将 OMath 公式转为 LaTeX 格式),便于知识库归档和学术内容复用;
企业培训:培训专员可批量处理培训材料,标准化文档格式并生成 PPT 课件,降低文档处理的重复劳动成本。
点击空白处退出提示
教育领域:教师可快速处理教案(docx 文件),统一格式(如标题样式、字体)、优化图片显示,或一键将教案转换为 PPT 课件,提升备课效率;
科研机构:研究人员可将包含公式的 docx 文档转换为结构化知识(如将 OMath 公式转为 LaTeX 格式),便于知识库归档和学术内容复用;
企业培训:培训专员可批量处理培训材料,标准化文档格式并生成 PPT 课件,降低文档处理的重复劳动成本。
项目基于 Streamlit 构建,核心功能围绕 docx(及少量 pdf)文件的自动化处理,分为三大模块:
1.文件预处理
支持对 docx 文件进行格式优化,包括:设置标题样式、统一字体(支持选择答案颜色为青色 / 洋红)、放大图片、调整页面布局、添加分页符、标记段落(便于后续结构化处理);
处理后可直接下载优化后的 docx 文件。
2.PPT 课件制作
基于 docx 文件生成 PPT 课件,支持先对文档进行段落标记(提升 PPT 生成准确性),再通过 “运行程序” 触发转换;
生成的 PPT 自动保存至本地指定路径(D:/文档/课件制作/[文件名]),并返回保存路径提示。
3.知识库处理
针对知识结构化需求,支持对 docx 文件进行标题标记(便于知识层级划分)、将文档中的 OMath 公式转换为 LaTeX 文本(适配学术 / 知识库的公式展示格式);
处理后可直接下载结构化后的 docx 文件。
4.基础交互功能
支持上传单个或多个 docx、pdf 文件(pdf 仅用于保存至本地课件目录);
通过复选框选择需要的处理选项,点击对应按钮触发处理,处理完成后通过 toast 提示结果。
1. 技术栈
前端框架:Streamlit(快速构建 Web 交互界面,支持文件上传、按钮、复选框等组件);
后端处理:Python,依赖python-docx等模块实现 docx 转 pptx;
其他:os模块处理文件路径,BytesIO处理内存中的文件流。
2. 核心实现流程
(1)界面搭建
通过 Streamlit 的file_uploader组件接收用户上传的 docx/pdf 文件;
用columns划分 3 列布局,分别展示 “文件预处理”“制作 ppt 课件”“知识库处理” 的复选框选项,用户可选择需要的处理功能;
提供 “答案颜色选择框” 和三个功能按钮(对应三大模块),并通过自定义 CSS 美化界面(如调整字体大小、列背景色)。
(2)文件处理逻辑
预处理(process_docx1函数):读取上传的 docx 文件流,根据选中的选项调用format_doc对象的方法(如set_titlestyle设置标题、set_font更改字体等),处理后返回文件流供下载;
PPT 制作(docx_pptx函数):先将处理后的 docx 文件保存至本地目录,若选中 “运行程序”,则调用docx2pptx函数生成 PPT,返回保存路径;
知识库处理(process_docx2函数):类似预处理,根据选项调用mark_title(标记标题)、omml2latex(OMath 转 LaTeX),返回处理后的文件流。
(3)交互触发与反馈
当用户选择文件并点击对应功能按钮后,后端根据文件类型(docx/pdf)执行处理逻辑;
处理完成后,通过st.download_button提供文件下载(docx),或通过st.toast提示 PPT 保存路径 / 处理结果。
评论