如何在Ubuntu 16.04中使用OCRmyPDF使基于图像的PDF(图像到文本)可以选择和搜索

本文概述

  • 该工具的目标是什么?
  • 1.安装OCRmyPDF
  • 2.使用OCRmyPDF
你试图选择PDF的内容多少次, 可惜PDF的内容是图像?真烦人吗?幸运的是, 如果你正在处理一些需要将图像转换为文本的应用程序, 则OCRmyPDF是实现此目标的正确工具。尽管在Ubuntu 16.10及更高版本中, 安装此工具非常容易, 但在Ubuntu 16.04中, 安装过程却有点复杂, 因此你将需要执行一些额外的步骤。
在本教程中, 我们将向你展示如何轻松地在Ubuntu 16.04系统上正确安装此工具。
该工具的目标是什么? 为了快速解释该工具将帮助你实现什么, 我们将展示以下简单案例。我们从一本真实的书中扫描了一些页面, 因此得到了PDF。如果你使用某些PDF查看器打开PDF, 你将看到其中大多数无法选择文本, PDF基本上是图像:
如何在Ubuntu 16.04中使用OCRmyPDF使基于图像的PDF(图像到文本)可以选择和搜索

文章图片
但是, 人们期望和需要的是可以使用鼠标选择文本的可能性:
如何在Ubuntu 16.04中使用OCRmyPDF使基于图像的PDF(图像到文本)可以选择和搜索

文章图片
这基本上就是该工具将产生的内容, 即一个新的PDF, 它在原始PDF上带有一层可选文本, 因此用户将能够轻松提取信息。
1.安装OCRmyPDF OCRmyPDF将OCR文本层添加到扫描的PDF文件中, 从而可以对其进行搜索或复制粘贴。该工具的特点:
  • 从常规PDF生成可搜索的PDF / A文件
  • 将OCR文本准确地放置在图像下方, 以方便复制/粘贴
  • 保持原始嵌入图像的精确分辨率
  • 尽可能将OCR信息作为” 无损” 操作插入, 而不会破坏任何其他内容
  • 优化PDF图像, 通常生成比输入文件小的文件
  • 如果需要, 请在执行OCR之前进行歪斜校正和/或清洁图像
  • 验证输入和输出文件
  • 跨所有可用的CPU内核分配工作
  • 使用Tesseract OCR引擎
  • 支持Tesseract认可的100多种语言
  • 经过数以千计的PDF的实战测试, 测试套件和持续集成
【如何在Ubuntu 16.04中使用OCRmyPDF使基于图像的PDF(图像到文本)可以选择和搜索】要在Ubuntu服务器上安装此工具, 你将需要执行一些额外的步骤, 因为此版本的Ubuntu没有可用的软件包。似乎还不够, OCRmyPDF 8.0和更高版本需要Python 3.6, 但是Ubuntu 16.04附带了Python 3.5, 因此你需要在其上安装Python 3.6。首先使用以下命令安装” Python软件属性” 软件包:
# Update repossudo apt-get update# Install the Python Software Properties packagesudo apt-get install -y software-properties-common python-software-properties

安装python软件属性后, 你可以使用以下命令在系统上添加Python 3.6的存储库和所需版本的Tesseract, 不要忘记也要更新存储库:
# Add Python 3.6 reposudo add-apt-repository -y ppa:jonathonf/python-3.6# Add Tesseract OCR reposudo add-apt-repository -y ppa:alex-p/tesseract-ocr# Update repos once again, otherwise during the installation of packages later, some will fail e.g Pythonsudo apt-get update

处置存储库后, 请安装必需的软件包以使OCRmyPDF正常运行:
sudo apt-get install ghostscriptsudo apt-get install libexempi3sudo apt-get install libffi6sudo apt-get install pngquantsudo apt-get install python3.6sudo apt-get install qpdfsudo apt-get install tesseract-ocrsudo apt-get install unpaper

安装完所有软件包后, 你还需要使Path中的Python可用。 sudo apt-get install python3.6命令将在系统的Python 3.5旁的/usr/bin/python3.6处安装Python 3.6二进制文件。不要删除系统Python。这还将从PPA安装Tesseract 4.0, 因为Ubuntu 16.04中可用的版本对于OCRmyPDF而言太旧了。
最后一步, 你将需要使用pip通过Python安装OCRmyPDF库本身!运行以下说明进行安装:
注意 每次重新启动ubuntu系统时, 你可能都需要运行这些命令, 因为ocrmypdf将不再在路径中可用。
export PATH=$HOME/.local/bin:$PATHpip3 install --user ocrmypdf

安装后, 你将能够从命令行运行该实用程序。你可以使用以下命令在CLI上打印该工具的版本进行测试:
# At this moment outputs 8.0.1ocrmypdf --version

有关此工具的更多信息, 请访问Github上的官方存储库和文档。支持Linux, UNIX和macOS。不直接支持Windows, 但是有一个可在Windows上运行的Docker映像。
2.使用OCRmyPDF OCRmyPDF的用法非常简单易行。只需提供输入PDF的路径以及将根据输入创建的新PDF的名称作为第一个参数:
# Create a selectable layer of text in the PDF from the input file and create a new PDF file with the resultocrmypdf input_file.pdf output_file.pdf

运行该命令后, 该工具将从任务开始, 并且需要一段时间才能完成。 CLI输出将类似于:
INFO - Optimize ratio: 1.00 savings: 0.0%INFO - Output file is a PDF/A-2B (as expected)INFO - Page orientations detected: 1 2

CLI工具还提供了一些参数, 你可以根据需要自定义这些参数, 例如, 指定将被识别的文本的语言, 固定PDF中页面的方向等等:
ocrmypdf# it's a scriptable command line program-l eng+fra# it supports multiple languages--rotate-pages# it can fix pages that are misrotated--deskew# it can deskew crooked PDFs!--title "My PDF"# it can change output metadata--jobs 4# it uses multiple cores by default--output-type pdfa# it produces PDF/A by defaultinput_scanned.pdf# takes PDF input (or images)output_searchable.pdf# produces validated PDF output

编码愉快!

    推荐阅读