Извлечение текста из PDF: OCR vs прямое извлечение
Извлечение текста из PDF: OCR vs прямое извлечение
«Скопировать текст из PDF» — кажущаяся простой задача, которая делится на два совершенно разных мира. Один — мгновенное извлечение из текстового PDF, где буквы лежат как буквы. Другой — распознавание сканированных страниц, где буквы существуют только как пиксели. Разберём, чем эти подходы отличаются, как понять, какой нужен в конкретном случае, и где обычно ломается процесс.
Два мира внутри PDF
Технически PDF — это контейнер для нескольких типов контента. Самые важные:
- Слой текста — буквы хранятся как символы Unicode (или коды конкретного шрифта). Их можно выделять, копировать, искать.
- Растровые изображения — пиксели. Если страница пришла со сканера, это просто картинка, и текста как такового внутри нет.
Когда вы открываете PDF и пытаетесь выделить слово:
- Если выделение «прилипает» к буквам — это текстовый PDF. Подойдёт прямое извлечение.
- Если вы можете выделить только прямоугольник, охватывающий целые блоки картинки — нужен OCR.
Прямое извлечение текста
При прямом извлечении программа просто читает поток текста, который уже есть в PDF. Это:
- Мгновенно — даже на сотнях страниц
- Точно — никаких ошибок распознавания
- Сохраняет порядок чтения — если документ корректно сделан, текст идёт сверху вниз и слева направо
Используйте PDF в текст — он принимает PDF и возвращает чистый TXT-файл с текстом всех страниц.
Когда прямое извлечение не сработает
- Сканы или фотографии страниц
- PDF, созданные с шифрованием текста (редко, но бывает)
- Документы, в которых вместо шрифта используется «контурный» рендеринг (некоторые дизайнерские PDF)
- Старые PDF, в которых шрифт встроен без правильной кодировочной таблицы — тогда вместо текста извлекаются «иероглифы»
OCR: оптическое распознавание символов
OCR (Optical Character Recognition) — это распознавание пикселей как символов. Современные движки используют нейросети и распознают тексты на десятках языков, в том числе на русском и казахском.
Процесс:
- Изображение страницы разбивается на области (текст, картинка, таблица)
- Текстовые области делятся на строки и буквы
- Каждая буква сопоставляется с символом Unicode по форме
- На выходе — текстовый файл или PDF с невидимым текстовым слоем поверх картинки
Достоинства OCR
- Работает с любыми сканами и фотографиями
- Современные движки распознают рукописный текст (с большими оговорками)
- Можно применить к старым архивам и оцифровать бумажные документы
Недостатки OCR
- Не 100% точность — даже на качественных сканах в кириллице бывает 1–3% ошибок
- Чувствительность к качеству — кривые сканы, низкое разрешение, тёмный фон роняют точность
- Медленнее прямого извлечения — несколько секунд на страницу
- Хуже работает с таблицами и колонками — структура часто теряется
Подготовка PDF для OCR
Чтобы OCR работал максимально точно:
- Сканируйте в 300 DPI — это «золотой стандарт». Меньше — теряется точность, больше — никакой выгоды.
- Используйте режим оттенков серого для текста — цветной добавляет шум, B/W режет полутона.
- Выравнивайте страницы — если страница криво легла на сканер, OCR будет ошибаться. Используйте Повернуть PDF для базового выравнивания.
- Чистите фон — если страница пожелтела или испачкана, OCR воспринимает шум как буквы. В продвинутых сканерах есть «фильтр фона».
Особенности для русского и казахского языков
Современные OCR-движки хорошо знают русский. Точность на чистом печатном тексте достигает 99%+. Проблемы возникают:
- На дореволюционной кириллице (буквы Ѣ, Ѳ, І)
- На рукописном тексте
- На печатях с витиеватым шрифтом
С казахским сложнее: качество зависит от движка. Tesseract с языковым пакетом kaz работает приемлемо, но специфические буквы (ә, ғ, қ, ұ, ң, ө, ү, һ, і) иногда путаются с похожими русскими (а, г, к, у, н, о, у). Обязательно вычитывайте результат, особенно в фамилиях и адресах.
Если документ многоязычный — содержит русский, казахский и английский — современные движки умеют обрабатывать смешанный текст, но точность падает. Лучше указывать языки явно.
Что делать после извлечения
Распознанный текст — это сырьё. Что с ним обычно делают:
- Поиск — индексируют документ в Elasticsearch или встроенным поиском по архиву
- Перевод — отправляют в DeepL, Google Translate, ChatGPT
- Преобразование в Word — для дальнейшего редактирования
- Аналитика — извлекают суммы, даты, ИИН с помощью регулярных выражений или LLM
- Резюмирование — пропускают через ChatGPT или Claude для краткого описания
Если задача — отредактировать документ как Word, лучше сразу использовать PDF в Word — он не только распознаёт текст, но и сохраняет форматирование.
Гибридные сценарии
Бывают PDF, где часть страниц текстовая, часть — сканированная. Например, договор на 20 страниц с пятью отсканированными приложениями. Прямое извлечение даст текст основной части, но потеряет приложения. Чистый OCR обработает всё, но добавит ошибки в основной части.
Оптимальный путь:
- Разделите документ через Разделить PDF
- Текстовые страницы — через PDF в текст
- Сканированные — через OCR
- Объедините результаты
Это занимает больше времени, но даёт лучшую точность.
Частые ошибки
- Запускать OCR на текстовом PDF. OCR в этом случае не нужен — он только добавит ошибок. Сначала попробуйте прямое извлечение.
- Игнорировать ориентацию. Если страница повёрнута, OCR может вообще не распознать текст. Сначала выровняйте.
- Делать OCR на низком разрешении. Сканы в 75 DPI годятся для предпросмотра, но не для распознавания.
- Не вычитывать результат. Даже 99% точность — это десятки ошибок на длинном документе. Особенно в фамилиях, числах, ИИН.
Часто задаваемые вопросы
Как определить, текстовый у меня PDF или сканированный?
Откройте файл в любом просмотрщике и попробуйте выделить мышью одно слово. Если получается — текстовый. Если выделяется только прямоугольная область — сканированный.
Безопасно ли использовать онлайн-сервис для извлечения текста?
Если документ содержит конфиденциальные данные — выбирайте сервисы, которые работают локально в браузере. PDF в текст не загружает содержимое на сервер.
Можно ли извлечь текст из защищённого PDF?
Сначала снимите защиту через Снять защиту с PDF, если у вас есть пароль.
Какая точность OCR на казахском?
На чистых печатных текстах — 95–98%. На сканах низкого качества — заметно ниже. Всегда проверяйте специфические буквы.
Это бесплатно?
PDF в текст — да, без регистрации и ограничений.
Заключение
Извлечение текста из PDF — это два разных процесса в одной упаковке. Для текстовых документов прямое извлечение быстрее, точнее и бесплатно — попробуйте PDF в текст. Для сканов нужен OCR, и тут начинаются нюансы качества и языковых пакетов. Знание разницы экономит часы возни с «почему текст не копируется».