---
title: "Submit PDF ink signatures with form | Nutrient"
canonical_url: "https://www.nutrient.io/guides/web/knowledge-base/submit-ink-signatures-with-form/"
md_url: "https://www.nutrient.io/guides/web/knowledge-base/submit-ink-signatures-with-form.md"
last_updated: "2026-05-18T15:55:46.130Z"
description: "This guide outlines how to submit ink signatures along with a form that’s submitted. for Nutrient Web SDK."
---

This guide outlines how to submit ink signatures along with a form that’s submitted.

Ink signatures aren’t part of the signature form field properties; they’re just ink annotations that overlap the signature form field and thus are considered ink signatures. Therefore, by default, they’re not included in the payload that’s sent when a form is submitted.

However, you can store ink signature data as a string in a hidden text form field. When the form is submitted, the string will then be sent along with the rest of the form data.

This is how you could retrieve the signatures for the corresponding form fields:

```js

async function getStringifiedInkSignatures(instance) {
  let stringifiedSignatures = {};
  const pagesPromises = Array.from({
    length: instance.totalPageCount
  }).map((_, index) => {
    return instance.getAnnotations(index);
  });
  const annotationsByPage = await Promise.all(pagesPromises);
  const inkSignatureAnnotations = annotationsByPage.reduce(
    (acc, pageAnnotations) => {
      const pageInkSignatureAnnotations = pageAnnotations.filter(
        (annotation) => annotation.isSignature
      );
      return pageInkSignatureAnnotations.size > 0? acc.concat(pageInkSignatureAnnotations.toArray())
        : acc;
    },
    []
  );
  const formFields = await instance.getFormFields();
  const signatureWidgetAnnotations = annotationsByPage.reduce(
    (acc, pageAnnotations) => {
      const pageWidgetAnnotations = pageAnnotations.filter(
        (annotation) => annotation.formFieldName
      );
      const pageSignatureWidgetAnnotations = pageWidgetAnnotations.filter(
        (annotation) =>
          formFields.find(
            (formField) =>
              formField.name === annotation.formFieldName &&
              formField instanceof
                NutrientViewer.FormFields.SignatureFormField
          )
      );
      return pageSignatureWidgetAnnotations.size > 0? acc.concat(pageSignatureWidgetAnnotations.toArray())
        : acc;
    },
    []
  );
  inkSignatureAnnotations.forEach((inkSignatureAnnotation) => {
    const inkSignatureWidgetAnnotation = signatureWidgetAnnotations.find(
      (signatureWidgetAnnotation) => {
        return signatureWidgetAnnotation.boundingBox.isRectOverlapping(
          inkSignatureAnnotation.boundingBox
        );
      }
    );
    if (inkSignatureWidgetAnnotation) {
      stringifiedSignatures[
        inkSignatureWidgetAnnotation.formFieldName
      ] = JSON.stringify(inkSignatureAnnotation.toJS());
    }
  });
  return stringifiedSignatures;
}

```

To submit this information as part of the form, the PDF document needs to have an additional hidden text form field for each signature form field in the document. You can [create it on the fly if you have the Form Creator component in your license](https://www.nutrient.io/guides/web/forms/form-creation.md).

Then you can call the following function just before submitting the form. For example, you can name these form fields with the pattern `"inksignature*for*[signature form field name here]"`:

```js

async function submitForm() {
  let stringifiedInkSignaturesFormFieldValues = {};
  const stringifiedInkSignatures = await getStringifiedInkSignatures(
    instance
  );
  Object.entries(stringifiedInkSignatures).forEach(
    ([formFieldName, stringifiedInkSignature]) => {
      stringifiedInkSignaturesFormFieldValues[
        `inksignature_for_${formFieldName}`
      ] = stringifiedInkSignature;
    }
  );
  instance.setFormFieldValues(stringifiedInkSignaturesFormFieldValues);
  // Now submit the form!
}

```

This has been tested with Nutrient Web SDK 2020.2.3.
---

## Related pages

- [Add Custom Keyboard Shortcuts](/guides/web/knowledge-base/add-custom-keyboard-shortcuts.md)
- [Add Signature Initials](/guides/web/knowledge-base/add-signature-initials.md)
- [Add Listener Text Note Annotation](/guides/web/knowledge-base/add-listener-text-note-annotation.md)
- [How to add a custom toolbar item to display current zoom percentage](/guides/web/knowledge-base/add-custom-zoom-perentage.md)
- [Add Listener Toolbar Item](/guides/web/knowledge-base/add-listener-toolbar-item.md)
- [Listen to an annotation’s hover event](/guides/web/knowledge-base/annotations-hover-event.md)
- [Blurry Print Resolution](/guides/web/knowledge-base/blurry-print-resolution.md)
- [Automatic Annotation Field Tab Ordering](/guides/web/knowledge-base/automatic-annotation-field-tab-ordering.md)
- [Check Document Contains Annotations](/guides/web/knowledge-base/check-document-contains-annotations.md)
- [Change Default Line Width Ink Annotations](/guides/web/knowledge-base/change-default-line-width-ink-annotations.md)
- [Keep widget annotation dimensions consistent across devices](/guides/web/knowledge-base/consistent-widget-annotation-dimensions.md)
- [Control Appearance Of Delete Button On Ink Annotations](/guides/web/knowledge-base/control-appearance-of-delete-button-on-ink-annotations.md)
- [Check Password Protected Files](/guides/web/knowledge-base/check-password-protected-files.md)
- [Create Highlight Annotations From Text Extraction Technology](/guides/web/knowledge-base/create-highlight-annotations-from-text-extraction-technology.md)
- [Customize Page Indicator](/guides/web/knowledge-base/customize-page-indicator.md)
- [Delete All Annotations](/guides/web/knowledge-base/delete-all-annotations.md)
- [Default To Cloudy Border](/guides/web/knowledge-base/default-to-cloudy-border.md)
- [Export Ink Annotation Image](/guides/web/knowledge-base/export-ink-annotation-image.md)
- [Detect Pspdfkit Ui Loaded](/guides/web/knowledge-base/detect-pspdfkit-ui-loaded.md)
- [Disable Resize Of Annotations](/guides/web/knowledge-base/disable-resize-of-annotations.md)
- [Download Exported Document](/guides/web/knowledge-base/download-exported-document.md)
- [Deselect Text](/guides/web/knowledge-base/deselect-text.md)
- [How to disable text annotation movement in web apps](/guides/web/knowledge-base/disable-text-annotation-movement.md)
- [Determine Current Layout Mode](/guides/web/knowledge-base/determine-current-layout-mode.md)
- [Disable Context Menu](/guides/web/knowledge-base/disable-context-menu.md)
- [Extracting text and cursor position in annotations](/guides/web/knowledge-base/extract-annotation-text-and-retrieve-cursor-position.md)
- [Find Ink Annotation For Signature Form Field](/guides/web/knowledge-base/find-ink-annotation-for-signature-form-field.md)
- [Focus Viewer After Loading](/guides/web/knowledge-base/focus-viewer-after-loading.md)
- [Focus the delete button in a confirm dialog](/guides/web/knowledge-base/focus-delete-button-in-confirm-modal-component.md)
- [Get Entered Document Password](/guides/web/knowledge-base/get-entered-document-password.md)
- [Fix errors with unsupported form field actions](/guides/web/knowledge-base/handle-unsupported-form-field-actions.md)
- [Focus Widget Annotation](/guides/web/knowledge-base/focus-widget-annotation.md)
- [Highlight required form fields](/guides/web/knowledge-base/highlight-required-fields.md)
- [Handling Clicks On Custom Overlays](/guides/web/knowledge-base/handling-clicks-on-custom-overlays.md)
- [How Do I Disable Scrolling On Page Edges](/guides/web/knowledge-base/how-do-i-disable-scrolling-on-page-edges.md)
- [Get Visible Annotations](/guides/web/knowledge-base/get-visible-annotations.md)
- [Resize multiline text fields to avoid overflow](/guides/web/knowledge-base/how-do-i-resize-form-fields.md)
- [How Do I Prevent Printing Annotations](/guides/web/knowledge-base/how-do-i-prevent-printing-annotations.md)
- [How Do I Limit The Number Of Annotations](/guides/web/knowledge-base/how-do-i-limit-the-number-of-annotations.md)
- [How To Create Bookmarks From Outline Elements](/guides/web/knowledge-base/how-to-create-bookmarks-from-outline-elements.md)
- [License Registered Different Bundle Id](/guides/web/knowledge-base/license-registered-different-bundle-id.md)
- [How Do I Toggle The Theme](/guides/web/knowledge-base/how-do-i-toggle-the-theme.md)
- [Image Attachments Lost Stamp Annotation Templates](/guides/web/knowledge-base/image-attachments-lost-stamp-annotation-templates.md)
- [Load Pdf As Arraybuffer](/guides/web/knowledge-base/load-pdf-as-arraybuffer.md)
- [How Do I Zoom To A Specific Value](/guides/web/knowledge-base/how-do-i-zoom-to-a-specific-value.md)
- [Load Pdf From Stream](/guides/web/knowledge-base/load-pdf-from-stream.md)
- [Iterate over form fields and widgets](/guides/web/knowledge-base/iterate-over-form-fields.md)
- [Link Text](/guides/web/knowledge-base/link-text.md)
- [How Do I Rotate A Page](/guides/web/knowledge-base/how-do-i-rotate-a-page.md)
- [Loading Multiple Files](/guides/web/knowledge-base/loading-multiple-files.md)
- [Observe Document Editor Visibility](/guides/web/knowledge-base/observe-document-editor-visibility.md)
- [Load Pdf Stub From String](/guides/web/knowledge-base/load-pdf-stub-from-string.md)
- [Nutrient Size Optimization](/guides/web/knowledge-base/nutrient-size-optimization.md)
- [Disabling automatic synchronization in Nutrient Web SDK](/guides/web/knowledge-base/manual-instant-sync.md)
- [Override User Agent](/guides/web/knowledge-base/override-user-agent.md)
- [Override Ink Signature Dialog](/guides/web/knowledge-base/override-ink-signature-dialog.md)
- [Persist Currently Edited Note Test](/guides/web/knowledge-base/persist-currently-edited-note-test.md)
- [Overview](/guides/web/knowledge-base/overview.md)
- [Programmatic Comment Annotations](/guides/web/knowledge-base/programmatic-comment-annotations.md)
- [Process Currently Rendered Pages](/guides/web/knowledge-base/process-currently-rendered-pages.md)
- [Persist Ink Signatures Across Instances](/guides/web/knowledge-base/persist-ink-signatures-across-instances.md)
- [Place Annotation At Visible Center](/guides/web/knowledge-base/place-annotation-at-visible-center.md)
- [Prevent Editing Content Text Annotation](/guides/web/knowledge-base/prevent-editing-content-text-annotation.md)
- [Prevent Shortcut Printing](/guides/web/knowledge-base/prevent-shortcut-printing.md)
- [Read-only forms](/guides/web/knowledge-base/read-only-forms.md)
- [Render Page Without Annotations](/guides/web/knowledge-base/render-page-without-annotations.md)
- [Programmatically Navigate To Page](/guides/web/knowledge-base/programmatically-navigate-to-page.md)
- [Render Page Black White](/guides/web/knowledge-base/render-page-black-white.md)
- [Render Visible Area In Current Page](/guides/web/knowledge-base/render-visible-area-in-current-page.md)
- [Render Watermark When Printing](/guides/web/knowledge-base/render-watermark-when-printing.md)
- [Render Document Full Height](/guides/web/knowledge-base/render-document-full-height.md)
- [Restore Last Seen Page](/guides/web/knowledge-base/restore-last-seen-page.md)
- [Rotate Ink Annotation](/guides/web/knowledge-base/rotate-ink-annotation.md)
- [Render Night Mode](/guides/web/knowledge-base/render-night-mode.md)
- [Show Focus Ring Read Only](/guides/web/knowledge-base/show-focus-ring-read-only.md)
- [Save Modified Pdf To Document Engine](/guides/web/knowledge-base/save-modified-pdf-to-document-engine.md)
- [Show Annotations Properties As Tooltip](/guides/web/knowledge-base/show-annotations-properties-as-tooltip.md)
- [Easily zoom to specific annotations in PDF](/guides/web/knowledge-base/zoom-to-specific-annotation.md)
- [Web Sdk Vs Dws Viewer](/guides/web/knowledge-base/web-sdk-vs-dws-viewer.md)
- [Wait For Element Appear](/guides/web/knowledge-base/wait-for-element-appear.md)

