find()

Method of the boundaries object that finds a string in a region of the data source file. The method returns the region in which the string was searched (PDF file) or the exact region in which the string was encountered (Text file).
To check if the call to boundaries.find() was successful, you can read the region object's property found (see region).

In PlanetPress Connect 1.8 and previous versions, the DataMapper's boundaries.find() function returned the region searched within PDF files, whereas for text files it returned the exact region where the text was found. In 2018.1 this was changed so that boundaries.find() on PDFs would return the exact region where the text was found, the same as for text files. However, it was subsequently found that this could cause issues with previously created templates using the function on PDF files. Consequently, this change was reverted in 2018.1.1.

find(stringToFind, in_Region)

Finds the string stringToFind in a rectangular region defined by in_Region.

stringToFind

String to find.

in_Region

The in_Region region can be created prior to the call to find() with the region.createRegion() method. It depends on the type of data source how a region is defined; see createRegion().

When used to search through a Text file, the find() method returns a different region object (see region) whose range property is adjusted to point to the exact physical location where the match was found. This will always be a subset of the in_Region.range property. It can be used to determine the exact location where the match occurred.

Use boundaries.get() to retrieve the actual text from the resulting region; see get().

Example

This script sets a boundary when the text TOTAL is found on the current page in a PDF file.
The number of delimiters is set to 1, so the boundary is set on the next delimiter, which is the start of the next page.

if (boundaries.find("TOTAL", region.createRegion(10,10,215,279)).found) {
boundaries.set(1);
}