使用 PDF API 合并 PDF 文件
请参阅“如何在 Mac 上合并 PDF 文件”和无需 Adobe 即可合并 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) }
此外,您还可以从ComPDFKit PDF API库中找到更多有关合并 PDF 文件的教程,例如 Java、Python 等。