SuperAPI AI 工具集

docx

通用与其它

查看项目

更新于 10-16 03:35

技能介绍

用途:处理 Microsoft Word .docx。该格式是 OOXML,即包含 XML 部件的 zip 容器(word/document.xml、styles.xml、numbering.xml、页眉页脚与关系文件),应以结构为主、渲染文本为视图。三条路径按磁盘上已有内容选择:A 检查现有文档、B 就地编辑保留样式、C 从头创建;用户给出文档并要求修改时默认走 B,仅当明确“重新开始”或无输入时走 C。

主要能力:A 用 inspect_docx.py 输出稳定可读的 JSON(段落、表格、节数、是否有修订),可对比两次输出来验证往返未丢内容。B1 对运行级文本做替换、占位符填充,保留主题、样式与字体;B2 结构编辑(节、页面布局、编号)需解压 .docx 后修补 word/document.xml 等再打包。C 支持由 stdin 的 Markdown 生成,或用 create_docx.py 加 JSON 规格声明式创建,也可直接用 python-docx 编程。

必要用法:检查命令为 python {baseDir}/scripts/inspect_docx.py /path/to/doc.docx;就地编辑为 python {baseDir}/scripts/edit_docx.py input.docx ops.json --out output.docx,ops.json 是操作列表(replace_run 针对段落与运行,replace_text 做查找替换);创建命令为 python {baseDir}/scripts/export_markdown_docx.py --out out.docx < draft.md 或 python {baseDir}/scripts/create_docx.py spec.json --out out.docx。修补 XML 时用 defusedxml 或 lxml,勿用标准库 xml.etree.ElementTree,以免命名空间前缀被丢弃导致 Word 拒绝加载;保留 <w:t> 上的 xml:space="preserve";[Content_Types].xml 必须列出每个部件类型;编号定义在 numbering.xml,需改编号 ID 而非可见文本。完成后建议用 LibreOffice 无头模式打开验证。

限制:修订以 <w:ins>、<w:del> 存在,python-docx 不提供对应对象,需直接修补 XML;inspect 检测到修订会置 has_tracked_changes 为 true,在审阅者接受或拒绝前应按只读处理。不处理 .doc 旧二进制格式与 Google Docs;不运行启用宏的 .docm/VBA;从 .docx 生成 PDF 需交由 LibreOffice 无头模式或单独的 PDF 技能。运行级替换时若占位符跨多个运行,脚本会把运行合并到第一个并清空其余;长字符串溢出多因模板单元格宽度固定。