В ходе упаковки формируются пакеты, предназначенные для отправки в конечные системы.
Для упаковки файлов используются специальные модули. Модуль упаковки получает файлы от модуля ввода с помощью линии.
Для каждого экземпляра устройства в конфигурационном файле служб ввода определена линия, которая его обслуживает. Линия может обслуживать одно или несколько устройств разных типов. Подробнее см. раздел «Линии».
Линия принимает поступивший образ документа или страницы и его метаданные от модуля ввода и передает их модулю упаковки. Подробнее см. разделы «DeviceInfo.xml», «InstanceInfos.xml».
Модуль упаковки упаковывает файлы, полученные от модулей ввода, в пакеты для отправки в конечную систему. Различают два способа обработки файлов:
• | подокументная обработка. Каждый полученный службой ввода файл или письмо считается отдельным документом; |
• | поточная обработка. Каждый полученный службой ввода файл или письмо может содержать один или несколько документов. Например, при поточном сканировании и разделении документов по штрихкодам. |
Способ обработки файлов определяет модуль упаковки, который будет использоваться в процессе упаковки для формирования пакетов:
• | для подокументного режима упаковки предназначен базовый модуль упаковки; |
• | для поточного режима упаковки предназначен модуль упаковки изображений. |
После упаковки линия отправляет сформированный модулем упаковки пакет в очередь модулю отправки документов в конечную систему.
Подокументная обработка
При подокументной обработке каждый файл, полученный с устройства, рассматривается модулями упаковки как отдельный документ:
• | при вводе из файловой системы в каталог поступают различные файлы, например, файлы в формате DOC, XLS, PNG, JPG, GIF; |
• | при вводе с электронной почты модуль ввода может получать с каждым входящим сообщением несколько файлов: файл с текстом сообщения и файлы вложений. |
Для формирования пакетов в подокументном режиме предназначен базовый модуль упаковки. Базовый модуль упаковки может работать с любым модулем ввода.
Поточная обработка
При поточной обработке каждый файл, полученный с устройства ввода, может рассматриваться модулями упаковки как один или несколько документов:
• | при вводе из файловой системы в каталог поступают образы различных файлов, например, документы в формате PDF, образы многостраничных документов в формате TIFF, образы отдельных страниц документа в графических форматах: TIFF, JPG, PNG и т.п.; |
• | при вводе с электронной почты модуль ввода может получать файлы вложения каждого входящего сообщения, а также само сообщение. |
Для формирования пакетов в поточном режиме предназначен модуль упаковки изображений. Модуль упаковки изображений может работать с любым модулем ввода.
В поточном режиме на основании экземпляров ввода формируется очередь единиц упаковки. Единица упаковки определяет минимальную порцию данных, на которую может быть разделен поток.
Существует три типа единиц упаковки:
• | экземпляр ввода – все изображения внутри одного экземпляра ввода рассматриваются как одно целое. При вводе из файловой системы экземпляром ввода является файл. При вводе с электронной почты – письмо, включающее в себя текст письма и вложения; |
• | файл – поток рассматривается как последовательность файлов, из которых состоят экземпляры ввода. Каждый файл обрабатывается отдельно. При вводе из файловой системы не имеет отличий от единицы упаковки «экземпляр ввода»; |
• | страница – поток рассматривается как последовательность страниц многостраничных изображений. Если файл с изображением не является многостраничным, то он рассматривается как одна страница. |
Способ разделения потока на пакеты настраивается в конфигурационном файле служб ввода. Для разделения потока используются триггеры:
• | Новый экземпляр ввода. Формируется новый пакет, как только попадается единица упаковки, принадлежащая новому экземпляру ввода. Экземпляры ввода отличаются идентификаторами; |
• | Количество единиц упаковки. Формируется новый пакет, как только количество обработанных единиц упаковки достигает заданного значения; |
• | Чистая страница. Формируется новый пакет, как только в единице упаковки обнаруживается пустая страница; |
• | Штрихкод. Формируется новый пакет, как только в единице упаковки обнаруживается штрихкод указанного в настройках типа со значением, соответствующим заданным в настройках маске или регулярному выражению; |
• | Тайм-аут. Формируется новый пакет, если после обработки единицы упаковки на вход упаковщика в течение времени, заданного в настройках, не поступают единицы упаковки; |
• | Метаданные документа. Формируется новый пакет, когда распознаны все страницы документа. В штрихкоде содержится информация об ИД и количестве страниц документа. |
Над единицей упаковки, которая была разделена способом Чистая страница или Штрихкод, может быть выполнено одно из действий:
• | единица упаковки добавляется в текущий пакет, следующая за ней единица упаковки будет считаться началом нового документа; |
• | единица упаковки добавляется в начало нового пакета; |
• | единица упаковки считается не относящейся ни к одному пакету и удаляется. |
Для модуля упаковки изображений можно задать различные настройки выходных PDF- и TIFF-файлов, например, метод сжатия и максимальное разрешение.
Секция Packers
Секция Packers предназначена для настройки модуля упаковки.
В секции BasePacker перечислены все подокументные модули упаковки. В секции ImagePacker перечислены все модули упаковки изображений, которые позволяют работать только с изображениями страниц документов. Модули упаковки изображений рекомендуется использовать при поточном вводе, если в каталог ввода поступают только файлы изображений. В остальных случаях рекомендуется использовать подокументные модули упаковки.
Структура секции:
<Packers>
<BasePacker Type="Directum.Dcs.Capture.Packers.StandardPackers.BasePacker.BasePackerFactory">
<clear />
<add
Name="MailCapturePacker" />
</BasePacker>
<ImagePacker Type="Directum.Dcs.Capture.Packers.StandardPackers.ImagePacker.ImagePackerFactory">
<clear />
<add
Name="FileCapturePacker"
PackageUnit="Page"
OutputFileFormat="PDF"
CompressionMethod="Jpeg"
Color="Default"
DeleteBlankPages="False"
ThresholdForBlank="100"
InputPdfRenderDpi="300"
MaxOutputDpi="-1"
WorkersCount="4"
AddNotImagesToPackage="False"
JpegQuality="50">
<Triggers>
<clear />
<add
TriggerType="Barcode"
Name="BarcodeTrigger"
Action="AddToCurrentDocument"
BarcodeType="Code128"
BarcodeMask="123;234;Directum*"
BarcodeRegularExpression="^DIR.*"
DetectEncoding="False"
RecognitionMode="MaxQuality" />
<add
TriggerType="Timeout"
Name="TimeoutTrigger"
IntervalValueInSeconds="10" />
</Triggers>
</add>
</ImagePacker>
</Packers>
add – настройки модуля упаковки:
• | Name. Уникальное имя модуля упаковки. Указывается в настройке Packer экземпляра линии из секции Lines. |
• | PackageUnit. Единица упаковки – минимальный объем данных, на который разделяется поток: |
• | CaptureInstance – поток делится на экземпляры ввода, которые могут включать в себя несколько страниц или файлов; |
• | Page – поток делится на страницы; |
• | File – поток делится на файлы. |
• | OutputFileFormat – формат выходного файла. Возможные значения: TIFF, PDF. |
• | CompressionMethod. Метод сжатия изображений. Возможные значения: None (без сжатия), PackBits, Deflate, AdobeDeflate, Ccitt3, Ccitt4, Lzw и Jpeg. Методы сжатия Ccitt3, Ccitt4 используются только при черно-белой глубине цвета, а Jpeg не поддерживается при черно-белой глубине цвета. Для документов в формате PDF поддерживаются только методы Jpeg и None. Параметр является необязательным. Значение по умолчанию Jpeg. |
• | Color. Глубина цвета, с которой преобразовывается исходное изображение. Если глубина цвета исходного изображения ниже выбранной, то преобразование не выполняется. Возможные значения: |
• | Monochrome – 1 бит (черно-белый); |
• | GrayScale4Bits – 4 бита (оттенки серого); |
• | GrayScale8Bits – 8 бит (оттенки серого); |
• | Color24Bits – 24 бита (цветной); |
• | Color32Bits – 32 бита (цветной). |
Параметр является необязательным. Значение по умолчанию Default.
• | DeleteBlankPages. Признак удаления пустых страниц. Выполняется после срабатывания всех триггеров. Если параметр установлен и при этом используется триггер BlankPage, настроенный на удаление единиц упаковки, возникает конфликт. Упаковщик не сможет удалять только пустые страницы из потока. Пустые страницы будут удалены в составе единиц упаковки. При обнаружении конфликта в лог-файл службы ввода записывается предупреждение: «Конфликт настройки «DeleteBlankPages» упаковщика <Название упаковщика> и настроек триггера <Название триггера>». Значение по умолчанию False. |
• | ThresholdForBlank. Порог пустой страницы. Определяет, является ли данная страница пустой. Укажите целое число больше или равное 0. Чем больше порог, тем ниже чувствительность и выше вероятность, что страница будет определена как пустая. Значение параметра подбирается: |
• | автоматически с помощью утилиты DcsBlankPageThresholdCalculator.exe, входящей в состав файлов службы ввода документов. Отсканируйте пустую страницу и запустите утилиту с помощью консоли: |
DcsBlankPageThresholdCalculator.exe [-Target=]<Путь до файла> [-Silent]
Укажите полученное значение параметра ThresholdForBlank в конфигурационном файле службы ввода документов.
• | InputPdfRenderDpi. Разрешение при рендеринге захваченного PDF-документа. Для преобразования PDF-документов в изображение используется рендеринг страниц. Получаемое изображение имеет указанное разрешение. Укажите значение от 100 до 600. Значение по умолчанию 300. |
• | MaxOutputDpi. Максимальное разрешение выходного файла. Если исходное изображение имеет меньшее разрешение, оно не меняется. Укажите значение от -1 до 600. Если указано значение -1, разрешение файла не меняется. Значение по умолчанию -1. |
• | WorkersCount. Количество потоков для работы модуля упаковки. Не рекомендуется превышать число физических ядер процессора. Укажите значение от 1 до 32. Значение по умолчанию 4. |
• | AddNotImagesToPackage. Добавлять в пакет файлы, не являющиеся изображениями. Возможные значения: True, False. Значение по умолчанию False. |
• | JpegQuality. Качество JPEG. Укажите значение от 0 до 100. Значение по умолчанию 50. Параметр используется, если формат выходного файла – PDF, а метод сжатия изображений – Jpeg. |
• | PageWaitingTimeoutInMinutes. Время ожидания недостающих страниц документа после обработки последней из них. Используется для триггера BarcodeDocumentInfo. Укажите значение от 1 до 2880 минут. Значение по умолчанию 1. По истечении указанного времени отсканированные страницы перемещаются в папку ошибок. |
Triggers – настройки триггера.
add – добавление настроек триггера:
• | Name. Уникальное имя триггера. |
• | TriggerType. Тип триггера. Определяет способ разделения потока страниц на документы. Возможные значения: |
• | NewCaptureInstance. Разделение по экземпляру ввода. Формируется новый пакет, когда обнаружена единица упаковки, принадлежащая новому экземпляру ввода. Экземпляры ввода отличаются идентификаторами; |
• | Barcode. Разделение по штрихкоду. Формируется новый пакет, когда в единице упаковки обнаружен штрихкод определенного типа и содержания. Вместе с этим типом триггера указываются параметры Action, BarcodeType, BarcodeMask, BarcodeRegularExpression, DetectEncoding и RecognitionMode; |
• | BlankPage. Разделение по пустой странице. Формируется новый пакет, когда в единице упаковки обнаружена пустая страница. Вместе с этим типом триггера указываются параметры Action и ThresholdForBlank; |
• | PackageUnitNumber. Разделение по количеству единиц упаковки. Формируется новый пакет, когда количество обработанных единиц упаковки достигает заданного значения. Вместе с этим типом триггера указывается параметр Number; |
• | Timeout. Разделение по тайм-ауту. Формируется новый пакет, если на вход упаковщика в течение указанного времени не поступают единицы упаковки. Вместе с этим типом триггера указывается параметр IntervalValueInSeconds; |
• | BarcodeDocumentInfo. Разделение по метаданным в штрихкоде документа. Формируется новый пакет, когда распознаны все страницы документа. |
Каждый поточный модуль упаковки может иметь несколько триггеров одного типа. Например, если в организации для разных видов документов используются разные типы штрихкодов, к примеру, QR для исходящих документов и Code128 для входящих. В этом случае удобно настроить два разных триггера с разделением по штрихкоду.
• | Action. Обработка страницы-разделителя. Выберите необходимое действие со страницей, на которой сработал триггер. Страницей-разделителем называется страница, на которой сработал триггер модуля упаковки. Используется для триггеров Barcode и BlankPage. Например, если используем триггер Barcode, то страницей-разделителем будет страница со штрихкодом указанного типа и содержания. Возможные значения: |
• | AddToCurrentDocument. Страница-разделитель добавляется к текущему документу. Следующая за ней страница будет считаться началом нового документа; |
• | AddToNextDocument. Страница-разделитель считается началом нового документа; |
• | Delete. Страница-разделитель считается не относящейся ни к одному документу и удаляется. Использование этого значения параметра имеет смысл для пустых страниц. |
• | Number. Количество единиц упаковки. Используется для разделения документов фиксированной длины. Используется для триггера PackageUnitNumber. |
• | ThresholdForBlank. Порог пустой страницы. Определяет, является ли данная страница пустой. Используется для триггера BlankPage. Укажите целое число больше или равное 0. Чем больше порог, тем ниже чувствительность и выше вероятность, что страница будет определена как пустая. Значение параметра следует подбирать опытным путем. |
• | BarcodeType. Типы распознаваемых штрихкодов, указываются через «,». Используется для триггера Barcode. Параметр не является обязательным. Возможные значения см. в разделе «Распознавание штрихкодов». Рекомендуется указывать только те типы штрихкодов, которые используются в организации. Это связано с тем, что извлечение каждого дополнительного типа штрихкода заметно увеличивает время распознавания. Значение по умолчанию Code128. |
• | BarcodeMask. Маска содержания штрихкода, по которому захватываемые данные разделяются на документы. Используется для триггера Barcode. Маска штрихкода может содержать спецсимволы «*» и «?». Указываются через «;». Например, для штрихкодов системы Directum может быть указана маска «Directum-*-*». |
• | BarcodeRegularExpression. Регулярное выражение маски штрихкода. Используется для триггера Barcode. Укажите строку-константу или регулярное выражение для формирования штрихкода, например, для штрихкодов системы Directum может быть указана маска ^Directum-(\\d+)-(\\d+)$. Полный синтаксис регулярных выражений Microsoft подробнее см. в документации Microsoft. Параметр является не обязательным. По умолчанию принимает пустое значение, т.е. обрабатываются все штрихкоды. |
• | DetectEncoding. Определять кодировку штрихкода. Используется для триггеров Barcode и BarcodeDocumentInfo. Применяется для типов штрихкодов, поддерживающих национальные символы. Возможные значения: True, False. Значение по умолчанию True. |
• | RecognitionMode. Режим распознавания штрихкодов. Используется для триггеров Barcode и BarcodeDocumentInfo. Возможные значения: |
• | MaxPerformance. Максимальная производительность, при этом снижается качество распознавания. Рекомендуется применять для изображений с высоким качеством; |
• | MaxQuality. Максимальное качество, при этом снижается скорость распознавания. Рекомендуется применять для изображений с низким качеством. |
Значение по умолчанию MaxQuality.
• | MetaInfoRegularExpression. Регулярное выражение метаинформации штрихкода, в котором содержатся данные о документе. Используется для триггера BarcodeDocumentInfo. Должно содержать как минимум две группы. |
• | DocumentIdGroupIndex. Индекс группы с ИД документа в регулярном выражении метаинформации штрихкода. Используется для триггера BarcodeDocumentInfo. |
• | PageCountGroupIndex. Индекс группы с количеством страниц документа в регулярном выражении метаинформации штрихкода. Используется для триггера BarcodeDocumentInfo. |
• | IntervalValueInSeconds. Время ожидания следующей единицы упаковки в секундах. Используется для триггера Timeout. По истечении указанного времени формируется новый пакет. Если указано значение -1, то триггер отключен. Значение по умолчанию -1. |