使用 CamScanner 将 PDF 文档转换为可编辑的 Word(.docx)或 Excel(.xlsx)格式,具备智能内容识别和精准格式保留
CamScanner PDF 到 Office.是一项面向实际任务的技能,主要用于Overview.;CamScanner 提供了文件转换能力,在保存原始格式的同时将PDF文档转换为Word或Excel文档.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
CamScanner 提供文档转换能力,可将 PDF 文档转换为 Word 或 Excel 文档,同时保留原始格式。该工作流分为三个步骤:先 上传 PDF 文件,再 转换,最后 下载 结果。
重要提示:隐私与数据流向说明
- 第三方服务:本技能会将您的文件发送至 CamScanner 官方服务器(
ai-tools.camscanner.com)进行处理。- 数据留存:CamScanner 服务器对您的文件进行实时处理,文件不会永久保存在服务器上。
- 本地文件:输出文件将保存至您指定的本地文件系统路径。
基础 URL: https://ai-tools.camscanner.com
| source_type | target_type | 输出 |
|---|---|---|
| word | .docx | |
| excel | .xlsx |
BASE="https://ai-tools.camscanner.com" IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute" -H "Content-Type: application/octet-stream" --data-binary "@/path/to/document.pdf" | jq -r '.tool_result.data.file_id')
响应示例:
{
"code": 200,
"tool": "upload_file",
"tool_result": {
"success": true,
"data": {
"file_id": "file_1741857600_ab12cd34ef56",
"size": 24576
}
}
}
OUT_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/convert_pdf/execute"
-H "Content-Type: application/json"
-d "{"file_id":"$IN_FILE_ID","source_type":"pdf","target_type":"TARGET","output_mode":"file_id"}"
| jq -r '.tool_result.data.file_id')
请将 TARGET 替换为以下值之一:word 或 excel。
响应示例:
{
"code": 200,
"tool": "convert_pdf",
"tool_result": {
"success": true,
"data": {
"file_id": "file_1741857722_ddeeff001122",
"target_type": "word"
}
}
}
curl -sS -X POST "$BASE/v1/tools/download_file/execute?response_mode=raw"
-H "Content-Type: application/json"
-d "{"file_id":"$OUT_FILE_ID"}"
-o /path/to/output.docx
关键说明: 必须在下载请求 URL 中包含 response_mode=raw 查询参数,才能获取二进制文件;否则响应将为 JSON 格式。
BASE="https://ai-tools.camscanner.com"
INPUT_PDF="/path/to/document.pdf"
TARGET_TYPE="word" # word | excel
OUTPUT_FILE="/path/to/output.docx"
# 上传
IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute"
-H "Content-Type: application/octet-stream"
--data-binary "@$INPUT_PDF" | jq -r '.tool_result.data.file_id')
# 转换
OUT_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/convert_pdf/execute"
-H "Content-Type: application/json"
-d "{"file_id":"$IN_FILE_ID","source_type":"pdf","target_type":"$TARGET_TYPE","output_mode":"file_id"}"
| jq -r '.tool_result.data.file_id')
# 下载
curl -sS -X POST "$BASE/v1/tools/download_file/execute?response_mode=raw"
-H "Content-Type: application/json"
-d "{"file_id":"$OUT_FILE_ID"}"
-o "$OUTPUT_FILE"
| target_type | 扩展名 |
|---|---|
| word | .docx |
| excel | .xlsx |
| 错误 | 修正方法 |
|---|---|
下载时遗漏 response_mode=raw |
务必在下载 URL 后附加 ?response_mode=raw |
| 上传时使用了错误的 Content-Type | 上传必须使用 application/octet-stream,而非 multipart/form-data |
| 误用 GET 方法代替 POST | 全部三个端点均仅支持 POST 请求 |
转换请求中缺失 source_type |
必须始终包含 "source_type": "pdf" |
转换请求中缺失 output_mode |
必须始终包含 "output_mode": "file_id",以获取可用于下载的 file_id |
| 输出文件扩展名错误 | 请确保扩展名与 target_type 匹配(参见上方表格) |
请在执行下一步前检查每个步骤是否成功:
# 上传后检查 if [ -z "$IN_FILE_ID" ] || [ "$IN_FILE_ID" = "null" ]; then echo "上传失败"; exit 1 fi # 转换后检查 if [ -z "$OUT_FILE_ID" ] || [ "$OUT_FILE_ID" = "null" ]; then echo "转换失败"; exit 1 fi
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.6万人学习
共89课时 | 133.4万人学习
共49课时 | 82.2万人学习