2016-12-29 4 views
-4

Как добавить электронную подпись (лица делают свою подпись на планшете) в PDF с помощью itext таким образом, чтобы подпись была напрямую добавлена, а не конвертирована в изображение, поэтому правила eIDAS, основные соблюдается процедура электронной подписи.Добавить подпись в pdf с ее текстом

Я не хочу иметь цифровую подпись с сертификатом только подпись лица, написанную на планшете.

Примером может быть signosigns приложение: http://en.signotec.com/portal/seiten/download-signosign-mobile-for-android-900000340-10002.html

+0

Возможный дубликат [Электронная подпись PDF Android] (http://stackoverflow.com/questions/41360069/electronic-signature-pdf-android) –

+0

Вы уже задали точно такой же вопрос вчера. Измените исходный вопрос, чтобы добавить сведения: http://stackoverflow.com/posts/41360069/edit. Пометить, чтобы закрыть. http://stackoverflow.com/questions/41360069/electronic-signature-pdf-android –

+1

Пожалуйста, посмотрите здесь http://stackoverflow.com/questions/40461860/how-to-sign-a-pdf-in-android/4059815. Вы приняли ответ, который не решает ваш вопрос *, используя его, таким образом, что подпись напрямую добавляется, а не преобразуется в изображение *. Изображение подписи, встроенное в PDF, не имеет никакой юридической ценности, поскольку оно может быть скопировано без каких-либо усилий никому в любом документе. Даже захват биометрии не соответствует требованиям eIDAS. Вам понадобится протокол в законодательной базе для обеспечения идентификации, временной привязки или отказа от отказа. – pedrofb

ответ

0

Использование IText PdfStamper написать подпись.

FileOutputStream os = new FileOutputStream(destFileName); 
PdfStamper stamper = new PdfStamper(reader, os); 

Где читатель является считывателем файлов, тогда как у вас есть штамп.

PdfPatternPainter painter = stamper.getOverContent(1).createPattern(200, 150); 
painter.setColorFill(BaseColor.ORANGE); 
painter.beginText(); 
painter.setTextMatrix(AffineTransform.getTranslateInstance(0, 50)); 
painter.setFontAndSize(BaseFont.createFont(), 70); 
painter.showText(waterMarkString); 
painter.endText(); 

for (int i = reader.getNumberOfPages(); i > 0; i--) { 
    PdfContentByte overContent = stamper.getOverContent(i); 
    overContent.setColorFill(new PatternColor(painter)); 
    overContent.rectangle(200, 300, 200, 150); 
    overContent.fill(); 
} 

Задайте текст и размеры, а затем.

reader.close(); 
stamper.close(); 
os.close(); 

Затем закройте считыватель, указатель и выходной поток.

Подпись будет отображаться.

+0

Хорошо, но из кода я не могу определить, где и в какой форме я бы добавил подпись. Поскольку он должен быть нарисован пользователем, я предполагаю, что мне нужно будет захватить его холстом или аналогичным образом, но из чего Я вижу здесь, вы можете добавить его только как строку в контекстном тексте, или я что-то упустил? –

+0

вы можете заменить текст классом canvas toString method ...... для отображения подписи – prashant

+0

Приложение signosign, на которое четко указано, как пример в вопросе, использует цифровую подпись для защиты изображения подписи. Код в этом ответе явно не соответствует. – mkl