#cs
Скрипт предназначен для пакетного автоматического распознавания файлов изображений, обход всех подкаталогов.
Для файлов изображений из текущего каталога и его подкатолгов создаются соответствующие автоматически распознанные документы с названием all.pdf, .doc или др.
Папки пакетов не создаются. Порядок страниц в  документах - по алфавитному порядку списков файлов изображений (реализация FR).
Необходимо: FR 8.0., AutoIt3 (http://www.autoitscript.com/autoit3/)
Предварительные настройки:
Установить в системе раскладку клавиатуры умолчанию - английский.
Запустить FR и его интерфейс переключить на английский.
Открыть FR-ом любые (желательно небольшие) файлы изображений из папки выбрать необходимые опции распознавания, распознать и сохранить в нужном формате.(Это нужно для сохранения настроек FR)
При этом обратить внимание, чтобы в диалоге открытия изображений и сохранения результатов распознавания стоял нужный Вам тип файла, было выбрано All pages, сделаны все настройки форматирования.
После сохранения файла, FR закрыть.
При поврежденном файле изображения скрипт приостанавливает выполнение и ждет нажатия кнопки, после чего выполнение прожолжается.
При необходимости изменить константу $FR_dir.
Данный скрипт положить в папку с  файлами изображений и запустить его.

22.12.07.  Alex
#ce
Const $FR_dir = "C:\Program Files\ABBYY FineReader 8.0 Professional Edition\"
$file = FileOpen("start.bat", 2); создаем  временные файлы.
If $file = -1 Then
    MsgBox(0, "Error", "Unable to create bat file.")
    Exit
EndIf
FileWriteLine($file, "chcp 1251")
FileWriteLine($file, "dir /ad /b /on /s > list_folder.txt" ); формируем список подкаталогов
FileClose($file)
 RunWait("start.bat" , "", @SW_HIDE)

Run($FR_dir&"FineReader.exe")
AutoItSetOption ( "WinTitleMatchMode" , 2 )

$file2 = FileOpen("list_folder.txt", 0)
If $file2 = -1 Then
    MsgBox(0, "Error", "Unable to open list file.")
    Exit
EndIf

While 1
    $line = FileReadLine($file2)
    If @error = -1 Then ExitLoop
WinWaitActive("ABBYY")
SendKeepActive("ABBYY")

    Send("^n", 0); новый пакет
    Sleep(1500)
    Send("^+D")
    WinWaitActive("Open")
    ControlSetText ( "Open", "", "Edit1", $line ); открытие папки
    ControlClick ( "Open", "", "Button2" )
    Sleep(1000);
    If ControlListView  ( "Open", "", "SysListView321", "GetItemCount" ) = 0 Then
        Send("{ESC}")
        ContinueLoop
    EndIf   
    ControlListView  ( "Open", "", "SysListView321", "SelectAll" );
    Send("{ENTER}")
    Sleep(1000)
    If WinExists ( "Open"  ) Then
        Send("{ESC}")
        ContinueLoop
    EndIf   
    WinWaitClose("Adding")
    WinWaitClose("Reading")
    Sleep(500);
    WinWaitActive("ABBYY")
    Sleep(1000);
    Send("^s")
    WinWait("Save")
    Sleep(500);
    ControlSetText ( "Save", "", "Edit1", $line&"\all" );   сохраняем результаты распознавания  под именем ALL
    Send("{ENTER}")
    Sleep(500);
        WinWaitClose("Saving")
    Send("!f")
    Send("c")   ;Закрываем пакет
    WinWait("ABBYY","Do you want to save")
        Sleep(1000);
        ControlClick ( "ABBYY","Do", "Button2" )
    Sleep(1000);
WEnd
FileClose($file2)
FileDelete("start.bat")
FileDelete("list_folder.txt"); удаляем временные файлы.





Hosted by uCoz