Skip to content

happypdf / PDFField

Class: PDFField ​

Defined in: src/api/form/PDFField.ts:88

Represents a field of a [[PDFForm]].

This class is effectively abstract. All fields in a [[PDFForm]] will actually be an instance of a subclass of this class.

Note that each field in a PDF is represented by a single field object. However, a given field object may be rendered at multiple locations within the document (across one or more pages). The rendering of a field is controlled by its widgets. Each widget causes its field to be displayed at a particular location in the document.

Most of the time each field in a PDF has only a single widget, and thus is only rendered once. However, if a field is rendered multiple times, it will have multiple widgets - one for each location it is rendered.

This abstraction of field objects and widgets is defined in the PDF specification and dictates how PDF files store fields and where they are to be rendered.

Extended by ​

Constructors ​

Constructor ​

ts
protected new PDFField(
   acroField, 
   ref, 
   doc): PDFField;

Defined in: src/api/form/PDFField.ts:98

Parameters ​

ParameterType
acroFieldPDFAcroTerminal
refPDFRef
docPDFDocument

Returns ​

PDFField

Properties ​

acroField ​

ts
readonly acroField: PDFAcroTerminal;

Defined in: src/api/form/PDFField.ts:90

The low-level PDFAcroTerminal wrapped by this field.


doc ​

ts
readonly doc: PDFDocument;

Defined in: src/api/form/PDFField.ts:96

The document to which this field belongs.


ref ​

ts
readonly ref: PDFRef;

Defined in: src/api/form/PDFField.ts:93

The unique reference assigned to this field within the document.

Methods ​

createImageAppearanceStream() ​

ts
protected createImageAppearanceStream(
   widget, 
   image, 
   alignment): PDFRef;

Defined in: src/api/form/PDFField.ts:498

Create a FormXObject of the supplied image and add it to context. The FormXObject size is calculated based on the widget (including the alignment).

Parameters ​

ParameterTypeDescription
widgetPDFWidgetAnnotationThe widget that should display the image.
imagePDFImageThe image that should be displayed.
alignmentImageAlignmentThe alignment of the image.

Returns ​

PDFRef

The ref for the FormXObject that was added to the context.


createWidget() ​

ts
protected createWidget(options): PDFWidgetAnnotation;

Defined in: src/api/form/PDFField.ts:333

Parameters ​

ParameterType
options{ backgroundColor?: Color; borderColor?: Color; borderWidth: number; caption?: string; height: number; hidden?: boolean; page?: PDFRef; rotate: Rotation; textColor?: Color; width: number; x: number; y: number; }
options.backgroundColor?Color
options.borderColor?Color
options.borderWidthnumber
options.caption?string
options.heightnumber
options.hidden?boolean
options.page?PDFRef
options.rotateRotation
options.textColor?Color
options.widthnumber
options.xnumber
options.ynumber

Returns ​

PDFWidgetAnnotation


disableExporting() ​

ts
disableExporting(): void;

Defined in: src/api/form/PDFField.ts:251

Indicate that this field's value should not be exported when the form is submitted in a PDF reader. For example:

js
const field = form.getField('some.field')
field.disableExporting()

Returns ​

void


disableReadOnly() ​

ts
disableReadOnly(): void;

Defined in: src/api/form/PDFField.ts:174

Allow users to interact with this field and change its value in PDF readers via mouse and keyboard input. For example:

js
const field = form.getField('some.field')
field.disableReadOnly()

Returns ​

void


disableRequired() ​

ts
disableRequired(): void;

Defined in: src/api/form/PDFField.ts:212

Do not require this field to have a value when the form is submitted. For example:

js
const field = form.getField('some.field')
field.disableRequired()

Returns ​

void


enableExporting() ​

ts
enableExporting(): void;

Defined in: src/api/form/PDFField.ts:239

Indicate that this field's value should be exported when the form is submitted in a PDF reader. For example:

js
const field = form.getField('some.field')
field.enableExporting()

Returns ​

void


enableReadOnly() ​

ts
enableReadOnly(): void;

Defined in: src/api/form/PDFField.ts:162

Prevent PDF readers from allowing users to interact with this field or change its value. The field will not respond to mouse or keyboard input. For example:

js
const field = form.getField('some.field')
field.enableReadOnly()

Useful for fields whose values are computed, imported from a database, or prefilled by software before being displayed to the user.

Returns ​

void


enableRequired() ​

ts
enableRequired(): void;

Defined in: src/api/form/PDFField.ts:200

Require this field to have a value when the form is submitted. For example:

js
const field = form.getField('some.field')
field.enableRequired()

Returns ​

void


getAction() ​

ts
getAction(): PDFJavaScriptAction | undefined;

Defined in: src/api/form/PDFField.ts:290

Get the default action (A) for this field. This is typically a submit or reset action, or can be a JavaScript action. For example:

js
const field = form.getField('some.field')
const action = field.getAction()
if (action) {
  console.log('Action script:', action.getScript())
}

Returns ​

PDFJavaScriptAction | undefined

The JavaScript action, or undefined if not a JavaScript action.


getJavaScriptActions() ​

ts
getJavaScriptActions(): 
  | JavaScriptActionMap
  | undefined;

Defined in: src/api/form/PDFField.ts:271

Get the JavaScript actions associated with this field. Returns a map of action types to JavaScript actions. For example:

js
const field = form.getField('some.field')
const actions = field.getJavaScriptActions()
if (actions.keystroke) {
  console.log('Keystroke script:', actions.keystroke.getScript())
}
if (actions.calculate) {
  console.log('Calculate script:', actions.calculate.getScript())
}

Returns ​

| JavaScriptActionMap | undefined

A map of JavaScript actions for this field, or undefined if none exist.


getName() ​

ts
getName(): string;

Defined in: src/api/form/PDFField.ts:132

Get the fully qualified name of this field. For example:

js
const fields = form.getFields()
fields.forEach(field => {
  const name = field.getName()
  console.log('Field name:', name)
})

Note that PDF fields are structured as a tree. Each field is the descendent of a series of ancestor nodes all the way up to the form node, which is always the root of the tree. Each node in the tree (except for the form node) has a partial name. Partial names can be composed of any unicode characters except a period (.). The fully qualified name of a field is composed of the partial names of all its ancestors joined with periods. This means that splitting the fully qualified name on periods and taking the last element of the resulting array will give you the partial name of a specific field.

Returns ​

string

The fully qualified name of this field.


isDirty() ​

ts
protected isDirty(): boolean;

Defined in: src/api/form/PDFField.ts:329

Returns ​

boolean


isExported() ​

ts
isExported(): boolean;

Defined in: src/api/form/PDFField.ts:227

Returns true if this field's value should be exported when the form is submitted. See [[PDFField.enableExporting]] and [[PDFField.disableExporting]]. For example:

js
const field = form.getField('some.field')
if (field.isExported()) console.log('Exporting is enabled')

Returns ​

boolean

Whether or not this field's value should be exported.


isReadOnly() ​

ts
isReadOnly(): boolean;

Defined in: src/api/form/PDFField.ts:147

Returns true if this field is read only. This means that PDF readers will not allow users to interact with the field or change its value. See [[PDFField.enableReadOnly]] and [[PDFField.disableReadOnly]]. For example:

js
const field = form.getField('some.field')
if (field.isReadOnly()) console.log('Read only is enabled')

Returns ​

boolean

Whether or not this is a read only field.


isRequired() ​

ts
isRequired(): boolean;

Defined in: src/api/form/PDFField.ts:188

Returns true if this field must have a value when the form is submitted. See [[PDFField.enableRequired]] and [[PDFField.disableRequired]]. For example:

js
const field = form.getField('some.field')
if (field.isRequired()) console.log('Field is required')

Returns ​

boolean

Whether or not this field is required.


markAsClean() ​

ts
protected markAsClean(): void;

Defined in: src/api/form/PDFField.ts:325

Returns ​

void


markAsDirty() ​

ts
protected markAsDirty(): void;

Defined in: src/api/form/PDFField.ts:321

Returns ​

void


updateOnOffWidgetAppearance() ​

ts
protected updateOnOffWidgetAppearance(
   widget, 
   onValue, 
   __namedParameters): void;

Defined in: src/api/form/PDFField.ts:412

Parameters ​

ParameterType
widgetPDFWidgetAnnotation
onValuePDFName
__namedParametersAppearanceMapping<{ off: PDFOperator[]; on: PDFOperator[]; }>

Returns ​

void


updateWidgetAppearances() ​

ts
protected updateWidgetAppearances(widget, __namedParameters): void;

Defined in: src/api/form/PDFField.ts:429

Parameters ​

ParameterType
widgetPDFWidgetAnnotation
__namedParametersAppearanceMapping<PDFRef | PDFDict>

Returns ​

void


updateWidgetAppearanceWithFont() ​

ts
protected updateWidgetAppearanceWithFont(
   widget, 
   font, 
   __namedParameters): void;

Defined in: src/api/form/PDFField.ts:400

Parameters ​

ParameterType
widgetPDFWidgetAnnotation
fontPDFFont
__namedParametersAppearanceMapping<PDFOperator[]>

Returns ​

void

MIT Licensed. A fork of pdf-lib.