【问题标题】:Why is the appearance of 2 identically created signature fields different in IText 7?为什么 IText 7 中 2 个相同创建的签名字段的外观不同?
【发布时间】:2016-08-17 16:15:26
【问题描述】:

以同样的方式创建 2 个 PdfSignatureFormFields,我在 Adob​​e Reader 中得到了 2 个不同显示的字段:一个带有指示签名字段的小图片,另一个没有指示。

我使用 Cell setNextRenderer 调用来创建这些字段,如下一个摘录所示:

    static private Cell createSignatureFieldCell(PdfDocument document,  String name, String label, PdfFont font) {
    Cell cell = new Cell();
    cell.setHeight(100);
    cell.setNextRenderer(new SignatureCellEvent(cell,name,label));
    return cell;
    }

    static private class SignatureCellEvent extends CellRenderer
    {
    protected String fieldname;
    protected String labelcontent;
    public SignatureCellEvent(Cell modelElement, String fieldname,String label) {
    super(modelElement);
    this.fieldname=fieldname;
    this.labelcontent=label;
    }

     @Override
    public void draw(DrawContext drawContext) 
    {
    float x = getOccupiedAreaBBox().getLeft()  ;
    float y = (getOccupiedAreaBBox().getTop() +    getOccupiedAreaBBox().getBottom()) / 2;
    PdfDocument doc=drawContext.getDocument();
    PdfAcroForm form=PdfAcroForm.getAcroForm(doc, true);
    Rectangle rect = new Rectangle(x, y - 10, 50, 50);
    PdfSignatureFormField field = PdfFormField.createSignature(doc,rect);
    field.setFieldName(fieldname);
    field.setRequired(true);
    form.addField(field);

   }
}

【问题讨论】:

标签: java pdf digital-signature itext7


【解决方案1】:

给您带来的不便敬请谅解!

我找到了这种行为的原因:

当文档中存在字段名称冲突时会发生这种情况。 在我的例子中,动态创建的字段与预先存在的静态字段具有相同的名称。

问候,

大卫 L.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2018-05-27
    • 2012-09-18
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多