lib/pdf/reader/form_field.ex

defmodule Pdf.Reader.FormField do
  @moduledoc """
  Represents a single interactive form field extracted from a PDF AcroForm.

  ## Spec references

  - PDF 1.7 (ISO 32000-1) § 12.7.4 — Field Types:
    https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf
  - § 12.7.3.1 — Field Flags
  """

  @type field_type :: :text | :button | :choice | :signature | :unknown

  @type t :: %__MODULE__{
          name: String.t() | nil,
          partial_name: String.t() | nil,
          type: field_type(),
          value: term(),
          default: term(),
          tooltip: String.t() | nil,
          flags: %{atom() => boolean()},
          rect: {number(), number(), number(), number()} | nil
        }

  defstruct name: nil,
            partial_name: nil,
            type: :unknown,
            value: nil,
            default: nil,
            tooltip: nil,
            flags: %{},
            rect: nil
end