欢迎光临
我们一直在努力

扫描版 PDF 与文本型 PDF 的区别:OCR 识别与翻译流程

两个看起来完全相同的 PDF,处理方式可能不同。文本型 PDF 内部保存字符和坐标,扫描版 PDF 可能只有页面图片。前者可以直接提取文字,后者必须先经过 OCR。本文介绍如何判断 PDF 类型、OCR 的处理步骤,以及混合型文档中容易被忽略的问题。

三类常见 PDF

文本型 PDF 通常由 Word、排版软件或浏览器直接导出,页面中包含字符对象。用户可以选择、复制和搜索文字。

扫描型 PDF 多由扫描仪或拍照生成,每页本质上是一张图片。人眼能看到字,程序却只能看到像素。

混合型 PDF 同时包含两种内容。例如封面和正文是文本,附件是扫描件;或者页面上显示扫描图,下方叠加一层不可见 OCR 文本。这类文件最容易误判。

快速判断方法

最直接的方法是尝试选择一段文字,然后复制到纯文本编辑器。结果正常,说明页面大概率存在可用文本层;完全无法选择,可能是扫描图;能选择但复制后乱码,则可能存在字符映射问题。

搜索文档中的独特词语也很有帮助。如果画面上有这个词,搜索却没有结果,当前页面可能没有文本层。

命令行可以使用 pdffonts 和 pdftotext:

pdffonts document.pdf
pdftotext document.pdf –

如果 pdffonts 没有列出字体,pdftotext 也几乎没有输出,扫描件的可能性较高。不过,这仍不是绝对判断。部分 PDF 会把文字转成矢量轮廓,画面清楚却不存在普通字符对象。

还可以查看页面图像:

pdfimages -list document.pdf

如果每一页都有一张接近整页尺寸的大图,通常说明文档由扫描页面构成。

不要只凭一个命令下结论

更稳妥的检测是把字体、文本量和整页图像结合起来。下面的 Shell 片段输出三个线索:

file="document.pdf"
pdfinfo "$file" | awk -F: '/^Pages/ {print "Pages:", $2}'
printf 'Extracted characters: '
pdftotext "$file" – | tr -d '[:space:]' | wc -m
printf 'Font rows: '
pdffonts "$file" | awk 'NR > 2 {count++} END {print count+0}'
pdfimages -list "$file" | sed -n '1,12p'

文本字符多、字体存在,通常说明有文本层;字符接近零、没有字体、每页又有一张大图,扫描件的可能性很高。如果只提取到页码或页眉,而正文仍是图片,字符数也可能大于零。因此混合型 PDF 应按页抽样:

for page in 1 5 10 20; do
printf '\\n— page %s —\\n' "$page"
pdftotext -f "$page" -l "$page" document.pdf – | sed -n '1,8p'
done

抽样页应覆盖封面、普通正文、表格密集页和附件。第一页能复制,并不能证明第 80 页也有文本层。

OCR 实际做了哪些事

OCR 不只是“识别图片里的字”。完整流程通常包括:

  • 页面渲染或图像提取;

  • 方向检测与旋转校正;

  • 去噪、对比度调整和二值化;

  • 文本区域检测;

  • 行、词或字符识别;

  • 语言模型纠错;

  • 坐标输出与文本层生成。

  • 扫描歪斜几度,人眼仍能阅读,文本行检测却可能被切错。阴影、装订处弯曲、透页和水印也会降低识别率。拍照生成的 PDF 还可能存在透视变形,页面上方和下方的字符大小不同。

    中文、日文和混合语言文档需要正确指定识别语言。只使用英文模型处理含中文的说明书,结果自然会很差。多语言模型覆盖更广,但速度和歧义处理也可能不同。

    分辨率并非越高越好

    OCR 通常需要足够清晰的字形。过低分辨率会让小字笔画粘连或消失,尤其是脚注、表格和代码。

    常见扫描工作可以从 300 DPI 左右评估,但具体要求取决于字号、字体和原件质量。把模糊的 100 DPI 图片简单放大到 600 DPI,不会凭空增加真实细节,只会生成更多插值像素。

    彩色背景、浅色文字和工程图纸可能需要单独的图像预处理。对普通黑白文档有效的二值化参数,用在带彩色警告框的手册上,可能会把细线和标记一起删除。

    用 OCRmyPDF 生成可搜索文本层

    OCRmyPDF 适合为扫描 PDF 增加文本层。安装好 OCRmyPDF、Tesseract 和所需语言包后,先处理副本:

    ocrmypdf \\
     –deskew \\
     –rotate-pages \\
     –language eng+chi_sim \\
     –output-type pdf \\
    input-scan.pdf output-searchable.pdf

    –deskew 纠正轻微倾斜,–rotate-pages 尝试判断页面方向,eng+chi_sim 表示英文与简体中文。语言包必须实际安装。加入与文档无关的语言可能增加歧义和处理时间。

    输入已经有文本层时,不要随意强制 OCR。确实存在损坏 OCR 层,可以先对副本测试:

    ocrmypdf –redo-ocr –language eng input.pdf output-redo.pdf

    –force-ocr 会重新栅格化页面,可能损失矢量内容、链接或已有文字,应视为最后手段。处理前后用 pdfinfo、pdffonts、pdftotext 和页面渲染结果共同检查。

    只识别单页图像时,可以直接调用 Tesseract:

    pdftoppm -f 3 -l 3 -r 300 -png input.pdf page
    tesseract page-3.png stdout -l eng+chi_sim –psm 3

    –psm 3 自动分析布局。单列文本、稀疏文字或表格可能需要其他模式,不能固定一个参数处理所有页面。

    怎样抽样评价 OCR

    OCR 置信度可以帮助找低质量区域,但高置信度仍可能识错型号和数字。实用做法是从不同版式页面人工标注少量真值,再计算字符错误率:

    CER =(替换字符数 + 删除字符数 + 插入字符数)÷ 真值字符总数

    测试报告应写明语言、页码、扫描分辨率、样本字符数和是否包含表格。只说“准确率 98%”却没有样本构成,意义有限。

    没有标注工具时,可以先做高风险抽查:核对容易混淆的 0/O、1/l/I;抽取数字和单位与页面图像对照;检查每页第一行和最后一行是否被裁掉;检查连字符断词、跨栏顺序和表格小字。

    OCR 后出现重复文字,通常是旧文本层没有清理又叠加了新层;页面方向错误,先检查自动旋转;文件突然变大,检查是否把原压缩图片重新编码成高分辨率页面图。

    不可见文本层的作用

    OCR 完成后,可以把识别结果作为不可见文本层叠在原图上。视觉上仍是原始扫描页,但用户可以搜索和复制文字。

    文本层的位置必须与图中文字匹配,否则选择范围会偏移。识别错字也会被隐藏起来:页面看上去正常,复制出来却是错误内容。这类问题在翻译前不容易察觉,因为人眼看到的是图片,翻译系统读取的却可能是错误文本层。

    处理重要文档时,可以抽取几页文本进行检查:

    pdftotext -f 1 -l 3 document.pdf sample.txt

    重点查看数字、单位、型号、专有名词和表格行列。它们比普通自然语言更难通过上下文自动纠错。

    OCR 后再翻译要注意什么

    翻译系统依赖 OCR 输出。一个字符识别错误,可能改变整个句子的含义。例如型号中的 O 被识别成 0,普通翻译模型未必知道它是产品编号。

    合理流程是先确认 OCR 文本可用,再进行段落和版面分析。技术资料至少要保护:

    • 命令、代码和文件路径;

    • 产品型号与部件编号;

    • 数值、单位和公差;

    • URL、邮箱和版本号;

    • 表格的行列对应;

    • 安全警告和否定词。

    扫描件还应保留原图,方便译文与原始证据对照。只留下 OCR 文本,会丢失印章、手写标注、图示和版面关系。

    混合型 PDF 的处理策略

    不要因为前几页能复制,就默认整份文件都是文本型。更稳妥的做法是按页检测文本数量和图像覆盖范围,再决定哪些页面需要 OCR。

    对已经有高质量文本层的页面重复 OCR,可能生成两层文字,导致复制时内容重复。相反,如果直接跳过所有带文本的页面,又可能漏掉“图片正文 + 少量页码文本”的扫描页。

    大型文档可以先抽查封面、正文、表格密集页和附件。若版式差异很大,分批处理通常比整份套用同一参数稳定。

    批量处理时建议保留原始文件、OCR 输出和抽取文本三份结果。原件用于回溯,OCR PDF 用于后续翻译,纯文本用于差异检查。不要让 OCR 工具直接覆盖唯一原件。

    一些在线翻译工具可以直接接收整份 PDF。例如Google Translate、DeepL、 PDFTranslator 面向长文档和多语言翻译,并尝试保留页面结构。上传前仍建议先判断文件类型;扫描质量过差时,先改善 OCR 输入往往比反复翻译更有效。

    文本型 PDF 的起点是字符和坐标,扫描型 PDF 的起点是像素,混合型 PDF 则需要逐页判断。OCR 的准确度受分辨率、倾斜、语言、背景和字体影响。翻译前先验证文本层,可以避免把识别错误带入后续流程。

    赞(0)
    未经允许不得转载:171主机测评 » 扫描版 PDF 与文本型 PDF 的区别:OCR 识别与翻译流程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址