当前位置: 首页 > 知识库问答 >
问题:

为什么在IText7中两个相同创建的签名字段的外观不同?

龚弘业
2023-03-14

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

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

    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);

   }
}

共有1个答案

漆雕昊天
2023-03-14

不便之处,敬请原谅!

我发现了这种行为的原因:

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

当做

大卫L。

 类似资料:
  • 我正在使用Microsoft Visual C将以下程序编译为C 20程序: 当我运行它时,我看到以下输出: 元组是相同的,那么为什么它有错误的比较结果呢?我该如何解决这个问题?

  • 为了在我们的JUnit测试中使用H2数据库而不是调用Oracle,我被阻止在H2上创建别名以模拟一些Oracle兼容性: > 我首先为日期到字符的转换声明了to_char的别名:可以

  • 问题内容: 似乎以下代码应返回true,但返回false。 这有什么意义? 问题答案: 常规()和严格()相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。 不管您使用常规相等还是严格相等,对象比较仅 在您比较相同的精确对象时得出 。 也就是说,给定,,,但。 两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进

  • 我使用一个Android库,它要求我创建两个类,每个类继承自不同的类 (具有公共基类) 现在我有这个代码: 我必须复制这个类来创建一个扩展,即使我的两个类共享完全相同的代码。 我简化了示例的代码,但重复可能很重要 我决定将代码放在这两个类之外的静态方法中,并在类重写的方法中调用它们,但我认为必须有一种更干净的方法来做到这一点。 你能帮我解决这个问题吗? 和都继承自。

  • 但是我有两种回购方式 如何创建两个bean,其中一个是用注入的,另一个是用注入的?

  • 我有一个类,它有两个类似类型的字段。我嘲笑过他们两个。但是当我使用InjectMocks时,InjectMocks错误地将单个模拟注入到这两个字段中。 下面是示例代码类: 下面是我运行测试时的输出:testPrint()-intConsumer被注入到intConsumer和StringConsumer中。 我正在使用Maven。 我创建了这个私有构造函数,专门用于使用InjectMocks进行测