使用 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) 
}
相关推荐
迅猛龙办公室3 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
小狼154543 小时前
浏览器扩展脚本为什么有时候不生效:注入时机、iframe 和单页路由,多多开票助手
前端·chrome
じòぴé南冸じょうげん4 小时前
油猴脚本突然发现变成灰色了,无法使用?页面不生效?刷新页面没反应?
前端
Csvn5 小时前
组合式 API(Composition API)
前端
火柴就是我7 小时前
Android 打包报错 25.0.3
android·前端
BD_Marathon7 小时前
消息对象中字段的说明
java·前端·python
八荒启·交互动画7 小时前
Web特效025—用 Canvas 2D 做Web特效的定义与边界:这支画笔能做到哪一步
前端·webgl·网页特效·八荒启-交互动画·八荒启
Ai-_Man7 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
excel7 小时前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒8 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端