How to Use JavaScript to Calculate and Populate PDF Form Fields
Question details
The user needs to use a custom script within a PDF form to calculate the difference between three text fields and dynamically route positive and negative results into separate specific fields.

- Product
- PDF Editor
- Device & OS
- not provided
- Scenario
- Creating an interactive PDF form that requires dynamic calculations, conditional field population, and clearing fields when inputs are left blank.
- Observed behavior
- The form needs to automatically calculate 'Text18 - Text19 - Text20', display positive results in one field, negative results (as absolute values) in another, show zero when applicable, and remain blank if input fields are empty.
Ensure you have access to a PDF editor with form-building and custom JavaScript calculation capabilities, and note down the exact names of all your text fields.
Implement a Custom Calculation Script in PDF Field Properties
Use a custom JavaScript snippet in your target output field's calculation properties to conditionally format and place the results based on the input fields.
To achieve complex conditional calculations in a PDF form, standard mathematical functions are not enough. You must write a custom JavaScript function that checks the input values, performs the calculation, and updates the targeted fields accordingly.
Open your PDF in Form Editing mode. Right-click the destination field (e.g., Text21) and select 'Properties' from the context menu.
Navigate to the 'Calculate' tab in the Properties window. Select the 'Custom calculation script' radio button, then click the 'Edit' button.
In the JavaScript editor, define your variables by getting the field values: `var v18 = this.getField("Text18").valueAsString;` `var v19 = this.getField("Text19").valueAsString;` `var v20 = this.getField("Text20").valueAsString;`
Add an if-statement to check if the inputs are empty. If `v18`, `v19`, and `v20` are blank, set the current field event value to empty (`event.value = "";`) and clear the alternative output field.
Convert the inputs to numbers and calculate the result (`Number(v18) - Number(v19) - Number(v20)`). Use an if/else block to assign the value to `event.value` if positive. If negative, set `event.value = "";` and assign `Math.abs(result)` to the other destination field via `this.getField("Text22").value = Math.abs(result);`.

Create, Fill, and Manage PDF Forms with WPS Office
WPS Office features a robust built-in PDF editor that allows you to easily manage interactive PDF forms, view calculations, and edit documents seamlessly across multiple devices.
- 1. Download and Install: Download WPS Office for free from the official website and complete the installation process.
- 2. Open Your PDF Document: Launch WPS Office and open your interactive PDF file using the WPS PDF tool.
- 3. Fill and Edit Forms: Navigate to the 'Form' or 'Fill & Sign' tab to interact with text fields, dropdowns, and checkboxes.
- 4. Save and Export: Once your form fields are filled and calculated, click 'Save' or export the file to share it securely.

Frequently Asked Questions
Why is my PDF calculation script not updating automatically?
You may need to change the field calculation order. Go to your Form editing menu and select 'Calculation Order' to ensure the input fields are processed before the output fields.
How do I get the absolute value of a negative number in PDF JavaScript?
You can use the built-in Math object in JavaScript. Writing `Math.abs(yourVariable)` will automatically convert any negative number to a positive one.
How can I clear a field value if another field is left blank?
In your custom calculation script, check if the input field string is empty using `if (input == "")`. If true, set the target field value to an empty string using `this.getField("TargetField").value = "";`.
Does standard PDF form calculation support conditional logic?
Basic pre-defined calculations (like sum or product) do not support conditional logic. You must use the 'Custom calculation script' option and write JavaScript (like if/else statements) to achieve conditional behavior.




