尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OCRmyPDF 教程:5 分钟给扫描 PDF 加上可搜索的 OCR 文本层

OCRmyPDF 教程:5 分钟给扫描 PDF 加上可搜索的 OCR 文本层 OCRmyPDF 教程5 分钟给扫描 PDF 加上可搜索的 OCR 文本层【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF扫描件里的文字选不中、复制不了全文检索更别想而手动重新录入一份几百页的文档要耗掉一整天。这类活儿可以交给 OCRmyPDF一个命令行 OCR 工具它在原图上方叠加一层可搜索、可复制的文本层原图内容一个像素都不动。它到底能做什么用过的都知道市面上不少加文本层的工具会移动文字位置、改变图像分辨率甚至输出打不开的 PDF。OCRmyPDF 针对的正是这些坑文本层位置精准OCR 结果按原文位置嵌在图像正下方复制粘贴出来顺序和内容都对见 README无损处理保持原图精确分辨率尽可能以 lossless 方式插入文本层不打扰页面其他内容输出可长期存档默认尝试生成 PDF/A一种为长期保存设计的 PDF 标准并自动验证输入输出文件默认并行自动把工作分发到所有 CPU 核心几千页的文档也能扛住识别结果常比输入更小内置图像优化JPEG 重压缩、Deflate、JBIG2 等截图里那次运行总压缩率 53.6%装前先看版本要求然后一行命令装好装之前先确认外部依赖Python 包pikepdf、Pillow、fpdf2 等会自动带上但下面的组件需要系统包管理器提供详见 docs/installation.md组件最低版本作用Python3.11运行环境Tesseract4.1.1OCR 引擎负责识别文字Ghostscript 或 pypdfium29.54 / 任一即可页面栅格化转成可识别的图像jbig2enc、pngquant、unpaper可选进一步压缩与图像清理主流发行版和 macOS 各有一行命令sudo apt install ocrmypdf # Debian / Ubuntu sudo dnf install ocrmypdf # Fedora brew install ocrmypdf # macOS (Homebrew) pipx install ocrmypdf # 跨平台备选需自备 TesseractWindows 用户需要装 Tesseract 和 Ghostscript 两个外部程序步骤略长直接看 docs/installation.md 里的分节即可。第一次运行一条命令看到文本层装好后挑一个几页的扫描件试跑ocrmypdf -l eng input.pdf output.pdf # -l eng告诉 Tesseract 识别英语几秒到几分钟取决于页数和核心数终端会依次显示 Scanning、OCR、PDF/A 转换、图像优化的进度条最后打印Output file is a PDF/A-2b (as expected)之类的校验结果。打开output.pdf用文本框选中一段字、右键复制能出来就是成功了。想只导出识别出的纯文本可以顺手加--sidecar out.txt无需再跑一遍。常用参数速查日常使用 90% 的情况就是下面这张表。完整选项ocrmypdf --help全都有进阶语义见 docs/advanced.md参数作用什么时候用-l, --language指定语言连接多个如engfra处理任何非默认语言的文档--mode-mskip/force/redo/strip跳过、强制、重做、剥离文本层文档里混有已含文字的页面时--deskew自动校正歪斜的页面扫描件普遍歪着的时候--rotate-pages旋转摆错方向的页面扫描时放歪 90 度的页面--clean-finalOCR 后对图像做轻度清理想同时改善观感与识别率--output-typeauto默认/pdfa/pdfa-1/pdfa-3/pdf/none归档用 pdfa 系不想转换用pdf只要文本用none--jobs指定并行进程数想控制 CPU 占用时--sidecar额外输出一个纯文本文件需要检索原始识别结果三条可直接复制的组合# 歪斜扫描件纠偏 强制 OCR 存档格式 ocrmypdf --deskew --mode force --output-type pdfa input.pdf output.pdf # 混合文档跳过已有文本页同时导出 sidecar 文本 ocrmypdf --mode skip --sidecar result.txt big.pdf output.pdf # 中英混排大文档限 4 核 ocrmypdf -l chi_simeng --jobs 4 in.pdf out.pdf进阶与排障参数之外还有几个高价值用法值得知道只处理部分页面--pages 1-10,25只 OCR 指定页省时间在长文档上很明显超大页面防卡死--skip-big 50 --tesseract-timeout 300跳过 50 百万像素以上的页面并给 Tesseract 设超时docs/advanced.md 里的原文示例批量与集成仓库自带 misc/batch.py 批处理脚本和 misc/watcher.py 目录监听做文档管理系统的话它也是 paperless-ngx 内置的 OCR 引擎换识别引擎通过插件接口可以换成 EasyOCR、PaddleOCR 等入口在 src/ocrmypdf/builtin_plugins/常见问题提示找不到 Tesseract它是系统外部程序pip 装不了用系统包管理器装tesseract-ocrWindows 需确认 PATH 里能找到可执行文件。报页面已有文本相关错误这是默认行为在保护你已有文字就别重复识别。加--mode skip跳过这些页或--mode redo撕掉旧文本层重新识别。识别中文出来是乱码缺语言包。apt-cache search tesseract-ocr找到包名简体中文是tesseract-ocr-chi-sim装完把-l改成chi_sim再跑。下一步扫描件的图片变文档、批量档案数字化选它基本没有替代品但如果你需要的是版面分析、表格结构还原或 GPU 加速的超大规模识别它不在设计目标内可以看看它的 PaddleOCR 插件或专门的版面工具。装好之后建议先跑一遍ocrmypdf --help再翻 docs/advanced.md 把--mode的四种行为过一遍——搞清这四种模式你处理任何来路不明的 PDF 都不会卡住。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表