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手里一堆扫描件CtrlF 搜不到字、选中就是一片空白——这是扫描 PDF 的典型症状页面本质上是图片里面没有文字。OCRmyPDF 是一个开源命令行工具它给扫描 PDF 加一层看不见的 OCR 文本层让文档从此可搜索、可复制、可粘贴同时保持原图分辨率不下降。先说清楚它能干什么一句话输入扫描 PDF输出可搜索的 PDF/A 存档文件原始画质不变。它和截图转文字类工具的区别在于OCRmyPDF 不是把页面重新渲染成图片再拼 PDF而是只把文字坐标精准地贴回原页面。结果是——复制出来的文字顺序正确不会串行两栏文档除外原文件的元数据、矢量内容原样保留默认输出 PDF/A-2b适合长期存档法院、政府档案普遍要求该格式自动用满 CPU 所有核心几千页的文件也能跑底层用 Tesseract 引擎支持 100 多种语言包括简体中文和日文。 一分钟装好按系统抄命令这节解决怎么装。选一行属于你系统的命令即可装完直接能用# Debian / Ubuntu apt install ocrmypdf # macOSHomebrew brew install ocrmypdf # Fedora dnf install ocrmypdf tesseract-osd # Snap 包跨发行版 snap install ocrmypdfWindows 用户走 WSL同样用apt install ocrmypdf。装完后跑一句ocrmypdf --help能看到完整参数列表说明安装成功。系统仓库里的版本较旧可以git clone https://gitcode.com/GitHub_Trending/oc/OCRmyPDF后从源码安装安装文档 有完整步骤。 核心工作流从一条命令到批量处理第 1 步处理单个 PDF只需要 1 行命令ocrmypdf scanned.pdf searchable.pdf就这样。OCRmyPDF 会依次扫描内容、识别文字、回贴文本层、优化压缩全程有进度条结束时会打印文件缩小比例比如缩小 53.8%。顺手处理图片也行——单张 JPG/PNG 会直接变成单页 PDFocrmypdf scan.jpg scan.pdf第 2 步验证结果2 分钟用任意 PDF 阅读器打开searchable.pdf做两件事CtrlF 搜一个文档里肯定有的词能定位到就成功选中一段文字复制粘贴进备忘录检查有没有漏字、串行注意页面看起来和原来一模一样——文本层是隐形的这正是设计目标。第 3 步中文文档必须加语言参数Tesseract 不认识语言包里的语言中文文档不指定-l会识别成一堆乱码# 纯中文 ocrmypdf -l chi_sim 合同.pdf 合同_可搜索.pdf # 中英混排 ocrmypdf -l engchi_sim 报告.pdf 报告_可搜索.pdf语言代码是 ISO 639-3日文jpn、德文deu、法文fra。Linux 上中文包没装的话apt-get install tesseract-ocr-chi-sim下面这张打字机手稿扫描件就是典型的输入素材——清晰、单栏、印刷体OCR 准确率最高的就是这类第 4 步扫描质量差时加预处理参数歪了、脏了、方向反了三个开关各管一件事ocrmypdf --deskew --clean --rotate-pages 扫描件.pdf 干净件.pdf参数解决什么问题--rotate-pages页面整体倒置/横置自动转正--deskew页面斜了几度自动扶正对识别率影响最大--clean去除纸张污渍、黑边、噪点经验扫描件只要歪超过 1°强烈建议开--deskew比换更贵的扫描仪见效快。第 5 步批量处理一个循环搞定mkdir output for pdf in *.pdf; do ocrmypdf $pdf output/$pdf done几十个文件起步用 GNU parallel 让多个文件并行跑parallel --tag -j 2 ocrmypdf {} output/{} ::: *.pdf-j 2表示同时跑 2 个任务每个任务内部已经吃满多核开太多反而互相抢 CPU。--tag会在日志前打印文件名出错时一眼定位是哪个文件。递归处理整个目录树的命令见 批量处理文档。⚙️ 进阶参数按需取用已有文字层怎么办--mode 一个参数切换文件已经 OCR 过、或者数字原生非扫描的 PDF默认会直接报错退出。加--mode指定策略ocrmypdf --mode skip a.pdf b.pdf # 已有文字的页原样跳过 ocrmypdf --mode redo a.pdf b.pdf # 剥掉旧文本层重新识别 ocrmypdf --mode force a.pdf b.pdf # 全部栅格化强制重做输出格式与体积ocrmypdf --output-type pdf a.pdf b.pdf # 要普通 PDF 而不是 PDF/A ocrmypdf --optimize 3 a.pdf b.pdf # 压缩到极致0-3越大越小越慢默认 PDF/A 文件会略大内嵌所有字体日常流转用--output-type pdf长期归档保持默认。大文件与并发ocrmypdf --pages 1-100 big.pdf part1.pdf # 只处理第 1-100 页 ocrmypdf --jobs 4 a.pdf b.pdf # 手动限制并发默认吃满核心内存紧张就分批用--pages切不要硬扛整本 500 页。⚠️ 避坑速查报错/现象一行解法page already has text! – aborting文件已有文字层加--mode redo重做或--mode skip跳过中文全识别成乱码语言包没装或没指定apt-get install tesseract-ocr-chi-sim并加-l chi_simnot a valid PDF文件损坏/拷贝不完整重新获取或用 Ghostscript 重写gs -o new.pdf -dSAFER -sDEVICEpdfwrite old.pdfTesseract cannot open its config file hocr手动拼的 tessdata 缺configs/目录改用系统包管理器安装的 Tesseract处理特别慢--optimize 0 --output-type pdf关掉压缩和 PDF/A 转换速度立回输出文件比原来大正常PDF/A 要内嵌字体加--optimize 2可压回更小更完整的错误对照表见 常见错误文档性能调优思路见 性能文档。 谁会用得上学生/研究者把扫描的论文、旧书变成可搜索文献库引用复制不再靠手敲行政/财务纸质档案、发票收据批量数字化检索效率从翻变成搜个人全家福里的老信件、扫描的合同账单一次处理永久可搜服务器/自动化命令行 插件机制天然适合脚本化能嵌进 CI、文件监听服务仓库里自带 文件监听示例 和 Web 服务示例能到什么程度单栏印刷体扫描件准确率接近可用手写体不行Tesseract 不支持两栏排版可能串行——这些是引擎上限换工具也绕不开。收尾记住三样东西就能上手ocrmypdf 输入.pdf 输出.pdf、中文加-l chi_sim、扫描件歪了加--deskew。剩下所有参数ocrmypdf --help和仓库内 docs/ 目录随时可查想改处理流程可以看 内置插件源码。把第一批扫描件丢进去试试吧。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表