ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 OCRmyPDF 的 --sidecar 同时产出 OCR 文本文件和 PDF

如何用 OCRmyPDF 的 --sidecar 同时产出 OCR 文本文件和 PDF 如何用 OCRmyPDF 的 --sidecar 同时产出 OCR 文本文件和 PDF【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF处理扫描 PDF 时你往往需要两份产物一份带 OCR 文本层、可以搜索的 PDF以及一份纯文本文件用于建索引、归档或喂给下游程序。OCRmyPDF 的--sidecar选项可以在同一次 OCR 运行中同时生成这两份文件而不必再跑一遍文本提取工具。本文介绍如何用它完成“一次输入PDF 文本文件双输出”以及如何判断结果是否符合预期。准备条件按 安装文档 完成 OCRmyPDF 的安装。以 Debian/Ubuntu 为例apt install ocrmypdfpip无法提供的外部依赖必须用系统包管理器满足最低要求见 Requirements for pip and HEAD installPython 3.11 或更新推荐 3.12Tesseract 4.1.1 或更新Ghostscript 9.54 或 pypdfium2Python 包二选一用于 PDF 栅格化Ghostscript 9.54 或 verapdf 二选一用于 PDF/A 输出。其他常见安装方式Homebrew、Fedoradnf、Docker 等在 Installing OCRmyPDF 中均有说明。用ocrmypdf --version确认安装成功。一次运行产出 PDF 和文本文件主路径命令如下input.pdf、output.txt、output.pdf替换为你自己的文件路径ocrmypdf --sidecar output.txt input.pdf output.pdf命令成功后会得到两个文件带 OCR 文本层的output.pdf以及名为output.txt的 sidecar 文本文件里面是 OCRmyPDF 从图像中识别出的文本来源docs/cookbook.md。--sidecar的文件名参数可以省略此时 sidecar 文件名为{output_file}.txt例如输出output.pdf对应output.pdf.txt。注意省略 FILE 时下一个参数不能是输入 PDF 的文件名CLI 帮助中的原始描述。两个文件不能重名sidecar 文件必须与输入文件、输出文件都不同否则报错--sidecar file must be different from the input and output files见 校验逻辑。变体只预览文本或只要文本不要 PDF以下两个用法来自 docs/cookbook.md 与 docs/advanced.md 的说明按需选用只把 sidecar 写到 stdout快速预览 OCR 质量把--sidecar的文件名设为-。限制是输出文件与 sidecar 不能同时使用 stdout如果输出文件是 stdout即-必须给--sidecar一个真实文件名否则报错--sidecar filename needed when output file is stdout.ocrmypdf --sidecar - input.pdf -只要文本文件不生成输出 PDF使用--output-type none该选项自 v12.6.0 提供用于“只需要 sidecar 文件”的应用场景。此时输出文件名设为-即不产生 PDF 文件ocrmypdf --output-type none --sidecar output.txt input.pdf ---output-type的完整取值auto/pdfa/pdf/none等见 docs/advanced.md 的 PDF/A output modes 表格其中none一栏的说明就是 “No output file (useful with--sidecar)”。结果验证与内容边界命令正常退出后确认output.pdf和output.txt两个文件都已生成再查看文本内容是否符合预期cat output.txt需要理解 sidecar 内容的一个关键边界来自 cookbook 的说明sidecar 里只有 OCRmyPDF做 OCR 时识别出的文本。文档中原本就带文本层的那些页面其原有文本不会出现在 sidecar 中如果使用了--pages只有实际执行了 OCR 的那些页会包含在 sidecar 中因--skip-big、--tesseract-timeout等原因被跳过的页不会出现在 sidecar 中。如果你的目标是“抽出 PDF 里的全部文字无论来自 OCR 还是原有文本层”文档建议改用 Poppler 的pdftotext或pdfgrep这类工具而不是依赖 sidecar。另外OCRmyPDF 默认假设文档是英文文档不是英文时必须用-l LANG指定语言例如ocrmypdf -l fra --sidecar output.txt input.pdf output.pdf且所有指定语言的语言包都必须已安装否则 OCR 质量会很差。Tesseract 本身没有自动检测语言的能力见 docs/cookbook.md。参考资料docs/cookbook.mdsidecar 命令示例与内容边界说明docs/advanced.md--output-type各取值的行为src/ocrmypdf/_validation.py--sidecar参数校验规则docs/installation.md安装方式与外部依赖版本要求。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表