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.