You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Cloud Vision生成的OCR JSON嵌入PDF使其可检索?

关于hOCR嵌入PDF实现可检索的解决方案

核心结论

hOCR文件本身不能直接嵌入PDF,但可以基于hOCR里的文本和位置信息,为PDF生成隐藏文本层,让原本的扫描件PDF变成可检索的文本PDF。

具体实现路径

1. 直接用原始OCR JSON(更高效)

既然你已经有包含位置、文本的JSON输出,没必要绕hOCR,可以直接解析JSON提取关键信息:

  • 提取每个文本片段的内容、对应的页面坐标(注意:hOCR/Google Vision的坐标原点在左上角,而PDF的坐标原点在左下角,需要做y轴坐标转换:PDF页面高度 - hOCR的y坐标)。
  • 使用PHP的PDF处理库(如TCPDF、FPDF)加载原PDF,在对应坐标位置添加不可见文本:
    • 示例代码逻辑(以TCPDF为例):
      // 初始化TCPDF并导入原PDF页面
      $pdf = new TCPDF();
      $pageCount = $pdf->setSourceFile('original.pdf');
      $tplIdx = $pdf->importPage(1);
      $pdf->AddPage();
      $pdf->useTemplate($tplIdx);
      
      // 解析OCR JSON
      $ocrData = json_decode(file_get_contents('output-1-to-2.json'), true);
      $pageHeight = $pdf->getPageHeight(); // 获取PDF页面高度
      
      // 遍历文本块添加隐藏文本
      foreach ($ocrData['responses'][0]['textAnnotations'] as $anno) {
          if (isset($anno['description']) && isset($anno['boundingPoly']['vertices'])) {
              $text = $anno['description'];
              // 获取文本块左上角坐标
              $x = $anno['boundingPoly']['vertices'][0]['x'];
              $y = $pageHeight - $anno['boundingPoly']['vertices'][0]['y'];
              // 设置文本颜色为白色(和背景一致,实现隐藏)
              $pdf->SetTextColor(255, 255, 255);
              // 设置字体大小匹配文本块高度
              $pdf->SetFont('helvetica', '', 10);
              // 在对应位置输出文本
              $pdf->Text($x, $y, $text);
          }
      }
      
      // 保存带文本层的PDF
      $pdf->Output('searchable.pdf', 'F');
      

2. 基于hOCR文件转换

如果想用已生成的hOCR,可以借助命令行工具hocr2pdf,PHP通过调用系统命令完成转换:

  • 确保服务器安装了hocr2pdf(属于ocrmypdf工具链的一部分)
  • PHP执行命令的示例:
    $originalPdf = 'original.pdf';
    $hocrFile = 'output.hocr';
    $outputPdf = 'searchable.pdf';
    // 调用hocr2pdf生成可检索PDF
    exec("hocr2pdf -i $originalPdf -o $outputPdf < $hocrFile");
    

注意事项

  • 坐标转换必须准确,否则文本检索会出现位置偏移。
  • 对于多页PDF,需要循环处理每一页的OCR数据或hOCR内容。
  • 如果使用命令行工具,要确保PHP进程有执行权限,且工具路径正确。

内容的提问来源于stack exchange,提问作者sariDon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:03:17