c# save pdf : Bookmark pdf reader SDK Library project winforms .net windows UWP AcroJSGuide19-part340

Acrobat JavaScript Scripting Guide
191
11
Search and Index Essentials
Introduction
This chapter will enable you to customize and extend searching operations for PDF 
document content and metadata, as well as indexing operations. The principal Acrobat 
JavaScript objects used in searching and indexing are the 
search
catalog
, and 
index
objects. You will learn how to use these objects to accomplish the goals listed below.
Chapter Goals
At the end of this chapter, you will be able to:
Use Acrobat JavaScript to search for text in one or more PDF documents.
Customize searching to perform advanced queries.
Customize indexing of PDF documents.
Use JavaScript to read and search XMP metadata.
Contents
Topics
Searching for Text in PDF Documents
Indexing Multiple PDF Documents
Searching Metadata
Bookmark pdf reader - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmark pdf acrobat; bookmarks in pdf from word
Bookmark pdf reader - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmarks in pdf files; export pdf bookmarks to text file
Search and Index Essentials
Searching for Text in PDF Documents
11
192
Acrobat JavaScript Scripting Guide
Searching for Text in PDF Documents
Introduction
Acrobat JavaScript provides a static 
search
object, which provides powerful searching 
capabilities that may be applied to PDF documents and indexes. Its properties and 
methods are described below in Table 11.1 and Table 11.2.
T
ABLE
11.1
Search Properties
Property
Description
attachments
Searches PDF attachments along with base 
document
available
Determines if searching is possible
docInfo
Searches document metadata information
docText
Searches document text
docXMP
Searches document XMP metadata
bookmarks
Searches document bookmarks
ignoreAccents
Ignores accents and diactrics in search
ignoreAsianCharacterWidth
Matches Kana characters in query
indexes
Obtains all accessible 
index
objects
jpegExif
Searches EXIF data in associated JPEG images
markup
Searches annotations
matchCase
Determines whether query is case-sensitive
matchWholeWord
Finds only occurrences of complete words
maxDocs
Maximum number of documents returned
proximity
Uses proximity in results ranking for AND 
clauses
proximityRange
Range of proximity search in number of 
words
refine
Uses previous results in query
stem
Uses word stemming in searches
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
XImage.Barcode Reader. XImage.Barcode Generator. pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET
how to bookmark a page in pdf document; create bookmarks pdf
C# PDF Library SDK to view, edit, convert, process PDF file for C#
RasterEdge PDF SDK for .NET package offers robust APIs for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
create pdf bookmark; adding bookmarks to pdf
Acrobat JavaScript Scripting Guide
193
Search and Index Essentials
Searching for Text in PDF Documents
11
Finding Words in an PDF Document
The 
search
object’s 
query
method is used to search for text within a PDF document. It 
accepts three parameters:
cQuery
: the text for which to search
cWhere
: where to search for the text:
ActiveDoc
: search within the active document
Folder
: search within a specified folder
Index
: search within a specified index
ActiveIndexes
: search within the active set of available indexes (the default)
cDIPath
: path to folder or index used in search
Performing a Simple Search of a Document
The simplest type of search is applied to the text within the PDF document. For example, 
the following code performs a case-insensitive search for the word 
Acrobat
within the 
current document:
search.query("Acrobat");
Using Advanced Search Options
You can set the 
search
object’s properties to use advanced searching options, which can 
be used to determine how to match search strings, and whether to use proximity or 
stemming.
To determine how the words in the search string will be matched, set the 
search
object’s 
wordMatching
property to one of the following values:
wordMatching
Determines how words will be matched 
(phrase, all words, any words, boolean query)
T
ABLE
11.2
Search Methods
Method
Description
addIndex
Adds an index to the list of searchable indexes
getIndexForPath
Searches the index list according to a specified path
query
Searches the document or index for specified text
removeIndex
Removes an index from the list of searchable indexes
T
ABLE
11.1
Search Properties
Property
Description
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF document by PDF bookmark and outlines in VB.NET. Independent component for splitting PDF document in preview without using external PDF control.
acrobat split pdf bookmark; edit pdf bookmarks
C# PDF - Read Barcode on PDF in C#.NET
pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET C#.NET PDF Barcode Reader & Scanner
excel hyperlink to pdf bookmark; create pdf bookmarks online
Search and Index Essentials
Searching for Text in PDF Documents
11
194
Acrobat JavaScript Scripting Guide
MatchPhrase
: match the exact phrase
MatchAllWords
: match all the words without regard to the order in which they 
appear
MatchAnyWord
: match any of the words in the search string
BooleanQuery
: perform a boolean query for multiple-document searches (the 
default)
For example, the following code matches the phrases 
"My
Search"
or 
"Search
My"
:
search.wordMatching = "MatchAllWords";
search.query("My Search");
To determine whether proximity is used in searches involving multiple documents or index 
definition files, set the 
search
object’s 
wordMatching
property to 
MatchAllWords
and set its 
proximity
property to 
true
. In the example below, all instances of the words 
My
and 
Search
that are not separated by more than 900 words will be listed in the search:
search.wordMatching = "MatchAllWords";
search.proximity = true;
search.query("My Search");
To use stemming in the search, set the 
search
object’s 
stem
property to 
true
. For 
example, the following search lists words that begin with "run", such as "running" or "runs":
search.stem = true;
search.query("run");
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Support to take notes on adobe PDF file without adobe reader installed. Support to add text, text box, text field and crop marks to PDF document.
adding bookmarks to pdf reader; how to create bookmark in pdf automatically
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
export pdf bookmarks; add bookmarks to pdf
Acrobat JavaScript Scripting Guide
195
Search and Index Essentials
Searching for Text in PDF Documents
11
Searching Across Multiple PDF Documents
Searching all PDF Files in a Specific Location
To search all the PDF files within a folder, set the 
cWhere
parameter in the 
search
object’s 
query
method to 
Folder
. In the following example, all documents in 
/C/MyFolder
will be searched for the word "Acrobat":
search.query("Acrobat", "Folder", "/C/MyFolder");
Using Advanced Search Options for Multiple Document Searches
In addition to the advanced options for matching phrases, using stemming, and using 
proximity, it is also possible to specify whether the search should be case-sensitive, 
whether to match whole words, set the maximum number of documents to be returned as 
part of a query, and whether to refine the results of the previous query.
To specify that a search should be case sensitive, set the 
search
object’s 
matchCase
property to 
true
. For example, the following code matches "Acrobat" but not "acrobat":
search.matchCase = true;
search.query("Acrobat", "Folder", "/C/MyFolder");
To specify that the search should only identify occurrences of complete words, set the 
search
object’s 
matchWholeWord
property to 
true
. For example, the following code 
matches "stick", but not "tick" or "sticky":
search.matchWholeWord = true;
search.query("stick", "Folder", "/C/MyFolder");
To set the maximum number of documents to be returned as part of a query, set the 
search
object’s 
maxDocs
property to the desired number (the default is 100). For 
example, the following code limits the number of documents to be searched to 5:
search.maxDocs = 5;
To refine the results of the previous query, set the 
search
object’s 
refine
property to 
true
, as shown in the following code:
search.refine = true;
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
A powerful PDF reader allows C# users to view PDF, annotate PDF file, create PDF from other file formats, convert PDF document in .NET framework class.
bookmark template pdf; create pdf with bookmarks from word
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Able to get word count in PDF pages. Change Word hyperlink to PDF hyperlink and bookmark. Free online Word to PDF converter without email.
bookmarks pdf documents; create bookmarks in pdf reader
Search and Index Essentials
Searching for Text in PDF Documents
11
196
Acrobat JavaScript Scripting Guide
Searching PDF Index Files
A PDF index file often covers multiple PDF files, and the time required to search an index is 
much less than that required to search each of the corresponding individual PDF files.
To search a PDF index, set the 
cWhere
parameter in the 
search
object’s 
query
method 
to 
Index
. In the following example, 
myIndex
is searched for the word "Acrobat":
search.query("Acrobat", "Index", "/C/MyIndex.pdx");
Using Boolean Queries in Multiple Document Searches
Boolean queries may be applied to multiple PDF documents using the following 
operations:
AND
OR
^
(exclusive or)
NOT
For example, the phrase 
"Paris
AND
France"
used in a search would return all 
documents containing both the words 
Paris
and 
France
.
The phrase 
"Paris
OR
France"
used in a search would return all documents containing 
one or both of the words 
Paris
and 
France
.
The phrase 
"Paris
^
France"
used in a search would return all documents containing 
exactly one (not both) of the words 
Paris
and 
France
.
The phrase 
"Paris
NOT
France"
used in a search would return all documents 
containing 
Paris
that do not contain the word 
France
.
In addition, parentheses may be used. For example, the phrase 
"one
AND
(two
OR
three)"
would be equivalent to performing two searches: one using the statement 
"one
AND
two
"
, followed by another using the statement 
"one
AND
three"
.
To specify that a boolean query will be used, be sure that the 
search
object’s 
wordMatching
property is set to 
BooleanQuery
(which is the default).
Acrobat JavaScript Scripting Guide
197
Search and Index Essentials
Indexing Multiple PDF Documents
11
Indexing Multiple PDF Documents
It is possible to extend and customize indexes for multiple PDF documents using the 
Acrobat JavaScript 
catalog
catalogJob
, and 
index
objects. These objects may be 
used to build, retrieve, or remove indexes. The 
index
object represents a 
catalog
-
generated index, contains a 
build
method that is used to create an index (and returns a 
catalogJob
object containing information about the index), and has the properties 
shown below in Table 11.3:
The 
catalog
object may be used to manage indexing jobs and retrieve indexes. It 
contains a 
getIndex
method for retrieving an index, a 
remove
method for removing a 
pending indexing job, and properties containing information about indexing jobs.
Creating, Updating, or Rebuilding Indexes
To determine which indexes are available, use the 
search
object’s 
indexes
property, 
which contains an array of 
index
objects. For each object in the array, you can determine 
its name by using its 
name
property. In the code below, the names and paths of all available 
selected indexes are printed to the console:
var arr = search.indexes;
for (var i=0; i<arr.length; i++)
{
if (arr[i].selected)
{
var str = "Index[" + i + "] = " + arr[i].name;
str += "\nPath = " + arr[i].path;
console.println(str);
}
}
T
ABLE
11.3
Index Properties
Property
Description
available
Indicates whether an index is available
name
The name of the index
path
The device-independent path of the index
selected
Indicates whether the index will participate in the search
Search and Index Essentials
Indexing Multiple PDF Documents
11
198
Acrobat JavaScript Scripting Guide
To build an index, first invoke the 
catalog
object’s 
getIndex
method to retrieve the 
index
object. This method accepts a parameter containing the path of the 
index
object. 
Then invoke the 
index
object’s 
build
method, which returns a 
catalogJob
object. The 
method accepts two parameters:
cExpr
: an Acrobat JavaScript expression executed once the build operation is 
complete
bRebuildAll
: indicates whether to perform a clean build in which the existing index 
is first deleted and then completely built
Finally, the returned 
catalogJob
object contains three properties providing useful 
information about the indexing job:
path
: the device-independent path of the index
type
: the type of indexing operation (
Build
Rebuild
, or 
Delete
)
status
: the status of the indexing operation (
Pending
Processing
Completed
or 
CompletedWithErrors
)
In the code shown below, the index 
myIndex
is completely rebuilt, after which its status is 
reported:
// Retrieve the Index object
var idx = catalog.getIndex("/C/myIndex.pdx");
// Build the Index
var job = idx.build("app.alert(‘Index build’);", true);
// Confirm the path of the rebuilt index:
console.println("Path of rebuilt index: " + job.path);
// Confirm that the index was rebuilt:
console.println("Type of operation: " + job.type);
// Report the job status
console.println("Status: " + job.status);
Acrobat JavaScript Scripting Guide
199
Search and Index Essentials
Searching Metadata
11
Searching Metadata
Using Acrobat JavaScript to Read and Search XMP Metadata
PDF documents contain document metadata in XML format, which includes information 
such as the document title, subject, author’s name, keywords, copyright information, date 
modified, file size, and file name and location path.
To use Acrobat JavaScript to search a document’s XMP metadata, set the 
search
object’s 
docXMP
property to 
true
, as shown in the following code:
search.docXMP = true;
Search and Index Essentials
Searching Metadata
11
200
Acrobat JavaScript Scripting Guide
Documents you may be interested
Documents you may be interested