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
protected new PDFField(
acroField,
ref,
doc): PDFField;Defined in: src/api/form/PDFField.ts:98
Parameters
| Parameter | Type |
|---|---|
acroField | PDFAcroTerminal |
ref | PDFRef |
doc | PDFDocument |
Returns
PDFField
Properties
acroField
readonly acroField: PDFAcroTerminal;Defined in: src/api/form/PDFField.ts:90
The low-level PDFAcroTerminal wrapped by this field.
doc
readonly doc: PDFDocument;Defined in: src/api/form/PDFField.ts:96
The document to which this field belongs.
ref
readonly ref: PDFRef;Defined in: src/api/form/PDFField.ts:93
The unique reference assigned to this field within the document.
Methods
createImageAppearanceStream()
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
| Parameter | Type | Description |
|---|---|---|
widget | PDFWidgetAnnotation | The widget that should display the image. |
image | PDFImage | The image that should be displayed. |
alignment | ImageAlignment | The alignment of the image. |
Returns
The ref for the FormXObject that was added to the context.
createWidget()
protected createWidget(options): PDFWidgetAnnotation;Defined in: src/api/form/PDFField.ts:333
Parameters
| Parameter | Type |
|---|---|
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.borderWidth | number |
options.caption? | string |
options.height | number |
options.hidden? | boolean |
options.page? | PDFRef |
options.rotate | Rotation |
options.textColor? | Color |
options.width | number |
options.x | number |
options.y | number |
Returns
disableExporting()
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:
const field = form.getField('some.field')
field.disableExporting()Returns
void
disableReadOnly()
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:
const field = form.getField('some.field')
field.disableReadOnly()Returns
void
disableRequired()
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:
const field = form.getField('some.field')
field.disableRequired()Returns
void
enableExporting()
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:
const field = form.getField('some.field')
field.enableExporting()Returns
void
enableReadOnly()
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:
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()
enableRequired(): void;Defined in: src/api/form/PDFField.ts:200
Require this field to have a value when the form is submitted. For example:
const field = form.getField('some.field')
field.enableRequired()Returns
void
getAction()
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:
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()
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:
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()
getName(): string;Defined in: src/api/form/PDFField.ts:132
Get the fully qualified name of this field. For example:
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()
protected isDirty(): boolean;Defined in: src/api/form/PDFField.ts:329
Returns
boolean
isExported()
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:
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()
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:
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()
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:
const field = form.getField('some.field')
if (field.isRequired()) console.log('Field is required')Returns
boolean
Whether or not this field is required.
markAsClean()
protected markAsClean(): void;Defined in: src/api/form/PDFField.ts:325
Returns
void
markAsDirty()
protected markAsDirty(): void;Defined in: src/api/form/PDFField.ts:321
Returns
void
updateOnOffWidgetAppearance()
protected updateOnOffWidgetAppearance(
widget,
onValue,
__namedParameters): void;Defined in: src/api/form/PDFField.ts:412
Parameters
| Parameter | Type |
|---|---|
widget | PDFWidgetAnnotation |
onValue | PDFName |
__namedParameters | AppearanceMapping<{ off: PDFOperator[]; on: PDFOperator[]; }> |
Returns
void
updateWidgetAppearances()
protected updateWidgetAppearances(widget, __namedParameters): void;Defined in: src/api/form/PDFField.ts:429
Parameters
| Parameter | Type |
|---|---|
widget | PDFWidgetAnnotation |
__namedParameters | AppearanceMapping<PDFRef | PDFDict> |
Returns
void
updateWidgetAppearanceWithFont()
protected updateWidgetAppearanceWithFont(
widget,
font,
__namedParameters): void;Defined in: src/api/form/PDFField.ts:400
Parameters
| Parameter | Type |
|---|---|
widget | PDFWidgetAnnotation |
font | PDFFont |
__namedParameters | AppearanceMapping<PDFOperator[]> |
Returns
void