使用 PDF API 合并 PDF 文件
内容来源: 如何在 Mac 上合并 PDF 文件
1. 注册与认证
您可以注册一个免费的 ComPDFKit API 帐户,该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。
ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥,并按如下方式进行身份验证。
// 创建客户端
let client: CPDFClient = CPDFClient (publicKey: public_key, secretKey: secret_key)
2. 创建 PDF 合并任务
选择PDF合并工具,替换上一步获取到的accessToken,将错误信息的显示语言替换成自己想要的语言类型,然后就可以在响应数据中获取到taskId了。
// 创建任务
// 创建一个 PDF 合并任务的示例
let taskModel = await client.createTask(url: CPDFDocumentEditor . MERGE , language: .english)
// 获取任务 id
let taskId = taskModel ? .taskId ?? ""
3.上传文件
上传需要合并的PDF文件,并将其与任务ID绑定。
// 上传文件
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调用此接口进行文件合并。
// 执行任务
let _ = await client.processFiles(taskId: taskId, language: .english)
5.获取任务信息
根据任务ID请求任务状态和文件相关的元数据。
// 查询 TaskInfo
let taskInfoModel = await client.getTaskInfo(taskId: taskId, language: .english)
}
完成后,您的完整代码应如下所示:
// 创建一个客户端
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)
}