removeField method

bool removeField(
  1. PdfSignatureFieldObjectInfo field
)

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