在扫描文档上运行OCR PDF 会生成识别的文本,但大多数 OCR 工具会将该文本输出为平面文本文件或将其嵌入到 PDF 中。将 OCR 结果直接导出到 JSON 可为您提供结构化的机器可读数据,这些数据可以输入到数据库、搜索索引、内容管理系统和自动化工作流程中。 AIIM International 于 2025 年进行的一项调查发现,43% 的组织现在更喜欢使用 JSON 等结构化数据格式作为文档派生文本,因为它们更容易与现代云应用程序和 AI 管道集成(AIIM,“智能信息管理现状”,2025 年)。
要点
将 OCR 结果导出到 JSON 会保留已识别文本的结构,包括页码、单词坐标和置信度分数,这些结构在导出到纯文本时会丢失。大多数现代 OCR 引擎本身支持 JSON 输出,但该功能可能需要在设置中启用或从导出格式菜单中选择。生成的 JSON 文件可用于全文搜索、数据提取管道以及针对文档内容训练机器学习模型。
对于将 OCR JSON 集成到应用程序中的开发人员来说,大多数 JSON 输出格式都包含一个用于标识架构版本的版本字段。在解析之前始终检查此字段,以避免 OCR 引擎更新其输出格式时发生重大更改。当 JSON 结构在引擎版本之间发生变化时,解析代码开头的简单版本防护可以防止出现神秘错误。

为什么 JSON 输出比纯文本的 OCR 结果更好
OCR 的纯文本输出会丢弃除字符本身之外的所有内容。您获得了单词,但丢失了每个单词出现的页码、告诉您文本在页面上位置的边界框坐标、指示 OCR 引擎对每个字符的确定程度的置信度分数,以及任何结构信息(如段落分隔符和列布局)。 JSON 保留了所有这些。 JSON扫描的 PDFOCR 输出文件通常包含一组页面对象,每个对象都有一组文本块对象,每个对象包含已识别的文本及其位置、大小和置信度元数据。
这种结构实现了纯文本不可能实现的下游自动化。脚本可以读取 JSON 文件并仅从每个页面的特定区域(例如标题区域或侧边栏列)提取文本。它可以过滤掉低可信度的 OCR 结果,以避免乱码文本污染搜索索引。它可以通过按 Y 和 X 坐标对文本块进行排序来重建多列布局的阅读顺序。使用 OCR 的平面文本文件无法进行这些操作。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
分步:将 OCR 结果导出到 JSON
在运行 OCR 之前,请检查扫描的 PDF 的图像分辨率。大多数 OCR 引擎在输入页面图像的分辨率为 300 DPI 时表现最佳。低于 200 DPI,识别准确度明显下降。当超过 400 DPI 时,处理时间会增加,但精度却没有显着提高。如果扫描的 PDF 包含低分辨率页面图像,请考虑在使用 JSON 输出运行 OCR 之前将其放大到 300 DPI。额外的预处理步骤显着提高了 JSON 数据的质量。
在支持结构化输出的 OCR 工具中打开扫描的 PDF。 Tesseract 是使用最广泛的开源 OCR 引擎,通过其命令行界面和大多数捆绑它的应用程序支持 JSON 输出。在 Tesseract 中,添加输出格式标志会在识别的文本旁边生成一个 JSON 文件。 Google Cloud Vision、Amazon Textract 和 Microsoft Azure Form Recognizer 的商业 OCR API 默认都会返回 JSON,识别的文本按页面、块、段落、行和单词进行组织。
在启用 JSON 输出的情况下运行 OCR 后,在文本编辑器中打开生成的文件以了解其结构。 JSON 将包含页面对象的数组。每个页面对象包含页面尺寸和块对象数组。每个块包含已识别的文本、通常在 0 到 100 之间的置信度分数以及描述块在页面上的位置的边界框坐标。熟悉此结构后,您可以编写简单的脚本来准确提取所需的数据。 WukongPDF 的 OCR 工具包括一个 JSON 导出选项,可使用页码、置信度分数和位置数据来组织已识别的文本,因此您无需配置单独的 OCR 引擎即可获得结构化输出。
OCR 输出的常见 JSON 结构
大多数 JSON扫描的 PDF OCR 输出还在文件顶部包含一个全局元数据部分,用于记录 OCR 引擎名称、版本、处理日期以及文档中检测到的一种或多种语言。此元数据对于审计跟踪和调试 OCR 质量问题非常有价值。如果您正在处理来自多个源的文档,元数据会告诉您哪个引擎生成了每个结果以及引擎版本在批次之间是否发生了变化,这可以解释识别质量的差异。
| 字段 | 描述 | 示例值 |
|---|---|---|
| 页 | 原始文档中的页码 | 3 |
| 文本 | 识别的文字内容 | “发票#4521” |
| 信心 | OCR 置信度 0 到 100 | 94.7 |
| 盒子 | 边界框 [x, y, 宽度, 高度](以像素为单位) | [120、340、400、28] |
| 块类型 | 内容块的类型 | “段落”或“表”或“线” |
| 语言 | 检测到的文本语言 | “en” |
在自动化工作流程中使用 OCR JSON 数据
错误处理值得预先规划。在图像质量非常差的页面上运行 OCR 可能会导致大多数可识别单词的置信度分数低于 50%。您的工作流程应定义一个最小置信度阈值,低于该阈值的结果将被标记为供人工审核,而不是自动提取到数据库或搜索索引中。将低置信度扫描的 PDF OCR 输出直接发送到生产系统会污染数据,其中的错误在以后进行清理比在提取时标记以供审查的成本要高得多。
一旦 OCR 结果采用 JSON 格式,自动化的可能性就会显着扩展。常见的模式是编写一个脚本来监视文件夹中是否有新扫描的 PDF,使用 JSON 输出运行 OCR,解析 JSON 以从页面上的已知位置提取特定字段(例如发票号码或日期),然后将这些值插入数据库或电子表格。由于 JSON 包含位置坐标,因此提取脚本可以定位页面特定区域中的文本,而不管文档的整体内容如何。
对于搜索应用程序,JSON 输出可以输入到 Elasticsearch 或 Algolia 等搜索索引中。每个页面都成为一个可搜索的文档,其中页码作为元数据字段。通过置信度分数,您可以通过为高置信度 OCR 文本赋予更高的权重来调整搜索相关性。搜索某个术语的用户会看到按 OCR 引擎确定该术语确实出现在页面上的确定性排名的结果,从而减少因错误识别字符而导致的错误匹配。
对于人工智能和机器学习管道,JSON 格式的结构化扫描 PDF OCR 输出是标准输入格式。大型语言模型和文档理解系统使用 JSON 表示
常见问题
我应该如何将 OCR JSON 文件与原始 PDF 一起存储以便长期访问?将 JSON 文件存储在与具有匹配文件名的 PDF 相同的文件夹中。例如,report-2025.pdf 和 report-2025.ocr.json。这种命名约定使得脚本可以轻松查找给定 PDF 的扫描的 PDF OCR 输出。对于大型档案,请考虑将 JSON 存储在支持全文搜索的文档数据库中,而不是作为平面文件。
与纯文本相比,OCR 的 JSON 输出是否会增加文件大小?
是的,通常是 3 到 5 倍。生成 15 KB 纯文本的 10 页扫描文档可能会生成 50 到 75 KB 的 JSON 文件。额外的大小来自结构元数据:页码、边界框和每个识别单词的置信度得分。对于大多数应用来说,这种尺寸的增加可以忽略不计。只有在非常大的规模(例如数百万页)下,它才成为值得规划的存储考虑因素。
我可以将现有纯文本扫描的 PDF OCR 输出转换为 JSON 吗?
没有意义。一旦 OCR 结果被平铺为纯文本,位置数据和置信度分数就会丢失,并且无法仅从文本中重建。如果您需要以前处理的文档中的结构化 OCR 数据,最可靠的方法是在启用 JSON 输出的情况下对原始扫描的 PDF 重新运行 OCR。
哪些 OCR 引擎可生成最有用的 JSON 输出?
来自 Google、Amazon 和 Microsoft 的基于云的 OCR 服务通常会生成最详细的 JSON 输出,其中包含单词级边界框和置信度分数。 Tesseract 在行和字级别生成可靠的 JSON。最佳选择取决于您的数量、预算以及隐私要求是否允许将文档发送到云服务。
我可以将 OCR JSON 输出转换回可搜索的 PDF 吗?是的,尽管该过程需要一个 PDF 生成库,可以将文本对象放置在特定坐标处。 JSON 输出中的边界框数据告诉您每个单词在页面上的确切位置。这是提取过程的逆过程,当您在修复 JSON 数据中的识别错误后需要从更正的 OCR 文本创建可搜索的 PDF 时非常有用。
尝试 PDF OCR
无需安装。直接在您的浏览器中工作。
