removeField method
Removes a field from the AcroForm fields array.
Implementation
bool removeField(PdfSignatureFieldObjectInfo field) {
final fieldsArray = context.fieldsArray;
if (fieldsArray == null) return false;
final updated = PdfArray(List<PdfDataType>.from(fieldsArray.values));
if (field.fieldRef != null) {
updated.values.removeWhere((value) {
return value is PdfIndirect &&
value.ser == field.fieldRef!.obj &&
value.gen == field.fieldRef!.gen;
});
_removeAnnotationFromPages(field.fieldRef!);
} else if (field.fieldIndex != null) {
if (field.fieldIndex! < 0 || field.fieldIndex! >= updated.values.length) {
return false;
}
updated.values.removeAt(field.fieldIndex!);
} else {
return false;
}
return _writeFieldsArray(updated);
}