Field
Field object represents a form field in a PDF document. It provides access to form field properties and methods for manipulating field appearance and behavior. Field objects are typically accessed through Doc.getField or other field-related methods.
properties
alignment
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The text alignment for text fields. Only applicable to text fields.
Valid values:
- "left"
- "center"
- "right"
example:
var field = this.getField("myTextField")
field.alignment = "center"
borderStyle
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The border style of the field.
Valid values:
- "solid"
- "beveled"
- "dashed"
- "inset"
- "underline"
example:
var field = this.getField("myField")
field.borderStyle = "beveled"
buttonAlignX
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The horizontal alignment of the icon on a button field. Value is a percentage from 0 to 100. Only applicable to pushbutton fields.
0 represents left alignment, 50 represents center, and 100 represents right alignment.
example:
var button = this.getField("myButton")
button.buttonAlignX = 50 // Center the icon horizontally
buttonAlignY
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The vertical alignment of the icon on a button field. Value is a percentage from 0 to 100. Only applicable to pushbutton fields.
0 represents bottom alignment, 50 represents center, and 100 represents top alignment.
example:
var button = this.getField("myButton")
button.buttonAlignY = 50 // Center the icon vertically
buttonFitBounds
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the button icon ignores the border width when sizing. Only applicable to pushbutton fields. Cannot be set to true if the field has a visible border.
example:
var button = this.getField("myButton")
button.buttonFitBounds = true
buttonPosition
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
Controls the layout mode for the button caption and icon. Only applicable to pushbutton fields.
Valid values:
- 0 - Caption only
- 1 - Icon only
- 2 - Caption below icon
- 3 - Caption above icon
- 4 - Caption to the right of icon
- 5 - Caption to the left of icon
- 6 - Caption overlaid on icon
example:
var button = this.getField("myButton")
button.buttonPosition = 2 // Caption below icon
buttonScaleHow
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
Controls how the button icon is scaled. Only applicable to pushbutton fields.
Valid values:
- 0 - Always scale
- 1 - Scale when icon is bigger than bounds
- 2 - Scale when icon is smaller than bounds
- 3 - Never scale
example:
var button = this.getField("myButton")
button.buttonScaleHow = 0 // Always scale
buttonScaleWhen
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
Controls when the button icon scales. Only applicable to pushbutton fields.
Valid values:
- 0 - Always
- 1 - Never
- 2 - When icon is too big
- 3 - When icon is too small
example:
var button = this.getField("myButton")
button.buttonScaleWhen = 0 // Always
calcOrderIndex
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The calculation order index for this field. Fields with lower indices are calculated first. When setting, if the index is greater than the number of fields with calculations it will be set to the last position.
example:
var field = this.getField("totalField")
field.calcOrderIndex = 0 // Calculate this field first
charLimit
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The maximum number of characters allowed in a text field. A value of 0 means no limit. Only applicable to text fields.
example:
var field = this.getField("zipCode")
field.charLimit = 5
comb
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the text field is divided into equally spaced character positions. Only applicable to text fields. Cannot be true if multiline, password, or fileSelect is true.
example:
var field = this.getField("serialNumber")
field.comb = true
field.charLimit = 10 // Divide into 10 character boxes
commitOnSelChange
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the field value is committed immediately when the selection changes. Only applicable to list box and combo box fields.
example:
var combo = this.getField("myComboBox")
combo.commitOnSelChange = true
currentValueIndices
| Secure | Type | Access |
|---|---|---|
| No | number/array | R/W |
The index or indices of the currently selected items in a choice field. For single-selection fields, this is a number. For multiple-selection list boxes, this is an array of numbers. Returns -1 if nothing is selected.
example:
var list = this.getField("myListBox")
list.currentValueIndices = 2 // Select the third item
// For multiple selection
list.currentValueIndices = [0, 2, 4] // Select items 1, 3, and 5
defaultStyle
| Secure | Type | Access |
|---|---|---|
| No | object | R/W |
The default style for rich text fields. Only applicable to rich text fields. Returns a Span object containing style information.
example:
var field = this.getField("richTextField")
var style = field.defaultStyle
console.println(style.fontFamily)
defaultValue
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The default value of the field. This is the value the field reverts to when reset.
example:
var field = this.getField("myField")
field.defaultValue = "Enter text here"
delay
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
Exists for compatibility reasons. Always returns false. Setting has no effect.
display
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
Controls the visibility and printing behavior of the field.
Valid values:
- 0 - Visible
- 1 - Hidden
- 2 - Visible but doesn't print
- 3 - Hidden but prints
example:
var field = this.getField("myField")
field.display = 2 // Visible on screen but won't print
doc
| Secure | Type | Access |
|---|---|---|
| No | object | R |
The Doc object that contains this field.
example:
var field = this.getField("myField")
var doc = field.doc
console.println(doc.numPages)
doNotScroll
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the text field does not scroll to accommodate more text than fits in the field bounds. Only applicable to text fields.
example:
var field = this.getField("myTextField")
field.doNotScroll = true
doNotSpellCheck
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, spell checking is disabled for the text field. Only applicable to text fields.
example:
var field = this.getField("myTextField")
field.doNotSpellCheck = true
editable
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the combo box allows custom text entry. Only applicable to combo box fields.
example:
var combo = this.getField("myComboBox")
combo.editable = true
exportValues
| Secure | Type | Access |
|---|---|---|
| No | array | R/W |
Array of export values for the widgets of a checkbox or radio button field. Only applicable to checkbox and radio button fields.
example:
var check = this.getField("myCheckBox")
check.exportValues = ["Yes", "No"]
fileSelect
| Secure | Type | Access |
|---|---|---|
| Yes | boolean | R/W |
When true, the text field is used for file selection. Only applicable to text fields. Requires elevated privileges to set.
example:
var field = this.getField("filePathField")
field.fileSelect = true
fillColor
| Secure | Type | Access |
|---|---|---|
| No | object | R/W |
The background color of the field. Value is a color array in the same format as the color object.
example:
var field = this.getField("myField")
field.fillColor = color.yellow
hidden
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the field is hidden. Equivalent to setting display to 1.
example:
var field = this.getField("myField")
field.hidden = true
highlight
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The highlighting mode for pushbutton fields. Only applicable to pushbutton fields.
Valid values:
- "none"
- "invert"
- "push"
- "outline"
example:
var button = this.getField("myButton")
button.highlight = "push"
lineWidth
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The border width of the field in points.
example:
var field = this.getField("myField")
field.lineWidth = 2
multiline
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the text field can contain multiple lines of text. Only applicable to text fields.
example:
var field = this.getField("commentsField")
field.multiline = true
multipleSelection
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, multiple items can be selected in a list box. Only applicable to list box fields.
example:
var list = this.getField("myListBox")
list.multipleSelection = true
name
| Secure | Type | Access |
|---|---|---|
| No | string | R |
The fully qualified name of the field.
example:
var field = this.getField("parent.child")
console.println(field.name) // "parent.child"
numItems
| Secure | Type | Access |
|---|---|---|
| No | number | R |
The number of items in a choice field (list box or combo box). Only applicable to choice fields.
example:
var list = this.getField("myListBox")
console.println("List has " + list.numItems + " items")
page
| Secure | Type | Access |
|---|---|---|
| No | number/array | R |
The 0-based page number(s) where the field appears. Returns a single number if the field appears on one page, or an array of numbers if it appears on multiple pages.
example:
var field = this.getField("myField")
console.println("Field is on page " + field.page)
password
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the text field displays asterisks or bullets instead of the actual characters. Only applicable to text fields.
example:
var field = this.getField("passwordField")
field.password = true
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the field will print when the document is printed.
example:
var field = this.getField("myField")
field.print = false // Don't print this field
radiosInUnison
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, radio buttons with the same export value in a radio button group will toggle in unison. Only applicable to radio button fields.
example:
var radio = this.getField("myRadioGroup")
radio.radiosInUnison = true
readonly
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the field cannot be changed by the user.
example:
var field = this.getField("calculatedField")
field.readonly = true
rect
| Secure | Type | Access |
|---|---|---|
| No | array | R/W |
The rectangle that defines the field's position and size on the page. Array is in the form [left, top, right, bottom] in points.
example:
var field = this.getField("myField")
field.rect = [100, 100, 200, 120] // Position at (100, 100) with width 100 and height 20
required
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the field must have a value when the form is submitted.
example:
var field = this.getField("emailField")
field.required = true
richText
| Secure | Type | Access |
|---|---|---|
| No | boolean | R/W |
When true, the text field supports rich text formatting. Only applicable to text fields.
example:
var field = this.getField("myTextField")
field.richText = true
richValue
| Secure | Type | Access |
|---|---|---|
| No | array | R/W |
The rich text value of the field as an array of Span objects. Only applicable to rich text fields.
example:
var field = this.getField("richTextField")
var spans = field.richValue
// spans is an array of Span objects with formatting
rotation
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The rotation of the field in degrees. Valid values are 0, 90, 180, or 270.
example:
var field = this.getField("myField")
field.rotation = 90 // Rotate 90 degrees clockwise
strokeColor
| Secure | Type | Access |
|---|---|---|
| No | object | R/W |
The border color of the field. Value is a color array in the same format as the color object.
example:
var field = this.getField("myField")
field.strokeColor = color.red
style
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The style of checkmark for checkbox and radio button fields. Only applicable to checkbox and radio button fields.
Valid values:
- "check"
- "cross"
- "diamond"
- "circle"
- "star"
- "square"
example:
var check = this.getField("myCheckBox")
check.style = "diamond"
submitName
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The name used when submitting the field data. If not set, the field name is used.
example:
var field = this.getField("myField")
field.submitName = "custom_field_name"
textColor
| Secure | Type | Access |
|---|---|---|
| No | object | R/W |
The text color of the field. Value is a color array in the same format as the color object.
example:
var field = this.getField("myField")
field.textColor = color.blue
textFont
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The font used for text in the field. Valid values are the standard 14 PDF fonts.
Valid values:
- "Times-Roman"
- "Times-Bold"
- "Times-Italic"
- "Times-BoldItalic"
- "Helvetica"
- "Helvetica-Bold"
- "Helvetica-Oblique"
- "Helvetica-BoldOblique"
- "Courier"
- "Courier-Bold"
- "Courier-Oblique"
- "Courier-BoldOblique"
- "Symbol"
- "ZapfDingbats"
example:
var field = this.getField("myField")
field.textFont = "Helvetica-Bold"
textSize
| Secure | Type | Access |
|---|---|---|
| No | number | R/W |
The text size in points. A value of 0 means auto-size.
example:
var field = this.getField("myField")
field.textSize = 12
type
| Secure | Type | Access |
|---|---|---|
| No | string | R |
The type of the field.
Possible values:
- "button"
- "checkbox"
- "radiobutton"
- "combobox"
- "listbox"
- "text"
- "signature"
example:
var field = this.getField("myField")
if (field.type == "text") {
field.multiline = true
}
userName
| Secure | Type | Access |
|---|---|---|
| No | string | R/W |
The user-friendly name of the field, used for tooltips and error messages.
example:
var field = this.getField("email")
field.userName = "Email Address"
value
| Secure | Type | Access |
|---|---|---|
| No | various | R/W |
The value of the field. The type depends on the field type:
- Text fields: string or number
- Checkboxes/Radio buttons: string export value
- List boxes (single selection): string
- List boxes (multiple selection): array of strings
- Combo boxes: string
example:
var textField = this.getField("myTextField")
textField.value = "Hello World"
var checkBox = this.getField("myCheckBox")
checkBox.value = "Yes"
var listBox = this.getField("myListBox")
listBox.value = ["Option1", "Option2"] // For multiple selection
valueAsString
| Secure | Type | Access |
|---|---|---|
| No | string | R |
The value of the field as a string, regardless of the actual value type.
example:
var field = this.getField("numberField")
field.value = 123.45
console.println(field.valueAsString) // "123.45"
methods
browseForFileToSubmit
| Secure |
|---|
| No |
Opens a file browser dialog for selecting a file path. Only works with text fields that have fileSelect set to true.
browseForFileToSubmit()
example:
var field = this.getField("fileField")
field.fileSelect = true
field.browseForFileToSubmit() // Opens file browser
buttonGetCaption
| Secure |
|---|
| No |
Returns the caption text for a button field.
buttonGetCaption(nFace)
nFace: [optional] The button face to get the caption from:
- 0 - Normal (default)
- 1 - Down
- 2 - Rollover
Returns the caption string.
example:
var button = this.getField("myButton")
var caption = button.buttonGetCaption(0)
console.println("Button caption: " + caption)
buttonGetIcon
| Secure |
|---|
| No |
Returns the icon for a button field.
buttonGetIcon(nFace)
nFace: [optional] The button face to get the icon from:
- 0 - Normal (default)
- 1 - Down
- 2 - Rollover
Returns an Icon object or null if no icon is set.
example:
var button = this.getField("myButton")
var icon = button.buttonGetIcon(0)
if (icon != null) {
// Use the icon elsewhere
var otherButton = this.getField("otherButton")
otherButton.buttonSetIcon(icon)
}
buttonImportIcon
| Secure |
|---|
| Yes |
Imports an image file as the button icon. Requires elevated privileges if a path is specified.
buttonImportIcon(cPath, nPage)
cPath: [optional] The device-independent path to the image file. If not specified, a file dialog is shown.
nPage: [optional] If importing from a PDF, the 0-based page number. Default is 0.
Returns:
- 0 - Success
- 1 - User cancelled
- -1 - Could not open file
- -2 - Invalid page number
example:
var button = this.getField("myButton")
var result = button.buttonImportIcon() // Show file dialog
if (result == 0) {
console.println("Icon imported successfully")
}
// With privileges
var result = button.buttonImportIcon("/c/images/icon.png")
buttonSetCaption
| Secure |
|---|
| No |
Sets the caption text for a button field.
buttonSetCaption(cCaption, nFace)
cCaption: The caption text to set
nFace: [optional] The button face to set the caption for:
- 0 - Normal (default)
- 1 - Down
- 2 - Rollover
example:
var button = this.getField("myButton")
button.buttonSetCaption("Click Me!")
button.buttonSetCaption("Pressed", 1) // Down state
buttonSetIcon
| Secure |
|---|
| No |
Sets the icon for a button field.
buttonSetIcon(oIcon, nFace)
oIcon: An Icon object to set as the button icon
nFace: [optional] The button face to set the icon for:
- 0 - Normal (default)
- 1 - Down
- 2 - Rollover
example:
var button1 = this.getField("button1")
var icon = button1.buttonGetIcon()
var button2 = this.getField("button2")
button2.buttonSetIcon(icon) // Copy icon to another button
checkThisBox
| Secure |
|---|
| No |
Checks or unchecks a specific widget in a checkbox or radio button field. Only applicable to checkbox and radio button fields.
checkThisBox(nWidget, bCheckIt)
nWidget: The 0-based index of the widget to check
bCheckIt: [optional] When true, checks the box. When false, unchecks it. Default is true. For radio buttons, cannot be false.
example:
var check = this.getField("myCheckBox")
check.checkThisBox(0, true) // Check the first widget
var radio = this.getField("myRadioGroup")
radio.checkThisBox(2, true) // Select the third radio button
clearItems
| Secure |
|---|
| No |
Removes all items from a choice field (combo box or list box).
clearItems()
example:
var list = this.getField("myListBox")
list.clearItems() // Remove all items
defaultIsChecked
| Secure |
|---|
| No |
Sets whether a checkbox or radio button widget is checked by default. Only applicable to checkbox and radio button fields.
defaultIsChecked(nWidget, bIsDefaultChecked)
nWidget: The 0-based index of the widget
bIsDefaultChecked: [optional] When true, the widget is checked by default. Default is true.
example:
var check = this.getField("myCheckBox")
check.defaultIsChecked(0, true) // First widget checked by default
deleteItemAt
| Secure |
|---|
| No |
Deletes an item from a choice field at the specified index.
deleteItemAt(nIdx)
nIdx: [optional] The 0-based index of the item to delete. If -1 or not specified, deletes the currently selected item.
example:
var list = this.getField("myListBox")
list.deleteItemAt(2) // Delete the third item
list.deleteItemAt() // Delete the currently selected item
getArray
| Secure |
|---|
| No |
Returns an array of Field objects for all terminal children of this field. Terminal children are the leaf nodes in the field hierarchy.
getArray()
Returns an array of Field objects.
example:
var parentField = this.getField("parent")
var children = parentField.getArray()
for (var i = 0; i < children.length; i++) {
console.println(children[i].name)
}
getItemAt
| Secure |
|---|
| No |
Returns the item at the specified index in a choice field.
getItemAt(nIdx, bExportValue)
nIdx: The 0-based index of the item
bExportValue: [optional] When true, returns the export value. When false, returns the display value. Default is true.
Returns the item string.
example:
var list = this.getField("myListBox")
var exportVal = list.getItemAt(0, true) // Get export value
var displayVal = list.getItemAt(0, false) // Get display value
getLock
| Secure |
|---|
| No |
Returns the lock settings for a signature field. Only applicable to signature fields.
getLock()
Returns a Lock object with properties:
- action - The lock action ("All", "Include", or "Exclude")
- fields - Array of field names to lock
Returns null if no lock is set.
example:
var sig = this.getField("signatureField")
var lock = sig.getLock()
if (lock != null) {
console.println("Lock action: " + lock.action)
}
insertItemAt
| Secure |
|---|
| No |
Inserts an item into a choice field at the specified position.
insertItemAt(cName, cExport, nIdx)
cName: The display name for the item
cExport: [optional] The export value for the item. If not specified, uses cName.
nIdx: [optional] The 0-based index where to insert. Default is 0. If negative, appends to the end.
example:
var list = this.getField("myListBox")
list.insertItemAt("New Item", "new_value", 0) // Insert at beginning
list.insertItemAt("Another Item") // Insert at beginning with same export value
isBoxChecked
| Secure |
|---|
| No |
Returns whether a specific widget in a checkbox or radio button field is checked.
isBoxChecked(nWidget)
nWidget: The 0-based index of the widget to check
Returns true if checked, false otherwise.
example:
var check = this.getField("myCheckBox")
if (check.isBoxChecked(0)) {
console.println("First checkbox is checked")
}
isDefaultChecked
| Secure |
|---|
| No |
Returns whether a specific widget in a checkbox or radio button field is checked by default.
isDefaultChecked(nWidget)
nWidget: The 0-based index of the widget to check
Returns true if checked by default, false otherwise.
example:
var check = this.getField("myCheckBox")
if (check.isDefaultChecked(0)) {
console.println("First checkbox is checked by default")
}
setAction
| Secure |
|---|
| No |
Sets a JavaScript action for a field trigger.
setAction(cTrigger, cScript)
cTrigger: The trigger name. Valid values:
- "MouseUp"
- "MouseDown"
- "MouseEnter"
- "MouseExit"
- "OnFocus"
- "OnBlur"
- "Keystroke"
- "Validate"
- "Calculate"
- "Format"
cScript: The JavaScript code to execute
example:
var field = this.getField("myField")
field.setAction("MouseUp", "app.alert('Field clicked!')")
field.setAction("Validate", "event.rc = event.value.length > 0")
setFocus
| Secure |
|---|
| No |
Sets the keyboard focus to this field.
setFocus()
example:
var field = this.getField("myField")
field.setFocus() // Move cursor to this field
setItems
| Secure |
|---|
| No |
Sets all items in a choice field, replacing any existing items.
setItems(oArray)
oArray: An array where each element is either:
- A string (both display and export value will be the same)
- A two-element array [display, export]
example:
var list = this.getField("myListBox")
// Simple items
list.setItems(["Option 1", "Option 2", "Option 3"])
// Items with different export values
list.setItems([
["Display 1", "value1"],
["Display 2", "value2"],
["Display 3", "value3"]
])
setLock
| Secure |
|---|
| Yes |
Sets the lock settings for a signature field. Only applicable to signature fields. Requires elevated privileges.
setLock(oLock)
oLock: A Lock object with properties:
- action - "All", "Include", or "Exclude"
- fields - Array of field names to lock (required for Include/Exclude)
Returns true if successful.
example:
var sig = this.getField("signatureField")
var lock = {
action: "Include",
fields: ["field1", "field2", "field3"]
}
sig.setLock(lock)