PaddleOCR 3.5 发布:Web 端直用、文档一键转 Markdown,生态交互新体验

3 阅读5分钟

PaddleOCR 3.5 正式发布,带来以下核心升级:

  1. 发布浏览器端 PaddleOCR.js,开发者可以用更轻量的方式在前端应用中直接调用 OCR 能力。
  2. 支持将 PaddleOCR-VL 文档解析内容转为 Word,以及将 Word、Excel、PPT 等类型的办公文档转为 Markdown。
  3. 融入 Hugging Face 开发生态,通过统一推理引擎配置方式,支持基于 Transformers 完成 OCR 系列模型推理。

一、发布 PaddleOCR.js

在 Agent 时代,越来越多的智能体需要直接感知和理解用户界面上的信息——而这些信息,往往就存在于浏览器里。​让数据不离开浏览器就能完成识别​,不仅是对隐私的保护,更是降低系统复杂度、实现真正轻量化部署的关键一步。

PaddleOCR.js 正是为此而生。从能力上看,它已经不仅仅是"能识别",而是在浏览器侧提供了一套更完整的使用体验:基于 ONNX Runtime Web 搭建,同时支持 WebGPUWasm 两种加速后端;提供 ​Worker 模式​,推理过程在后台线程运行,不阻塞主线程、不影响页面交互;并已适配 Chrome、Safari 等主流浏览器。

无论是验证码识别、在线票据处理,还是构建更强调交互体验的前端 AI 工具,开发者都可以用更轻量的方式,将 PaddleOCR 无缝接入现有 Web 场景。

import { PaddleOCR } from "@paddleocr/paddleocr-js";

const ocr = await PaddleOCR.create({
lang: "ch",
ocrVersion: "PP-OCRv5",
worker: true,
ortOptions: {
backend: "auto"
}
});

const [result] = await ocr.predict(fileOrBlob);
console.log(result.items);

同时,从调用风格上看,PaddleOCR.js 与 PaddleOCR Python 接口也保持了较高的一致性。Python 侧通过 PaddleOCR(...) 初始化并调用 predict,浏览器侧则通过 PaddleOCR.create({...}) 初始化后同样调用 predict 得到推理结果列表。这让已有 PaddleOCR Python 库用户迁移到 Web 端时几乎不需要重新理解一套完全不同的接口设计:

from paddleocr import PaddleOCR

ocr = PaddleOCR(
lang="ch",
ocr_version="PP-OCRv5"
)
result = ocr.predict("general_ocr_002.png")
import { PaddleOCR } from "@paddleocr/paddleocr-js";

// 支持 Python 风格的 snake_case 参数
const ocr = await PaddleOCR.create({
lang: "ch",
ocr_version: "PP-OCRv5"
});
// 也支持 JavaScript 风格的 camelCase 参数
// const ocr = await PaddleOCR.create({
// lang: "ch",
// ocrVersion: "PP-OCRv5"
// });
const [result] = await ocr.predict(fileOrBlob);

另外,PaddleOCR.js 还提供了结果可视化能力,能够把检测框、识别文字等结果以与 PaddleOCR Python 库相同的风格渲染出来。

import { OcrVisualizer } from "@paddleocr/paddleocr-js/viz";

const viz = new OcrVisualizer({
font: { family: "Noto Sans SC", source: "/fonts/NotoSansSC-Regular.ttf" }
});
const blob = await viz.toBlob(imageBitmap, result);

PaddleOCR 仓库中提供了一个简单的 Demo 应用,用于快速体验 PaddleOCR.js 的效果:

开发者可以在 Demo 应用中先跑通体验,再逐步集成到自己的 Web 应用中。

二、支持多格式文档解析

大模型时代,数据的价值被重新审视。海量知识沉淀在 Word、Excel、PPT、PDF 等各类文档中,而大模型真正能消化的,是结构清晰的文本。​打通文档与大模型之间的通路​,成为这个时代最迫切的需求之一。

为此,PaddleOCR 3.5 在文档格式的输入与输出两端同时发力:

  • 输出侧​:支持将 PaddleOCR-VL 系列模型、PP-StructureV3 的预测结果直接导出为 ​Word 格式​,让识别结果开箱即用、便于人工流转;
  • 输入侧​:支持将 Word、Excel、PPT 等主流办公文档转换为 ​Markdown 格式​,结构清晰,易于后续的 LLM 接入与智能体调用。

以 PaddleOCR-VL 为例,将预测结果导出为 Word 文档只需几行代码:

from paddleocr import PaddleOCRVL

pipeline = PaddleOCRVL()
output = pipeline.predict("./paddleocr_vl_demo.png")
pages_res = []
for res in output:
res.save_to_word(save_path="output") ## 保存当前图像的Word格式的结果
pages_res.append(res)
output = pipeline.restructure_pages(pages_res)
for res in output:
res.save_to_word(save_path="output") ## 将合并后的多页结果保存为Word格式



对于办公文档转 Markdown 功能,只需一行命令即可高效完成:

# 转换 Word 文档,输出到文件
paddleocr doc2md -i report.docx -o output.md

# 转换 Excel 表格,输出到文件
paddleocr doc2md -i data.xlsx -o output.md

# 转换 PowerPoint 演示文稿,输出到文件
paddleocr doc2md -i slides.pptx -o output.md









三、全面适配 Transformers 推理后端

PaddleOCR 3.5 将 Transformers 正式纳入统一推理引擎体系,支持通过统一的配置方式,让开发者可以用同一套接口切换不同底层后端。对需要融入 Hugging Face AI 开发生态的用户来说,这意味着在熟悉的 Transformers 环境中,也能更顺畅地接入 OCR 与文档解析能力,减少跨生态集成成本,并让原本分散的部署选择变得更加统一、清晰。

从使用门槛上看,这次适配也尽量保持了简单直接。开发者只需在环境中安装 5.4.0 或更高版本的 transformers 以及 3.5.0 版本的 paddleocr,即可通过统一接口完成调用。以文本检测模型为例:

from paddleocr import TextDetection

model = TextDetection(
model_name="PP-OCRv5_server_det",
engine="transformers",
)
result = model.predict("general_ocr_001.png")

其中,engine 可以是 paddle_staticpaddle_dynamictransformers,分别对应飞桨静态图(Paddle Inference)、飞桨动态图和 Transformers 后端。

Transformers 提供高效简洁的单模型的加载、配置与推理能力,而 PaddleOCR 在模块封装与多模型编排能力有长期积累的优势。在底层,我们保留了面向单模型的灵活接入方式;在更高一层,PaddleOCR 仍然能够把检测、方向分类、识别等能力按业务需要串联组合起来,让开发者既能享受 Transformers 生态的便利,也能继续使用 PaddleOCR 已经成熟的产线化能力,实现更强的组合效果。例如,同样可以通过 engine 参数将 OCR pipeline 直接切换到对应后端:

paddleocr ocr -i xxx.png \
--use_doc_orientation_classify False \
--use_doc_unwarping False \
--u