2016-12-29 379 views
-4

如何使用itext以某種方式將電子簽名(人員在平板電腦上簽名)添加到PDF,直接添加簽名而不將其轉換爲圖像,eIDAS法規,基本電子簽名程序是堅持的。使用itext將簽名添加到pdf

我不希望數字簽名帶有證書,只能在平板電腦上書寫人簽名。

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

+0

[電子簽名PDF安卓]可能的重複(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。你已經接受了一個不能解決你的問題的答案*使用itext以某種方式直接添加簽名而不是將其轉換爲圖片*。嵌入在PDF中的簽名圖像根本沒有法律價值,因爲可以在任何文檔中毫不費力地複製任何人。即使捕獲生物識別技術也不直接符合eIDAS。您需要一個法律框架中的協議來確保身份,時間戳或不可否認 – pedrofb

回答

0

使用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

相關問題