← Back to skills
extension
Category: AI Agent CapabilitiesAPI key requirement unconfirmed

word文档压缩 Word 图片压缩技能,兼容 Windows、macOS、Linux

处理 .docx 文件,能将 Word 内彩色图片转灰度或纯黑白、降低分辨率/DPI、压缩 JPEG/PNG、可选 PNG 转 JPEG、删除未使用媒体(若安全)、重新打包 DOCX,并输出压缩前后大小和图片处理统计。请生成完整 Skill 目录结构、SKILL.md、可执行脚本、依赖说明/requirements 或 package 配置、README、示例命令和基本测试。优先选择依赖轻、跨平台的实现;默认保留原文档、输出新文件,并确保不破坏文字和排版。最终提供可下载安装的打包文件

personAuthor: donny28hubModelScope

Word Compressor

处理已有 .docx,使用本技能的 scripts/compress_docx.py;只依赖 Python 3.10+ 和 Pillow。不通过 python-docx 或 Office 重建文档。

执行

  1. 定位输入文件和本技能目录。优先使用技能目录 .venv/Scripts/python.exe(Windows)或 .venv/bin/python(macOS/Linux);没有隔离环境时使用已安装 Pillow 的 Python。缺少依赖时按 README.md 中的安装方法配置。

  2. 根据用户要求选择参数。未指定时使用灰度、JPEG quality=85、已知显示尺寸的目标 DPI=220;原文件始终保留,输出为 原文件名.compressed.docx。仅要求压缩且希望保留颜色时用 --color keep;要求不降低分辨率时用 --dpi 0。无法识别显示尺寸的图片不会自动按 DPI 缩小。

  3. 使用绝对路径并正确引用带空格的路径,指定独立的新输出和统计报告路径:

    <python> <skill-dir>/scripts/compress_docx.py <input.docx> --output <output.docx> --report <statistics.json> --json
    
  4. 读取实际报告,说明文件大小、节省比例、处理/缩小/转换/跳过/删除数量,并提供输出文件。存在跳过图片时查看 images[].reason,不要宣称全部图片都变成了黑白。负节省比例表示文件增大,应如实报告。

选择与约束

  • --color grayscale:灰度;--color bw:二值化,阈值默认 128,可加 --threshold 或 --dither。JPEG 转纯黑白会改为 PNG,避免 JPEG 有损编码重新产生灰色像素。透明图片保留 alpha,叠加背景后可能呈现灰色边缘。
  • --dpi 220 按 DrawingML 的实际显示尺寸计算,保留裁剪所需像素,并考虑同一图片的最大使用尺寸。VML、组合图、未知显示尺寸或额外未知使用会保守跳过自动 DPI;用户明确要求像素上限时可用 --max-pixels 1600。
  • --png-to-jpeg 仅转换不透明 PNG,并安全更新图片路径、所有关系和内容类型;线条图、文字截图优先保留 PNG。只有文件更小或需要执行用户要求的灰度/分辨率变换时才采用候选图片。
  • --remove-unused 仅在用户要求媒体清理时启用;只考虑未引用 PNG/JPEG,保留未知格式、任意关系引用、字面引用、有自身关系的媒体,以及含嵌入对象时的全部媒体。不会删除字体、批注、修订或嵌入对象。
  • 不覆盖输入。输出已存在时选择新的路径;只有用户明确允许覆盖输出时才加 --overwrite。统计报告路径必须是新文件。
  • 正文、样式、页眉页脚、图片尺寸位置和其他非目标部件保持原始字节;只修改目标图片、必要 .rels 和 [Content_Types].xml。脚本验证 ZIP、关系完整性和未修改部件。不能据此保证不同 Word/WPS 版本中渲染绝对一致;要求页码严格一致时,额外在用户实际使用的应用里比对页数和关键页面。
  • SVG/EMF/WMF/GIF/TIFF、动画 PNG、非标准 EXIF 方向、高位深或超限图片保留并计入跳过。签名文档、带宏文件、损坏关系或实体 XML 会报错并停止,不生成最终输出。

更多命令、DPI 行为、安全边界和测试方法见 README.md。