0

以相同的方式创建 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);

   }
}
4

1 回答 1

0

对带来的麻烦表示抱歉 !

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

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

问候,

大卫·L。

于 2016-08-18T15:20:47.367 回答