如何管理PDF数字签名&x27;什么是显示器?

如何管理PDF数字签名&x27;什么是显示器?,pdf,certificate,itext,digital-signature,pdfstamper,Pdf,Certificate,Itext,Digital Signature,Pdfstamper,我正在使用iText Library签署我的PDF文档。 我想知道PdfStamper中是否有任何方法可以管理外观的显示:一层中的签名信息,另一层中的图像,它们现在位于同一层中: 解决方案: 参考这个有趣的例子,我现在可以创建两个描述和图形区域 请阅读第2.4节“创建不同的签名外观”。您将了解n0到n4层,并发现自2003年以来不再推荐使用n1、n3和n4层(换句话说:不要使用它们) 您可以使用n0层,称为背景层,如下所示: PdfTemplate n0 = appearance.getLaye

我正在使用iText Library签署我的PDF文档。
我想知道PdfStamper中是否有任何方法可以管理外观的显示:一层中的签名信息,另一层中的图像,它们现在位于同一层中:

解决方案:

参考这个有趣的例子,我现在可以创建两个描述和图形区域

请阅读第2.4节“创建不同的签名外观”。您将了解n0到n4层,并发现自2003年以来不再推荐使用n1、n3和n4层(换句话说:不要使用它们)

您可以使用n0层,称为背景层,如下所示:

PdfTemplate n0 = appearance.getLayer(0);
float x = n0.getBoundingBox().getLeft();
float y = n0.getBoundingBox().getBottom();
float width = n0.getBoundingBox().getWidth();
float height = n0.getBoundingBox().getHeight();
n0.setColorFill(BaseColor.LIGHT_GRAY);
n0.rectangle(x, y, width, height);
n0.fill();
PdfTemplate n2 = appearance.getLayer(2);
ColumnText ct = new ColumnText(n2);
ct.setSimpleColumn(n2.getBoundingBox());
Paragraph p = new Paragraph("This document was signed by Bruno Specimen.");
ct.addElement(p);
ct.go();
这只是书中的一个简单例子,画一个浅灰色的矩形

可以像这样使用n2层:

PdfTemplate n0 = appearance.getLayer(0);
float x = n0.getBoundingBox().getLeft();
float y = n0.getBoundingBox().getBottom();
float width = n0.getBoundingBox().getWidth();
float height = n0.getBoundingBox().getHeight();
n0.setColorFill(BaseColor.LIGHT_GRAY);
n0.rectangle(x, y, width, height);
n0.fill();
PdfTemplate n2 = appearance.getLayer(2);
ColumnText ct = new ColumnText(n2);
ct.setSimpleColumn(n2.getBoundingBox());
Paragraph p = new Paragraph("This document was signed by Bruno Specimen.");
ct.addElement(p);
ct.go();
如果“绘图文本”太难,也可以使用方便的方法,例如:

appearance.setLayer2Text("This document was signed by Bruno Specimen");
appearance.setLayer2Font(new Font(FontFamily.TIMES_ROMAN));
这本书中的例子可以在上找到

使用上述方法,是打造外观的“硬道”。也有不同的方法让iText完成工作:


谢谢你,Lowagie先生,实际上目的是这样展示签名:这不是你的问题,但幸运的是,我在回答中提到的那本书中也提到了这一点。这对Lowagie先生很有帮助,谢谢!你好@Lowagie先生,我想知道如何使数字签名有效,无论计算机使用什么。有什么要求吗?@Angelika要求每台计算机都有一个支持数字签名的查看器,例如Adobe Reader。