Restore capabilities now supported on main (doc read --scope/--tags, drive upload --node overwrite, chat category, dingtalk-markdown routing), remove commands still absent from the open-source CLI (calendar event instances, sheet info --include, chat group create --owner), remap folded services (attendance/ding/oa/report/sheet) to dingtalk-misc in the shortcut generator, and regenerate shortcut sections and schema metadata.
4.9 KiB
4.9 KiB
doc export(在线文档导出为 docx/markdown/pdf)
前置条件(MUST READ): 执行本命令前,必须先用 Read 工具读取以下文件:
../doc.md— 命令路由 + 场景索引 + 意图判断 + 工作流
路由前置判断:用户说「下载/导出」时必须先用
dws drive info --node <ID> --format json查extension:
extension为adoc(在线文档)→ 必须用export,禁止用downloadextension为其他(txt/pdf/docx/md/xlsx 等)→ 用dws drive download(详见../drive.md)
drive download只能下载已有文件(原样下载),export是将在线文档格式转换后导出为 docx、markdown 或 pdf,两者完全不同。
doc export(一体化命令)
Usage:
dws doc export [flags]
Example:
dws doc export --node "https://alidocs.dingtalk.com/i/nodes/xxx" --output ./exported.docx
dws doc export --node <DOC_ID> --output ~/downloads/
dws doc export --node <DOC_ID> --export-format markdown --output ./exported.md
# 异步模式:只提交不等待,立即返回 jobId
Flags:
--node string 要导出的文档标识,支持文档 URL 或 dentryUuid (必填)
--output string 本地保存路径,文件路径或目录 (必填)
--export-format string 导出格式,支持 docx(默认)、markdown(或 md)和 pdf
CLI 内部自动完成:提交导出任务 → 渐进式退避轮询(最多约 5 分钟)→ 成功后自动下载文件。 只需一条命令,无需手动轮询。
任务查询:doc export 内部自动轮询直到完成,通常不需要手动查询;仅在超时或中断后用 dws doc export get --job-id <jobId> 兜底查询。
doc export get(手动兜底查询任务)
任务状态:PROCESSING(处理中)/ SUCCESS(导出成功,返回 downloadUrl)/ FAILED(导出失败)。
Usage:
dws doc export get [flags]
Example:
dws doc export get --job-id <JOB_ID>
Flags:
--job-id string 导出任务 ID (必填)
仅在 dws doc export 超时或中断后,用于手动查询任务状态。通常不需要调用。
关键说明
export是一体化命令,一条命令自动完成提交→轮询→下载,无需手动编排轮询。CLI 内部使用渐进式退避轮询(最多约 5 分钟)。export超时或中断后,CLI 会输出jobId,可用dws doc export get --job-id <jobId>手动查询任务状态。export支持钉钉在线文档(alidocs,contentType=ALIDOC)导出为docx、markdown或pdf,在线表格导出请使用其他命令。--export-format支持docx(默认)、markdown(或md)和pdf三种格式。--output既可以是文件完整路径,也可以是目录(CLI 自动按文档名生成.docx、.md或.pdf)。doc export get主参数为--job-id。
上下文传递
| 从返回中提取 | 用于 |
|---|---|
localPath |
用户可访问的本地文件路径(同步模式) |
超时/中断时返回的 jobId |
export get 的 --job-id(查询后取 downloadUrl 获取下载地址) |
常用模板
# 一体化导出为 docx(最常用)
dws doc export --node <DOC_ID> --output ./exported.docx
# 导出为 markdown
dws doc export --node <DOC_ID> --export-format markdown --output ./exported.md
# 使用 md 缩写导出为 markdown
dws doc export --node <DOC_ID> --export-format md --output ./exported.md
# 导出为 pdf
dws doc export --node <DOC_ID> --export-format pdf --output ./exported.pdf
# 输出到目录(自动按文档名命名,docx 格式)
dws doc export --node <DOC_ID> --output ~/downloads/
# 输出到目录(markdown 格式,自动生成 .md 扩展名)
dws doc export --node <DOC_ID> --export-format markdown --output ~/downloads/
# alidocs URL 直传
dws doc export --node "https://alidocs.dingtalk.com/i/nodes/<DOC_UUID>" --output ./exported.docx
# 兜底:超时或中断后手动查任务
dws doc export get --job-id <JOB_ID> --format json
输出规范
导出完成后的输出必须遵循以下规则:
- 仅返回本地文件路径:导出成功后,直接告知用户文件已保存到本地的具体路径
- 禁止上传 CDN:导出完成后不要调用任何上传命令将文件上传到钉钉 CDN
- 禁止输出下载链接:不得生成或展示
down.dingtalk.com等 CDN 下载链接 - 正确示例:
文档已导出到: ./文档名.docx - 错误示例:上传文件并展示 CDN 下载链接
参考
../doc.md§意图判断(如何路由到本命令)./doc-info.md(前置:判断 contentType=ALIDOC 才走 export)../drive.md(非 ALIDOC 文件用dws drive download)