- О программе ABBYY FlexiCapture
- Установка и запуск программы
- Архитектура комплекса ABBYY FlexiCapture
-
Настройка программы
- Настройка программы ABBYY FlexiCapture
- Работа в мультитенантной системе
-
Создание проекта
- Свойства проекта
- Переменные окружения
- Импорт изображений
- Типы пакета
- Настройка процесса обработки
- Инструменты
- Приоритет пакета по умолчанию
- Настройка SLA
- Управление правами пользователей
- Регистрационные параметры
- Загрузка проекта на сервер
- Тестовый проект
- Настройка внешнего вида программы
- Качество отображения изображений
-
Создание определения документа
- Создание определений структурированного документа
- Создание определений для неструктурированных и частично структурированных документов
- Создание определений документов без автоматического извлечения данных
- Комплекты документов
-
Поля определения документа
- Текстовые поля ввода
- Метки
- Группы меток
- Штрих-коды
- Картинки
- Таблицы
- Группы полей
- Служебные поля
- Индексные поля
- Ссылка на существующее поле
- Поля без разметки
- Создание поля с непрямоугольной областью
- Поля с несколькими областями
- Поля с несколькими экземплярами
- Изменение названия поля
- Копирование, перемещение, удаление полей
- Исключение региона из распознавания
- Мастер создания определения документа
- Редактирование и публикация определения документа
- Настройка сборки многостраничных документов
- Свойства определения документа
- Свойства раздела документа
- Проверка с помощью правил
- Настройка экспорта
- Настройка отображения данных в окне документа
- Тестирование определения документа
- Локализация определения документа
-
Классификация
- Сценарии классификации
- Профили классификации
- Типы ошибок и баланс точности\полноты
-
Настройка классификации во FlexiCapture
- Предварительная настройка
- Загрузка изображений и настройка классификатора
- Обучение классификатора
- Анализ результатов классификации
- Рекомендации по улучшению качества работы классификатора
- Экспорт и подключение классификатора
- Соответствие классов и определений документов
- Классификация документов по справочнику компаний
- Обучение поиску полей
- Работа оператора с настроенным проектом
-
Работа с ABBYY FlexiCapture for Invoices
- Возможности ABBYY FlexiCapture for Invoices
- Процесс ввода инвойсов
-
Настройка проекта для ввода инвойсов
- Настройка стран и языков
- Подключение справочников поставщиков и подразделений компаний
- Настройка экспорта данных
- Статус документа в проекте ABBYY FlexiCapture for Invoices
- Обучение в ABBYY FlexiCapture for Invoices
- Правила
- Извлечение дополнительных полей инвойсов
- Проверка позиций инвойса
- Дополнительные возможности работы операторов
- Использование более одного определения документа
- Редактирование настроек обработки инвойсов в XML
- Обновление определения документа для обработки инвойсов
- Налоговые схемы
- Спецификации
- Обработка чеков в ABBYY FlexiCapture for Invoices
- Обработка заказов в ABBYY FlexiCapture for Invoices
- Обработка документов при помощи NLP
- Интерфейс программы ABBYY FlexiCapture
-
Приложения
-
Использование скриптов в ABBYY FlexiCapture
- Особенности .Net скриптов
- Подключение внешней сборки
- Объектная модель
-
Использование скриптов для настройки этапов обработки
-
Типы скриптов
- Скрипт правила
- Скрипт автозамены
- Скрипт экспорта
- Пользовательский скрипт
- Скрипт сборки документа
- Скрипт пользовательского распознавания
- Скрипт маршрутизации
- Скрипты обработки
- Скрипт обновления набора данных
- Скрипт валидации набора данных
- Скрипт классификации документа
-
Обработчики событий
- Создание пакета
- Удаление пакета
- Изменение свойств пакета
- Изменение состава пакета
- Перемещение страниц
- Открытие/закрытие пакета
- Проверка целостности пакета
- Изменение свойства документа
- Изменение состояния документа
- Скрипт после экспорта
- Скрипт после проверки правил
- Перед наложением определений документов
- Запрос на верификацию поля
-
Объекты
- IActionResult
- IAssemblingError
- IAssemblingErrors
- IBatch
- IBatchCheckResults
- IBatchItem
- IBatchItems
- IBatchTypeClassifier
- IBatchTypeClassifierResult
- IBinarizationParams
- IBoxedBoolean
- ICharacterParams
- ICharactersParams
- ICheckmarkGroupValue
- ICheckmarkValue
- IDataSet
- IDataSetQuery
- IDataSetRecord
- IDocument
- IDocuments
- IDocumentExportResults
- IDocumentsExportResults
- IDocumentDefinitionInfo
- IDocumentDefinitionInfoArray
- IEditablePictureObject
- IExportFieldsToRedact
- IExportImageSavingOptions
- IField
- IFieldRegion
- IFieldRegions
- IFields
- IFlexiCaptureTools
- ILocalContrastParams
- IMatchedSectionInfo
- IMatchingInfo
- IPage
- IPageClassificationResult
- IPages
- IPictureObject
- IPictureObjectsInfo
- IPrincipal
- IPrincipals
- IProcessingCallback
- IProject
- IProperties
- IProperty
- IPropertyModificationInfo
- IRecordCheckResult
- IRecordset
- IRect
- IRects
- IRoutingRuleResult
- IRuleContext
- IRuleError
- IRuleErrors
- IRuleTag
- IRuleTags
- IScriptBinaryAttributes
- IScriptDefinitionContext
- ISectionDefinitionInfo
- ISectionDefinitionInfoArray
- IShadowsHighlightsParams
- IStageInfo
- IUserAttachment
- IUserAttachments
- IUserSessionInfo
- IValue
- IVARIANTArray
- TAssemlingErrorType
- TBatchItemType
- TColorToFilter
- TExportFieldType
- TExportType
- TImageCompressionType
- TPageClassificationType
- TPdfAVersion
- TPdfDocumentInfoType
- TPdfTextSearchAreaType
- TPrincipalType
- TProcessingPriority
- TPropertyType
- TRuleErrorType
- TStateType
- Примеры скриптов
- Внутренние имена языков распознавания
-
Типы скриптов
-
Использование скриптов для обработки событий интерфейса
-
События
- После закрытия документа
- После закрытия проекта
- При активации документа в окне задания
- При активации поля
- При возврате из задания
- При вызове пользовательской команды
- При деактивации поля
- При закрытии документа
- При закрытии задания
- При закрытии проекта
- При изменении региона
- При изменении режима окна задания
- При открытии документа
- При открытии окна задания
- При отмене задания
- При отображении региона
- При отправке задания на этап
- При подтверждении текстового поля
-
Объекты
- IBoolean
- IBoxedFieldControl
- IDocumentEditor
- IDocumentItem
- IDocumentItems
- IDocumentsCollection
- IDocumentsWindow
- IDrawContext
- IErrorControl
- IErrorControls
- IErrorsWindow
- IFieldControl
- IFieldRegionControl
- IFieldRegionControls
- IFormWindow
- IImageWindow
- IMainMenu
- IMainWindow
- IMenu
- IMenuItem
- IPageControl
- IPageItem
- IPageItems
- IPagesCollection
- IPoint
- ISelection
- IShellRational
- IShellRect
- IShellRects
- ITaskWindow
- ITextEditor
- IToolbar
- IToolbarButton
- IToolbars
- TCommandBarType
- TCommandID
- TDockingType
- TDocumentState
- TErrorType
- TSelectionType
- TTaskWindowMode
- TTextSize
- TUserRole
- TWorkWindowType
-
События
- Пользовательский скрипт (Web Custom Action) для Веб-станции Верификации
- Создание машиночитаемых форм
-
Горячие клавиши
- Горячие клавиши на Станции Настройки Проектов
- Горячие клавиши на Станции Верификации
- Горячие клавиши на станции верификации данных
- Горячие клавиши в окне Редактора определения документа
- Горячие клавиши в окне групповой верификации
- Горячие клавиши в окне контекстной верификации
- Настройка горячих клавиш
- Дополнительные настройки
- Описание команд Сервера Обработки
- Встроенные примеры проектов FlexiCapture
- Поддерживаемые языки распознавания
- Поддерживаемые языки классификатора
- Шрифты для корректного отображения символов
- Поддерживаемые типы текста
- Поддерживаемые типы штрих-кодов
- Поддерживамые входные форматы
- Особенности работы с файлами формата PDF
- Форматы файлов экспорта
- Формат отображения даты
- Алфавит, используемый в регулярных выражениях
- Патенты
- Технологии других компаний
- Глоссарий
- Техническая поддержка
- Как купить программу ABBYY FlexiCapture
- Лицензионный договор с конечным пользователем
-
Использование скриптов в ABBYY FlexiCapture
Примеры скриптов сборки
Зависимость сборки от ключевого поля
Пример работает с определением комплекта. Определение комплекта содержит собственный раздел “Анкета заёмщика” и ссылки на определения документов:
- Паспорт
- Документы поручителя
- Документы созаемщика
- Справка с работы
Раздел “Анкета заёмщика” содержит следующие поля:
- Имя созаемщика
- Сумма кредита
Состав комплекта зависит от значения поля "Сумма кредита". Заданы два пороговых значения, определяющие три способа сборки:
- Сумма кредита меньше первого порогового значения: необходим только документ Паспорт.
- Сумма кредита больше первого порогового значения и меньше второго: необходимы документы Паспорт и Справка с работы.
- Сумма кредита больше второго порогового значения: необходимы документы Паспорт, Справка с работы и Документы поручителя.
Кроме того, если заполнено поле "Имя созаемщика", в комплект должен входить документ "Документы созаемщика".
В комплекте включена сборка следующим скриптом:
using System.Collections.Generic; int creditSum = 0; bool creditSumFound = false; string cocreditor = ""; int formCount = 0; string formName = "Анкета заёмщика"; // Используемые в комплекте определения документов int referenceFromWorkCount = 0; string referenceFromWorkName = "Справка с работы"; int guaranteeDocsCount = 0; string guaranteeDocsName = "Документы поручителя"; int cocreditorDocsCount = 0; string cocreditorDocsName = "Документы созаемщика"; int passportCount = 0; string passportName = "Паспорт"; foreach( IBatchItem item in BatchItems ) { // Поиск анкеты и определение суммы кредита и имени созаемщика if (item.Type == TBatchItemType.BIT_Page) { if (item.AsPage.SectionName != formName) AssemblingErrors.AddCustomError("Не может содержать разделы " + item.AsPage.SectionName, 1); else { cocreditor = item.AsPage.Document.IndexedItemValue("Имя созаемщика").ToString(); string creditSumText = item.AsPage.Document.IndexedItemValue("Сумма кредита").ToString(); if (!int.TryParse(creditSumText, out creditSum)) AssemblingErrors.AddCustomError("Сумма кредита не распознана: " + creditSumText, 1); else creditSumFound = true; formCount++; } } // Подсчет документов в комплекте else if (item.Type == TBatchItemType.BIT_Document) { if (item.AsDocument.TemplateName == referenceFromWorkName) referenceFromWorkCount++; else if (item.AsDocument.TemplateName == guaranteeDocsName) guaranteeDocsCount++; else if (item.AsDocument.TemplateName == passportName) passportCount++; else if (item.AsDocument.TemplateName == cocreditorDocsName) cocreditorDocsCount++; else AssemblingErrors.AddCustomError("Комплект не может содержать документ " + item.AsDocument.TemplateName, 1); } } // Проверка количества разделов и документов комплекта if (formCount > 1) AssemblingErrors.AddCustomError("Лишние разделы " + formName, formCount); else if (formCount < 1) AssemblingErrors.AddCustomError("Не хватает раздела" + formName, 1); if (passportCount > 1) AssemblingErrors.AddCustomError("Лишние документы" + passportName, passportCount); else if (passportCount < 1) AssemblingErrors.AddCustomError("Не хватает документа" + passportName, 1); // Проверка наличия документов созаёмщика, если в анкете указан созаёмщик if (cocreditor != "" && cocreditorDocsCount < 1) AssemblingErrors.AddCustomError("Не хватает документов" + cocreditorDocsName, 1); else if (cocreditor != "" && cocreditorDocsCount > 1) AssemblingErrors.AddCustomError("Лишние документы" + cocreditorDocsName, cocreditorDocsCount); else if (cocreditor == "" && cocreditorDocsCount > 0) AssemblingErrors.AddCustomError("Лишние документы" + cocreditorDocsName, cocreditorDocsCount); // Проверка наличия других документов в зависимости от суммы кредита if (creditSumFound) { if (creditSum > 50000) // нужна справка с работы { if (referenceFromWorkCount > 1) AssemblingErrors.AddCustomError("Лишние документы" + referenceFromWorkName, referenceFromWorkCount); else if (referenceFromWorkCount < 1) AssemblingErrors.AddCustomError("Не хватает документа" + referenceFromWorkName, 1); } if (creditSum > 500000) // нужны документы поручителя { if (guaranteeDocsCount > 1) AssemblingErrors.AddCustomError("Лишние документы" + guaranteeDocsName, guaranteeDocsCount); else if (guaranteeDocsCount < 1) AssemblingErrors.AddCustomError("Не хватает документа" + guaranteeDocsName, 1); } }
Проверка наличия документа в комплекте
Пример работает с определением комплекта документов «Удостоверения личности». Определение комплекта содержит ссылки на следующие определения документов:
- Паспорт
- Водительское удостоверение
Каждый из документов может встречаться в комплекте не более одного раза. При этом в комплекте обязательно должен быть как минимум один из документов.
В комплекте включена сборка следующим скриптом:
using System.Collections.Generic; using System; string docSetName = "Удостоверения личности"; int pagesCnt = 0; // Список разрешенных документов List<string> allowed = new List<string> {"Паспорт", "Водительское удостоверение"}; // Максимальное количество повторений для разрешенных документов List<int> allowedCount = new List<int>{1,1}; // Количество найденных в комплекте документов List<int> foundCount = new List<int>{0,0}; // Подсчет документов и страниц в комплекте foreach (IBatchItem item in BatchItems) { if (item.Type == TBatchItemType.BIT_Document) { if (item.AsDocument.TemplateName == docSetName) AssemblingErrors.AddCustomError("Не может содержать вложенный комплект", 1); else if (allowed.Contains(item.AsDocument.TemplateName)) { int i = allowed.IndexOf(item.AsDocument.TemplateName); foundCount[i]++; } } else if (item.Type == TBatchItemType.BIT_Page) pagesCnt++; } // Проверка количества документов и страниц if (foundCount[0] + foundCount[1] == 0) AssemblingErrors.AddCustomError("Необходим хотя бы 1 документ, удостоверяющий личность", 1); for (int i = 0; i < allowed.Count; i++) { if (foundCount[i] > allowedCount[i]) AssemblingErrors.AddCustomError("Максимальное количество документов " + allowed[i] + ": " + allowedCount[i]); } if (pagesCnt > 0) AssemblingErrors.AddCustomError("В комплекте не должно быть отдельных страниц", pagesCnt);
14.01.2021 14:17:24