[ PROMPT_NODE_25628 ]
doc
[ SKILL_DOCUMENTATION ]
# DOCX 技能
## 使用时机
- 读取或审阅对布局有要求的 DOCX 内容(表格、图表、分页)。
- 创建或编辑具有专业格式的 DOCX 文件。
- 在交付前验证视觉布局。
## 工作流
1. 优先进行视觉审阅(布局、表格、图表)。
- 如果 `soffice` 和 `pdftoppm` 可用,将 DOCX 转换为 PDF 再转为 PNG。
- 或使用 `scripts/render_docx.py`(需要 `pdf2image` 和 Poppler)。
- 如果缺少这些工具,请安装它们或要求用户在本地审阅渲染后的页面。
2. 使用 `python-docx` 进行编辑和结构化创建(标题、样式、表格、列表)。
3. 每次重大更改后,重新渲染并检查页面。
4. 如果无法进行视觉审阅,则作为备选方案使用 `python-docx` 提取文本,并指出布局风险。
5. 保持中间输出有序,并在最终批准后进行清理。
## 临时文件与输出约定
- 使用 `tmp/docs/` 存放中间文件;完成后删除。
- 在此仓库工作时,将最终产物写入 `output/doc/`。
- 保持文件名稳定且具有描述性。
## 依赖项(如缺失请安装)
优先使用 `uv` 进行依赖管理。
Python 包:
uv pip install python-docx pdf2image
如果 `uv` 不可用:
python3 -m pip install python-docx pdf2image
系统工具(用于渲染):
# macOS (Homebrew)
brew install libreoffice poppler
# Ubuntu/Debian
sudo apt-get install -y libreoffice poppler-utils
如果在此环境中无法安装,请告知用户缺少哪些依赖项以及如何在本地安装。
## 环境
无需环境变量。
## 渲染命令
DOCX 转 PDF:
soffice -env:UserInstallation=file:///tmp/lo_profile_$$ --headless --convert-to pdf --outdir $OUTDIR $INPUT_DOCX
PDF 转 PNG:
pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME
捆绑辅助脚本:
python3 scripts/render_docx.py /path/to/file.docx --output_dir /tmp/docx_pages
## 质量期望
- 交付客户就绪的文档:排版、间距、页边距一致,层级清晰。
- 避免格式缺陷:文本被截断/重叠、表格损坏、字符乱码或使用默认模板样式。
- 图表、表格和视觉元素在渲染页面中必须清晰可见且对齐正确。
- 仅使用 ASCII 连字符。避免使用 U+2011(不换行连字符)和其他 Unicode 破折号。
- 引用和参考必须是人类可读的;切勿留下工具标记或占位符字符串。
## 最终检查
- 重新渲染