Получение текста c книги сканированной в pdf

у которой все страницы - картинки / изображения.

технол. база в докер контейнере link https://hub.docker.com/r/jbarlow83/ocrmypdf

Ставим туда допом русский язык. но об этом позже

Использование

Если надо только английский язык то

1
$ docker run -i  --rm jbarlow83/ocrmypdf -l eng  - - </home/mp/Загрузки/Byuzen_T._Uchebnik_bistrogo_chteniya.pdf > /home/mp/Загрузки/Byuzen_T._Uchebnik_bistrogo_chteniya_a.pdf

… то есть можно использовать перенаправлние, чтобы не “мудиться” с маунтингом томов.

Если надо руский

то надо русский дополнить образ. делаем контекст для сборки образа (пустая папка в которой пишем Dockerfile )

1
2
3
4
# Dockerfile
FROM jbarlow83/ocrmypdf
# Example: add Russian
RUN apt install -y tesseract-ocr-rus

Собираем это (build.sh)

1
2
#!/bin/bash
sudo docker build -t ocrmypdf .

Используем аналогично

1
$ docker run -i  --rm jbarlow83/ocrmypdf -l  rus  - - </home/mp/Загрузки/Byuzen_T._Uchebnik_bistrogo_chteniya.pdf > /home/mp/Загрузки/Byuzen_T._Uchebnik_bistrogo_chteniya_a.pdf

PS

PS ничего не получится если в книге уже есть текст. утилита скажет:

1
2
Start processing 2 pages concurrently
PriorOcrFoundError: page already has text! - aborting (use --force-ocr to force OCR; see also help for the arguments --skip-text and --redo-ocr

так, что надо возможно будет ее форсануть.

Типовой вывод в консоль

Если форсануть , то пишет такое

1
2
3
4
5
6
7
8
9
10
11
Start processing 2 pages concurrently
2 page has no images - all vector content will be rasterized at 400 DPI, losing some resolution and likely increasing file size. Use --oversample to adjust the DPI.
3 page already has text! - rasterizing text and running OCR anyway
4 page already has text! - rasterizing text and running OCR anyway
5 page already has text! - rasterizing text and running OCR anyway
6 page already has text! - rasterizing text and running OCR anyway
7 page already has text! - rasterizing text and running OCR anyway
8 page already has text! - rasterizing text and running OCR anyway
9 page already has text! - rasterizing text and running OCR anyway
10 page already has text! - rasterizing text and running OCR anyway
11 page already has text! - rasterizing text and running OCR anyway