个性化阅读
专注于IT技术分析

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

本文概述

你试图选择PDF的内容多少次, 可惜PDF的内容是图像?真烦人吗?幸运的是, 如果你正在处理一些需要将图像转换为文本的应用程序, 则OCRmyPDF是实现此目标的正确工具。尽管在Ubuntu 16.10及更高版本中, 安装此工具非常容易, 但在Ubuntu 16.04中, 安装过程却有点复杂, 因此你将需要执行一些额外的步骤。

在本教程中, 我们将向你展示如何轻松地在Ubuntu 16.04系统上正确安装此工具。

该工具的目标是什么?

为了快速解释该工具将帮助你实现什么, 我们将展示以下简单案例。我们从一本真实的书中扫描了一些页面, 因此得到了PDF。如果你使用某些PDF查看器打开PDF, 你将看到其中大多数无法选择文本, PDF基本上是图像:

扫描PDF的非可选文本

但是, 人们期望和需要的是可以使用鼠标选择文本的可能性:

PDF可选文本OCR

这基本上就是该工具将产生的内容, 即一个新的PDF, 它在原始PDF上带有一层可选文本, 因此用户将能够轻松提取信息。

1.安装OCRmyPDF

OCRmyPDF将OCR文本层添加到扫描的PDF文件中, 从而可以对其进行搜索或复制粘贴。该工具的特点:

  • 从常规PDF生成可搜索的PDF / A文件
  • 将OCR文本准确地放置在图像下方, 以方便复制/粘贴
  • 保持原始嵌入图像的精确分辨率
  • 尽可能将OCR信息作为”无损”操作插入, 而不会破坏任何其他内容
  • 优化PDF图像, 通常生成比输入文件小的文件
  • 如果需要, 请在执行OCR之前进行歪斜校正和/或清洁图像
  • 验证输入和输出文件
  • 跨所有可用的CPU内核分配工作
  • 使用Tesseract OCR引擎
  • 支持Tesseract认可的100多种语言
  • 经过数以千计的PDF的实战测试, 测试套件和持续集成

要在Ubuntu服务器上安装此工具, 你将需要执行一些额外的步骤, 因为此版本的Ubuntu没有可用的软件包。似乎还不够, OCRmyPDF 8.0和更高版本需要Python 3.6, 但是Ubuntu 16.04附带了Python 3.5, 因此你需要在其上安装Python 3.6。首先使用以下命令安装” Python软件属性”软件包:

# Update repos
sudo apt-get update

# Install the Python Software Properties package
sudo apt-get install -y software-properties-common python-software-properties

安装python软件属性后, 你可以使用以下命令在系统上添加Python 3.6的存储库和所需版本的Tesseract, 不要忘记也要更新存储库:

# Add Python 3.6 repo
sudo add-apt-repository -y ppa:jonathonf/python-3.6

# Add Tesseract OCR repo
sudo 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 Python
sudo apt-get update

处置存储库后, 请安装必需的软件包以使OCRmyPDF正常运行:

sudo apt-get install ghostscript
sudo apt-get install libexempi3
sudo apt-get install libffi6
sudo apt-get install pngquant
sudo apt-get install python3.6
sudo apt-get install qpdf
sudo apt-get install tesseract-ocr
sudo 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:$PATH
pip3 install --user ocrmypdf

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

# At this moment outputs 8.0.1
ocrmypdf --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 result
ocrmypdf 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 default
   input_scanned.pdf          # takes PDF input (or images)
   output_searchable.pdf      # produces validated PDF output

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在Ubuntu 16.04中使用OCRmyPDF使基于图像的PDF(图像到文本)可以选择和搜索

评论 抢沙发

评论前必须登录!