Recherche textuelle
Fonctions de recherche
- Objet : getARenderJS().getSearchJSAPI()
Fonction Description Argument askAdvancedSearchText(searchText,isCaseSensitive,isAccentSensitive,isRegex,SearchAction,searchAnnotation,postSearchAction) Recherche avancée searchText: (String) le mot que l’on cherche
isCaseSensitive: (boolean)
isAccentSensitive: (boolean)
isRegex: (boolean)
SearchAction: (String) [null, CurrentPage, AllPages, AllDocuments]
searchAnnotation: (String) [WithAnnotations, WithoutAnnotations, OnlyAnnotations]
postSearchAction: (String) [null, Redact, Highlight]
askSearchTextNext(searchText) Recherche pour le prochain mot searchText: (String) le mot que l’on cherche askSearchTextPrevious(searchText) Recherche pour le précédent mot searchText: (String) le mot que l’on cherche clearSearchResults() Efface les résultats de la recherche
Recherche simple
La fonction askSearchTextNext permet de lancer une recherche simple. Elle prend en paramètre d’entrée le texte à rechercher.
getARenderJS().getSearchJSAPI().askSearchTextNext("arender")
Cette recherche surligne le texte recherché sur l’ensemble des documents ouverts, sans respecter la casse, et positionne le viewer sur le premier élément correspondant à partir de la page sur laquelle on est positionné.
Il est ensuite possible de naviguer de proche en proche en rappelant la même fonction :
getARenderJS().getSearchJSAPI().askSearchTextNext("arender")
Scroller sur le document dans ARender entre deux appels relancera la recherche à partir de la page en cours.
Il est également possible de se rendre à l’occurrence précédente du texte recherché en faisant appel à la fonction askSearchTextPrevious :
getARenderJS().getSearchJSAPI().askSearchTextPrevious("arender")
Une fois la recherche terminée, pour enlever la mise en évidence des résultats de recherche sur le document, il conviendra d’utiliser la fonction clearSearchResults :
getARenderJS().getSearchJSAPI().clearSearchResults()
Recherche avancée
Le panneau de recherche avancée d’ARender permet de préciser davantage une recherche textuelle. Celui-ci peut être ouvert directement depuis l’API JavaScript avec la fonction askAdvancedSearchText. Cette fonction prend 6 paramètres en entrée :
- searchText : le texte recherché
- isCaseSensitive : sensibilité à la casse (true ou false)
- isAccentSensitive : sensibilité aux accents (true OU false)
- isRegex : si isRegex vaut true, searchtext sera interprété comme une expression régulière.
- SearchAction : précise le périmètre de la recherche et peut prendre ces trois valeurs :
- CurrentPage : Recherche sur la page courante
- AllPages : Recherche sur l’ensemble des pages du document courant
- AllDocuments : Recherche dans tous les documents
- searchAnnotation : Précise si la recherche inclut les annotations
- WithAnnotations : Recherche dans le texte du document et les annotations
- WithoutAnnotations : Recherche dans le texte du document uniquement
- OnlyAnnotations : Recherche dans les annotations uniquement
- postSearchAction : Précise ce qui doit être fait des éléments trouvés :
- null : Aucun traitement particulier
- Redact : Les éléments trouvés sont convertis en annotation de type masquage (le texte ne s’affiche qu’au survole de la souris)
- Highlight : les éléments recherchés sont convertis en annotations de type surlignage
Voici un exemple classique d’utilisation :
getARenderJS().getSearchJSAPI().askAdvancedSearchText("arender", false, false, false, "AllDocuments", "WithAnnotations", null)
Dans cet exemple :
- la recherche porte sur le terme “arender”
- la recherche ne tient pas compte de la casse
- la recherche ne tient pas compte des accents
- le terme de recherche n’est pas une regex
- la recherche est effectuée sur l’ensemble des documents ouverts
- la recherche porte sur le texte du document ainsi que les annotations ajoutées par l’utilisateur
- aucun traitement particulier n’est effectué sur les éléments retournés par la recherche.
La navigation de proche en proche et le nettoyage des résultats se font de la même façon que pour la recherche simple, avec les fonctions askSearchTextNext, askSearchTextPrevious, et clearSearchResults.
- Exemple de recherche par expression régulière :
Une expression régulière (ou regex) est une règle permettant de définir quelles séquences de caractères ressortent dans une recherche.
Par exemple, \b\w{16,}\b
correspondra aux mots contenant plus de 16 caractères.
Pour exécuter une recherche avec cette regex, on lancera par exemple la recherche ainsi, en précisant bien la valeur true pour le paramètre isRegex :
getARenderJS().getSearchJSAPI().askAdvancedSearchText("\b\w{16,}\b", false, false, true, "AllDocuments", "WithAnnotations", null)