onlyoffice提供五种批量文件转换方法:一、调用文档服务器conversion api;二、用document builder填充模板生成;三、desktop editors本地批量转换;四、docs智能缓存加速重复转换;五、node.js构建自定义web服务。

如果您需要将大量文档统一转换为指定格式,但手动逐个操作效率低下,则可能是由于缺乏批量处理机制。以下是利用OnlyOffice实现文件批量转换的多种方法:
一、使用 ONLYOFFICE 文档服务器 Conversion API 批量调用
该方法适用于已有部署好的 ONLYOFFICE 文档服务器环境,通过编程方式向 ConvertService.ashx 接口发起多个并发或队列化请求,实现自动化批量转换。
1、准备待转换文件的可访问 URL 列表,确保文档服务器能通过 HTTP/HTTPS 协议读取这些地址。
2、构造包含多个转换任务的 JSON 请求体,每个任务需指定 filetype、outputtype、url 和唯一 key。
3、使用脚本(如 Python 的 requests 库或 Java 的 HttpClient)循环发送 POST 请求至 http://your-server-ip:9001/ConvertService.ashx。
4、对异步请求("async": true),通过轮询 /ConvertService.ashx?key=xxx 获取转换状态与结果下载链接。
二、基于 ONLYOFFICE Document Builder 的模板数据填充式批量生成
该方法适用于具有固定结构的文档(如合同、报表、通知),通过预置 .docx 模板与动态数据结合,批量渲染输出 PDF 或 DOCX 文件,本质是“生成+转换”一体化流程。
1、在 ONLYOFFICE 编辑器中设计标准模板,插入占位符字段,例如 ${client_name}、${date}。
2、编写 .docbuilder 脚本,使用 JavaScript 加载模板,并从 JSON 或数据库读取多组数据。
3、调用 builder.CreateDocument() 方法依次生成多个文档实例。
4、在脚本末尾调用 builder.SaveAs("output.pdf") 或 builder.SaveAs("output.docx") 输出最终文件。
三、启用 ONLYOFFICE Desktop Editors 的批量格式转换功能
该方法面向本地办公场景,无需服务器依赖,直接利用桌面客户端内置能力对文件夹内多个文档执行格式转换。
1、启动 ONLYOFFICE Desktop Editors,进入 文件 > 批量转换 菜单。
2、点击 添加文件夹,选择包含源文档的目录,支持子目录递归扫描。
3、在目标格式下拉框中选定输出类型,例如 PDF、ODT 或 DOCX。
4、勾选 保持原始文件夹结构 选项,以确保输出路径层级与输入一致。
5、点击 开始转换,界面显示实时进度条与已完成计数。
四、通过 ONLYOFFICE Docs 的智能缓存机制加速重复转换
该方法不改变转换逻辑,而是优化性能表现,特别适合周期性处理相似结构文档(如日报、月报模板)的场景,通过复用已渲染元素减少重复计算开销。
1、确保文档服务器已启用图表缓存功能,检查配置文件中是否存在 enable-chart-cache=true 参数。
2、首次转换含 SmartArt、复杂表格或嵌入图像的文档时,系统自动将渲染中间产物存入本地缓存目录。
3、后续对同结构模板或仅数据变更的文档发起转换请求,服务端自动识别并加载缓存资源。
4、验证缓存生效:对比两次转换日志中的 render_time_ms 数值,第二次应明显低于第一次。
五、借助 Node.js 构建自定义批量转换 Web 服务
该方法适用于需深度集成至企业现有系统(如 OA、ERP)的场景,通过封装 ONLYOFFICE 转换能力为 RESTful 接口,供其他业务模块调用。
1、初始化 Express 项目,安装 axios 与 jsonwebtoken 依赖包。
2、在服务端接收前端上传的 ZIP 压缩包,解压后遍历所有文档文件。
3、为每个文件生成唯一 key,并构建符合 ONLYOFFICE API 规范的转换请求对象。
4、若启用 JWT 认证,使用 jwt.sign() 签发 token 并附加至请求头 Authorization: Bearer xxx。
5、聚合全部转换结果 URL,打包为新 ZIP 返回给调用方。











