---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# PdfMergeSignRequestor - Scoped, Global

# PdfMergeSignRequestor - Scoped, Global {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

The PdfMergeSignRequestor API provides methods to add an image representing a signature to a PDF document.

This API is part of the ServiceNow PDF
Generation Utilities plugin (com.snc.apppdfgenerator) and is provided within the
`sn_pdfgeneratorutils` namespace. The plugin is activated by default.

This API creates a signature object that can be implemented in a PDF using [PDFGenerationAPI](https://servicenow-prod.fluidtopics.net/r6ifZ3JkiLd_1W_LcORhLw#PDFGenerationAPIBothAPI "The PDFGenerationAPI provides support for PDF conversion and handling PDF fields.").

## PdfMergeSignRequestor - PdfMergeSignRequestor() {#ariaid-title2}

Instantiates a new PdfMergeSignRequestor object.
{#PM-PdfMergeSignRequestor__table_twm_hjk_34b__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 1. Parameters]

{#PM-PdfMergeSignRequestor__table_twm_hjk_34b}  
The following examples shows how to create a PdfMergeSignRequestor
object.

    var v = new sn_pdfgeneratorutils.PdfMergeSignRequestor;

## PdfMergeSignRequestor - addSignatureMapping(Number pageNumber, Number leftMargin, Number
topMargin, Number boxWidth, Number boxHeight, String sysId) {#ariaid-title3}

Assigns signature size and position requirements in the PDF.
{#PM-addSignatureMapping_N_N_N_N_N_S__table_zvh_hkl_j4b__entry__3}

| Name | Type | Description |
|-|-|-|
| pageNumber | Number | Number of the page on which to insert the signature. |
| leftMargin | Number | Value in points representing the left margin area of the page at which to insert the signature. |
| topMargin | Number | Value in points representing the top margin area of the page at which to insert the signature image. |
| boxWidth | Number | Value in points representing width of the box to contain the signature. |
| boxHeight | Number | Value in points representing height of the box to contain the signature image. |
| sysId | String | Sys_id of the signature image in the Attachments \[sys_attachment\] table. |
[Table 2. Parameters]

{#PM-addSignatureMapping_N_N_N_N_N_S__table_zvh_hkl_j4b} {#PM-addSignatureMapping_N_N_N_N_N_S__table_awh_hkl_j4b__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 3. Returns]

{#PM-addSignatureMapping_N_N_N_N_N_S__table_awh_hkl_j4b}  
The following example shows how to add the signature mapping. For a complete example, see
processRequest().

    var requestor = new sn_pdfgeneratorutils.PdfMergeSignRequestor;

    // For the purpose of this example, set signature sizes and page number for signature placement
    var page = 2;
    var leftMargin = 48;
    var topMargin = 60;
    var signatureWidth = 96;
    var signatureHeight = 36; 

    requestor.addSignatureMapping(page, leftMargin, topMargin, signatureWidth, signatureHeight, "<signatureSysId>");

## PdfMergeSignRequestor - createRequest(String targetSysId, String targetTable, String
tableSysId, String targetFileName) {#ariaid-title4}

Creates a signature request with source and target inputs.
{#PM-createRequest_S_S_S_S__table_ulk_gkl_j4b__entry__3}

| Name | Type | Description |
|-|-|-|
| targetSysId | String | Sys_id of a PDF in the Attachments \[sys_attachment\] table. Use this value as the target PDF on which to add a signature. |
| targetTable | String | Name of the table containing the record to which the PDF is attached. You can find this value in the same row as the attachment listed in the Attachments \[sys_attachment\] table. |
| tableSysId | String | Sys_id of the record to which the PDF is attached. You can find this value in the same row as the attachment listed in the Attachments \[sys_attachment\] table. |
| targetFileName | String | Name of the target PDF without extension. |
[Table 4. Parameters]

{#PM-createRequest_S_S_S_S__table_ulk_gkl_j4b} {#PM-createRequest_S_S_S_S__table_vlk_gkl_j4b__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 5. Returns]

{#PM-createRequest_S_S_S_S__table_vlk_gkl_j4b}  
The following example shows how to create a signature request. For a complete example, see
processRequest().

    var requestor = new sn_pdfgeneratorutils.PdfMergeSignRequestor;

    requestor.createRequest("<sys_id>", "tableName", "<tableSysId>", "pdfFileName");

## PdfMergeSignRequestor - processRequest() {#ariaid-title5}

Processes requests and adds the signatures.
{#PM-processRequest__table_gyz_3kl_j4b__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 6. Parameters]

{#PM-processRequest__table_gyz_3kl_j4b} {#PM-processRequest__table_erx_h3k_34b__entry__2}{#PM-processRequest__row_pdfgen_ret_attID}

| Type | Description |
|-|-|
| Object | Object containing the size of each page if successful, error message otherwise. { "attachment_id": "String", "message": "String", "status": "String" } |
| \<Object\>.attachment_id | If the request is successful, sys_id of the signed and attached PDF. The file is listed in the Attachments \[sys_attachment\] table. Data type: String |
| \<Object\>.message | Possible values: * Request cannot proceed as the attachment with sys_id \[{0}\] did not pass security scan -- The PDF did not pass the antivirus scan. {#PM-processRequest__ul_yzw_bhm_l4b} <!-- --> * No signature mapping specified. Cannot process this request -- Provide signature mapping using the addSignatureMapping() method. * Request completed successfully. * Request failure. Exceptions while trying to add signatures to document. Please check again. * This request cannot be completed as the requested page does not exist. page No: \<page number\> {#PM-processRequest__ul_tmd_twg_m4b} Data type: String |
| \<Object\>.status | Status indicating whether the operation is successful. Possible values: * success - Operation was successful. * failure -- Operation was not successful. The message provides details. {#PM-processRequest__ul_rlv_5cv_j4b} Data type: String |
[Table 7. Returns]

{#PM-processRequest__table_erx_h3k_34b}  
The following example shows how to process the signature request.

    var requestor = new sn_pdfgeneratorutils.PdfMergeSignRequestor;

    requestor.createRequest("<sys_id>", "tableName", "<tableSysId>", pdfFileName);

    // For the purpose of this example, set signature sizes and page number for signature placement
    var page = 6;
    var leftMargin = 40;
    var topMargin = 50;
    var signatureWidth = 188;
    var signatureHeight = 44; 

    requestor.addSignatureMapping(page, leftMargin, topMargin, signatureWidth, signatureHeight, "<signatureSysId>");

    var result = requestor.processRequest();
    gs.info(JSON.stringify(result));


