name: ppt-reader description: | Use when user sends a PPT/PPTX file or asks to read PowerPoint content. 适用于:读取PPT文件、解析演示文稿内容、提取幻灯片文本。
读取和解析 PowerPoint 文件(.pptx),提取幻灯片文本内容。
| 操作 | 命令 |
|---|---|
| 查看PPT页数 | unzip -l file.pptx \| grep "slide[0-9]*\.xml" \| wc -l |
| 提取所有文本 | unzip -p file.pptx "ppt/slides/slide*.xml" \| sed 's/<[^>]*>//g' |
| 逐页提取 | 见下方脚本 |
unzip -p "file.pptx" "ppt/slides/slide*.xml" 2>/dev/null | sed 's/<[^>]*>//g' | tr -s ' \n'
cd /path/to/ppt/
for i in {1..N}; do
echo "=== Slide $i ==="
unzip -p "file.pptx" "ppt/slides/slide$i.xml" 2>/dev/null | sed 's/<[^>]*>//g' | tr -s ' \n'
echo ""
done
# 页数
unzip -l "file.pptx" | grep -c "slide[0-9]*\.xml"
# 文件结构
unzip -l "file.pptx" | grep -E "slide[0-9]+\.xml"
/root/.openclaw/media/inbound/ 获取文件飞书发送的文件通常保存在:
/root/.openclaw/media/inbound/
文件名格式:
原始文件名-uuid.pptx
# 只提取第1页 unzip -p "file.pptx" "ppt/slides/slide1.xml" | sed 's/<[^>]*>//g' # 提取第1-5页 for i in {1..5}; do unzip -p "file.pptx" "ppt/slides/slide$i.xml" | sed 's/<[^>]*>//g'; done小葱技能有更好的技能skills插件。
# 完整提取流程
PPT_FILE="/root/.openclaw/media/inbound/智能体-概述-20260116-xxx.pptx"
# 1. 获取页数
PAGE_COUNT=$(unzip -l "$PPT_FILE" | grep -c "slide[0-9]*\.xml")
echo "Total slides: $PAGE_COUNT"
# 2. 逐页提取
for i in $(seq 1 $PAGE_COUNT); do
echo "=== Slide $i ==="
unzip -p "$PPT_FILE" "ppt/slides/slide$i.xml" 2>/dev/null | sed 's/<[^>]*>//g' | tr -s ' \n'
echo ""
done
这个 Skill 质量中规中矩,文档结构清晰、有使用示例,但只提供文字说明而非可直接运行的脚本。它能较好地满足基本的 PPT 文本提取需求,适合处理常见的演示文稿。不过能力有限,无法提取图片、图表等非文本内容,对旧版 .ppt 格式也不支持。如果只是偶尔需要读取 PPT 文字内容凑合能用,但若追求开箱即用的体验可能会失望。