ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OCRmyPDF 新手指南:3 步给扫描 PDF 加上可搜索文本层

OCRmyPDF 新手指南:3 步给扫描 PDF 加上可搜索文本层 OCRmyPDF 新手指南3 步给扫描 PDF 加上可搜索文本层【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF你大概遇到过这种情况手头一份扫描版 PDF CtrlF 搜不到任何关键词想复制一句话只能手动重打。OCRmyPDF 就是为这个问题而生的——它给扫描 PDF 加上一层隐藏的 OCR 文本层让图片式的文档变得可搜索、可复制还能顺便把歪斜的页面扶正。这是一份典型的打字机扫描页内容还在但无法搜索。下面用它作为例子带你走完整个流程。一分钟认识OCRmyPDF 是一个纯 Python 的命令行工具输入一个扫描 PDF或图片输出一个双层 PDF——表面看还是原来的扫描件底层多了一层与图像精准对齐的隐藏文字。它适合三类人有历史档案、旧论文要数字化归档的想把手机拍的文件变成可搜索文档的需要批量处理 PDF 并控制输出质量的自动化用户核心收益就两条文字能选中、能搜索输出默认是 PDF/A 归档格式几十年后依然可读。上手路径从安装到第一次成功 第 1 步按系统选一条安装命令大多数平台一条命令就能装好会自动带上 Tesseract 和 Ghostscript 两个依赖# Debian / Ubuntu / WSL apt install ocrmypdf # macOSHomebrew brew install ocrmypdf # Fedora dnf install ocrmypdf tesseract-osdWindows 原生用户需先装 64 位 Python、Tesseract、Ghostscript再pip install ocrmypdf详见官方文档 docs/installation.md。▶️ 第 2 步跑通第一个 OCR装好后对任意一个扫描 PDF 执行ocrmypdf --deskew input.pdf output.pdf--deskew会自动检测并纠正页面倾斜。运行过程中你会看到进度条分阶段推进扫描内容 → OCR → PDF/A 转换 → 压缩结束时报告文件体积变化。截图里可以看到几个关键数字Image optimization ratio: 1.36、savings: 26.4%——OCR 之后的文件反而比原文件小了近三成这是常见现象不是异常。✅ 第 3 步验证成功打开output.pdf用鼠标选中文字能搜到关键词、能粘贴出来就成功了。如果某页警告lots of diacritics - possibly poor OCR说明该页识别质量一般换语言包见下一节通常能改善。能力深潜 校正歪斜让页面挺直腰杆解决什么扫描或手机拍摄时页面倾斜 1~5 度OCR 识别率明显下降复制出来的文字位置也错乱。# 同时启用倾斜校正和页面方向自动旋转 ocrmypdf --deskew --rotate-pages crooked.pdf straight.pdf--rotate-pages负责识别整页横竖放错的情况比如横向页转成纵向--deskew负责修正几度以内的小角度倾斜。你会得到一份所有文字水平对齐的输出搜索命中率和复制体验都更好。 多语言与混合语言识别解决什么默认只识别英语中文、法文混排的文档需要指定语言。# 英法混排文档 ocrmypdf -l engfra bilingual.pdf bilingual_ocr.pdf-l参数接受多个语言代码用连接。语言包来自 TesseractDebian/Ubuntu 用户可apt-cache search tesseract-ocr查询并安装对应包macOS 用brew install tesseract-lang装全量包。语言代码查询方法见 docs/languages.md。 图像清洁去除扫描噪点解决什么旧报纸、复印件的背景泛黄、噪点干扰识别。# 去噪点并去除背景色需要 unpaper 组件 ocrmypdf --clean --remove-background old_doc.pdf clean_doc.pdf--clean在 OCR 前清理图像--clean-final则在 OCR 后再清一次能保留更多细节。这类预处理由 src/ocrmypdf/_exec/unpaper.py 调用 unpaper 程序完成。 附带产出sidecar 文本文件解决什么你不仅要可搜索的 PDF还想直接拿到纯文本做分析。# 同时输出识别出的纯文本 ocrmypdf --sidecar output.txt input.pdf output.pdf--sidecar -可以把文本直接打到终端方便快速预览 OCR 质量而不生成文件。️ 归档与压缩输出 PDF/A解决什么文件要长期保存或上传合规系统需要标准化的档案格式。# 输出 PDF/A-2b 归档格式并启用深度压缩 ocrmypdf --optimize 3 --output-type pdfa archive_in.pdf archive_out.pdf--output-type pdfa是默认行为保证文档几十年后可访问--optimize 3启用最强压缩含 pngquant、JBIG2 等视系统是否安装。典型效果是输出文件小于输入文件截图中的 53.6% 体积节省就是一个真实案例。更多压缩细节见 docs/optimizer.md。按场景实战 场景一整理一文件夹的扫描档案配合 shell 循环批量处理当前目录所有 PDFfor file in *.pdf; do ocrmypdf --deskew $file ocr_$file done文件多的话官方推荐用 GNU Parallel 并行跑parallel --tag -j 2 ocrmypdf {} output/{} ::: *.pdf完整方案见 docs/batch.md。 场景二手机拍摄的文档手机拍的照片角度歪、DPI 虚标两条参数基本能救回来ocrmypdf --deskew --rotate-pages --image-dpi 300 phone_photo.jpg document.pdf--image-dpi 300告诉工具这张照片按 300 DPI 解读避免文字层位置错位。输入也可以是图片OCRmyPDF 会自动转成单页 PDF。️ 场景三档案级长期保存对需要入库的文件加上优化和元数据ocrmypdf --optimize 3 --title 2024 会议纪要 meeting.pdf meeting_pdfa.pdf输出是带标题元数据的 PDF/A-2b 文件可直接交给档案系统misc/watcher.py还能帮你监听文件夹自动处理新扫描件。幕后原理OCRmyPDF 本身不识字识别工作全部委托给 Tesseract OCR 引擎先把 PDF 页面光栅化成图片调 Tesseract 得到每个文字块的坐标和角度再把识别结果作为不可见文本层贴回原图下方——--deskew正是利用 Tesseract 返回的文本基线角度来旋转页面。文本层的渲染由 src/ocrmypdf/fpdf_renderer/ 完成配合 Noto 字体族保证中文、西里尔等文字正确显示整个处理流程预处理 → OCR → 文本层合成 → 压缩 → 验证在 src/ocrmypdf/_pipelines/ 中以流水线形式组织多页文档会按 CPU 核心数并行处理。延伸资源安装与依赖详解docs/installation.md语言包安装与语言代码docs/languages.md批量处理与文件监听docs/batch.md完整命令行选项安装后执行ocrmypdf --help插件体系与扩展机制docs/plugins.md源码入口src/ocrmypdf/如果你想从源码安装最新版git clone https://gitcode.com/GitHub_Trending/oc/OCRmyPDF现在就可以动手了找一个最歪、最糊的扫描件跑一遍ocrmypdf --deskew input.pdf output.pdf——5 分钟内你就能看到它从搜不到任何词变成每个字都能选中的样子。无论你是要数字化家庭老照片、批量入库公司档案还是给扫描论文加文本层OCRmyPDF 都是目前最省心的一条路径。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表