在当前项目中,我使用itext和java签署pdf文档。我也能够创建一个可见的签名。但现在我需要自定义可见签名。可见签名必须包含签名者的姓名,电子邮件,原因和签名日期。我可以以某种方式从证书中读取此信息以将其显示在可见图章上吗?我尝试使用PdfTemplates,但我没有找到一种方法来参考证书数据。我只能在可见签名中设置静态文本。
换句话说:是否可以选择在可见图章上显示哪些证书详细信息,而无需在pdftemplates中设置明确的文本(使用对时间戳,DN,甚至是静态文本等证书详细信息的引用)?
是和否:您可以使用PdfSignatureAppearance.setLayer2Text()
在签名可视化中自由设置文本(您甚至可以在PdfSignatureAppearance.getLayer(2)
上设计整个外观),但不会对变量进行评估。
因此,您必须自己检查证书并提取信息以放入您将使用setLayer2Text
设置的字符串中。对于某些细节,您可以使用iText辅助类,例如CertificateInfo
方法getIssuerFields()
或getSubjectFields()
;对于其他人,你需要自己的方法。但是您可以使用这些方法的代码作为您需要实现的方法的模板。