用途:创建、编辑与分析 .docx 文件。.docx 本质是含 XML 与资源的 ZIP 包,可按任务选择不同流程。
主要能力:
- 读取/分析:用 pandoc 转 markdown,支持保留结构并显示修订:pandoc --track-changes=all path-to-file.docx -o output.md(可选 accept/reject)。批注、复杂格式、嵌入媒体与元数据需解包读原始 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() 导出 .docx。
- 编辑既有文档:用 Python Document 库操作 OOXML,先完整读 ooxml.md,随后解包、编写脚本、再打包:python ooxml/scripts/pack.py <input_directory> <office_file>。
- 文档审阅(Redlining):改他人或法律、学术、商业、政府文档时推荐/必须使用。先 pandoc 转 markdown 定位全部修改,按每批 3-10 处分组,依章节、类型或复杂度分批实现。原则是最小精确编辑:仅标记实际变化,拆分保留文本、删除、插入,复用原 <w:r> 的 RSID,避免整句替换。定位用章节号或唯一文本 grep,不要用 markdown 行号。每批前重新 grep document.xml 核对行号与文本,完成后打包并用 pandoc 转 markdown 校验。
- 转图片:soffice --headless --convert-to pdf document.docx,再 pdftoppm -jpeg -r 150 document.pdf page,可用 -f/-l 指定页范围。
依赖:pandoc、docx(npm install -g docx)、LibreOffice、Poppler、defusedxml。
限制:生成代码需简洁,避免冗长变量名、冗余操作与多余 print;价格、平台、支持范围等资料暂未提供。