Конвертация документов в различные форматы
Сервис Обработки Документов предоставляет возможность преобразования (в т.ч. конвертации) документов в различные форматы для отображения. Преобразование документов производится для выполнения следующих задач:
- конвертация документов для отображения полного текста документа;
- преобразование документов для отображения краткой информации о документе или его печатной формы.
При этом принцип работы при преобразовании документов следующий.
1. При возникновении необходимости преобразования (в т.ч. конвертации) документа на основе его формата
(например, docx
) будет выбран соответствующий конвертер (плагин для визуализации документа заданного
формата). По умолчанию в КриптоПро DSS НЕ зарегистрированы плагины такого типа. Их необходимо
зарегистрировать согласно инструкции в соответствующем разделе.
2. Отображение краткой формы документа в мобильном приложении myDSS позволяет сформировать удобную для просмотра и подтверждения операций версию подписываемого документа. При этом в КриптоПро DSS используется соответствующий формату документа плагин. Если плагин не зарегистрирован, будет использован плагин по умолчанию, отображающий только имя подписываемого документа.
3. Для генерации краткой информации о документе используется шаблон. При этом шаблон может быть задан как в
настройках плагина (по умолчанию или уже настроен), так и передан при загрузке документа в полях
структуры AdditionalDocumentInfo
(см. раздел Отображение краткой информации о документе). При этом приоритет имеет
внешний шаблон.
Внимание!
По умолчанию передача внешних шаблонов разрешена. Для запрета внешних шаблонов необходимо выполнить следующую команду:
Set-DssDocumentStoreProperties -AllowExternalTemplates 0
Логика действий при этом следующая:
Если плагин под формат найден:
- Если внешний шаблон передан:
- Если разрешено использование внешних шаблонов, краткая информация о документе будет сгенерирована и отображена в мобильном приложении по переданному внешнему шаблону.
- Если запрещено использование внешних шаблонов - система выдаст ошибку.
- Если внешний шаблон НЕ передан, выполняется поиск шаблона в выбранном плагине:
- Если шаблон найден, краткая информация о документе будет сгенерирована и отображена в мобильном приложении по этому шаблону.
- Если шаблон НЕ найден - система выдаст ошибку.
- Если внешний шаблон передан:
Если плагин под формат НЕ найден, используется плагин по умолчанию:
- Если внешний шаблон передан:
- Если разрешено использование внешних шаблонов, краткая информация о документе будет сгенерирована и отображена в мобильном приложении по переданному внешнему шаблону.
- Если запрещено использование внешних шаблонов - система выдаст ошибку.
- Если внешний шаблон НЕ передан, выполняется поиск шаблона в плагине по умолчанию:
- Если шаблон найден, краткая информация о документе будет сгенерирована и отображена в мобильном приложении по этому шаблону.
- Если шаблон НЕ найден - система выдаст ошибку.
- Если внешний шаблон передан:
4. Отображение печатной формы документа также требует настроенного плагина и шаблона. Если таковых настроек не производилось, будут использованы плагин (и шаблон) по умолчанию. Логика выбора плагина и шаблона аналогична п. 3.
Отображение полного текста документа из Сервиса Обработки Документов в мобильном приложении myDSS
Мобильное приложение myDSS имеет возможность отображать документ при подтверждении операции с этим документом. Настройка соответствующих плагинов преобразования документов осуществляется при помощи специализированного набора командлетов.
Сервис Обработки Документов предоставляет Пользователям возможность визуализации
документов в мобильном предложении myDSS перед созданием подписи.
Поддерживается просмотр документов следующих форматов: PDF
, XML
, ODT
.
Также могут быть обработаны документы форматов DOC
, DOT
, DOCM
, DOTM
,
DOCX
, DOTX
, FlatOpc
, FlatOpcMacroEnabled
, FlatOpcTemplate
, FlatOpcTemplateMacroEnabled
,
OTT
, OOXML
, WordML
, RTF
, HTML
, XHTML
, MHTML
и TXT
, однако в их
отношении в рамках проведения оценки влияния требуется проверять допустимость
использования в конечной системе. Подробнее об этом в п. 1.5 документа
ЖТЯИ.00096-02 30 01. КриптоПро HSM. Формуляр.
Плагины, позволяющие визуализировать документы данных форматов, находятся в
директории <Путь установки>\DSS\Plugins\Converters
и имеют следующие названия:
DSS.DocumentConverter.PdfStub.dll
– отвечает за отображение документов форматаPDF
;DSS.DocumentConverter.Word.dll
- отвечает за отображение документов форматовDOC
,DOT
,DOCM
,DOTM
,DOCX
,DOTX
,FlatOpc
,FlatOpcMacroEnabled
,FlatOpcTemplate
,FlatOpcTemplateMacroEnabled
,XML
,ODT
,OTT
,OOXML
,WordML
,RTF
,HTML
,XHTML
,MHTML
,TXT
,PNG
,JPG
,BMP
,JPEG
,TIFF
,GIF
.
Для активации возможности просмотра документов необходимо зарегистрировать
нужные форматы и соответствующие плагины с помощью Windows PowerShell.
Для каждого экземпляра веб-приложения в директории <Путь установки>\DocumentStore
создается свой собственный конфигурационный файл с именем
<Имя экземпляра веб-приложения>_convert.config
.
Если плагин преобразования настроен верно, в мобильном приложении myDSS в области «Данные операции» отобразится документ, операцию с которым требуется подтвердить.
Пример:
Add-DssDocumentStoreConverterPlugin -FileExtension pdf -Assembly DSS.DocumentConverter.PdfStub.dll
Add-DssDocumentStoreConverterPlugin -FileExtension doc -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension dot -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension docm -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension dotm -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension docx -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension dotx -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension FlatOpc -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension FlatOpcMacroEnabled -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension FlatOpcTemplate -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin –FileExtension FlatOpcTemplateMacroEnabled -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension xml -Assembly DSS.DocumentConverter.Xml.dll
Add-DssDocumentStoreConverterPlugin -FileExtension odt -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension ott -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension ooxml -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension WordML -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension rtf -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension html -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension xhtml -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension mhtml -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension txt -Assembly DSS.DocumentConverter.Word.dll
Add-DssDocumentStoreConverterPlugin -FileExtension png -Assembly DSS.DocumentConverter.Image.dll
Add-DssDocumentStoreConverterPlugin -FileExtension jpg -Assembly DSS.DocumentConverter.Image.dll
Add-DssDocumentStoreConverterPlugin -FileExtension bmp -Assembly DSS.DocumentConverter.Image.dll
Add-DssDocumentStoreConverterPlugin -FileExtension jpeg -Assembly DSS.DocumentConverter.Image.dll
Add-DssDocumentStoreConverterPlugin -FileExtension tiff -Assembly DSS.DocumentConverter.Image.dll
Просмотр настроек плагина:
Get-DssDocumentStoreConverterPlugin | where { $_.Extension -eq "xml" } | select -ExpandProperty Converters | Format-List
Изменение настроек плагина:
Set-DssDocumentStoreConverterPlugin -FileExtension xml -Assembly DSS.DocumentConverter.Xml.dll -ClassName CryptoPro.DSS.DocumentConverter.Word.WordConverter -Parameters @{ "encoding" = "UTF-8"}
Внимание!
При возникновении ошибки во время изменения настроек плагин удаляется из списка. Необходимо добавить его заново командой Add-DssDocumentStoreConverterPlugin.
Пример настройки кодировки
Примечание
Плагин DSS.DocumentConverter.Word.dll
может неверно определить кодировку в документах типа
xml
, txt
. В этом случае ее необходимо задать вручную через параметр encoding. Имена кодировок
приведены на сайте IANA. Чаще всего используются значения: UTF-8
, UTF-7
, UTF-16BE
, UTF-16LE
,
UTF-16
, US-ASCII
.
При добавлении плагина:
Add-DssStsConverterPlugin -FileExtension xml -Assembly DSS.DocumentConverter.Xml.dll -Parameters @{ "encoding" = "UTF-8"}
При изменении настроек:
Set-DssStsConverterPlugin -FileExtension xml -Assembly DSS.DocumentConverter.Xml.dll -ClassName CryptoPro.DSS.DocumentConverter.Word.WordConverter -Parameters @{ "encoding" = "UTF-8"}
Отображение краткой информации о документе
Сервис Обработки Документов предоставляет возможности по конвертации документов с целью отображения в мобильном приложении myDSS наиболее релевантной информации из метаданных документа и/или его содержания.
Отображение краткой информации о документе
По умолчанию после создания экземпляра СОД в КриптоПро DSS автоматически регистрируется плагин, выводящий в мобильном приложении myDSS имя файла, действие с которым требует подтверждения. Плагин применяется к документам всех форматов, для которых не зарегистрировано собственного плагина.
Если необходимо выводить другую информацию о документе, можно настроить имеющийся HTML-шаблон по умолчанию, по которому СОД преобразовывает документ. Данное действие производится при помощи командлета Set-DssDocumentStoreConverterPlugin.
Шаблон плагина по умолчанию выглядит следующим образом:
<html lang="ru">
<head>
<meta charset="UTF-8"/>
<style>body{{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; padding: 16pt;}} @media(prefers-color-scheme: dark){{body{{color: white;}}}}</style>
</head>
<body>
<p>Имя документа:</p>
<p>{0:Name}</p>
</body>
</html>
Настройка плагина по умолчанию в общем виде выглядит следующим образом:
Set-DssDocumentStoreConverterPlugin -FileExtension preview_@default_html -Parameters @{ "snippetTemplate"='<html lang="ru"><head><meta charset="UTF-8"/><style>body{{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; padding: 16pt;}} @media(prefers-color-scheme: dark){{body{{color: white;}}}}</style></head><body><p>Имя документа:</p><p>{0:Name}</p></body></html>' }
, где в значение параметра -Parameters
должен быть помещен пользовательский
HTML-шаблон формата @{snippetTemplate="<Пользовательский HTML-шаблон>"}
.
Примечание
При необходимости шаблон может содержать CSS
.
Как видно из примера выше, шаблон представляет собой HTML-документ с подстановочными параметрами. Подстановочное поле имеет формат {0:<Имя параметра>}. В шаблоне ДОЛЖНЫ использоваться только подстановочные поля, поддерживаемые зарегистрированным плагином. К примеру, шаблон по умолчанию может использовать только подстановочные параметры, соответствующие полям структуры DocumentInfo.
Примечание
Для обращения к значению подстановочного параметра из поля AdditionalInfo
cтруктуры DocumentInfo
необходимо воспользоваться форматом {0: AdditionalInfo.NAME}, где NAME
- имя
ключа в словаре AdditionalInfo
.
Для расширенного использования подстановочных параметров внутри шаблона
может использоваться структура CDATA
. Структура CDATA
должна находиться
внутри тэга HTML-шаблона <div></div>
и иметь следующий формат:
<![CDATA[{""<Ключ 1 - Имя подстановочного параметра>"":{""<Ключ 2 - Содержимое подстановочного параметра>"":""<Значение, соответствующее Ключу 2>""}}]]>
Таким образом, подстановочный параметр, поддерживаемый зарегистрированным плагином, является ключом (Ключ 1) словаря подстановочных параметров. А парой к этому ключу (значением данного параметра) является еще один словарь, где ключом (Ключ 2) является значение подстановочного параметра. Для этого значения может присутствовать пользовательское содержимое, которое при конвертации будет подставлено в краткую информацию о документе.
Пример:
Set-DssDocumentStoreConverterPlugin -FileExtension preview_@default_html -Parameters @{snippetTemplate="<div><body><h1>DefaultTemplate</h1><p>{0:Name}</p><p>{0:FileType}</p></body><![CDATA[{""FileType"":{""txt"":""Это текстовый документ""}}]]></div>"}
Для файла в формате qwe и именем Договор.txt
результат будет выведен документ следующего
вида:
DefaultTemplate
Договор.txt
Это текстовый документ
Отображение печатной формы документа
Отображение печатной формы документа в мобильном приложении myDSS также позволяет сформировать удобную для просмотра и подтверждения операций версию подписываемого документа. Данная форма является дополнительной, и не может быть настроена без отображения краткой информации о документе и полного его текста.
Порядок настройки отображения печатной формы документа полностью аналогичен настройке
отображения краткой информации, за исключением того, что в словаре параметров
Parameters
ключом является documentTemplate
.
Добавление HTML-шаблона из файла
Плагины отображения краткой и информации о документе позволяют получить HTML-шаблон из файла. Для
этого в словаре параметров -Parameters
должен использоваться ключ snippetTemplatePath
или
documentTemplatePath
для отображения краткой информации о документе или его печатной формы
соответственно. Значение ключа должно содержать полный путь к файлу с HTML-шаблоном. HTML шаблоны из файлов имеют
больший приоритет, чем шаблоны, заданные через параметры плагина.
Пример:
Set-DssDocumentStoreConverterPlugin -FileExtension preview_test_html -Parameters @{snippetTemplatePath="C:\templates\template.txt"}
Настройка плагинов только отображения печатной формы / краткой информации о документе
Имеется возможность использования плагина для отображения толко печатной формы или только для отображения
краткой информации о документе. Для этого необходимо выставить флаг noDocument
или noSnippet
в параметрах плагина конвертации.
Пример:
Set-DssDocumentStoreConverterPlugin -FileExtension preview_test_html -Parameters @{noDocument="True"}
В результате выполнения командлета указанный плагин будет использоваться только для формирования краткой информации о документе. Для формирования печатной формы будет использоваться плагин по умолчанию.