我正在使用 FOP 从 XSL:FO 和 iText 生成 PDF,以在 PDF 中应用数字签名和签名日期字段。
问题是我正在使用坐标在生成的 PDF 中应用签名和日期。
PDF 很大、动态且始终根据内容而变化。因此,签名和日期字段未按指定的坐标正确定位。
我用谷歌搜索了很长一段时间的解决方案。但我没有得到任何解决方案。
你能请任何人建议我使用 FOP 在 PDF 中创建 PDF 表单字段吗?然后我可以使用 iText 应用签名和日期字段。
请告诉我任何其他技术来尝试解决这个问题?
我正在使用 FOP 从 XSL:FO 和 iText 生成 PDF,以在 PDF 中应用数字签名和签名日期字段。
问题是我正在使用坐标在生成的 PDF 中应用签名和日期。
PDF 很大、动态且始终根据内容而变化。因此,签名和日期字段未按指定的坐标正确定位。
我用谷歌搜索了很长一段时间的解决方案。但我没有得到任何解决方案。
你能请任何人建议我使用 FOP 在 PDF 中创建 PDF 表单字段吗?然后我可以使用 iText 应用签名和日期字段。
请告诉我任何其他技术来尝试解决这个问题?
问题是 FOP 不创建签名字段,而 iText 需要页码和坐标(由您或签名字段定义)。
您希望将签名放在哪里?它总是在第一页吗?总是在最后一页?您可以在您希望签署文件的位置放置一些独特的文本吗?
我问这个是因为你可以在最后一页上放像 SIGN HERE 这样的词,然后使用 TextRenderInfo 来检索这些词的坐标。请参阅http://itextpdf.com/examples/iia.php?id=275和http://itextpdf.com/examples/iia.php?id=282
TextRenderInfo类具有诸如getBaseLine()
, getDescentLine()
,... 之类的方法,它们为您提供对象LineSegment
,该对象显示 PDF 中每个文本片段的坐标。
有很多警告:FOP 可以将 SIGN HERE 的单词剪成不同的片段,例如“SIG”、“N”、“HE”、“RE”,这会使识别唯一字符串变得困难,但值得研究。