使用itext将签名添加到pdf

问题描述:

如何使用itext以某种方式将电子签名(人员在平板电脑上签名)添加到PDF,直接添加签名而不将其转换为图像,eIDAS法规,基本电子签名程序是坚持的。使用itext将签名添加到pdf

我不希望数字签名带有证书,只能在平板电脑上书写人签名。

一个例子是signosigns应用:http://en.signotec.com/portal/seiten/download-signosign-mobile-for-android-900000340-10002.html

+0

[电子签名PDF安卓]可能的重复(http://*.com/questions/41360069/electronic-signature-pdf-android) –

+0

你昨天已经问过完全相同的问题。编辑您的原始问题以添加详细信息:http://*.com/posts/41360069/edit。标记关闭。 http://*.com/questions/41360069/electronic-signature-pdf-android –

+1

请看看这里http://*.com/questions/40461860/how-to-sign-a-pdf-in-android/4059815。你已经接受了一个不能解决你的问题的答案*使用itext以某种方式直接添加签名而不是将其转换为图片*。嵌入在PDF中的签名图像根本没有法律价值,因为可以在任何文档中毫不费力地复制任何人。即使捕获生物识别技术也不直接符合eIDAS。您需要一个法律框架中的协议来确保身份,时间戳或不可否认 – pedrofb

使用iText的pdfstamper写的签名。

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

如果读者是sec文件阅读器,那么一旦你有了压模。

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

好吧,但从代码我无法检测到哪里或以什么样的形式添加签名..由于它必须由用户绘制,我猜我需要用画布或类似的方法来捕获它,但从什么我在这里看到你只能在showtext中将它添加为字符串,或者我错过了什么? –

+0

您可以使用canvas类替换文本toString方法......以显示签名 – prashant

+0

作为示例中明确提到的signosign应用程序使用数字签名来保护签名图像。这个答案中的代码显然没有。 – mkl