使用 PDF API 合并 PDF 文件

内容来源: 如何在 Mac 上合并 PDF 文件

1. 注册与认证

您可以注册一个免费的 ComPDFKit API 帐户,该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。

ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥,并按如下方式进行身份验证。

Swift 复制代码
// 创建客户端
let client: CPDFClient  =  CPDFClient (publicKey: public_key, secretKey: secret_key)

2. 创建 PDF 合并任务

选择PDF合并工具,替换上一步获取到的accessToken,将错误信息的显示语言替换成自己想要的语言类型,然后就可以在响应数据中获取到taskId了。

复制代码
Swift 复制代码
// 创建任务
// 创建一个 PDF 合并任务的示例
    let taskModel =  await client.createTask(url: CPDFDocumentEditor . MERGE , language: .english) 
// 获取任务 id 
    let taskId = taskModel ? .taskId ??  ""

3.上传文件

上传需要合并的PDF文件,并将其与任务ID绑定。

Swift 复制代码
// 上传文件
let path =  Bundle .main.path(forResource: "test" , ofType: "pdf" ) 
    let uploadFileModel =  await client.uploadFile(filepath: path ??  "" , language: .english, params: [ CPDFFileUploadParameterKey .pageOptions.string():[ "1,2" ]], taskId: taskId) 
// 上传文件
let uploadFileModel2 =  await client.uploadFile(filepath: path ??  "" ,language: .english ,params: [ CPDFFileUploadParameterKey .pageOptions.string():[ "1,2" ]], taskId: taskId)

复制

笔记:

  • 同一个任务中,上传多个文件(最多五个)。如果不传递pageOptions,则进行多文件合并。

  • 在同一个任务中,上传多个文件(最多五个)及pageOptions,并合并多个文件的指定页码。

  • 上传接口仅支持单文件上传。

4.合并PDF文件

文件上传完成后,通过任务ID调用此接口进行文件合并。

复制代码
Swift 复制代码
// 执行任务
let  _  =  await client.processFiles(taskId: taskId, language: .english)

5.获取任务信息

根据任务ID请求任务状态和文件相关的元数据。

Swift 复制代码
// 查询 TaskInfo 
let taskInfoModel =  await client.getTaskInfo(taskId: taskId, language: .english) 
}

完成后,您的完整代码应如下所示:

Swift 复制代码
// 创建一个客户端
let client: CPDFClient  =  CPDFClient (publicKey: public_key, secretKey: secret_key) 
Task { @MainActor  in 
    // 创建一个任务
    // 创建一个 PDF 合并任务的示例
    let taskModel =  await client.createTask(url: CPDFDocumentEditor . MERGE , language: .english) 
    // 获取任务 id 
    let taskId = taskModel ? .taskId ??  "" 
    // 上传文件
    let path =  Bundle .main.path(forResource: "test" , ofType: "pdf" ) 
    let uploadFileModel =  await client.uploadFile(filepath: path ??  "" , language: .english, params: [ CPDFFileUploadParameterKey .pageOptions.string():[ "1,2" ]], taskId: taskId) 
    // 上传文件
    let uploadFileModel2 =  await client.uploadFile(filepath: path ??  "" ,language: .english ,params: [ CPDFFileUploadParameterKey .pageOptions.string():[ "1,2" ]], taskId: taskId) 

    // 执行任务
    let  _  =  await client.processFiles(taskId: taskId, language: .english) 
    // 查询任务信息
    let taskInfoModel =  await client.getTaskInfo(taskId: taskId, language: .english) 
}
相关推荐
名字还没想好☜8 分钟前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
自动化监测Learner1 小时前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
console.log('npc')1 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
爱学堂IT分享2 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕3 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路3 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持3 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机魔术师5 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端
xy34535 小时前
Axure9.0中继器遮罩实现方法
前端·ui·html·axure·原型·产品设计
风骏时光牛马5 小时前
智能任务自动化协同AI工作流
前端