OCRmyPDF让你能搜索扫描版PDF文档

2023-12-09 18:01

本文主要是介绍OCRmyPDF让你能搜索扫描版PDF文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

什么是 OCRmyPDF ?

PDF 是存储和交换扫描文档的最佳格式。不幸的是,PDF 可能很难修改。OCRmyPDF 是一个 Python 应用程序和库,可以轻松地将图像处理和 OCR(可识别、可搜索的文本)应用于现有 PDF,通过向扫描的 PDF 文件添加 OCR 文本层,使你可以搜索或复制粘贴它们。

镜像下载

在群晖上以 Docker 方式安装。

在注册表中搜索 ocrmypdf ,选择第一个 jbarlow83/ocrmypdf,版本选择 latest

本文写作时, latest 版本对应为 v15.4.2

在这里插入图片描述

你也可以使用命令行,用 SSH 客户端登录到群晖后,依次执行下面的命令

# 拉取镜像
docker pull jbarlow83/ocrmypdf:latest

如果拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull dockerproxy.com/jbarlow83/ocrmypdf:latest# 重命名镜像(如果是通过代理下载的)
docker tag dockerproxy.com/jbarlow83/ocrmypdf:latest jbarlow83/ocrmypdf:latest# 删除代理镜像(如果是通过代理下载的)
docker rmi dockerproxy.com/jbarlow83/ocrmypdf:latest

下载完成后,可以在 映像 中找到

在这里插入图片描述

准备工作

【说明】:

  1. 与典型的 Docker 容器不同,OCRmyPDF Docker 容器是短暂的,它为一个 OCR 作业运行并终止,就像命令行程序一样。因此,我们通常使用 --rm 参数在容器退出时将其删除。
  2. 默认情况下,Docker 镜像包括英语、德语、简体中文、法语、葡萄牙语和西班牙语,所以中文用户不需要添加语言包。

docker 文件夹中,创建一个新文件夹 ocrmypdf

# 新建文件夹 ocrmypdf 
mkdir -p /volume1/docker/ocrmypdf# 进入 ocrmypdf 目录
cd /volume1/docker/ocrmypdf

准备一个文档用于测试,这是网页上打印生成的 pdf 文件,直接搜索 sam 是没有 没有匹配项

在这里插入图片描述

将这个文档放入 ocrmypdf,命名为 input.pdf

在这里插入图片描述

测试验证

为了方便起见,创建一个 shell 别名来隐藏 Docker 命令。通过使用 alias 命令,为长或复杂的命令创建简短且易记的别名,以便更快地执行常用操作或减少输入的工作量

# 创建别名
alias docker_ocrmypdf='docker run --rm  -i --user "$(id -u):$(id -g)" --workdir /data -v "$PWD:/data" jbarlow83/ocrmypdf:latest'# 运行 OCR
docker_ocrmypdf /data/input.pdf /data/output.pdf

其中:

  • -- rm:表示在容器退出时,会将其删除;
  • --user "$(id -u):$(id -g)":用于指定在容器内运行的用户和组,确保容器内的进程以与宿主机相同的用户权限运行,以防止权限问题;
  • --workdir /data:指定容器内的工作目录;
  • -v "$PWD:/data":将 /volume1/docker/ocrmypdf 映射到了容器内的 /data

在这里插入图片描述

运行完成后,会在 ocrmypdf 中看到多出了一个文件 output.pdf

在这里插入图片描述

下载到本地后,用 pdf 阅读器打开后,继续搜索 sam 显示有 2 处匹配

在这里插入图片描述

第二处

在这里插入图片描述

OCRmyPDF 不仅提供了基本的 OCR 功能,还包括一些高级功能,如自动旋转、自动裁剪、去除文本阴影、增强图像质量等。它使用了一些优秀的开源工具和库,如 Tesseract OCR 引擎、GhostscriptImageMagick,以提供强大的 OCRPDF处理功能,当然,OCRmyPDF 无法打开使用数字证书加密的文档。

参考文档

ocrmypdf/OCRmyPDF: OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched
地址:https://github.com/ocrmypdf/OCRmyPDF

OCRmyPDF documentation
地址:https://ocrmypdf.readthedocs.io

jbarlow83/ocrmypdf - Docker Image | Docker Hub
地址:https://hub.docker.com/r/jbarlow83/ocrmypdf

这篇关于OCRmyPDF让你能搜索扫描版PDF文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/474605

相关文章

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没