Каталог решений - Распознавание (конвертация) pdf. Оптическое распознавание (использование OCR Tesseract)

Распознавание (конвертация) pdf. Оптическое распознавание (использование OCR Tesseract)

Распознавание (конвертация) pdf. Оптическое распознавание (использование OCR Tesseract)

В наличии

Опыт работы с распознаванием pdf. Конвертация pdf в текст. Оптическое распознавание (OCR Tesseract)

Категория:

Описание

Возникла необходимость распознавать pdf файлы. Наткнулся на работы 

//sale.itcity.ru/public/1217607/

//sale.itcity.ru/public/1535600/

Очень интересно. Первый вариант очень хорошо работает с пдф файлами, которые сохранены из word, excel или другие программы, но он не распознает отсканированные документы (пдф, собранный из картинок).

Вторая работа тоже очень интересная, захотелось опробовать оба, собрать в одной обработке и описать в данной статье.

Первый вариант, описанный в //sale.itcity.ru/public/1217607/ — работает очень хорошо

 

 

Но стоить распечатать и отсканировать данный текст — уже не распознает

Воспользуемся OCR Tesseract

Скачал его отсюда https://github.com/UB-Mannheim/tesseract/wiki

Суть его работы очень простая: подаете на вход картинки — на выходе получаете текст. Управление через командную строку.

1. Преобразуем ПДФ в картинки — любым удобным способом (я воспользовался работами из //sale.itcity.ru/public/1217607/)

2. Разместил их в каталоге временных файлов    

ФайлывКаталоге = НайтиФайлы(КаталогСохраненияФайлов,"*.png");
    ФайлыКУдалению = новый Массив;
    
    ТекстИзПДФ = "";
    
    Для каждого Элемент Из ФайлывКаталоге Цикл
                    
        ЗапуститьПриложение("""C:\Program Files\Tesseract-OCR\tesseract.exe"" """+Элемент.ПолноеИмя+""" "+КаталогСохраненияФайлов+"\Text_"+Элемент.ИмяБезРасширения+" -l rus",,Истина);  //Скармлеваем тесеракту  
            
        Текст = Новый ЧтениеТекста;
        Текст.Открыть(КаталогСохраненияФайлов+"\Text_"+Элемент.ИмяБезРасширения+".txt",КодировкаТекста.UTF8);   //считываем распознанный текст           
        Строка = Текст.ПрочитатьСтроку();

        Пока Строка <> Неопределено Цикл                  

            ТекстИзПДФ = ТекстИзПДФ + Строка+Символы.ПС;
            Строка = Текст.ПрочитатьСтроку();             

        КонецЦикла; 
        Текст.Закрыть();
        
        ФайлыКУдалению.Добавить(Элемент.ПолноеИмя);
        ФайлыКУдалению.Добавить(КаталогСохраненияФайлов+"\Text_"+Элемент.ИмяБезРасширения+".txt");
    КонецЦикла;
    //Удаляем все созданные файлы
    Для каждого Стркудал Из ФайлыКУдалению Цикл
    
        УдалитьФайлы(Стркудал);    
    
    КонецЦикла;

Все

Реализовал это в обработке 

 

 

Тестировалась на платформе 8.3.17.2256. ОС Windows (x64).

Обработку скачивать не обязательно, все описано выше и вышеуказанных работах.

has been added to your cart:
Оформление заказа