Some test text!
Web / Guides / Programmatic Search
Besides the basic text search functions from WebViewer UI , WebViewer provides methods for more low level control of text search. They are:
textSearchInit: Start a search or search for the next occurrence of a search termclearSearchResults: Clear highlighted search resultsdisplaySearchResult: Highlight result, unhighlight previous resultdisplayAdditionalSearchResult: Highlight additional resultsetActiveSearchResult: Go to search result and highlight it with 'active' colorsetSearchHighlightColors: Set highlight colors of search resultssearchInProgress: Event fired when a search starts or endsThe textSearchInit function is used to start a text search and the displaySearchResult, displayAdditionalSearchResult, and setActiveSearchResult functions are used to highlight the results. An example of textSearchInit being used can be seen below:
WebViewer({ ... }, viewerElement).then(instance => {
const { documentViewer, Annotations, Search } = instance.Core;
documentViewer.setSearchHighlightColors({
// setSearchHighlightColors accepts both Annotations.Color objects or 'rgba' strings
searchResult: new Annotations.Color(0, 0, 255, 0.5),
activeSearchResult: 'rgba(0, 255, 0, 0.5)'
});
documentViewer.addEventListener('documentLoaded', () => {
const searchText = 'TEXT TO SEARCH';
const mode = Search.Mode.PAGE_STOP | Search.Mode.HIGHLIGHT;
const searchOptions = {
// If true, a search of the entire document will be performed. Otherwise, a single search will be performed.
fullSearch: true,
// The callback function that is called when the search returns a result.
onResult: result => {
// with 'PAGE_STOP' mode, the callback is invoked after each page has been searched.
if (result.resultCode === Search.ResultCode.FOUND) {
const textQuad = result.quads[0].getPoints(); // getPoints will return Quad objects
// now that we have the result Quads, it's possible to highlight text or create annotations on top of the text
}
}
};
documentViewer.textSearchInit(searchText, mode, searchOptions);
});
});In the above code the textSearchInit method is used to search the document. It takes the following input parameters:
searchPattern: A pattern to search formode: A number that encodes the search options, generated by bitwise ORing options togethersearchOptions: An object that contains the search options.searchCallBack: A callback function that get called when a match has been found or at the end of document (or when using PAGE_STOP, at the end of a page)The 'mode' value it takes in can be created by doing bitwise OR operations on the different SearchMode properties. The search modes are:
CASE_SENSITIVE: Text must match the case of the search termSEARCH_UP: Search starts on the last page, and search backwards to first pagePAGE_STOP: Search will invoke the callback function when it finishes searching a pageHIGHLIGHT: Bounding box of found term will be includedAMBIENT_STRING: Characters surrounding the search term will be includedWHOLE_WORD: Text must be a whole wordREGEX: Search text can contain regular expressionsWILD_CARD: Search text can contain wildcardsWhen the callback function is called, it receives a SearchResults object that has a few useful properties. It has a 'resultCode' property, which has one of the following values
ResultCode.PAGE: Reached the end of a pageResultCode.FOUND: Found a matchResultCode.DONE: Done searching the documentThe searchResults will also have a 'quads' property that contains an array of textQuad objects.
You can call the getPoints function on textQuad objects to receive a Quad object.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales