Как извлечь текст из PDF без его загрузки?
Цифровой PDF точно передает свой текст, а скан необходимо распознать. Какой из них у вас, что сделали шесть измеренных образцов, лимит в 25 страниц и загрузка, за которую вы платите в любом случае.
· Updated
Два файла могут оба заканчиваться на .pdf и требовать совершенно разной работы для извлечения слов. Один был напечатан в PDF с помощью текстового процессора и уже содержит символы. Другой — это фотография бумаги в обертке PDF. Наша страница PDF в текст открывает файл в вашей вкладке браузера, проверяет каждую страницу и выбирает то, что нужно для этой страницы. Ваш документ никогда не покидает диск.
Два движка делят вкладку. pdf.js, PDF-ридер Mozilla, анализирует документ и передает либо сохраненный текст, либо отрисованное изображение страницы. Tesseract, скомпилированный в WebAssembly, распознает страницу, когда она оказывается изображением. Оба обслуживаются с этого домена и кэшируются после вашего первого запуска.
Почему один PDF точный, а другой распознанный?
PDF — это контейнер, и спецификация ISO 32000-1 дает ему место для хранения текстовых операторов вместе с их положением на странице. Программное обеспечение, которое генерирует PDF, записывает реальные символы, поэтому их извлечение — это чтение. Ничего не угадывается. Это единственное место, где слово точный имеет смысл.
Скан не содержит никаких символов. Что-то сфотографировало каждую страницу, и изображение было обернуто в PDF, поэтому эти страницы отрисовываются и проходят через OCR по одной за раз. Они наследуют точность этого движка и его режимы ошибок, которые мы измерили на скриншотах в статье о извлечении текста из скриншота. Один и тот же движок, одни и те же модели.
Как он определяет, что страница — это скан?
Считая, страница за страницей. Сначала он читает текстовый слой и считает символы в нем, которые не являются пробелами. Более 20, и страница берется дословно и помечается как точная. Двадцать или меньше, и страница отрисовывается и отправляется на OCR. Страница, созданная в цифровом виде, значительно превышает эту границу: плотный образец, который мы тестируем, содержит 426 символов.
Эта линия существует, чтобы поймать скан, который все еще содержит случайный текстовый объект, номер страницы или штамп заголовка, который в противном случае был бы возвращен как вся страница. Это порог, а не тест, поэтому у него есть граница. Скан, содержащий более 20 символов случайного текста, превышает эту границу, и вы получаете заголовок, помеченный как точный, в то время как тело остается заблокированным в изображении. Резюме страницы — это то, где это отображается: документ, который вы знаете, что был отсканирован, сообщает о страницах, прочитанных из текстового слоя, — это случай, на который стоит обратить внимание.
При каком разрешении читается отсканированная страница?
200 DPI. PDF измеряет свои страницы в единицах 72-й доли дюйма, поэтому отрисовка одной в масштабе 1 помещает основной текст около 10 пикселей в высоту, ниже примерно 20 пикселей, где точность распознавания падает. Отрисовка при 200 DPI помещает этот текст около 28 пикселей и делает страницу формата US Letter 1700 на 2200, что является сканирующей конвенцией, которую использует этот инструмент.
Существует второй потолок: 4096 пикселей на самой длинной стороне, применяемый после масштабирования DPI. Обычная страница никак не приближается к этому. Страница длиной более 20 дюймов масштабируется обратно, чтобы соответствовать, и читается при менее чем 200 DPI, пропорционально тому, насколько она превышает это значение. Планшет или постер — это то, что достигает этого, и ничего на карточке не предупреждает вас.
Что показали измеренные запуски?
Шесть образцов прошло через движок 2026-08-12 на настольном оборудовании. Сходство сравнивает вывод с текстом, который мы знали, что был в документе, символ за символом.
| Образец | Прочитанные страницы | Метод | Сходство |
|---|---|---|---|
| Цифровой PDF | 1 из 1 | Текстовый слой | 100,0% |
| Отсканированная страница | 1 из 1 | OCR | 100,0% |
| Трехстраничный цифровой PDF | 3 из 3 | Текстовый слой | 100,0% |
| 28-страничный документ | 25 из 28 | Текстовый слой | не оценен |
| Поврежденный файл | нет | Отклонен | не оценен |
| Файл с защитой паролем | нет | Отклонен | не оценен |

Отсканированный образец также вернулся с 100,0%, и эта строка нуждается в звездочке. Мы создали его, пропустив изображение через собственный конвертер JPG в PDF этого сайта, так что это четкий отрисованный текст без искажений и наклона. Сканер вашего банка — это более сложный случай. Пакет из четырех файлов с 25-страничным документом занял 3,0 секунды реального времени на настольном ПК.
Что на самом деле измеряет оценка уверенности?
Она измеряет проход OCR и только на страницах, где работал OCR. Страницы текстового слоя по определению входят в среднее значение 100, поэтому файл с одним плохим сканом, похороненным в стопке цифровых страниц, все равно сообщает комфортное число. На смешанном документе это среднее значение говорит вам, насколько текст надежен. Строка резюме страницы отвечает на вопрос OCR. "3 страницы: 3 прочитаны точно из текстового слоя, 0 через OCR" означает, что ничего не было распознано. PDF, прочитанный полностью из своего текстового слоя, не имеет оценки.
Что происходит на странице 26?
Один PDF содержит 25 страниц. Образец большого размера содержит 28, и запуск прочитал первые 25 и напечатал уведомление на карточке, сообщая об этом. Ничто не проходит тихо. Для всего, что длиннее, вам нужно будет разделить его в любом PDF-ридере, который у вас есть, а затем отправить остаток как второй запуск.
Два типа файлов отклоняются сразу. Поврежденный PDF отклоняется с формулировкой pdf.js: "Неверная структура PDF", которая приходит на английском языке на каждом языке, потому что она исходит от ридера, а не от наших переводов. PDF с защитой паролем также отклоняется, и эта страница не попросит вас ввести пароль. Уберите защиту в ридере, который вы уже используете, а затем запустите копию.
Безопасно ли пропускать банковскую выписку через это?
Это тот случай, для которого был создан инструмент. Платежные ведомости, контракты и сканы удостоверений — это документы, из которых люди чаще всего хотят извлечь текст, и это последние документы, которые вы хотите оставлять на машине незнакомца. В этом коде нет конечной точки загрузки, которая могла бы ее получить. Откройте вкладку сети во время запуска: части движка приходят с этого домена, и ничего не уносит ваш документ.
Большие PDF-сервисы работают наоборот. Ваш файл сначала попадает на их машины, а их ответ на вопрос о конфиденциальности — это обещание хранения: копия удаляется через некоторое количество часов. Мы цитировали эту формулировку в первой статье в этой серии. Она говорит вам, сколько времени ваша платежная ведомость находится на диске кого-то другого. Попадет ли она туда — это отдельный вопрос. Наша страница конфиденциальности перечисляет, что мы собираем.
Когда это неправильный инструмент?
Ручное письмо. Проект Tesseract говорит об этом прямо: вы можете направить его на рукописный текст, и он не будет работать очень хорошо, потому что движок был создан для печатных символов. Отсканированная форма с напечатанными метками и рукописными ответами дает вам метки и шум, где были ответы. Редко стоит запуск.
Макет — это другой случай. Текстовый слой записывает, где находится каждый набор символов, и ничего о том, что это означает, поэтому страница с двумя колонками или блоком с сносками может вернуться в порядке, которое ваш глаз никогда не воспримет. Таблицы теряют сетку и приходят как содержимое ячеек в последовательности. Прямой текст почти всегда в порядке. Восстановленный документ с оригинальным макетом — это не то, что производит эта страница.
Что касается отсканированной половины, заметки по качеству Tesseract соответствуют тому, что показали наши образцы: более крупные и четкие символы читаются лучше. Если вы фотографируете бумагу, а не сканируете ее, извлекатель изображений с обрезкой до текстового блока превосходит обертывание этого фото в PDF сначала.
Почему цифровой PDF все еще загружает движок OCR?
Потому что этот путь еще не был разделен. Запуск PDF вызывает рабочего pdf.js, 1.262.398 байт в сборке 6.2.108, которую мы поставляем, плюс движок OCR и одна языковая модель примерно 6 MB. Эта половина OCR загружается даже когда каждая страница оказывается цифровой и ничего не требует распознавания, так что на таком файле загрузка оказывается напрасной. Это известное ограничение. Остальная часть ридера менее активна: карты символов и кодеки изображений приходят только тогда, когда документ нуждается в них.
Что мне делать с текстом после этого?
Вы получаете простой текст. Скопируйте его с помощью кнопки или загрузите .txt с разделенными и помеченными страницами. Если ваш источник — это скриншот, инструмент извлечения изображений — это страница для этого, а шесть образцов скриншотов, которые мы оценили охватывают 515 символов, которые OCR создал из фото без текста. В обратном направлении конвертер JPG в PDF создает документ из изображений, а компрессор сначала уменьшает их размер, если они тяжелые.
Попробуйте это на худшем PDF, который у вас есть. Перетащите его на страницу PDF в текст, затем прочитайте строку резюме страницы, прежде чем читать текст.