This answer concentrates on the first question:
Why is this?
As I have no experience whatsoever with the Syncfusion PDF library, though, I cannot tell what you specifically
can do to fix this so that Adobe will recognize it.
The PDF object structure
Broken field hierarchy
In the above screenshot one can see that in the AcroForm dictionary the Fields array has a single entry, field object 12 0
.
Field object 12 0
only has a local name (value of T: “Signature”) and a Kids array of descendant field objects containing a single descendant entry, field object 9 0
.
Field object 9 0
also has a local name (also “Signature”; thus its fully qualified field name is Signature.Signature
) and numerous other entries, most of them ok for a signature field and widget. It does not have a Parent entry.
According to the PDF specification a Parent entry in a field is
Required if this field is the child of another in the field hierarchy
(ISO 32000-1, Table 220 – Entries common to all field dictionaries)
The single page of the document (object 5 0
) in its Annots references references the field object 9 0
in its role as a widget annotation.
Thus, coming from the AcroForm dictionary Fields array, the field object 9 0
is a descendant of another field and has the fully qualified name Signature.Signature
.
But coming from the page via the Annots, the field object 9 0
does not have a parent and, therefore, appears as a root field with the fully qualified name Signature
.
Thus, the identity of the signature field is unclear.
Redraw requested
Furthermore one sees in the object structure above that in the AcroForm dictionary the NeedAppearances flag is set to true
.
This asks the PDF viewer
to construct appearance streams and appearance dictionaries for all widget annotations in the document.
(ISO 32000-1, Table 218 – Entries in the interactive form dictionary)
In the course of this Adobe Reader is known to remove annotations with broken structures. As explained above, the field structure of your signature field is broken.
Further peculiarities
Some of the entries of the signature field are somewhat peculiar:
- BS and MK are data for generating a standard appearance for the widget. Usually, though, visible signature bring their custom signature appearances along, and so does yours. So what are these values for?
- DA, the default appearance string that shall be used in formatting the text of variable text annotations, e.g. FreeText annotations or text fields, but why a DA in a signature field?
What to do
Obviously the errors and peculiarities should be cleaned up. As mentioned above, I have no experience whatsoever with the Syncfusion PDF library, so I cannot tell you how to do that exactly.
One hint, though: I doubt that the Syncfusion PDF library regularly creates such nonsense when creating signatures, so there quite likely is something special about the document you want to sign, please check it. E.g. if the original document already contained a form field named “Signature”, the broken structure might be a result of some Syncfusion code trying to merge a new signature field with the old field.
Появление электронной подписи (ЭП) дало возможность отправлять отчетность и другие документы онлайн. Но чтобы добавить ее в текст необходимо установить специальные плагины, которые автоматизирует процесс проверки и редактирования. Специалисты советуют покупать лицензионные версии, чтобы обеспечить сохранность важной информации.
Что нужно, чтобы подписать документ ЭП
Формирование электронной подписи происходит в особой программе, специализирующейся на криптографической защите информации. После подписания документа таким способом, приложение просканирует его содержимое. В результате владелец получит уникальное сочетание, зашифрованное особым ключом — его и выдают автору подписи.
Перед тем, как подписать документ электронной подписью нужно получить сертификат на ее использование. Его выдают быстро, после этого можно приступать к организации рабочего места. Для подписания документов понадобится любое устройство:
- компьютер;
- ноутбук;
- планшет;
- смартфон.
Также необходимо скачать программы по криптографической защите информации. Самые популярные:
- Криптопро CSP;
- Signal-com CSP;
- Foxit Reader;
- Vipnet CSP.
Алгоритм действий всех программ почти одинаковый. Какое программное обеспечение понадобится и какие параметры нужно поменять, можно узнать в удостоверяющем центре или МФЦ.
Справка! Практически все приложения по шифрованию и обработке документов — платные, что обусловлено их спецификой. Пользователь может загружать конфиденциальные данные, поэтому важно следить за безопасностью каналов соединения. Если программа — бесплатная,то, как правило, это пробная версия.
Также для работы с электронной подписью понадобится особый USB-носитель с защитой на которой будет загружен сертификат ЭП. На обычную флешку загрузить его не получится. Подойдут следующие носители:
- руТокен и еТокен (европейский аналог) — применяют для работы на госпорталах, коммерческих площадках, для оформления отчетных документов, для ЭДО;
- руТокен ЭЦП 2.0, JaCarta-2 SE – можно использовать только для реализации алкогольной продукции.
Установив все необходимые программы, владелец электронной подписи сможет использовать для работы с различными документами. Задать уточняющие вопросы по выбору носителя можно в удостоверяющем центре.
Внимание! Все вышеперечисленные программы корректно функционируют в ОС Windows и MAC. Но и на Linux их получится загрузить, но придется поменять некоторые настройки устройства.
После установки криптографической программы и ее настройки появится специальный раздел по работе с электронной подписью. Чтобы ее поставить в документе будет достаточно кликнуть правой кнопкой мыши. Все больше пользователей выбирают такой вариант, потому что можно получить или отправить отчетность онлайн.
Это самый простой вариант, которым чаще всего пользуются владельцы ЭП. Если документ уже готов, его просто нужно открыть. В другом случае придется набирать текст самостоятельно. При этом стоит соблюдать следующие рекомендации:
- Проверить текст на наличие любых ошибок.
- Обязательно перепроверить всю юридически значимые данные.
- Просмотреть правильность составления формулировок.
Осторожно! Версия Word должна соответствовать версии программного обеспечения, установленного для работы с электронной подписью.
В техническом аспекте документ, созданный в этой программе, отличается от других форматов, поэтому просто так поставить электронную подпись не получится. Для этого пользователю придется выделить основную часть документа:
- Курсор мышки нужно поместить перед текстом.
- Кликнуть в раздел «Вставка» и выбрать «Таблицы».
- Нужно выбрать опцию «Создать новую» в 1 ячейку и самостоятельно настроить ее размер.
- Далее следует перейти в «Конструктор таблицы». Его расположение зависит от версии Word. Там получится выбрать вид и ширина границ. Это нужно для приведения документа к определенным стандартам, можно оставить начальные настройки.
После этого документ готов к вставке электронной подписи. Его можно сохранить как шаблон для экономии времени.
Есть несколько способов того, как подписать документ электронной подписью в Word. Выбор зависит от разновидности документа и требований к его оформлению. Для вставки ЭП можно использовать встроенные инструменты Word или стороннее программное обеспечение.
Первый вариант подходит для работы с документами стандартного образца и если отчетности не слишком много. При большом объеме использовать встроенные инструменты будет неудобно, потому что вставка электронной подписи происходит вручную.
Преимущество второго варианта — автоматизация всех процессов. Но есть существенный недостаток — стоимость, потому что специализированного ПО для работы с электронной подписью нет. Причина — в безопасности данных и шифровании данных. Некоторые разработчики предоставляют пробные демо-версии своего продукта или дают возможность скачать программу с ограниченным доступом к ее функционалом.
Как поставить ЭП стандартными средствами Word
Все версии этой программы имеют функцию вставки электронной подписи, но их расположение будет отличаться в зависимости от версии Word. Сложнее всего придется пользователем версии 2003. Чтобы поставить ЭП нужно открыть системное подменю в разделе «Сервис» и во вкладке «Параметры».
Далее нужно зайти в блок «Безопасность» и кликнуть по опции «Цифровые подписи». После ее вставки программа отправит запрос на введение пароля. Затем Word автоматически добавит ее в базу данных и вставит в документ.
В других версиях Word, начиная с 2007, имеют более удобный и понятный интерфейс. Поэтому процесс того, как подписать еще легче:
- Поставить курсор в созданную ячейку.
- Затем нужно перейти в раздел «Макет».
- В поисковой строке следует написать «Подготовка».
- Среди найденных опций нужно выбрать «Добавить цифровую подпись».
- После всех действий следует подтвердить внесенные изменения, а также сохранить документ.
- На выбор будет предоставлено два варианта сертификата. Нужный — электронная подпись.
Справка! Документ считается подписанным, но в его копиях не будет вставлена ЭП. Это плюс, потому что это гарантия того, что акт не смогут использовать посторонние лица. Также любые правки и добавления автоматически отменяют действие электронной подписи.
Как подписать документ электронной подписью документ PDF
В таком формате заверяют отсканированные копии, презентации, иллюстрации, таблицы. Перед вставкой необходимо проверить всю информацию еще раз, потому что любые изменения сделают отчет недействительным. В отличие от Word у пользователя не получится вставить цифровую подпись встроенными инструментами.
Для этого нужно установить Foxit Reader или Acrobat Reader для работы со сторонними плагинами. Самый популярный и простой вариант – установка КриптоПро. Но будут небольшие отличия в использовании этого плагина:
- пользователям Adobe Reader после добавления КриптоПро PDF 0 не придется его обновлять и все цифровые подписи будут создаваться без дополнительной проверки;
- владельцам Foxit Reader нужно покупать платную версию, но перед этим можно протестировать программу в демо-режиме.
Плагин не добавляется автоматически – это делают самостоятельно. Соответственно, перед тем, как подписать документ ЭЦП нужно:
- Через раздел «Цифровые подписи» выбрать опцию «Редактировать» и «Установки».
- Откроется блок «Подписи». Чтобы перейти в раздел настроек кликают по «Создание и оформление» и выбирают «Подробнее».
- В строке «Метод подписания» нужно отметить подходящий вариант ПО и вставки электронной подписи.
Внимание! Проверка подлинности документа будет проводиться автоматически при открытии файла. После копирования или внесения изменений в документ, цифровая подпись станет недействительна.
Как подписать документ ЭПЦ КриптоПро
Многих интересует как подписать документ электронной подписью КриптоПро. Этот плагин чаще всего используют для вставки цифровых сертификатов. После установки программы можно открыть PDF-файл и приступить к его редактированию.
После добавления плагина, владелец ЭЦ сможет вставить ее в документ формата PDF:
- В панели инструментов нужно кликнуть по опции «Подписание» и выбрать «Работа с сертификатами» с указанием типа подписи.
- Затем следует заполнить дополнительные поля о свойствах ЭП и выбрать действие «Подписать».
- На документе следует выделить область для вставки. После выделения появится список с добавленными сертификатами.
- По подходящему варианту нужно кликнуть левой кнопкой мыши.Нужно проверить правильность заполнения сертификата и подписать.
Если пользователь внесет изменения или сделает копию, подпись станет недействительной, как и весь документ. Установка и использование стороннего плагина упрощает процесс добавления цифрового сертификата и гарантирует безопасность данных.
КриптоПро пользуется популярностью благодаря своим преимуществам:
- есть возможность создания различных видов ЭП;
- нет ограничений на объем документа;
- доступны шифрование, проверка и дешифровка данных;
- пакетное подписание электронной подписью документов PDF – одновременная оцифровка нескольких файлов.
Но у этого плагина есть минусы:
- получится открыть только на одном устройстве;
- можно редактировать только PDF-файлы;
- доступна для установки только на Windows.
Итоги
Пользователи могут загрузить платные версии программного обеспечения или пользоваться встроенными инструментами Word, чтобы подписать документ электронной подписью. Перед ее вставкой обязательно нужно проверить текст и правильность формулировок, чтобы отчетность/акт был действительным. Для экономии времени можно сделать шаблоны, которые получится использовать при редактировании других документов.
Полезное видео
Дополнительный материал по теме:
Содержание
- Инструкция по Цифровой Подписи (ЦП)
- Работа с документами – как подписать их электронной подписью
- Что нужно, чтобы подписать документ ЭП
- Как подписать документ электронной подписью в Word
- Как поставить ЭП стандартными средствами Word
- Как подписать документ электронной подписью документ PDF
- Как подписать документ ЭПЦ КриптоПро
- Итоги
- Полезное видео
Инструкция по Цифровой Подписи (ЦП)
Небольшой ликбез по цифровой подписи
Цифровая подпись (ЦП, ЭЦП) — способ удостовериться, что документ подтвержден автором и не изменялся после этого.
ЭЦП представляет собой специализированный блок секретных данных, вложенный в документ.
А внешне на документах ЭЦП выглядит как надпись или картинка или картинка с надписью.
Любой человек может просмотреть ЭЦП и убедиться, что документ подписан. А проверяющие органы, обладающие дополнительным секретным ключом, могут еще и проверить подлинность подписи.
Приказ 831 различает два вида подписанных документов:
1. Имеющие бумажный оригинал, подписанный собственноручно, и скрепленный печатью учреждения. На сайт в таком случае выставляются фотокопии (сканкопии), а оригиналы хранятся в надежном месте
2. Изначально электронные документы, не имеющие бумажных оригиналов. Они подписываются ЭЦП.
Следовательно, копии бумажных документов переподписывать ЭЦП не следует.
Приказ предписывает с 1.1.2021г. все собственные документы учреждения создавать в электронном виде (с ЭЦП).
На старые документы, имеющие бумажные оригиналы, это предписание не распространяется.
Ссылка на Комментарии Рособрнадзора к приказу №831 от 14 августа 2020 года о структуре сайта и видах представления информации на нем. https://crimea-school.ru/files/prilozhenie_2_kommentarii_rosobrnadzora.pdf
Ссылка на изображение штампа «Документ подписан электронной подписью» https://crimea-school.ru/files/img/EDS2-2.jpg
Ссылка на Foxit reader https://www.foxitsoftware.com/ru/pdf-reader/ (Нажмите синюю кнопку Загрузка бесплатной версии Foxit Reader Подтвердите, что система Windows и язык русский. Скачанную программу поставьте на компьютер Если в ходе установки предложат поставить ознакомительную версию их платной программы — откажитесь)
Текстовая версия инструкции.
Сделанная по этой инструкции цифровая подпись будет выглядеть примерно так:
1. Для работы нужен установленный сертификат цифровой подписи. Если он у вас еще не стоит, узнайте как его ставить и поставьте.
Для работы вам вполне достаточно Простого сертификата ЭЦП. Его можно сделать самостоятельно, более того, копий таких сертификатов можно сделать сколько нужно, на любых компьютерах. Это очень удобный способ, не привязывающий вас к определенному рабочему месту. Посмотрите видеоверсию инструкции, там очень подробно показан процесс создания Простой ЭЦП.
Если же вы приняли решение использовать Усиленный сертификат ЭЦП, например, выданный вам в Госказначействе, то вам нужно знать следующее:
Наблюдения показывают, что лучше использовать сертификат учреждения, а не персональный сертификат руководителя.
В сертификате учреждения кроме ФИО руководителя содержатся, собственно, слова: Заведующий или Директор, на которые обращают внимание при проверках.
2. Скачайте изображение штампа, которым будете помечать свою ЦП. Он нужен будет только один раз.
3. Установите программу Foxit Reader
4. Запустите Foxit Reader и подготовьте его к подписыванию документов.
— Щелкните по вкладке Защитить, нажмите Цифровые удостоверения и убедитесь, что ваш сертификат там есть.
— Нажмите Сведения о сертификате и если в появившемся окне видите что-то вроде «Нет доверия. «, нажмите Установить сертификат, выберите Поместить все сертификаты в следующее хранилище, нажмите Обзор и поместите его в «Доверенные корневые центры сертификации«.
— Согласитесь со всем, что предлагает вам мастер. Выбирайте Ок, Да или Далее.
— Завершите мастер, закройте окно Сертификат, а затем снова нажмите Сведения о сертификате и убедитесь, что сообщение «Нет доверия. » исчезло.
5. Загрузите в Foxit Reader нужный документ PDF.
6. На вкладке Защитить нажмите Подписать и сертифицировать и в выпавшем меню выберите Разместить подпись..
7. Курсором нарисуйте прямоугольник, в котором будет подпись. Постарайтесь сделать его длинным и узким, так подпись будет выглядеть красивее.
8. В появившемся окне убедитесь, что в верхнем поле Подписать как стоит ваш сертификат. Если там есть выбор, то выберите тот сертификат, в котором есть полная информация об учреждении, адрес, email, ФИО руководителя и его должность. Обычно этот, более полный сертификат, — самого учреждения, а не персональный руководителя.
9. Внизу, в выпадающем меню Внешний вид выберите Создать новый стиль
В появившемся окошке Настройки стиля сверху вниз:
— В блоке Настройка графики выберите Импортировать и загрузите скачанный в пункте 3 штамп.
— Уберите галочки Местоположение, Версия Foxit и Логотип. Они не нужны.
— Уберите галочку Имя. Имя подписывающего есть в Отличительном имени, где содержится подробная информация.
— Нажмите Ок. Ваш стиль запишется в «Создан [дата, время]» для будущего использования.
10. Поставьте галочку Заблокировать документ после подписания.
— Еще можно выбрать основание подписания, если нужно.
Для чего это может быть нужно? Бывают документы, которые требуют подписать ЭЦП, в то время как они уже подписаны с мокрой печатью. Или те документы, которые подписывает не начальник, но требуют его подписи ЭЦП.
Такие документы разумно подписать с основанием: «Я подтверждаю этот документ» или другим.
11. Нажмите Подписать. Программа запросит новое имя файла, в который запишет подписанный PDF. Дайте ему имя, чтобы он не потерялся. Хороший вариант — приписать в конце имени что-то вроде «подписан».
Для подписания следующих документов достаточно:
— Загрузить PDF в Foxit Reader
— Защитить -> Подписать и сертифицировать -> Разместить подпись..
— Нарисовать прямоугольник, выбрать сертификат (обычно уже выбран), выбрать стиль «Создан [дата, время]» (обычно уже выбран) и подписать
— Задать имя и сохранить файл
Видеоверсия инструкции
Источник
Работа с документами – как подписать их электронной подписью
Появление электронной подписи (ЭП) дало возможность отправлять отчетность и другие документы онлайн. Но чтобы добавить ее в текст необходимо установить специальные плагины, которые автоматизирует процесс проверки и редактирования. Специалисты советуют покупать лицензионные версии, чтобы обеспечить сохранность важной информации.
Что нужно, чтобы подписать документ ЭП
Формирование электронной подписи происходит в особой программе, специализирующейся на криптографической защите информации. После подписания документа таким способом, приложение просканирует его содержимое. В результате владелец получит уникальное сочетание, зашифрованное особым ключом — его и выдают автору подписи.
Перед тем, как подписать документ электронной подписью нужно получить сертификат на ее использование. Его выдают быстро, после этого можно приступать к организации рабочего места. Для подписания документов понадобится любое устройство:
Также необходимо скачать программы по криптографической защите информации. Самые популярные:
Алгоритм действий всех программ почти одинаковый. Какое программное обеспечение понадобится и какие параметры нужно поменять, можно узнать в удостоверяющем центре или МФЦ.
Также для работы с электронной подписью понадобится особый USB-носитель с защитой на которой будет загружен сертификат ЭП. На обычную флешку загрузить его не получится. Подойдут следующие носители:
- руТокен и еТокен (европейский аналог) — применяют для работы на госпорталах, коммерческих площадках, для оформления отчетных документов, для ЭДО;
- руТокен ЭЦП 2.0, JaCarta-2 SE – можно использовать только для реализации алкогольной продукции.
Установив все необходимые программы, владелец электронной подписи сможет использовать для работы с различными документами. Задать уточняющие вопросы по выбору носителя можно в удостоверяющем центре.
После установки криптографической программы и ее настройки появится специальный раздел по работе с электронной подписью. Чтобы ее поставить в документе будет достаточно кликнуть правой кнопкой мыши. Все больше пользователей выбирают такой вариант, потому что можно получить или отправить отчетность онлайн.
Как подписать документ электронной подписью в Word
Это самый простой вариант, которым чаще всего пользуются владельцы ЭП. Если документ уже готов, его просто нужно открыть. В другом случае придется набирать текст самостоятельно. При этом стоит соблюдать следующие рекомендации:
- Проверить текст на наличие любых ошибок.
- Обязательно перепроверить всю юридически значимые данные.
- Просмотреть правильность составления формулировок.
В техническом аспекте документ, созданный в этой программе, отличается от других форматов, поэтому просто так поставить электронную подпись не получится. Для этого пользователю придется выделить основную часть документа:
- Курсор мышки нужно поместить перед текстом.
- Кликнуть в раздел «Вставка» и выбрать «Таблицы».
- Нужно выбрать опцию «Создать новую» в 1 ячейку и самостоятельно настроить ее размер.
- Далее следует перейти в «Конструктор таблицы». Его расположение зависит от версии Word. Там получится выбрать вид и ширина границ. Это нужно для приведения документа к определенным стандартам, можно оставить начальные настройки.
После этого документ готов к вставке электронной подписи. Его можно сохранить как шаблон для экономии времени.
Есть несколько способов того, как подписать документ электронной подписью в Word. Выбор зависит от разновидности документа и требований к его оформлению. Для вставки ЭП можно использовать встроенные инструменты Word или стороннее программное обеспечение.
Первый вариант подходит для работы с документами стандартного образца и если отчетности не слишком много. При большом объеме использовать встроенные инструменты будет неудобно, потому что вставка электронной подписи происходит вручную.
Преимущество второго варианта — автоматизация всех процессов. Но есть существенный недостаток — стоимость, потому что специализированного ПО для работы с электронной подписью нет. Причина — в безопасности данных и шифровании данных. Некоторые разработчики предоставляют пробные демо-версии своего продукта или дают возможность скачать программу с ограниченным доступом к ее функционалом.
Как поставить ЭП стандартными средствами Word
Все версии этой программы имеют функцию вставки электронной подписи, но их расположение будет отличаться в зависимости от версии Word. Сложнее всего придется пользователем версии 2003. Чтобы поставить ЭП нужно открыть системное подменю в разделе «Сервис» и во вкладке «Параметры».
Далее нужно зайти в блок «Безопасность» и кликнуть по опции «Цифровые подписи». После ее вставки программа отправит запрос на введение пароля. Затем Word автоматически добавит ее в базу данных и вставит в документ.
В других версиях Word, начиная с 2007, имеют более удобный и понятный интерфейс. Поэтому процесс того, как подписать еще легче:
- Поставить курсор в созданную ячейку.
- Затем нужно перейти в раздел «Макет».
- В поисковой строке следует написать «Подготовка».
- Среди найденных опций нужно выбрать «Добавить цифровую подпись».
- После всех действий следует подтвердить внесенные изменения, а также сохранить документ.
- На выбор будет предоставлено два варианта сертификата. Нужный — электронная подпись.
Как подписать документ электронной подписью документ PDF
В таком формате заверяют отсканированные копии, презентации, иллюстрации, таблицы. Перед вставкой необходимо проверить всю информацию еще раз, потому что любые изменения сделают отчет недействительным. В отличие от Word у пользователя не получится вставить цифровую подпись встроенными инструментами.
Для этого нужно установить Foxit Reader или Acrobat Reader для работы со сторонними плагинами. Самый популярный и простой вариант – установка КриптоПро. Но будут небольшие отличия в использовании этого плагина:
- пользователям Adobe Reader после добавления КриптоПро PDF 0 не придется его обновлять и все цифровые подписи будут создаваться без дополнительной проверки;
- владельцам Foxit Reader нужно покупать платную версию, но перед этим можно протестировать программу в демо-режиме.
Плагин не добавляется автоматически – это делают самостоятельно. Соответственно, перед тем, как подписать документ ЭЦП нужно:
- Через раздел «Цифровые подписи» выбрать опцию «Редактировать» и «Установки».
- Откроется блок «Подписи». Чтобы перейти в раздел настроек кликают по «Создание и оформление» и выбирают «Подробнее».
- В строке «Метод подписания» нужно отметить подходящий вариант ПО и вставки электронной подписи.
Как подписать документ ЭПЦ КриптоПро
Многих интересует как подписать документ электронной подписью КриптоПро. Этот плагин чаще всего используют для вставки цифровых сертификатов. После установки программы можно открыть PDF-файл и приступить к его редактированию.
После добавления плагина, владелец ЭЦ сможет вставить ее в документ формата PDF:
- В панели инструментов нужно кликнуть по опции «Подписание» и выбрать «Работа с сертификатами» с указанием типа подписи.
- Затем следует заполнить дополнительные поля о свойствах ЭП и выбрать действие «Подписать».
- На документе следует выделить область для вставки. После выделения появится список с добавленными сертификатами.
- По подходящему варианту нужно кликнуть левой кнопкой мыши.Нужно проверить правильность заполнения сертификата и подписать.
Если пользователь внесет изменения или сделает копию, подпись станет недействительной, как и весь документ. Установка и использование стороннего плагина упрощает процесс добавления цифрового сертификата и гарантирует безопасность данных.
КриптоПро пользуется популярностью благодаря своим преимуществам:
- есть возможность создания различных видов ЭП;
- нет ограничений на объем документа;
- доступны шифрование, проверка и дешифровка данных;
- пакетное подписание электронной подписью документов PDF – одновременная оцифровка нескольких файлов.
Но у этого плагина есть минусы:
- получится открыть только на одном устройстве;
- можно редактировать только PDF-файлы;
- доступна для установки только на Windows.
Итоги
Пользователи могут загрузить платные версии программного обеспечения или пользоваться встроенными инструментами Word, чтобы подписать документ электронной подписью. Перед ее вставкой обязательно нужно проверить текст и правильность формулировок, чтобы отчетность/акт был действительным. Для экономии времени можно сделать шаблоны, которые получится использовать при редактировании других документов.
Полезное видео
Дополнительный материал по теме:
Источник
- Печать
Страницы: [1] Вниз
Тема: Foxit PDF Reader, не подписывается PDF электронной подписью (Прочитано 2038 раз)
0 Пользователей и 2 Гостей просматривают эту тему.
Aleksandru
Дали мне в нагрузку школьный сайт. Нужно каждый день выкладывать на него подписанное через Foxit Reader меню для столовой.
Foxit Reader запускается и вроде бы и работает, но подписать пдф-ки не могу.
При выборе сертификата выскакивает ошибка: Недопустимый файл или пароль.
Недопустимый файл, то бишь сертификат, создавал в винде и пароль к нему там же. В винде все работает.
Под штатным вайном Foxit Reader виснет.
В принципе хорошо он работает под PortProton-ом и Кроссовером, если бы не эта ошибка.
Пробовал версии Foxit Reader-а 8, 9, 10 и 12. Во всех одно и тоже.
Так же пробовал запускать в линуксе Foxit Reader установленный в винде.
Ничего по этой ошибке не гуглится.
И если кто знает, чем можно точно так же в линуксе документы подписывать, будет просто замечательно.
Сертификат для подписи создается в самой программе, юридической силы он никакой не имеет.
Зачем все это сочинили с таким подписанием, не понятно. Наверное людей занять, что бы без дела не сидели))
Выкладываю скриншот, что бы было понятнее о чем речь:
AMD FX-6100 AM3+ 6×3300 МГц, GeForce GT 1030, ASUS M5A97 LE R2.0, 16GB RAM, KINGSTON SV300S37A240G, Kubuntu 23.04
F12
Под штатным вайном Foxit Reader виснет.
– а нужна именно виндовая версия? есть же под Линукс, и PDF Sign в ней вроде нормально работает
Aleksandru
есть же под Линукс, и PDF Sign в ней вроде нормально работает
Есть. Старинная версия 2.4.5.
В PDF Sign нашел только карандаш и добавление рисунков.
Никаких упоминаний о сертификатах и подписании, я не нашел в версии для линукс.
AMD FX-6100 AM3+ 6×3300 МГц, GeForce GT 1030, ASUS M5A97 LE R2.0, 16GB RAM, KINGSTON SV300S37A240G, Kubuntu 23.04
Usermaster
С “Лисорейдером” не знаком.
Но если не принципиально какой софтиной подписывать, возможно подойдёт это:
http://okulargost.ru/
Наши запилили Okular с поддержкой Российских гостов.
И ещё, пятая версия Крипто про умеет подписывать документы как с присоединённой подписью так и с отсоединённой.
Тоже как вариант, чем сам активно пользуюсь.
Вариант с Крипто про более предпочтителен в госучреждениях поскольку для проверки подписи достаточно иметь Крипто Про 5, либо 4 с Крипто арм в связке. Последняя тоже активно эксплуатируется в гос учреждениях.
P.S. Okular gost пока сам не пробовал.
Пользователь добавил сообщение 13 Сентября 2022, 09:47:41:
Сертификат для подписи создается в самой программе, юридической силы он никакой не имеет.
На счёт самосостряпанного сертификата не знаю. Там видимо только сертификат, без закрытого контейнера. Как он с крипто про будет работать.
В такой ситуации проще блямбу с информацией о подписи в Gimp прилепить, будет то же самое с юридической стороны.
В любом случае школе не проблема сделать бесплатно сертификат в УЦ Федерального Казначейства.
При этом и юридически всё будет правильно.
Да и такой сертификат уже есть как минимум у директора и того кто закупками занимается.
« Последнее редактирование: 13 Сентября 2022, 09:54:23 от Usermaster »
Aleksandru
В любом случае школе не проблема сделать бесплатно сертификат в УЦ Федерального Казначейства.
При этом и юридически всё будет правильно.
Да и такой сертификат уже есть как минимум у директора и того кто закупками занимается.
Есть правильные сертификаты, и нам проще было бы ими подписывать.
Но вот захотелось кому то, обязательно, что бы через фоксит это было сделано.
Целую инструкцию (портянку) прислали, как создавать и подписывать в фоксите.
Так что скорее всего в чем то другом подписывать, не прокатит.
Буду пытаться под вайном настраивать, но уже и не знаю что.
Поэтому я и создал эту тему, но вряд ли дождусь помощи. Если даже гугл не знает этой ошибки.
AMD FX-6100 AM3+ 6×3300 МГц, GeForce GT 1030, ASUS M5A97 LE R2.0, 16GB RAM, KINGSTON SV300S37A240G, Kubuntu 23.04
- Печать
Страницы: [1] Вверх
Я не могу понять, почему Foxit PDF Reader показывает, что моя подпись подписанного файла недействительна. Сначала я вставляю пустой контейнер для подписи в pdf
public class BlankSignatureContainer2: IExternalSignatureContainer
{
private readonly PdfName filter;
private readonly PdfName subFilter;
private byte[] docBytesHash;
private byte[] docDigest;
private const String HASH_ALGORITHM = DigestAlgorithms.SHA256;
private X509Certificate[] chain;
public BlankSignatureContainer2(PdfName filter, PdfName subFilter, X509Certificate[] chain)
{
this.filter = filter;
this.subFilter = subFilter;
this.chain = chain;
}
public virtual byte[] GetDocBytesHash()
{
return docBytesHash;
}
public virtual byte[] GetDocBytesDigest()
{
return docDigest;
}
public virtual byte[] Sign(Stream docBytes)
{
PdfPKCS7 sgn = new PdfPKCS7(null, chain, HASH_ALGORITHM, false);
docDigest = DigestAlgorithms.Digest(docBytes, DigestAlgorithms.GetMessageDigest(HASH_ALGORITHM));
docBytesHash = sgn.GetAuthenticatedAttributeBytes(docDigest, PdfSigner.CryptoStandard.CADES, null, null);
using (SHA256 sha256 = SHA256.Create())
{
docBytesHash = sha256.ComputeHash(docBytesHash);
}
return new byte[0];
}
public virtual void ModifySigningDictionary(PdfDictionary signDic)
{
signDic.Put(PdfName.Filter, filter);
signDic.Put(PdfName.SubFilter, subFilter);
}
}
docBytesHash Я отправил внешнему веб-сервису для подписи квалифицированной подписью.
using (MemoryStream stream = new MemoryStream())
using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(value.pdfFile))) //pdf file to sign
using (PdfReader pdfReader = new PdfReader(ms))
{
//Get signers and CA certificates
X509Certificate[] chain = await _signPdf.GetMidChain(certificate.Cert);
// creating empty signature container, getting file digest and hash
var blankSignature = new BlankSignatureContainer2(PdfName.Adobe_PPKLite, PdfName.ETSI_CAdES_DETACHED, chain);
var stamper = new PdfSigner(pdfReader, stream, new StampingProperties().UseAppendMode());
var appearance = stamper.GetSignatureAppearance();
//Method to add signature appearance
var sigAppearance = new SigAppearance("stamp1.svg", chain[0].SubjectDN.GetValueList(X509Name.CN).Cast<string>().FirstOrDefault() ?? "", DateTime.Now, "Sign", stamper.GetDocument());
appearance.SetPageRect(new iText.Kernel.Geom.Rectangle(sigAppearance.GetPosition()));
stamper.SetFieldName(new GetSignatureToSign(stamper.GetDocument()).GetSignatureName());
new PdfCanvas(appearance.GetLayer2(), stamper.GetDocument()).AddXObjectFittedIntoRectangle(sigAppearance.GetXObject(), sigAppearance.GetRectangle());
stamper.SignExternalContainer(blankSignature, 8192*2+2);
//Call external webservice to sign blankSignature.GetDocBytesHash()
var msrp = await _clientMID.SignAsync(new MidSignReqModel() {
NationalIdentityNumber = value.personalCode,
PhoneNumber = value.phone,
Language = value.language,
DisplayText = value.ShortMessage(),
DisplayTextFormat = "UCS-2",
Hash = Convert.ToBase64String(blankSignature.GetDocBytesHash()),
HashType = "SHA256"
});
Затем я подписал pdf, используя результат веб-сервиса. Вот контейнер внешней подписи:
public class ExternalSignatureContainer2: IExternalSignatureContainer
{
private X509Certificate[] chain;
private byte[] signature;
private string hashAlgorithm;
public ExternalSignatureContainer2(X509Certificate[] chain, byte[] signature, string hashAlgorithm)
{
this.chain = chain;
this.signature = signature;
this.hashAlgorithm = hashAlgorithm;
}
public void ModifySigningDictionary(PdfDictionary signDic)
{
//throw new NotImplementedException();
}
public byte[] Sign(Stream data)
{
//create TimeStamp Client
ITSAClient tsa = new TSAClientBouncyCastle(@"http://demo.sk.ee/tsa/");
string hashAlgorithm = "SHA256";
PdfPKCS7 sgn = new PdfPKCS7(null, chain, hashAlgorithm, false);
byte[] digest = DigestAlgorithms.Digest(data, DigestAlgorithms.GetMessageDigest(hashAlgorithm));
sgn.SetExternalDigest(signature, null, "ECDSA");
return sgn.GetEncodedPKCS7(digest, PdfSigner.CryptoStandard.CADES, tsa, null, null);
}
}
и это код подписи:
public async Task<byte[]> Sign2(string file, byte[] signature, X509Certificate[] chain, string hashAlgorithm)
{
using (var tempStream = new MemoryStream(File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), @"drafts", file))))
using (var destination = new MemoryStream())
{
var tempReader = new PdfReader(tempStream);
var gsContainer = new ExternalSignatureContainer2(chain, signature, hashAlgorithm);
var signer = new PdfSigner(tempReader, destination, new StampingProperties().UseAppendMode());
signer.SetCertificationLevel(PdfSigner.CERTIFIED_FORM_FILLING);
PdfSigner.SignDeferred(signer.GetDocument(), new GetSignatureToSign(signer.GetDocument()).GetSignatureName(), destination, gsContainer);
using (MemoryStream LTV = new MemoryStream())
using (var newSource = new MemoryStream(destination.ToArray()))
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(newSource), new PdfWriter(LTV), new StampingProperties().UseAppendMode());
LtvVerification v = new LtvVerification(pdfDoc);
SignatureUtil signatureUtil = new SignatureUtil(pdfDoc);
IList<string> names = signatureUtil.GetSignatureNames();
String sigName = names[(names.Count - 1)];
PdfPKCS7 pkcs7 = signatureUtil.ReadSignatureData(sigName);
if (pkcs7.IsTsp())
{
v.AddVerification(sigName, new OcspClientBouncyCastle(null), new CrlClientOnline(), LtvVerification.CertificateOption.WHOLE_CHAIN,
LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES);
}
else
{
foreach (String name in names)
{
v.AddVerification(name, new OcspClientBouncyCastle(null), new CrlClientOnline(), LtvVerification.CertificateOption.WHOLE_CHAIN,
LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES);
}
}
v.Merge();
pdfDoc.Close();
return await Task.FromResult( LTV.ToArray());
}
}
}
и есть результат:
Acrobat Reader
Программа для чтения PDF-файлов Foxit
Не могу найти, что делаю неправильно.