JavaScript Form Filling
Shows how to fill forms with JavaScript.
/* * Copyright © 2025-2026 PSPDFKit GmbH. All rights reserved. * * The PSPDFKit Sample applications are licensed with a modified BSD license. * Please see License for details. This notice may not be removed from this file. */package com.pspdfkit.catalog.examples.kotlin
import android.content.Contextimport android.net.Uriimport android.view.Menuimport android.view.MenuItemimport androidx.annotation.UiThreadimport com.pspdfkit.annotations.actions.JavaScriptActionimport com.pspdfkit.catalog.Rimport com.pspdfkit.catalog.SdkExampleimport com.pspdfkit.catalog.tasks.ExtractAssetTaskimport com.pspdfkit.configuration.activity.PdfActivityConfigurationimport com.pspdfkit.document.PdfDocumentimport com.pspdfkit.ui.PdfActivityimport com.pspdfkit.ui.PdfActivityIntentBuilderimport java.io.File
/** Shows how to fill forms via JavaScript. */class JavaScriptFormFillingExample(context: Context) : SdkExample(context, R.string.formFillingJavaScriptExampleTitle, R.string.formFillingJavaScriptExampleDescription) { override fun launchExample( context: Context, configuration: PdfActivityConfiguration.Builder ) { configuration // Turn off saving, so we have the clean original document every time the example is launched. .autosaveEnabled(false) .formEditingEnabled(true) .build()
// Extract the document from the assets. ExtractAssetTask.extract("Form_example.pdf", title, context) { documentFile: File? -> val intent = PdfActivityIntentBuilder.fromUri(context, Uri.fromFile(documentFile)) .configuration(configuration.build()) .activityClass(JavaScriptFormFillingActivity::class.java) .build() context.startActivity(intent) } }}
/** This activity shows how to fill document forms via JavaScript */class JavaScriptFormFillingActivity : PdfActivity() {
companion object { private const val RESET_FORM_MENU_ITEM_ID = 1 }
override fun onCreateOptionsMenu(menu: Menu): Boolean { super.onCreateOptionsMenu(menu) menu.add(0, RESET_FORM_MENU_ITEM_ID, 0, "Reset form") return true }
override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) { RESET_FORM_MENU_ITEM_ID -> { resetForm() true } else -> super.onOptionsItemSelected(item) }
@UiThread override fun onDocumentLoaded(document: PdfDocument) { super.onDocumentLoaded(document) fillForms() }
/** Shows how to fill form fields via JavaScript. */ private fun fillForms() { executeJavaScript("var f = doc.getField('Sex'); f.checkThisBox(0, true);") executeJavaScript("var f = doc.getField('Name_Last'); f.value = 'John';") executeJavaScript("var f = doc.getField('Name_First'); f.value = 'Appleseed';") }
/** Resets all form fields in the document to their default values. */ private fun resetForm() { executeJavaScript("doc.resetForm()") }
/** Executes a JavaScript script on the [com.pspdfkit.ui.PdfFragment]. */ private fun executeJavaScript(script: String) { pdfFragment?.executeAction(JavaScriptAction(script)) }}This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.