NAME
PDF::Make::Builder::Form::Field - Base class for form field components
DESCRIPTION
Base class for all Builder form field types. Provides shared layout logic (label rendering, cursor management, styled borders) and delegates field creation to subclasses via _create_field.
Do not use this class directly. Use the specific field type classes:
- PDF::Make::Builder::Form::Field::Text
- PDF::Make::Builder::Form::Field::Checkbox
- PDF::Make::Builder::Form::Field::Radio
- PDF::Make::Builder::Form::Field::Combo
- PDF::Make::Builder::Form::Field::Listbox
- PDF::Make::Builder::Form::Field::Button
Or use $builder->add_field(type => '...', name => '...', ...) which dispatches to the correct subclass automatically.
SHARED PROPERTIES
field_name(Str, required) - PDF field name (unique within the form)x(Num) - Left edge X coordinate (defaults to page content area)y(Num) - Bottom Y coordinate (used by raw mode)w(Num, default 200) - Field width in pointsh(Num, default 24) - Field height in pointslabel(Str) - Label text drawn above (or beside) the fieldlabel_colour(Str, default '#444') - Label text colourlabel_size(Num, default 9) - Label font sizedefault_value(Str) - Initial field valueda(Str) - Raw PDF default appearance string (overrides font_name/font_size)font_size(Num, default 10) - Font size for field textfont_name(Str, default 'Helv') - PDF font resource nameborder_colour(Str, default '#aaa') - Field border colourbg_colour(Str, default '#fff') - Field background colourreadonly(Bool, default 0) - Make field read-onlyrequired(Bool, default 0) - Mark field as required (appends * to label)inline_label(Bool, default 0) - Place label beside the field instead of aboveraw_mode(Bool, default 0) - Skip builder layout/chrome; place widget directly at x/y/w/hmargin_top(Num, default 4) - Space above the field in pointsmargin_bottom(Num, default 8) - Space below the field in points