使用 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) 
}
相关推荐
Mintopia12 分钟前
🤖 AIGC与人类协作:Web内容生产的技术分工新范式
前端·javascript·aigc
顾安r13 分钟前
11.11 脚本网页 跳棋
前端·javascript·游戏·flask·html
拉拉拉拉拉拉拉马13 分钟前
HTML 快速入门指南
前端·html
fukai772226 分钟前
优雅与极简:将你的屏幕变成复古翻页钟——Fliqlo for Mac 完全指南
macos
万少29 分钟前
记第一次鸿蒙应用上架之旅:一场略带遗憾的旅途
前端·harmonyos
鹏多多31 分钟前
H5开发避坑!解决Safari浏览器的video会覆盖z-index:1的绝对定位元素
前端·javascript·vue.js
恋猫de小郭38 分钟前
来了解一下,为什么你的 Flutter WebView 在 iOS 26 上有点击问题?
android·前端·flutter
charlie11451419141 分钟前
CSS学习笔记5:CSS 盒模型 & Margin 注意事项
前端·css·笔记·学习·教程
CodeSheep41 分钟前
稚晖君公司的最新工资和招人标准
前端·后端·程序员
亿元程序员1 小时前
今天我去面试游戏开发,说我回答得不全面...
前端