用途:创建、编辑与分析 .docx 文档,.docx 本质是包含 XML 与其他资源的 ZIP 归档,可通过工具与工作流处理不同任务。
主要能力:文本提取、原始 XML 访问、从零新建 Word 文档、编辑既有文档、文档审阅中的修订痕迹(红线)工作流、批注、格式保留、将文档转图像以便视觉分析。
使用方式:
- 读取内容:pandoc --track-changes=all path-to-file.docx -o output.md(可选 accept/reject/all);需要批注、复杂格式、结构、嵌入媒体或元数据时解包读取 XML:python ooxml/scripts/unpack.py <office_file> <output_directory>。关键结构含 word/document.xml、word/comments.xml、word/media/,修订使用 <w:ins> 与 <w:del> 标签。
- 新建文档:使用 docx-js,先完整阅读 docx-js.md,再用 Document、Paragraph、TextRun 创建并以 Packer.toBuffer() 导出。
- 编辑既有文档:使用 Document 库,先完整阅读 ooxml.md,解包后写 Python 脚本处理,再打包:python ooxml/scripts/pack.py <input_directory> <office_file>。
- 红线审阅:先转 markdown 保留修订,识别并分组变更(每批 3-10 项),解包并记下建议 RSID;最小精确修改,仅标记真正变化处并复用原文 <w:r> 的 RSID;每批脚本前 grep word/document.xml 核对文本切分;完成后打包并转 markdown 验证,如 grep。
- 转图像:soffice --headless --convert-to pdf document.docx,然后 pdftoppm -jpeg -r 150 document.pdf page,可用 -r、-f、-l 控制。
适用场景:自有文档的简单修改、他人文档、法律/学术/商务/政府文档的红线审阅,以及需要批注或复杂格式处理的情形。
限制与依赖:法律、学术、商务或政府文档必须使用红线工作流;不要用 markdown 行号定位 XML。依赖包括 pandoc、docx(npm install -g docx)、LibreOffice、Poppler、defusedxml(pip install defusedxml);具体收费与价格暂未提供。