К содержимому
DS
DevelopStudio

Парсеры и данные

Как извлечь данные из PDF в Excel: файлы, сканы и проверка ошибок

Перенести таблицу — половина задачи. Вторая половина — убедиться, что не исчезли строки, не перепутались столбцы и сошлись суммы. Разберём процесс на небольшом наборе файлов.

Сначала определите тип PDF

Откройте документ и попробуйте выделить одно слово. Если выделяется текст, внутри, вероятно, есть текстовый слой. Если выбирается страница целиком как картинка — перед вами скан. В одном файле могут соседствовать оба варианта, поэтому проверяйте несколько страниц, включая приложения.

Даже наличие текста не гарантирует аккуратную таблицу. PDF хранит расположение элементов на странице; строка товара в нём может оказаться набором отдельных фрагментов. После копирования цена уезжает в соседний столбец, название разбивается на две строки, а повторный заголовок попадает в товары.

Что внутри файлаС чего начатьЧто проверить
Текст и простая таблицаИмпорт PDF в Power QueryСтроки, столбцы, типы значений
Текст, сложная вёрсткаПравила извлечения для этого форматаПереносы, объединённые ячейки, страницы
Скан или фотографияOCR — распознавание изображенияЦифры, знаки, качество изображения

Когда достаточно импорта в Excel

Если в вашей версии Excel доступен коннектор PDF, попробуйте Power Query. Выберите PDF как источник, укажите файл, в навигаторе найдите нужную таблицу и откройте преобразование данных. Удалите повторные заголовки, задайте типы столбцов и загрузите результат на лист. Доступность коннектора зависит от продукта и версии; порядок подключения описан в документации Microsoft.

Артикулы и номера документов сохраняйте как текст, иначе можно потерять начальные нули. Количество и цену преобразуйте в числа с учётом десятичной запятой и разделителей тысяч. Проверьте, не превратилось ли «1 250,50» в текст или другое число.

Для скана одного извлечения текста библиотекой недостаточно: нужен этап OCR. Такое ограничение отдельно описывает документация pypdf. Распознанный текст затем нужно собрать в поля и строки таблицы, а результат сверить с оригиналом.

Пример: файлы и таблица с проверками

Ниже учебный комплект: два текстовых PDF с разной компоновкой, PDF только с изображением и Excel с контрольными формулами. Все документы созданы для этой статьи. Excel содержит подготовленный эталон и намеренно ошибочную строку для демонстрации проверки; это не результат работы универсального распознавателя.

PDF с таблицей PDF с блоками PDF-скан Excel с проверками

В документе две позиции: 2 единицы по 1 250 рублей и 3 единицы по 800 рублей. Суммы строк — 2 500 и 2 400, итог — 4 900 рублей. В ошибочном варианте последняя сумма прочитана как 2 900. Контроль «количество × цена» обнаруживает расхождение в 500 рублей, а сверка общего итога подтверждает проблему.

Какие ошибки искать

  • Пропущенные строки. Сравнивайте число позиций, номера страниц и итог документа. Сошедшаяся сумма сама по себе не доказывает полноту.
  • Разорванные названия. Продолжение описания не должно превращаться в новый товар.
  • Ошибки в числах. Проверяйте количество, цену, сумму строки и итог отдельно. Правила округления, скидки и налоги согласуйте заранее.
  • Неуверенные поля. Пустое или сомнительное значение отправляйте на проверку, а не заменяйте догадкой.
  • Повторная загрузка. Один файл, отправленный дважды, не должен удваивать приход товара.

Для каждого значения полезно хранить файл-источник и страницу. Проверяющий сможет открыть нужное место, а не искать ошибку по всему архиву. Если нужна обработка разных типов документов, следующий шаг — извлечение полей с ИИ и контролем результата.

Как устроить регулярную обработку

  1. Приём файлов
  2. Текст или OCR
  3. Поля и строки
  4. Проверки
  5. Excel или API

При регулярном потоке система сначала регистрирует файл, определяет формат и извлекает данные. Затем проверяет обязательные поля и арифметику. Документ с ошибкой попадает в очередь проверки, а прошедший контроль — в выгрузку. Статусы «обработан» и «передан в учётную систему» лучше разделить: успешное распознавание не означает успешную доставку.

Изменение шаблона поставщика может сломать старые правила. Поэтому храните набор контрольных документов, проверяйте его после правок и отслеживайте рост ошибок. Временный сбой не должен стирать исходник или приводить к бесконечным повторам.

Что подготовить для разработки

Нужны примеры каждого формата, в том числе неудобные: многостраничный документ, плохой скан, длинное название, скидка и пустое поле. Приложите образец итоговой таблицы, укажите объём и периодичность, целевую систему и ответственного за спорные значения.

Принимать решение стоит по проверке на этих файлах: какие поля извлечены правильно, сколько документов требуют вмешательства и что происходит при сбое. Если исходные PDF меняются редко, правил может хватить; универсальную модель не обязательно добавлять в каждый этап.

Источники и документация

Все статьи →