用途:创建、编辑和分析 .docx 文件。.docx 本质是包含 XML 与资源的 ZIP 包,可按任务选择不同工具与工作流。
主要能力:文本提取(用 pandoc 转 markdown,可显示修订);原始 XML 访问(批注、复杂格式、文档结构、嵌入媒体、元数据);用 docx-js 从零创建 Word 文档;用 Document 库(Python OOXML 操作)编辑现有文档;红线审阅工作流实现完整修订追踪;将文档转为图片做可视化分析。
使用方式:读取内容用 pandoc --track-changes=all path-to-file.docx -o output.md;解包用 python ooxml/scripts/unpack.py <office_file> <output_directory>,打包用 python ooxml/scripts/pack.py <input_directory> <office_file>。新建文档先完整阅读 docx-js.md,用 Document、Paragraph、TextRun 组件编写 JS/TS,再用 Packer.toBuffer() 导出。编辑现有文档先完整阅读 ooxml.md,解包后编写 Python 脚本,最后打包。红线审阅先转 markdown 定位并分组变更(每批 3-10 处),解包并记录建议的 RSID,分批实现后打包,再用 pandoc 转 markdown 验证。转图片用 soffice --headless --convert-to pdf document.docx,再 pdftoppm -jpeg -r 150 document.pdf page。
适用场景:法律、学术、商业或政府文档的修订审阅(要求使用红线工作流);他人文档的编辑默认用红线工作流;自有文档的简单修改用基础 OOXML 编辑。
限制:修订应最小且精确,只标记实际变化并保留未变文本的原始 RSID;不要用 markdown 行号定位,应使用章节号、段落标识、grep 唯一文本或文档结构;每次写脚本前需重新 grep word/document.xml 获取当前行号。依赖:pandoc、docx(npm install -g docx)、LibreOffice、Poppler、defusedxml。