我想要一个"签名字段"在我的OpenOffice编写器文档中。
我需要iOS / gPlay应用程序"PDF Forms"在触摸屏上签名PDF文档(手写/笔)。
根据他们的常见问题解答,我需要在我的面向对象文档中使用签名字段 - 但即使经过几个小时的研究,如果OO提供这样的字段,我现在还没有。我只找到文本字段或数字签名/证书。
你有提示吗?
谢谢你, 基督教
答案 0 :(得分:0)
似乎OpenOffice只有一部分字段可用,并且签名字段不可用。
我现在要做的是添加一个文本字段,将其命名为fldSignature1并使用iText我会以编程方式更改每个以“fldSignature”开头的字段,并使用签名字段
更新: 这里是我成功使用的代码 正如我所说,我已经创建了一个表单,其中我放置了一个文本框,作为签名字段的占位符,在我的例子中,我将其命名为fldFirma,您可以将替换代码放在循环中以更改包含前缀的任何字段等等......
这里是代码
String filename = Environment.getExternalStorageDirectory().getPath() + "/testpdf.pdf";
String filenameOut = Environment.getExternalStorageDirectory().getPath() + "/testpdfCompiled.pdf";
PdfReader reader = new PdfReader(filename);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(filenameOut), '\0', true);
AcroFields fields = stamper.getAcroFields();
fields.setGenerateAppearances(true);
String[] fieldsNames = (String[]) fields.getFields().keySet().toArray(new String[fields.getFields().keySet().size()]);
for (String fieldName : fieldsNames) {
if (fieldName.equals("fldFirma")) { //change this part with your logic to identify the signature field
List<FieldPosition> fieldPositions = fields.getFieldPositions(fieldName);
AcroFields.FieldPosition fieldPosition = fieldPositions.get(0);
// i remove the "placeholder field"
fields.removeField(fieldName);
// and place at its position, the new empty signature field
stamper.addSignature(
fieldName,
fieldPosition.page,
fieldPosition.position.getLeft(),
fieldPosition.position.getTop(),
fieldPosition.position.getRight(),
fieldPosition.position.getBottom()
);
}
}
// close pdf stamper
// stamper.setFormFlattening(true);
stamper.close();
stamper.close();
reader.close();