Update Text signatures in document

GroupDocs.Signature provides the TextSignature class to manipulate text signatures’ location, size, and textual content. Please note that the Update method modifies the same document that was passed to the constructor of the Signature class.

Here are the steps to update a Text signature in the document with GroupDocs.Signature:

  • Create a new instance of the Signature class and pass the source document path as a constructor parameter.
  • Instantiate the TextSearchOptions object with the desired properties.
  • Call the Search method to obtain a list of TextSignatures.
  • Select from the list the TextSignature object(s) that should be updated.
  • Call the Signature object’s Update method and pass one or several signatures to it.

This example shows how to update a Text signature that was found using the Search method.

  // The path to the documents directory.
  const filePath = Constants.SAMPLE_SIGNED_MULTI; 
  const fileName = path.basename(filePath);

  // Copy source file since the update method works with the same document
  const outputFilePath = path.join(Constants.OutputPath, 'UpdateText', fileName);
  const dir = path.dirname(outputFilePath);
  if (!fs.existsSync(dir)) {
      fs.mkdirSync(dir, { recursive: true });
  }

  // Initialize Signature instance
  const signature = new signatureLib.Signature(filePath);

  // Initialize TextSearchOptions
  const options = new signatureLib.TextSearchOptions();

  // Search for text signatures in the document
  const signatures = signature.search(signatureLib.TextSignature.class, options).toArray();

  if (signatures.length > 0) {
    const textSignature = signatures[0];

    // Change Text property
    textSignature.setText('John Walkman');
    // Change position
    textSignature.setLeft(textSignature.getLeft() + 50);
    textSignature.setTop(textSignature.getTop() + 50);
    // Change size. Please note not all documents support changing signature size
    textSignature.setWidth(200);
    textSignature.setHeight(100);

    // Update the text signature in the document
    const result = signature.update(outputFilePath, textSignature);

    if (result) {
      console.log(`\nSignature with Text '${textSignature.getText()}' was updated in the document ['${fileName}'].`);
    } else {
      console.log(`\nSignature was not updated in the document! Signature with Text '${textSignature.getText()}' was not found!`);
    }
  }

More resources

GitHub Examples

You may easily run the code above and see the feature in action in ourΒ GitHub examples:

Free Online Apps

Along with the full-featured .NET library, we provide simple but powerful free online apps.

To sign PDF, Word, Excel, PowerPoint, and other documents you can use the online apps from the GroupDocs.Signature App Product Family.