• Как преобразовать документ pdf в лист excel?

    @rPman
    Анализ документа это не простой процесс, повезет, если структура у всех документов будет одинаковая, и машиночитаемая, тогда это легко будет автоматизировать, а вот если информация записана 'как получится', где порядок и способ записи отличается (например запись велась много времени и операторы менялись, каждый изобретал свой формат, один по 1 строке на данные название: значение, другой в одну строчку через запятую, трети написал сначала список названий значений, а затем список самих значений и т.п. или писать данные в колонках,.. вроде бы у каждого есть какой то порядок но везде разный). Помимо формата есть еще проблема с разными шрифтами и положениями элементов на странице, лишний текст на сопровождающих картинках и графиках и много нюансов.

    В общем требуется исследование, которое тебе сначала придется провести.

    У тебя 2 варианта решения (как повезет)
    1. если текст в pdf записан как текст
    разбираешь документ на элементы чтобы получить список текстовых строк с координатами (вот тут обсуждалось там же и пример)

    2. если текст не содержится внутри документа и pdf исключительно как картинка (бывают разные случаи, в простом варианте - pdf как векторное изображение, грубо говоря команды принтеру/графопостроителю, бывает прямо изображение помещают, например после сканирования бумажных
    то используй инструменты распознавания текстов на изображении, например открытый tesseract (его можно самому натренировать на шрифты, если будут использоваться необычные, в этом случае конечно вручную придется набирать символы из документа, подготавливать их в обучающую выборку... примеры в интернете есть, но скорее всего так глубоко лезть не придется)
    Чтобы получить текст с координатами так же можно посмотреть пример тут
    Осторожно с мультиязыковыми заморочками, одни и те же буквы в разных языках могут как совпадать по виду так и отличаться (разные шрифты), плюс распознавание может путать букву О и ноль, l и один и т.п.

    Немного поковыряться, чтобы исключить разбиение текстов на буквы а предложения на слова (делать по координатам, если символ или слово находится справа на некотором расстоянии и на той же y координате (+-) то считать что они одно слово-предложение.

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

    Каждое такое приложение будет примитивным, фактически для каждого формата в списке документов - свое.

    p.s. вспоминаю историю, где начальство какой то организации потребовало распечатать тонны (буквально машину) бумаги, какие то документы... а в последствии в другой конторе пришла задача отсканировать всю эту кипу бумаг

    желаю что бы у тебя было не так
    Ответ написан
    4 комментария