PdfAcroField.create constructor

PdfAcroField.create(
  1. PdfDict<PdfDataType> dictionary,
  2. PdfIndirect? indirectReference,
  3. String name,
  4. PdfAcroForm acroForm,
)

Factory to create the correct field type from a dictionary.

Implementation

factory PdfAcroField.create(PdfDict dictionary,
    PdfIndirect? indirectReference, String name, PdfAcroForm acroForm) {
  if (dictionary.containsKey(PdfNameTokens.ft)) {
    final ft = dictionary[PdfNameTokens.ft];
    if (ft is PdfName) {
      if (ft.value == PdfNameTokens.tx) {
        return PdfAcroTextField(
            dictionary, indirectReference, name, acroForm);
      } else if (ft.value == PdfNameTokens.btn) {
        return PdfAcroButtonField(
            dictionary, indirectReference, name, acroForm);
      } else if (ft.value == PdfNameTokens.ch) {
        return PdfAcroChoiceField(
            dictionary, indirectReference, name, acroForm);
      } else if (ft.value == PdfNameTokens.sig) {
        return PdfAcroSignatureField(
            dictionary, indirectReference, name, acroForm);
      }
    }
  }
  return PdfAcroField(dictionary, indirectReference, name, acroForm);
}