mcpField
B
byted-tos-doc-process

byted-tos-doc-process

github.com/bytedance文档处理47748 次安装今天更新
代码仓库

关于 byted-tos-doc-process

用于处理存储在 Volcengine TOS 中的办公文档预览与转换的 Skill,面向需要提取页面信息或生成预览文件的工作流。提供 PDF、图片和 HTML 预览等操作,但不编辑文档。

主要功能

  1. 01转换文档为 PDF
  2. 02导出单页 PNG 或 JPG
  3. 03读取文档总页数
  4. 04获取 HTML 预览 URL
  5. 05批量导出 PDF 页面图像
  6. 06支持 TOS 到 TOS 导出

适用场景

  1. 01将 TOS 中的 DOCX 转为 PDF
  2. 02生成指定页面的 PNG 或 JPG 预览
  3. 03查询文档页数或 HTML 预览链接
  4. 04批量导出 PDF 页面图像

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bytedance/agentkit-samples --skill byted-tos-doc-process

安装后在 Claude Code 中输入/byted-tos-doc-process确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
REFERENCE.md
requirements.txt
WORKFLOWS.md
scripts/
doc_batch_screenshot.py
doc_preview_html_url.py
doc_preview_jpg.py
doc_preview_params.py
doc_preview_pdf.py
doc_preview_png.py
doc_preview_process.py
doc_total_page.py

详细介绍

火山引擎 TOS 文档处理

预览并转换存储在火山引擎 TOS 中的办公文档 — 转换为 PDF/PNG/JPG、获取页数、HTML 预览 URL,以及导出指定页码范围。

设置(每个环境仅需一次)

首次使用时安装依赖:

cd {baseDir}
pip install -r {baseDir}/requirements.txt

然后使用 Python 3.7+ 运行脚本:

python3 {baseDir}/scripts/<script>.py <args>

如果看到针对 tos 的 ModuleNotFoundError,请重新安装依赖。

环境变量

此技能依赖 metadata 块中声明的 TOS 身份信息。常见的运行时变量如下:

环境变量必需描述
TOS_ACCESS_KEY是TOS 访问密钥 ID
TOS_SECRET_KEY是TOS 访问密钥
TOS_ENDPOINT是TOS 终端节点 URL
TOS_REGION是TOS 区域
TOS_BUCKET是存储文档的源存储桶
TOS_OBJECT_KEY否文档的源对象键。可使用 --key 覆盖
TOS_SECURITY_TOKEN否使用临时凭证时的 STS 会话令牌

快速开始(常见任务)

# Convert document to PDF
python3 {baseDir}/scripts/doc_preview_pdf.py --key report.docx --output preview.pdf

# Preview page 2 as PNG
python3 {baseDir}/scripts/doc_preview_png.py --key report.docx --page 2 --output page_2.png

# Preview page 2 as JPG
python3 {baseDir}/scripts/doc_preview_jpg.py --key report.docx --page 2 --output page_2.jpg

# Get total page count
python3 {baseDir}/scripts/doc_total_page.py --key report.docx --dest-type pdf

# Resolve HTML preview URL
python3 {baseDir}/scripts/doc_preview_html_url.py --key report.docx

# Batch export page range to TOS
python3 {baseDir}/scripts/doc_preview_process.py --key report.docx \
  --dest-type jpg --img-mode 1 --start-page 1 --end-page 3 \
  --saveas-bucket "output-bucket" --saveas-object "export/page_{Page}.jpg"

# Batch screenshot a PDF page range
python3 {baseDir}/scripts/doc_batch_screenshot.py --key test.pdf \
  --format png --start-page 1 --end-page 3 \
  --saveas-object "skill-test/doc/{Page}.png"

可用脚本

脚本用途
scripts/doc_preview_pdf.py将文档转换为 PDF 并保存到本地。
scripts/doc_preview_png.py将单页渲染为 PNG。
scripts/doc_preview_jpg.py将单页渲染为 JPG。
scripts/doc_total_page.py通过 x-tos-total-page 标头读取总页数。
scripts/doc_preview_html_url.py获取最终的 HTML 预览 URL(跟随重定向并提取令牌)。
scripts/doc_preview_process.py通用文档预览脚本,可全面控制参数;支持 TOS 到 TOS 的导出。
scripts/doc_preview_params.py用于一致构建 x-tos-doc-* 查询参数的辅助库。
scripts/doc_batch_screenshot.py通过文档预览批处理模式将 PDF 页面批量导出为图像。

所有脚本都支持使用 --key 覆盖 TOS_OBJECT_KEY。结构化脚本还支持使用 --json 输出机器可读的结果,doc_preview_process.py 和 doc_total_page.py 支持使用 --dry-run 预览解析后的请求。运行任意脚本时加上 -h 可查看完整用法。

不适用范围

  • 编辑文档内容(此技能仅支持只读预览和转换)。
  • 与文档预览无关的通用对象存储任务。
  • 不涉及 TOS 的本地办公文档转换工作流。

规则

  • 身份验证:身份验证使用上方 metadata 块中声明的 TOS 身份信息。可在每个脚本中使用 --key 覆盖对象选择。
  • 预签名 URL 模式:文档预览使用带有 x-tos-process=doc-preview 和 x-tos-doc-* 查询参数的预签名 URL,而非 get_object 的直接 process 关键字。请使用 doc_preview_params.py 一致地构建参数。
  • 批量截图限制:doc_batch_screenshot.py 目前要求源对象为 PDF,并使用 {Page} 占位符将结果写回 TOS。
  • 另存为编码:对于基于 doc-preview 查询参数的另存为操作,辅助脚本会自动对 x-tos-save-bucket 和 x-tos-save-object 进行 URL 安全 Base64 编码,以符合后端要求。
  • 自定义域名说明:对于 2024 年 1 月 3 日之后创建的存储桶,在线 HTML 预览可能需要使用自定义域名,而非默认的 TOS 域名。
  • 参数权威来源:火山引擎 TOS 官方文档是完整 doc-preview 参数矩阵的权威来源。如有疑问,请查阅 REFERENCE.md。
  • 语言:使用用户偏好的语言回复。

延伸阅读

评论

支持 Markdown