Some test text!
Web / Guides
Make sure you have Full API enabled in WebViewer.
To search for text in a PDF using regular expression and then apply a link annotation on the highlighted result.
async function main() {
const doc = await PDFNet.PDFDoc.createFromURL(filename);
const txtSearch = await PDFNet.TextSearch.create();
let mode = PDFNet.TextSearch.Mode.e_whole_word + PDFNet.TextSearch.Mode.e_page_stop; // Uses both whole word and page stop
let pattern = '';
//use regular expression to find credit card number
mode += PDFNet.TextSearch.Mode.e_reg_expression + PDFNet.TextSearch.Mode.e_highlight;
txtSearch.setMode(mode);
pattern = '\\d{4}-\\d{4}-\\d{4}-\\d{4}'; // or "(\\d{4}-){3}\\d{4}"
txtSearch.setPattern(pattern);
//call Begin() method to initialize the text search.
txtSearch.begin(doc, pattern, mode);
const result = await txtSearch.run();
if (result.code === PDFNet.TextSearch.ResultCode.e_found) {
// add a link annotation based on the location of the found instance
hlts = result.highlights;
await hlts.begin(doc); // is await needed?
while (await hlts.hasNext()) {
const curPage = await doc.getPage(await hlts.getCurrentPageNumber());
const quadArr = await hlts.getCurrentQuads();
for (let i = 0; i < quadArr.length; ++i) {
const currQuad = quadArr[i];
const x1 = Math.min(Math.min(Math.min(currQuad.p1x, currQuad.p2x), currQuad.p3x), currQuad.p4x);
const x2 = Math.max(Math.max(Math.max(currQuad.p1x, currQuad.p2x), currQuad.p3x), currQuad.p4x);
const y1 = Math.min(Math.min(Math.min(currQuad.p1y, currQuad.p2y), currQuad.p3y), currQuad.p4y);
const y2 = Math.max(Math.max(Math.max(currQuad.p1y, currQuad.p2y), currQuad.p3y), currQuad.p4y);
const hyperLink = await PDFNet.LinkAnnot.create(doc, await PDFNet.Rect.init(x1, y1, x2, y2));
await hyperLink.setAction(await PDFNet.Action.createURI(doc, 'http://www.apryse.com'));
await curPage.annotPushBack(hyperLink);
}
hlts.next();
}
}
}
PDFNet.runWithCleanup(main);
Search PDF files for text
Full code sample which shows how to use TextSearch to search text on PDF pages using regular expressions.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales