Install
openclaw skills install @thcjp/compress-pdf-tool-freePDF压缩工具免费版,通过API上传PDF文件进行压缩处理,支持图像质量参数调整(如75/85/95)和DPI分辨率设置(如144/300)。上传后通过轮询机制获取任务状态,完成后返回下载链接供用户获取压缩后的文件。适用于文档归档、邮件附件优化、网页上传文件大小限制等需要减小PDF文件体积的常见场景。 功能涵盖: compress。
openclaw skills install @thcjp/compress-pdf-tool-free核心功能: 本技能提供结构化的工作流程和配置指引等能力。
PDF压缩工具是针对PDF处理领域的专业化AI辅助工具。免费版面向个人用户,提供核心功能与基础用法,适合快速上手和日常使用. 本工具经过深度优化,增强元数据和适用关键词,完全适配SkillHub平台规范.
PDF文件上传、压缩参数配置、任务轮询、下载链接生成、批量压缩
执行核心能力操作,使用input_params参数进行配置,支持创建/查询/导出等操作.
input_params参数,支持创建/查询/导出操作基础功能完整覆盖
处理: 解析基础功能完整覆盖的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回基础功能完整覆盖的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作简洁易用的操作接口
处理: 解析简洁易用的操作接口的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回简洁易用的操作接口的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作标准格式输入输出
处理: 解析标准格式输入输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回标准格式输入输出的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作快速上手,零配置即可使用
处理: 解析快速上手的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回快速上手的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作适合个人日常使用场景
处理: 解析适合个人日常使用场景的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回适合个人日常使用场景的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作处理: 解析核心能力的输入参数,完成核心逻辑,返回结构化响应.
输出: 返回核心能力的响应数据,包含状态码、结果和日志.
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置.
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:API、文件进行压缩、支持图像质量与、DPI、参数调整、轮询返回下载链接、压缩工具、免费版等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
上传PDF文件,设置图像质量和DPI,获取压缩后下载链接。示例指令:`
`压缩这个PDF文件
操作流程:
一次性处理多个PDF文件,统一压缩参数,生成压缩报告。示例指令:`
`批量压缩这10个PDF
根据文件类型推荐优秀压缩参数,平衡质量与体积。示例指令:`
`优化扫描文档的压缩参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | PDF压缩工具(免费版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
# 确保Python环境可用
python3 --version
# ...
# 依赖说明
pip install requests
# PDF压缩基础调用
import os
import requests
from urllib.parse import urlparse
# ...
def _validate_url(url):
"""URL安全校验 - 防止服务端请求伪造攻击"""
parsed = urlparse(url)
if parsed.scheme not in ('http', 'https'):
raise ValueError(f"不支持的协议: {parsed.scheme}")
if parsed.hostname in ('localhost', '127.0.0.1', '0.0.0.0'):
raise ValueError(f"禁止访问内网地址: {parsed.hostname}")
return url
def compress_pdf(file_path, api_key=None, quality=75, dpi=144):
api_url = os.getenv("COMPRESS_PDF_API_URL", "")
if not api_url:
raise ValueError("请通过环境变量 COMPRESS_PDF_API_URL 配置API地址")
_validate_url(api_url) # 安全防护: 校验URL合法性
api_key = api_key or os.getenv("COMPRESS_PDF_API_KEY", "")
headers = {"Authorization": f"Bearer {api_key}"}
files = {"file": open(file_path, "rb")}
data = {"imageQuality": quality, "dpi": dpi}
resp = requests.post(api_url, headers=headers, files=files, data=data)
return resp.json()
# ...
result = compress_pdf("document.pdf")
print(f"任务ID: {result.get('job_id')}")
完成上述代码后,将根据输入参数返回结构化响应。免费版支持单次任务,适合解析单个文件或任务.
compress:
api_url: "${COMPRESS_PDF_API_URL}"
api_key: "${COMPRESS_PDF_API_KEY}"
default_quality: 75
default_dpi: 144
poll_interval: 3
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 基础路径 | 工作目录 | ./ |
| 输出格式 | 结果输出格式 | json |
# 在此执行相关操作
... # 具体实现请参考上下文文档
A: 免费版为单线程处理,对于大文件建议分批处理或升级到专业版获得并行处理能力.
A: 支持标准格式输入输出,常见格式包括JSON、YAML、Markdown等.
A: 需要压缩服务API Key,通过服务注册获取。如需外部服务API,请参考对应服务的注册流程.
A: 免费版支持单次操作,适合个人日常使用。如需批量处理或高级功能,建议升级到专业版.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| requests | Python库 | 必需 | pip install requests |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "PDF压缩工具(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "compress pdf"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}