用途
lovstudio-fill-form 用于将用户提供的数据填入 Word 文档表单模板(.docx)。它面向使用 Word 表格布局的表单场景:识别表格中“标签→值”的单元格对(一个单元格为标签,相邻单元格为填值位置),并自动填充。
主要能力
- 扫描模板:发现文档中所有可填字段。
- 表格字段检测(主要方式):扫描所有表格,查找包含标签→值单元格对的行。标签单元格包含短文本(中文或拉丁文),相邻单元格即为填值字段。
- 合并行检测:识别全宽合并单元格中符合“标签:”模式的大段文本区域。
- 段落回退:如果未发现表格,则在段落中检测“标签:值”模式。
- 从已知上下文预填:可依据用户记忆、参考文档、对话上下文尽量填充字段,尤其对内容较多的字段(如“主要内容/简介/摘要”)主动组织内容。
- 仅询问未知字段:通过提问方式只收集无法从上下文填写的字段,可将多个字段合并为一个问题;尊重用户指定留空的字段。
使用方式
工作流程要求按顺序执行:
-
扫描模板: python lovstudio-fill-form/scripts/fill_form.py --template <path> --scan
-
从已知上下文预填(用户记忆、上下文文件、对话上下文)。
-
仅询问无法从上下文获取的字段。
-
填写并保存:将数据写入 JSON 文件,然后运行: python lovstudio-fill-form/scripts/fill_form.py --template <path> --data-file /tmp/form_data.json
输出路径规则:默认输出到 <template_dir>/<name>_filled.docx(与模板同目录)。若模板位于临时目录或系统路径,则保存到用户文档目录或询问用户保存位置;可使用 --output 显式覆盖。
CLI 参数:
- --template(必填):模板 .doc/.docx 文件路径。
- --output:输出 .docx 路径,默认 <template_dir>/<name>_filled.docx。
- --scan:列出所有检测到的表单字段,默认 false。
- --data:字段→值映射的 JSON 字符串,默认空。
- --data-file:字段→值映射的 JSON 文件路径,默认空。
- --font:填充文本的字体名称,默认平台 CJK 衬线字体。
- --font-size:字体大小(磅),默认 11。
适用场景
- 用户拥有带空白字段的 .docx 表单模板需要填写。
- 用户想要填写申请表、登记表等。
- 文档使用 Word 表格作为表单布局(标签 | 值单元格对)。
- 用户提到填表、申请表、登记表,或希望自动化表单填写。
限制
- .doc 文件会通过 macOS textutil 自动转换为 .docx,此过程会丢失表格结构。为获得最佳效果,请直接使用 .docx 模板;若只有 .doc,可先用 LibreOffice 转换:libreoffice --headless --convert-to docx file.doc
- 字段按规范化后的标签文本(去除空白)匹配。如果标签包含特殊格式,匹配可能失败,可用 --scan 验证检测结果。
- 依赖:python3 -m pip install python-docx
暂未提供
关于收费、价格、平台兼容性(除上述依赖和转换说明外)、效果保证等信息,资料中暂未提供。