Как подписать PDF в Android
===========================

Мне нужно реализовать в приложении для Android функцию, которая позволяет мне подписывать PDF, когда я говорю "знак", я имею в виду цифровую подпись (первое и второе имя), прикрепленную к концу документа от пользователя.

У меня есть доступ к Samsung Note 4 (с стилусом), тогда это не будет проблемой, "напишите" на дисплее.

Вопрос в том, есть ли возможность подписать документ, используя некоторую библиотеку, например itext, или я должен написать пользовательскую функцию?

 

Я предполагаю, что вы хотите применить электронную подпись на документе, используя почерк пользователя с ручкой. Как уже говорилось, @mkl, концепция "цифровой подписи" обычно применяется при использовании цифровых сертификатов и криптографии.

  **Требования к написанию электронной подписи**

Люди склонны думать, что собственноручная подпись состоит из встраивания изображения, но чтобы ваша система имела минимальное юридическое значение в случае судебного разбирательства, которое вам понадобится:

* R1 - обеспечить идентификатор подписывающего лица
* R2 - однозначно присоединить подпись и документ
* R3 - защита целостности документа и подписи

Более или менее это характеристики цифровых подписей.

  **Рукописная подпись на Android**

Процесс в android должен выглядеть следующим образом:

* R2) фиксирует графику пользователя, включая биометрические данные (x, y, время, давление) с использованием холста. Вставить изображения и биометрические данные в документ с помощью PDFBox или itext (клиент или сервер)
* R1), включенные биометрические данные на предыдущем этапе, позволяют потенциальный анализ сигнатуры экспертом
* R3) Я предлагаю применить временную метку к доказательствам документов и подписи для защиты целостности и обеспечения времени подписи. И itext и PDFBox поддерживают его

Если вам не требуется юридическое значение, примените только часть чертежа. Качество вашей подписи будет определяться характеристиками устройств. Например, конкретный сигнатурный планшет может также обеспечивать ориентацию пера.

  **Ссылки на Android**

* [Рисование на холсте и сохранение изображения](/questions/523741/drawing-on-canvas-and-save-image) (см. пример, вы можете получить давление и время от события)
* [PDFBox, вставка изображения в pdf](https://www.tutorialspoint.com/pdfbox/pdfbox_inserting_image.htm)
* [PDFBox прикрепляет файлы к PDF](/questions/2371758/pdfbox-adding-pdf-embedded-file-and-save-the-pddocument-to-outputstream-does-not-keep-the-embedded-files/6199249#6199249)
* [Пример цифровой подписи PDFBox с меткой времени](https://svn.apache.org/repos/asf/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java)

Вы найдете похожие ссылки для itext. Выберите наиболее подходящий для вашего случая использования и хотите ли вы выполнить на Android или на стороне сервера