# MCP server for using the Foxit Cloud API
## Requirements
- 本地需要安装python包管理器 [uv](https://docs.astral.sh/uv/getting-started/installation/)
## Features
- PDF创建和转换:支持从其他文件格式创建PDF文件,并将PDF转换为其他格式,如HTML、Word等。
- PDF合并和拆分:支持将多个PDF文件合并为一个,或将一个PDF文件拆分为多个。
- PDF压缩和优化:通过图像压缩和优化来减小PDF文件大小,扁平化,线性化文档等功能
- PDF安全:提供密码保护和高级加密功能,确保PDF文件的安全性。
## Tools
### combine_pdf
将压缩或归档文件中的多个PDF文档,合并为一个PDF文档。使用示例1:把<absolute_path/file_name.zip>中的PDF文档合并为一个PDF。使用示例2:把<url/file_name.pdf>, <url/file_name1.pdf>合并为一个PDF。
参数:
  - path: string - 压缩或归档文件的绝对路径或多个URL地址
  - config: object - 配置项
    - isAddBookmark: boolean - 是否添加书签
    - isAddTOC: boolean - 是否添加目录
    - isContinueMerge: boolean - 如果发生错误是否继续合并
    - isRetainPageNum: boolean - 是否保留页面逻辑号
    - bookmarkLevels: enum('0', '1', '2', '3', '4', '5') - 是否显示目录的等级
### compare_pdf
逐页比较一个PDF文档(作为“基准文档”)与另一个PDF文档(作为“比较文档”)。使用示例1:把<absolute_path/file_name.pdf>与<absolute_path/file_name.pdf>进行比较。使用示例2:把<absolute_path/file_name.pdf>与<absolute_path/file_name.pdf>进行比较,比较结果为:pdf。使用示例3:把<url/file_name.pdf>与<url/file_name.pdf>进行比较。
参数:
  - basePath: string - 基准PDF文档的绝对路径或URL地址
  - comparePath: string - 比较PDF文档的绝对路径或URL地址
  - resultType: enum('json', 'pdf') - 结果类型
  - compareType: enum('all', 'text') - 比较类型
### compress_pdf
使用指定的压缩级别压缩PDF文档。使用示例1:压缩<absolute_path/file_name.pdf>。使用示例2:压缩<absolute_path/file_name.pdf>,压缩级别为:high。使用示例3:压缩<url/file_name.pdf>。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - compressionLevel: enum('low', 'medium', 'high') - 压缩级别
### convert_pdf
转换PDF文档到其他格式,支持格式:word, excel, ppt, image, text, html。使用示例1:把<absolute_path/file_name.pdf>转换为word。使用示例2:把<absolute_path/file_name.pdf>转换为text。使用示例3:把<url/file_name.pdf>转换为excel。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - format: enum('word', 'excel', 'ppt', 'image', 'text', 'html') - 转换后的文件类型
### create_pdf
从其他格式,创建或转换为PDF文档,支持格式:word,excel,ppt,image,text。使用示例1:把<absolute_path/file_name.docx>转换为PDF。使用示例2:把<absolute_path/file_name.txt>转换为PDF。使用示例3:把<url/file_name.png>转换为PDF。
参数:
  - path: string - 转换文件的绝对路径或URL地址
  - format: enum('word', 'excel', 'ppt', 'image', 'text') - 输入的文件类型
### create_pdf_from_html
从HTML文件或指定站点URL创建PDF。使用示例1:把<absolute_path/file_name.html>转换为PDF。使用示例2:把\<url>转换为PDF。使用示例3:把\<url>转换为PDF,页面模式为:单页。使用示例4:把<url/flie_name.html>转换为PDF,输入格式为:html。
参数:
  - format: enum('url', 'html', 'htm', 'shtml') - 输入格式,如果是url,则url参数不能为空,否则path参数不能为空
  - path: string - HTML文件的绝对路径或URL地址
  - url: string - URL
  - config: object - 配置项
    - width: number - 页面宽度,该值必须大于16,默认值为900(单位为1/72英寸)
    - height: number - 页面高度,该值必须大于16,默认值为600(单位为1/72英寸)
    - rotate: number - 页面旋转,0:0度,1:90度,2:180度,3:270度
    - pageMode: number - 页面模式,0:单页,1:多页
    - pageScaling: number - 页面缩放,1:适应页面,2:适应内容
### extract_pdf
提取PDF文档中的文本或图像。使用示例1:提取<absolute_path/file_name.pdf>中的文本。使用示例2:提取<absolute_path/file_name.pdf>中的图片。使用示例3:提取<url/file_name.pdf>中的文本。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - mode: enum('extractImages', 'extractText') - 提取模式,extractText表示提取文本,extractImages表示提取图片
  - pageRange: string - 提取页面范围,A、B和C以逗号分隔。A、B或C可以取数字,如99,也可以取范围,如1-30。如果为空,则提取整个文档
### flatten_pdf
使PDF文档页面扁平化,使注释和表单字段成为页面内容的一部分。使用示例1:把<absolute_path/file_name.pdf>扁平化。使用示例2:把<url/file_name.pdf>扁平化。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - pageRange: string - PDF文档的页面范围。文档中的页面可以按任何顺序引用,从开始或结束都可以。例如:1、2、3、7-9、all。如果未指定,则执行所有页面
### linearize_pdf
线性化PDF文档。使用示例1:把<absolute_path/file_name.pdf>线性化。使用示例2:把<url/file_name.pdf>线性化。
参数:
  - path: string - PDF文档的绝对路径或URL地址
### manipulation_pdf
操作PDF文档,例如删除页面,旋转页面,移动页面。使用示例1:删除<absolute_path/file_name.pdf>的第1页。使用示例2:把<absolute_path/file_name.pdf>的第2页移到第1页。使用示例3:删除<url/file_name.pdf>的第1页。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - config: object - PDF文档操作配置
    - pageAction: enum('delete', 'rotate', 'move') - 页面操作类型
    - pages: array(number) - 操作的页码,如[0,1,2,3],页面索引从0开始
    - angle: number - 页面旋转,0:0度,1:90度,2:180度,-1:270度
    - destination: number - 目标页码,如果"页面操作类型"是"移动",它是必需的
### protect_pdf
使用用户或/和所有者密码保护PDF文档,并对某些功能设置限制。使用示例1:给<absolute_path/file_name.pdf>设置用户密码,密码为:123456。使用示例2:给<absolute_path/file_name.pdf>设置所有者密码,密码为:123456,权限设置为:不允许修改PDF内容。使用示例3:给<url/file_name.pdf>设置用户密码,密码为:123456。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - passwordProtection: object - 密码保护设置,必须至少设置一个密码
    - userPassword: string - 用户密码
    - ownerPassword: string - 所有者密码
  - permission: object - 权限设置
    - PRINT_LOW_QUALITY: boolean - 以正常模式打印PDF文档
    - PRINT_HIGH_QUALITY: boolean - 以高质量打印PDF文档
    - EDIT_CONTENT: boolean - 修改PDF内容。设置该值后,用户可以通过操作修改PDF文档的内容
    - EDIT_FILL_AND_SIGN_FORM_FIELDS: boolean - 填写PDF表格。如果设置了该值,用户可以填写交互式表单字段(包括签名字段)
    - EDIT_ANNOTATION: boolean - 操作文本注释和填写交互式表单字段。如果还设置了"修改PDF内容"值,则用户可以创建或修改交互式表单字段
    - EDIT_DOCUMENT_ASSEMBLY: boolean - 组装PDF文档。如果设置了这个值,就可以组装文档(插入、旋转或删除页面以及创建书签或缩略图),而不管是否设置了"修改PDF内容"值
    - COPY_CONTENT: boolean - 残疾的支持。如果设置了此值,用户可以提取文本和图形,以支持残疾用户的可访问性或用于其他目的
  - encryptionAlgorithm: enum('AES_128', 'AES_256', 'RC4') - 加密算法
### remove_password
从PDF文档中删除密码安全性。使用示例1:移除<absolute_path/file_name.pdf>的用户密码,密码为:123456。使用示例2:移除<absolute_path/file_name.pdf>的所有者密码,密码为:123456。使用示例3:移除<url/file_name.pdf>的用户密码,密码为:123456。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - password: string - PDF文档密码。如果PDF受所有者密码保护,则用户需要在该字段中使用所有者密码来取消文档安全性,否则用户需要传入用户密码来打开文档
### split_pdf
将PDF文档拆分为多个较小的文档。使用示例1:把<absolute_path/file_name.pdf>拆分为多个文档,拆分后的页数为:3。使用示例2:把<url/file_name.pdf>拆分为多个文档,拆分后的页数为:2。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - config: object - 配置项
    - pageCount: number - 拆分后的页数
### apply_certificate
申请数字证书,返回证书ID。使用示例1:申请数字证书,经办人:<agent_name>,身份证号码:<agent_id_card>,手机号码:<agent_phone>,企业名称:<org_name>,企业法定代表人:<org_legal_person>,企业统一社会信用代码:<org_register_no>,法人证件号:<org_legal_person_id_card>。使用示例2:申请数字证书,经办人:<agent_name>,身份证号码:<agent_id_card>,手机号码:<agent_phone>,企业名称:<org_name>,企业法定代表人:<org_legal_person>,企业统一社会信用代码:<org_register_no>,法人证件号:<org_legal_person_id_card>。再对<url/file_name.pdf>进行数字签名。
参数:
  - certValid: number - 证书有效期,单位为年。最长5年,最短1年。默认值为1年
  - agentName: string - 经办人名称
  - agentIdCard: string - 经办人身份证号码
  - agentPhone: string - 经办人手机号码
  - orgName: string - 企业组织名称
  - orgLegalPerson: string - 企业组织法定代表人
  - orgRegisterNo: string - 企业统一社会信用代码
  - orgLegalPersonIdCard: string - 法人证件号
返回:证书ID(后续 sign_pdf 使用)
### sign_pdf
对PDF文档进行数字签名。使用示例1:对<absolute_path/file_name.pdf>进行数字签名,证书ID为:<cert_id>。使用示例2:申请数字证书,经办人:<agent_name>,身份证号码:<agent_id_card>,手机号码:<agent_phone>,企业名称:<org_name>,企业法定代表人:<org_legal_person>,企业统一社会信用代码:<org_register_no>,法人证件号:<org_legal_person_id_card>。再对<url/file_name.pdf>进行数字签名。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - imagePath: string? - 印章图片的绝对路径或URL地址
  - pageIndex: number - 添加印章页码,将放置签名的页索引(从1开始)
  - signatureRect: string - 印章坐标位置,PDF坐标系,格式:[left, bottom, right, top]
  - certId: string - 证书ID
  - appearanceFlag: string? - 外观标志,可选值数组 JSON,如 ["APFlagReason","APFlagSigningTime"]
  - signer: string? - 签名者名称
  - text: string? - 签名文本内容
  - location: string? - 签名地点
  - reason: string? - 签名原因
  - contactInfo: string? - 联系信息
### pages_basic_info
获取PDF文档的基本信息。使用示例1:获取<absolute_path/file_name.pdf>的基本信息。使用示例2:获取<url/file_name.pdf>的基本信息,页面范围为:1-5。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - pageRange: string? - 页面范围 (如 1,2,5-9,all)
### pages_is_scanned
获取PDF文档的扫描状态。使用示例1:获取<absolute_path/file_name.pdf>的扫描状态。使用示例2:获取<url/file_name.pdf>的扫描状态,页面范围为:1-5。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - pageRange: string? - 页面范围
### watermark_pdf
给PDF文档添加水印。使用示例1:给<absolute_path/file_name.pdf>添加文本水印,文本为:<font_text>。使用示例2:给<url/file_name.pdf>添加图片水印,水印图片为:<absolute_path/file_name.png>。
参数:
  - path: string - PDF文档的绝对路径或URL地址
  - imagePath: string? - 水印图片的绝对路径或URL地址(imageObject 时必填)
  - pageRange: string? - 页面范围
  - type: enum('textObject','imageObject') - 水印类型
  - position: number? - 位置 0-8
  - offsetX / offsetY: number? - 偏移
  - flagOnTopOfPage / flagNoPrint / flagInvisible: number? - 标志位
  - scaleX / scaleY: number - 缩放比例
  - rotation: number? - 旋转角度
  - opacity: number? - 透明度 0-100
  - font: object? - 文本水印字体信息 (text, size, fontName, color, style, alignment, lineSpace)
## 在 VS Code 的 GitHub Copilot 中使用
打开 VS Code 配置文件 `mcp.json`,添加以下配置,并替换其中的 `your_client_id`:
```json
{
  "servers": {
    // 其他配置 ...
    "mcp-server-foxit-cloudapi": {
      "command": "uvx",
      "args": [
        "mcp-server-foxit-cloudapi"
      ],
      "env": {
        "CLIENT_ID": "your_client_id"
      }
    }
    // 其他配置 ...
  }
}
```
## 在 VS Code 的 Cline 中使用
打开 Cline MCP 配置文件 `cline_mcp_settings.json`, 添加以下配置,并替换其中的 `your_client_id`:
```json
{
  "mcpServers": {
    // 其他配置 ...
    "mcp-server-foxit-cloudapi": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "uvx",
      "args": [
        "mcp-server-foxit-cloudapi"
      ],
      "env": {
        "CLIENT_ID": "your_client_id"
      },
      "transportType": "stdio"
    }
    // 其他配置 ...
  }
}
```
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "mcp-server-foxit-cloudapi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11.1",
    "maintainer_email": null,
    "keywords": "MCP, Foxit, Cloud API",
    "author": "Foxit Software Inc.",
    "author_email": "Foxit Software Inc. <support@foxitsoftware.com>",
    "download_url": "https://files.pythonhosted.org/packages/f0/ef/7763c821567238f7649ab099d56c5279fc7eeed1066ee5c1d51d1aa69eef/mcp_server_foxit_cloudapi-1.1.1.tar.gz",
    "platform": null,
    "description": "# MCP server for using the Foxit Cloud API\n\n## Requirements\n\n- \u672c\u5730\u9700\u8981\u5b89\u88c5python\u5305\u7ba1\u7406\u5668 [uv](https://docs.astral.sh/uv/getting-started/installation/)\n\n## Features\n- PDF\u521b\u5efa\u548c\u8f6c\u6362\uff1a\u652f\u6301\u4ece\u5176\u4ed6\u6587\u4ef6\u683c\u5f0f\u521b\u5efaPDF\u6587\u4ef6\uff0c\u5e76\u5c06PDF\u8f6c\u6362\u4e3a\u5176\u4ed6\u683c\u5f0f\uff0c\u5982HTML\u3001Word\u7b49\u3002\n- PDF\u5408\u5e76\u548c\u62c6\u5206\uff1a\u652f\u6301\u5c06\u591a\u4e2aPDF\u6587\u4ef6\u5408\u5e76\u4e3a\u4e00\u4e2a\uff0c\u6216\u5c06\u4e00\u4e2aPDF\u6587\u4ef6\u62c6\u5206\u4e3a\u591a\u4e2a\u3002\n- PDF\u538b\u7f29\u548c\u4f18\u5316\uff1a\u901a\u8fc7\u56fe\u50cf\u538b\u7f29\u548c\u4f18\u5316\u6765\u51cf\u5c0fPDF\u6587\u4ef6\u5927\u5c0f\uff0c\u6241\u5e73\u5316\uff0c\u7ebf\u6027\u5316\u6587\u6863\u7b49\u529f\u80fd\n- PDF\u5b89\u5168\uff1a\u63d0\u4f9b\u5bc6\u7801\u4fdd\u62a4\u548c\u9ad8\u7ea7\u52a0\u5bc6\u529f\u80fd\uff0c\u786e\u4fddPDF\u6587\u4ef6\u7684\u5b89\u5168\u6027\u3002\n\n## Tools\n\n### combine_pdf\n\n\u5c06\u538b\u7f29\u6216\u5f52\u6863\u6587\u4ef6\u4e2d\u7684\u591a\u4e2aPDF\u6587\u6863\uff0c\u5408\u5e76\u4e3a\u4e00\u4e2aPDF\u6587\u6863\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.zip>\u4e2d\u7684PDF\u6587\u6863\u5408\u5e76\u4e3a\u4e00\u4e2aPDF\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<url/file_name.pdf>, <url/file_name1.pdf>\u5408\u5e76\u4e3a\u4e00\u4e2aPDF\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - \u538b\u7f29\u6216\u5f52\u6863\u6587\u4ef6\u7684\u7edd\u5bf9\u8def\u5f84\u6216\u591a\u4e2aURL\u5730\u5740\n  - config: object - \u914d\u7f6e\u9879\n    - isAddBookmark: boolean - \u662f\u5426\u6dfb\u52a0\u4e66\u7b7e\n    - isAddTOC: boolean - \u662f\u5426\u6dfb\u52a0\u76ee\u5f55\n    - isContinueMerge: boolean - \u5982\u679c\u53d1\u751f\u9519\u8bef\u662f\u5426\u7ee7\u7eed\u5408\u5e76\n    - isRetainPageNum: boolean - \u662f\u5426\u4fdd\u7559\u9875\u9762\u903b\u8f91\u53f7\n    - bookmarkLevels: enum('0', '1', '2', '3', '4', '5') - \u662f\u5426\u663e\u793a\u76ee\u5f55\u7684\u7b49\u7ea7\n\n### compare_pdf\n\n\u9010\u9875\u6bd4\u8f83\u4e00\u4e2aPDF\u6587\u6863\uff08\u4f5c\u4e3a\u201c\u57fa\u51c6\u6587\u6863\u201d\uff09\u4e0e\u53e6\u4e00\u4e2aPDF\u6587\u6863\uff08\u4f5c\u4e3a\u201c\u6bd4\u8f83\u6587\u6863\u201d\uff09\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.pdf>\u4e0e<absolute_path/file_name.pdf>\u8fdb\u884c\u6bd4\u8f83\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<absolute_path/file_name.pdf>\u4e0e<absolute_path/file_name.pdf>\u8fdb\u884c\u6bd4\u8f83\uff0c\u6bd4\u8f83\u7ed3\u679c\u4e3a\uff1apdf\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u628a<url/file_name.pdf>\u4e0e<url/file_name.pdf>\u8fdb\u884c\u6bd4\u8f83\u3002\n\n\u53c2\u6570\uff1a\n  - basePath: string - \u57fa\u51c6PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - comparePath: string - \u6bd4\u8f83PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - resultType: enum('json', 'pdf') - \u7ed3\u679c\u7c7b\u578b\n  - compareType: enum('all', 'text') - \u6bd4\u8f83\u7c7b\u578b\n\n### compress_pdf\n\n\u4f7f\u7528\u6307\u5b9a\u7684\u538b\u7f29\u7ea7\u522b\u538b\u7f29PDF\u6587\u6863\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u538b\u7f29<absolute_path/file_name.pdf>\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u538b\u7f29<absolute_path/file_name.pdf>\uff0c\u538b\u7f29\u7ea7\u522b\u4e3a\uff1ahigh\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u538b\u7f29<url/file_name.pdf>\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - compressionLevel: enum('low', 'medium', 'high') - \u538b\u7f29\u7ea7\u522b\n\n### convert_pdf\n\n\u8f6c\u6362PDF\u6587\u6863\u5230\u5176\u4ed6\u683c\u5f0f\uff0c\u652f\u6301\u683c\u5f0f\uff1aword, excel, ppt, image, text, html\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.pdf>\u8f6c\u6362\u4e3aword\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<absolute_path/file_name.pdf>\u8f6c\u6362\u4e3atext\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u628a<url/file_name.pdf>\u8f6c\u6362\u4e3aexcel\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - format: enum('word', 'excel', 'ppt', 'image', 'text', 'html') - \u8f6c\u6362\u540e\u7684\u6587\u4ef6\u7c7b\u578b\n\n### create_pdf\n\n\u4ece\u5176\u4ed6\u683c\u5f0f\uff0c\u521b\u5efa\u6216\u8f6c\u6362\u4e3aPDF\u6587\u6863\uff0c\u652f\u6301\u683c\u5f0f\uff1aword\uff0cexcel\uff0cppt\uff0cimage\uff0ctext\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.docx>\u8f6c\u6362\u4e3aPDF\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<absolute_path/file_name.txt>\u8f6c\u6362\u4e3aPDF\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u628a<url/file_name.png>\u8f6c\u6362\u4e3aPDF\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - \u8f6c\u6362\u6587\u4ef6\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - format: enum('word', 'excel', 'ppt', 'image', 'text') - \u8f93\u5165\u7684\u6587\u4ef6\u7c7b\u578b\n\n### create_pdf_from_html\n\n\u4eceHTML\u6587\u4ef6\u6216\u6307\u5b9a\u7ad9\u70b9URL\u521b\u5efaPDF\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.html>\u8f6c\u6362\u4e3aPDF\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a\\<url>\u8f6c\u6362\u4e3aPDF\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u628a\\<url>\u8f6c\u6362\u4e3aPDF\uff0c\u9875\u9762\u6a21\u5f0f\u4e3a\uff1a\u5355\u9875\u3002\u4f7f\u7528\u793a\u4f8b4\uff1a\u628a<url/flie_name.html>\u8f6c\u6362\u4e3aPDF\uff0c\u8f93\u5165\u683c\u5f0f\u4e3a\uff1ahtml\u3002\n\n\u53c2\u6570\uff1a\n  - format: enum('url', 'html', 'htm', 'shtml') - \u8f93\u5165\u683c\u5f0f\uff0c\u5982\u679c\u662furl\uff0c\u5219url\u53c2\u6570\u4e0d\u80fd\u4e3a\u7a7a\uff0c\u5426\u5219path\u53c2\u6570\u4e0d\u80fd\u4e3a\u7a7a\n  - path: string - HTML\u6587\u4ef6\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - url: string - URL\n  - config: object - \u914d\u7f6e\u9879\n    - width: number - \u9875\u9762\u5bbd\u5ea6\uff0c\u8be5\u503c\u5fc5\u987b\u5927\u4e8e16\uff0c\u9ed8\u8ba4\u503c\u4e3a900(\u5355\u4f4d\u4e3a1/72\u82f1\u5bf8)\n    - height: number - \u9875\u9762\u9ad8\u5ea6\uff0c\u8be5\u503c\u5fc5\u987b\u5927\u4e8e16\uff0c\u9ed8\u8ba4\u503c\u4e3a600(\u5355\u4f4d\u4e3a1/72\u82f1\u5bf8)\n    - rotate: number - \u9875\u9762\u65cb\u8f6c\uff0c0\uff1a0\u5ea6\uff0c1\uff1a90\u5ea6\uff0c2\uff1a180\u5ea6\uff0c3\uff1a270\u5ea6\n    - pageMode: number - \u9875\u9762\u6a21\u5f0f\uff0c0\uff1a\u5355\u9875\uff0c1\uff1a\u591a\u9875\n    - pageScaling: number - \u9875\u9762\u7f29\u653e\uff0c1\uff1a\u9002\u5e94\u9875\u9762\uff0c2\uff1a\u9002\u5e94\u5185\u5bb9\n\n### extract_pdf\n\n\u63d0\u53d6PDF\u6587\u6863\u4e2d\u7684\u6587\u672c\u6216\u56fe\u50cf\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u63d0\u53d6<absolute_path/file_name.pdf>\u4e2d\u7684\u6587\u672c\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u63d0\u53d6<absolute_path/file_name.pdf>\u4e2d\u7684\u56fe\u7247\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u63d0\u53d6<url/file_name.pdf>\u4e2d\u7684\u6587\u672c\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - mode: enum('extractImages', 'extractText') - \u63d0\u53d6\u6a21\u5f0f\uff0cextractText\u8868\u793a\u63d0\u53d6\u6587\u672c\uff0cextractImages\u8868\u793a\u63d0\u53d6\u56fe\u7247\n  - pageRange: string - \u63d0\u53d6\u9875\u9762\u8303\u56f4\uff0cA\u3001B\u548cC\u4ee5\u9017\u53f7\u5206\u9694\u3002A\u3001B\u6216C\u53ef\u4ee5\u53d6\u6570\u5b57\uff0c\u598299\uff0c\u4e5f\u53ef\u4ee5\u53d6\u8303\u56f4\uff0c\u59821-30\u3002\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u63d0\u53d6\u6574\u4e2a\u6587\u6863\n\n### flatten_pdf\n\n\u4f7fPDF\u6587\u6863\u9875\u9762\u6241\u5e73\u5316\uff0c\u4f7f\u6ce8\u91ca\u548c\u8868\u5355\u5b57\u6bb5\u6210\u4e3a\u9875\u9762\u5185\u5bb9\u7684\u4e00\u90e8\u5206\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.pdf>\u6241\u5e73\u5316\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<url/file_name.pdf>\u6241\u5e73\u5316\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - pageRange: string - PDF\u6587\u6863\u7684\u9875\u9762\u8303\u56f4\u3002\u6587\u6863\u4e2d\u7684\u9875\u9762\u53ef\u4ee5\u6309\u4efb\u4f55\u987a\u5e8f\u5f15\u7528\uff0c\u4ece\u5f00\u59cb\u6216\u7ed3\u675f\u90fd\u53ef\u4ee5\u3002\u4f8b\u5982\uff1a1\u30012\u30013\u30017-9\u3001all\u3002\u5982\u679c\u672a\u6307\u5b9a\uff0c\u5219\u6267\u884c\u6240\u6709\u9875\u9762\n\n### linearize_pdf\n\n\u7ebf\u6027\u5316PDF\u6587\u6863\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.pdf>\u7ebf\u6027\u5316\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<url/file_name.pdf>\u7ebf\u6027\u5316\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n\n### manipulation_pdf\n\n\u64cd\u4f5cPDF\u6587\u6863\uff0c\u4f8b\u5982\u5220\u9664\u9875\u9762\uff0c\u65cb\u8f6c\u9875\u9762\uff0c\u79fb\u52a8\u9875\u9762\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u5220\u9664<absolute_path/file_name.pdf>\u7684\u7b2c1\u9875\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<absolute_path/file_name.pdf>\u7684\u7b2c2\u9875\u79fb\u5230\u7b2c1\u9875\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u5220\u9664<url/file_name.pdf>\u7684\u7b2c1\u9875\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - config: object - PDF\u6587\u6863\u64cd\u4f5c\u914d\u7f6e\n    - pageAction: enum('delete', 'rotate', 'move') - \u9875\u9762\u64cd\u4f5c\u7c7b\u578b\n    - pages: array(number) - \u64cd\u4f5c\u7684\u9875\u7801\uff0c\u5982[0,1,2,3]\uff0c\u9875\u9762\u7d22\u5f15\u4ece0\u5f00\u59cb\n    - angle: number - \u9875\u9762\u65cb\u8f6c\uff0c0\uff1a0\u5ea6\uff0c1\uff1a90\u5ea6\uff0c2\uff1a180\u5ea6\uff0c-1\uff1a270\u5ea6\n    - destination: number - \u76ee\u6807\u9875\u7801\uff0c\u5982\u679c\"\u9875\u9762\u64cd\u4f5c\u7c7b\u578b\"\u662f\"\u79fb\u52a8\"\uff0c\u5b83\u662f\u5fc5\u9700\u7684\n\n### protect_pdf\n\n\u4f7f\u7528\u7528\u6237\u6216/\u548c\u6240\u6709\u8005\u5bc6\u7801\u4fdd\u62a4PDF\u6587\u6863\uff0c\u5e76\u5bf9\u67d0\u4e9b\u529f\u80fd\u8bbe\u7f6e\u9650\u5236\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u7ed9<absolute_path/file_name.pdf>\u8bbe\u7f6e\u7528\u6237\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u7ed9<absolute_path/file_name.pdf>\u8bbe\u7f6e\u6240\u6709\u8005\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\uff0c\u6743\u9650\u8bbe\u7f6e\u4e3a\uff1a\u4e0d\u5141\u8bb8\u4fee\u6539PDF\u5185\u5bb9\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u7ed9<url/file_name.pdf>\u8bbe\u7f6e\u7528\u6237\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - passwordProtection: object - \u5bc6\u7801\u4fdd\u62a4\u8bbe\u7f6e\uff0c\u5fc5\u987b\u81f3\u5c11\u8bbe\u7f6e\u4e00\u4e2a\u5bc6\u7801\n    - userPassword: string - \u7528\u6237\u5bc6\u7801\n    - ownerPassword: string - \u6240\u6709\u8005\u5bc6\u7801\n  - permission: object - \u6743\u9650\u8bbe\u7f6e\n    - PRINT_LOW_QUALITY: boolean - \u4ee5\u6b63\u5e38\u6a21\u5f0f\u6253\u5370PDF\u6587\u6863\n    - PRINT_HIGH_QUALITY: boolean - \u4ee5\u9ad8\u8d28\u91cf\u6253\u5370PDF\u6587\u6863\n    - EDIT_CONTENT: boolean - \u4fee\u6539PDF\u5185\u5bb9\u3002\u8bbe\u7f6e\u8be5\u503c\u540e\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u64cd\u4f5c\u4fee\u6539PDF\u6587\u6863\u7684\u5185\u5bb9\n    - EDIT_FILL_AND_SIGN_FORM_FIELDS: boolean - \u586b\u5199PDF\u8868\u683c\u3002\u5982\u679c\u8bbe\u7f6e\u4e86\u8be5\u503c\uff0c\u7528\u6237\u53ef\u4ee5\u586b\u5199\u4ea4\u4e92\u5f0f\u8868\u5355\u5b57\u6bb5\uff08\u5305\u62ec\u7b7e\u540d\u5b57\u6bb5\uff09\n    - EDIT_ANNOTATION: boolean - \u64cd\u4f5c\u6587\u672c\u6ce8\u91ca\u548c\u586b\u5199\u4ea4\u4e92\u5f0f\u8868\u5355\u5b57\u6bb5\u3002\u5982\u679c\u8fd8\u8bbe\u7f6e\u4e86\"\u4fee\u6539PDF\u5185\u5bb9\"\u503c\uff0c\u5219\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u6216\u4fee\u6539\u4ea4\u4e92\u5f0f\u8868\u5355\u5b57\u6bb5\n    - EDIT_DOCUMENT_ASSEMBLY: boolean - \u7ec4\u88c5PDF\u6587\u6863\u3002\u5982\u679c\u8bbe\u7f6e\u4e86\u8fd9\u4e2a\u503c\uff0c\u5c31\u53ef\u4ee5\u7ec4\u88c5\u6587\u6863\uff08\u63d2\u5165\u3001\u65cb\u8f6c\u6216\u5220\u9664\u9875\u9762\u4ee5\u53ca\u521b\u5efa\u4e66\u7b7e\u6216\u7f29\u7565\u56fe\uff09\uff0c\u800c\u4e0d\u7ba1\u662f\u5426\u8bbe\u7f6e\u4e86\"\u4fee\u6539PDF\u5185\u5bb9\"\u503c\n    - COPY_CONTENT: boolean - \u6b8b\u75be\u7684\u652f\u6301\u3002\u5982\u679c\u8bbe\u7f6e\u4e86\u6b64\u503c\uff0c\u7528\u6237\u53ef\u4ee5\u63d0\u53d6\u6587\u672c\u548c\u56fe\u5f62\uff0c\u4ee5\u652f\u6301\u6b8b\u75be\u7528\u6237\u7684\u53ef\u8bbf\u95ee\u6027\u6216\u7528\u4e8e\u5176\u4ed6\u76ee\u7684\n  - encryptionAlgorithm: enum('AES_128', 'AES_256', 'RC4') - \u52a0\u5bc6\u7b97\u6cd5\n\n### remove_password\n\n\u4ecePDF\u6587\u6863\u4e2d\u5220\u9664\u5bc6\u7801\u5b89\u5168\u6027\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u79fb\u9664<absolute_path/file_name.pdf>\u7684\u7528\u6237\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u79fb\u9664<absolute_path/file_name.pdf>\u7684\u6240\u6709\u8005\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\u3002\u4f7f\u7528\u793a\u4f8b3\uff1a\u79fb\u9664<url/file_name.pdf>\u7684\u7528\u6237\u5bc6\u7801\uff0c\u5bc6\u7801\u4e3a\uff1a123456\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - password: string - PDF\u6587\u6863\u5bc6\u7801\u3002\u5982\u679cPDF\u53d7\u6240\u6709\u8005\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u7528\u6237\u9700\u8981\u5728\u8be5\u5b57\u6bb5\u4e2d\u4f7f\u7528\u6240\u6709\u8005\u5bc6\u7801\u6765\u53d6\u6d88\u6587\u6863\u5b89\u5168\u6027\uff0c\u5426\u5219\u7528\u6237\u9700\u8981\u4f20\u5165\u7528\u6237\u5bc6\u7801\u6765\u6253\u5f00\u6587\u6863\n\n### split_pdf\n\n\u5c06PDF\u6587\u6863\u62c6\u5206\u4e3a\u591a\u4e2a\u8f83\u5c0f\u7684\u6587\u6863\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u628a<absolute_path/file_name.pdf>\u62c6\u5206\u4e3a\u591a\u4e2a\u6587\u6863\uff0c\u62c6\u5206\u540e\u7684\u9875\u6570\u4e3a\uff1a3\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u628a<url/file_name.pdf>\u62c6\u5206\u4e3a\u591a\u4e2a\u6587\u6863\uff0c\u62c6\u5206\u540e\u7684\u9875\u6570\u4e3a\uff1a2\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - config: object - \u914d\u7f6e\u9879\n    - pageCount: number - \u62c6\u5206\u540e\u7684\u9875\u6570\n\n### apply_certificate\n\n\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u8fd4\u56de\u8bc1\u4e66ID\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u7ecf\u529e\u4eba\uff1a<agent_name>\uff0c\u8eab\u4efd\u8bc1\u53f7\u7801\uff1a<agent_id_card>\uff0c\u624b\u673a\u53f7\u7801\uff1a<agent_phone>\uff0c\u4f01\u4e1a\u540d\u79f0\uff1a<org_name>\uff0c\u4f01\u4e1a\u6cd5\u5b9a\u4ee3\u8868\u4eba\uff1a<org_legal_person>\uff0c\u4f01\u4e1a\u7edf\u4e00\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801\uff1a<org_register_no>\uff0c\u6cd5\u4eba\u8bc1\u4ef6\u53f7\uff1a<org_legal_person_id_card>\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u7ecf\u529e\u4eba\uff1a<agent_name>\uff0c\u8eab\u4efd\u8bc1\u53f7\u7801\uff1a<agent_id_card>\uff0c\u624b\u673a\u53f7\u7801\uff1a<agent_phone>\uff0c\u4f01\u4e1a\u540d\u79f0\uff1a<org_name>\uff0c\u4f01\u4e1a\u6cd5\u5b9a\u4ee3\u8868\u4eba\uff1a<org_legal_person>\uff0c\u4f01\u4e1a\u7edf\u4e00\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801\uff1a<org_register_no>\uff0c\u6cd5\u4eba\u8bc1\u4ef6\u53f7\uff1a<org_legal_person_id_card>\u3002\u518d\u5bf9<url/file_name.pdf>\u8fdb\u884c\u6570\u5b57\u7b7e\u540d\u3002\n\n\u53c2\u6570\uff1a\n  - certValid: number - \u8bc1\u4e66\u6709\u6548\u671f\uff0c\u5355\u4f4d\u4e3a\u5e74\u3002\u6700\u957f5\u5e74\uff0c\u6700\u77ed1\u5e74\u3002\u9ed8\u8ba4\u503c\u4e3a1\u5e74\n  - agentName: string - \u7ecf\u529e\u4eba\u540d\u79f0\n  - agentIdCard: string - \u7ecf\u529e\u4eba\u8eab\u4efd\u8bc1\u53f7\u7801\n  - agentPhone: string - \u7ecf\u529e\u4eba\u624b\u673a\u53f7\u7801\n  - orgName: string - \u4f01\u4e1a\u7ec4\u7ec7\u540d\u79f0\n  - orgLegalPerson: string - \u4f01\u4e1a\u7ec4\u7ec7\u6cd5\u5b9a\u4ee3\u8868\u4eba\n  - orgRegisterNo: string - \u4f01\u4e1a\u7edf\u4e00\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801\n  - orgLegalPersonIdCard: string - \u6cd5\u4eba\u8bc1\u4ef6\u53f7\n\n\u8fd4\u56de\uff1a\u8bc1\u4e66ID\uff08\u540e\u7eed sign_pdf \u4f7f\u7528\uff09\n\n### sign_pdf\n\n\u5bf9PDF\u6587\u6863\u8fdb\u884c\u6570\u5b57\u7b7e\u540d\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u5bf9<absolute_path/file_name.pdf>\u8fdb\u884c\u6570\u5b57\u7b7e\u540d\uff0c\u8bc1\u4e66ID\u4e3a\uff1a<cert_id>\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u7533\u8bf7\u6570\u5b57\u8bc1\u4e66\uff0c\u7ecf\u529e\u4eba\uff1a<agent_name>\uff0c\u8eab\u4efd\u8bc1\u53f7\u7801\uff1a<agent_id_card>\uff0c\u624b\u673a\u53f7\u7801\uff1a<agent_phone>\uff0c\u4f01\u4e1a\u540d\u79f0\uff1a<org_name>\uff0c\u4f01\u4e1a\u6cd5\u5b9a\u4ee3\u8868\u4eba\uff1a<org_legal_person>\uff0c\u4f01\u4e1a\u7edf\u4e00\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801\uff1a<org_register_no>\uff0c\u6cd5\u4eba\u8bc1\u4ef6\u53f7\uff1a<org_legal_person_id_card>\u3002\u518d\u5bf9<url/file_name.pdf>\u8fdb\u884c\u6570\u5b57\u7b7e\u540d\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - imagePath: string? - \u5370\u7ae0\u56fe\u7247\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - pageIndex: number - \u6dfb\u52a0\u5370\u7ae0\u9875\u7801\uff0c\u5c06\u653e\u7f6e\u7b7e\u540d\u7684\u9875\u7d22\u5f15\uff08\u4ece1\u5f00\u59cb\uff09\n  - signatureRect: string - \u5370\u7ae0\u5750\u6807\u4f4d\u7f6e\uff0cPDF\u5750\u6807\u7cfb\uff0c\u683c\u5f0f\uff1a[left, bottom, right, top]\n  - certId: string - \u8bc1\u4e66ID\n  - appearanceFlag: string? - \u5916\u89c2\u6807\u5fd7\uff0c\u53ef\u9009\u503c\u6570\u7ec4 JSON\uff0c\u5982 [\"APFlagReason\",\"APFlagSigningTime\"]\n  - signer: string? - \u7b7e\u540d\u8005\u540d\u79f0\n  - text: string? - \u7b7e\u540d\u6587\u672c\u5185\u5bb9\n  - location: string? - \u7b7e\u540d\u5730\u70b9\n  - reason: string? - \u7b7e\u540d\u539f\u56e0\n  - contactInfo: string? - \u8054\u7cfb\u4fe1\u606f\n\n### pages_basic_info\n\n\u83b7\u53d6PDF\u6587\u6863\u7684\u57fa\u672c\u4fe1\u606f\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u83b7\u53d6<absolute_path/file_name.pdf>\u7684\u57fa\u672c\u4fe1\u606f\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u83b7\u53d6<url/file_name.pdf>\u7684\u57fa\u672c\u4fe1\u606f\uff0c\u9875\u9762\u8303\u56f4\u4e3a\uff1a1-5\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - pageRange: string? - \u9875\u9762\u8303\u56f4 (\u5982 1,2,5-9,all)\n\n### pages_is_scanned\n\n\u83b7\u53d6PDF\u6587\u6863\u7684\u626b\u63cf\u72b6\u6001\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u83b7\u53d6<absolute_path/file_name.pdf>\u7684\u626b\u63cf\u72b6\u6001\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u83b7\u53d6<url/file_name.pdf>\u7684\u626b\u63cf\u72b6\u6001\uff0c\u9875\u9762\u8303\u56f4\u4e3a\uff1a1-5\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - pageRange: string? - \u9875\u9762\u8303\u56f4\n\n### watermark_pdf\n\n\u7ed9PDF\u6587\u6863\u6dfb\u52a0\u6c34\u5370\u3002\u4f7f\u7528\u793a\u4f8b1\uff1a\u7ed9<absolute_path/file_name.pdf>\u6dfb\u52a0\u6587\u672c\u6c34\u5370\uff0c\u6587\u672c\u4e3a\uff1a<font_text>\u3002\u4f7f\u7528\u793a\u4f8b2\uff1a\u7ed9<url/file_name.pdf>\u6dfb\u52a0\u56fe\u7247\u6c34\u5370\uff0c\u6c34\u5370\u56fe\u7247\u4e3a\uff1a<absolute_path/file_name.png>\u3002\n\n\u53c2\u6570\uff1a\n  - path: string - PDF\u6587\u6863\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\n  - imagePath: string? - \u6c34\u5370\u56fe\u7247\u7684\u7edd\u5bf9\u8def\u5f84\u6216URL\u5730\u5740\uff08imageObject \u65f6\u5fc5\u586b\uff09\n  - pageRange: string? - \u9875\u9762\u8303\u56f4\n  - type: enum('textObject','imageObject') - \u6c34\u5370\u7c7b\u578b\n  - position: number? - \u4f4d\u7f6e 0-8\n  - offsetX / offsetY: number? - \u504f\u79fb\n  - flagOnTopOfPage / flagNoPrint / flagInvisible: number? - \u6807\u5fd7\u4f4d\n  - scaleX / scaleY: number - \u7f29\u653e\u6bd4\u4f8b\n  - rotation: number? - \u65cb\u8f6c\u89d2\u5ea6\n  - opacity: number? - \u900f\u660e\u5ea6 0-100\n  - font: object? - \u6587\u672c\u6c34\u5370\u5b57\u4f53\u4fe1\u606f (text, size, fontName, color, style, alignment, lineSpace)\n\n## \u5728 VS Code \u7684 GitHub Copilot \u4e2d\u4f7f\u7528\n\n\u6253\u5f00 VS Code \u914d\u7f6e\u6587\u4ef6 `mcp.json`\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff0c\u5e76\u66ff\u6362\u5176\u4e2d\u7684 `your_client_id`\uff1a\n\n```json\n{\n  \"servers\": {\n    // \u5176\u4ed6\u914d\u7f6e ...\n    \"mcp-server-foxit-cloudapi\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-foxit-cloudapi\"\n      ],\n      \"env\": {\n        \"CLIENT_ID\": \"your_client_id\"\n      }\n    }\n    // \u5176\u4ed6\u914d\u7f6e ...\n  }\n}\n```\n\n## \u5728 VS Code \u7684 Cline \u4e2d\u4f7f\u7528\n\n\u6253\u5f00 Cline MCP \u914d\u7f6e\u6587\u4ef6 `cline_mcp_settings.json`, \u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff0c\u5e76\u66ff\u6362\u5176\u4e2d\u7684 `your_client_id`\uff1a\n\n```json\n{\n  \"mcpServers\": {\n    // \u5176\u4ed6\u914d\u7f6e ...\n    \"mcp-server-foxit-cloudapi\": {\n      \"autoApprove\": [],\n      \"disabled\": false,\n      \"timeout\": 60,\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-foxit-cloudapi\"\n      ],\n      \"env\": {\n        \"CLIENT_ID\": \"your_client_id\"\n      },\n      \"transportType\": \"stdio\"\n    }\n    // \u5176\u4ed6\u914d\u7f6e ...\n  }\n}\n```\n",
    "bugtrack_url": null,
    "license": "Commercial License",
    "summary": "MCP server for using the Foxit Cloud API",
    "version": "1.1.1",
    "project_urls": null,
    "split_keywords": [
        "mcp",
        " foxit",
        " cloud api"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "174e5a8743842fc2a6d412d63da4119f500f1c87ae087bc326a08486e44e1440",
                "md5": "7bdad734035fcf7d15729e3363fcef6c",
                "sha256": "6521caba3cc7a322f97fcdb4596a19ee01b0aad679ee2c6b8ca353e16fc29f2c"
            },
            "downloads": -1,
            "filename": "mcp_server_foxit_cloudapi-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7bdad734035fcf7d15729e3363fcef6c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11.1",
            "size": 34317,
            "upload_time": "2025-10-17T01:29:22",
            "upload_time_iso_8601": "2025-10-17T01:29:22.645374Z",
            "url": "https://files.pythonhosted.org/packages/17/4e/5a8743842fc2a6d412d63da4119f500f1c87ae087bc326a08486e44e1440/mcp_server_foxit_cloudapi-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f0ef7763c821567238f7649ab099d56c5279fc7eeed1066ee5c1d51d1aa69eef",
                "md5": "f2a1ae8191e60193d947e5e6467f219f",
                "sha256": "50aaca5616831a219dfc3a213bac0a9e56b2105465ae9fbaad4917dec47d30bc"
            },
            "downloads": -1,
            "filename": "mcp_server_foxit_cloudapi-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f2a1ae8191e60193d947e5e6467f219f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11.1",
            "size": 16815,
            "upload_time": "2025-10-17T01:29:24",
            "upload_time_iso_8601": "2025-10-17T01:29:24.007822Z",
            "url": "https://files.pythonhosted.org/packages/f0/ef/7763c821567238f7649ab099d56c5279fc7eeed1066ee5c1d51d1aa69eef/mcp_server_foxit_cloudapi-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-17 01:29:24",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "mcp-server-foxit-cloudapi"
}