用 OCRmyPDF 让扫描文件符合 eCTD OCR 要求(Win11 系统)
前言
在准备 eCTD 申报资料时,经常会遇到扫描版 PDF 文件,这类文件本质上只是图片,无法复制文本,也无法进行关键词搜索。但根据规范要求,PDF 内容必须具备“可复制、可搜索”的能力,因此对于扫描文件必须进行 OCR(光学字符识别)处理,否则会存在合规风险,严重时甚至可能被退回补正。
在实际工具选择上,OCRmyPDF 是一个非常适合该场景的开源工具。它可以在不改变原始版式的情况下,为 PDF 自动添加文本层,并支持输出为 PDF/A 格式,这一点非常符合 eCTD 的技术要求。同时它支持批量处理、自动跳过已有文本页面、压缩优化等功能,基本可以覆盖申报资料处理中的大部分需求。
在 Windows 11 上使用之前,需要先完成基础环境部署。首先需要安装 Python,然后再安装 OCRmyPDF,以及它依赖的 OCR 引擎 Tesseract OCR。这里需要特别说明的是:OCRmyPDF 本身并不负责“识别文字”,真正的识别是由 Tesseract 完成的,如果这个环境没有配置好,后续命令会直接报错。
环境部署(Windows 11)
安装 Python(建议 3.9+ 版本,安装时一定勾选 Add Python to PATH,否则后面命令会报错找不到 python;如果你无法访问Python官网可以使用华为镜像):
python --version如果能正常输出版本号,说明安装成功。
安装 OCRmyPDF:
pip install ocrmypdf如果出现权限问题,可以使用:
pip install --user ocrmypdf安装 Tesseract OCR(建议使用 UB Mannheim 提供的 Windows 版本,兼容性更好;下载链接,详细安装步骤可看这个教程)。安装完成后,需要把路径加入环境变量,例如:
C:\Program Files\Tesseract-OCR这一步可以在“系统环境变量 → Path”中手动添加。
验证是否安装成功:
tesseract --version如果能输出版本信息,说明 OCR 引擎已经可以正常调用。
另外,如果你需要识别中文,还需要确认语言包是否存在:
tesseract --list-langs如果没有 chi_sim,需要额外下载中文语言包(否则中文会识别失败或乱码)。
基本使用方法
ocrmypdf input.pdf output.pdf执行后会发生三件事:程序会逐页分析 PDF、调用 Tesseract 识别文字、然后把识别结果嵌入到原 PDF 中,生成一个新的 output.pdf 文件。原始版式不会改变,但已经可以复制和搜索。
推荐(eCTD 用)
eCTD 申报建议使用更规范的参数组合,以确保文件格式、识别效果以及体积都符合要求。
ocrmypdf -l chi_sim --optimize 3 --output-type pdfa input.pdf output.pdf这条命令里几个关键参数需要理解:
-l chi_sim:指定中文简体识别(如果是英文可以用 eng,多语言可以写 chi_sim+eng)--optimize 3:最高级别压缩优化,适合申报资料控制体积--output-type pdfa:输出为 PDF/A 格式,符合长期归档要求(eCTD 推荐)
如果你的文件页数很多,可以增加多线程加速:
ocrmypdf --jobs 4 input.pdf output.pdf(数字根据 CPU 核心数调整)
在实际工作中,经常会遇到一些特殊情况,例如 PDF 已经包含部分文本层。OCRmyPDF 默认会自动检测,如果页面已经有文本,它不会重复识别,这可以避免文字重叠问题。如果你希望强制重新识别,可以加参数:
ocrmypdf --force-ocr input.pdf output.pdf结尾
处理完成后,一定要对文件进行验证,这是 eCTD 要求中非常关键的一步。可以直接在 PDF 中拖动鼠标尝试选中文字,如果可以高亮说明 OCR 成功;同时使用 Ctrl+F 搜索任意关键词,如果能够命中结果,则说明文件已经具备可搜索能力。如果这两项都无法实现,就说明 OCR 没有正确执行,需要重新处理。
需要特别注意的是,如果原始文件是由 Word 等源文件直接导出的 PDF,一般已经具备文本层,不需要重复 OCR,否则反而可能引入错误。而对于带有手写签名、盖章或历史扫描档案的文件,则必须通过 OCR 补充文本层,这也是 eCTD 明确允许的例外场景。
此外,扫描质量会直接影响识别效果。如果扫描分辨率过低(例如 150 DPI 以下),或者存在倾斜、模糊、阴影等问题,OCR 准确率会明显下降。建议使用不低于 300 DPI 的扫描文件,并尽量保证页面干净、对比度清晰。如果原始文件质量较差,可以考虑先进行图像预处理(如去噪、二值化)再进行 OCR。
总体来说,OCRmyPDF 可以非常高效地帮助你把扫描 PDF 转换为符合 eCTD 要求的标准文件。对于从事药品注册或申报工作的人来说,这不仅是一个工具问题,更是一个合规问题。掌握这一流程,不仅可以提升效率,还能避免因为格式问题导致的反复修改甚至退回风险。如果进一步结合批量脚本或自动化流程,还可以大幅提升整套申报资料的处理效率。