# Class: ContentReplacer

## PDFNet. ContentReplacer

#### new ContentReplacer()

  ContentReplacer is a utility class for replacing content (text and images) in existing PDF (template) documents.

  Users can replace content in a PDF page using the following operations:

  - Replace an image that exists in a target rectangle with a replacement image.
  - Replace text that exists in a target rectangle with replacement text.
  - Replace all instances of a specially marked string with replacement string.

  The following code replaces an image in a target region. This code also replaces the text "[NAME]" and "[JOB_TITLE]" with "John Smith" and "Software Developer" respectively. Notice the square braces ('[' and ']') on the target strings in the original PDFDoc. These square braces are not included in the actual function calls below, as they're implicitly added.

      PDFDoc doc("../../TestFiles/BusinessCardTemplate.pdf");
      doc.InitSecurityHandler();
      ContentReplacer replacer;
      Page page = doc.GetPage(1);
      Image img = Image::Create(doc, "../../TestFiles/peppers.jpg");
      replacer.AddImage(page.GetMediaBox(), img.GetSDFObj());
      replacer.AddString("NAME", "John Smith");
      replacer.AddString("JOB_TITLE", "Software Developer");
      replacer.Process(page);

### Methods

#### <static> create()

  Create a new ContentReplacer object, to which replacement rules will be added. The same object can be used to 'Process' multiple pages.

  ##### Returns:

  A promise that resolves to an object of type: "ContentReplacer"

  Type
    PDFNet.ContentReplacer

#### addImage(target_region, replacement_image)

  Replace the image that best fits into 'target_region' with 'replacement_image'.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `target_region` | PDFNet.rect | The rectangle defining the area in which an image that best fits the rectangle will be replaced by 'replacement_image'.
  `replacement_image` | PDFNet.Obj | The 'SDF.Obj' of a 'PDF.Image' object.

#### addString(template_text, replacement_text)

  Any text of the form "[template_text]" will be replaced by "replacement_text".

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `template_text` | string | The text to remove.
  `replacement_text` | string | The new text that will appear in place of 'template_text'.

#### addText(target_region, replacement_text)

  All text inside 'target_region' will be deleted and replaced with 'replacement_text'.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `target_region` | PDFNet.rect | The rectangle defining the area in which all text will be replaced by 'replacement_text'.
  `replacement_text` | string | The new text that will replace the existing text in 'target_region'.

#### destroy()

  Frees the native memory of the object.

#### process(page)

  Apply the replacement instructions to the target page. Subsequent calls to 'Process' can be made on other pages, and it will apply the same rules.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `page` | PDFNet.Page | The page to apply the content replacement instructions to.

#### setMatchStrings(start_str, end_str)

  Change the delimiters from '[' and ']' to arbitary strings.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `start_str` | string | The starting delimiter string.
  `end_str` | string | The ending delimiter string.

#### Search results