From 23c8291066c21a1c223aa16f8b14d024d538c1fd Mon Sep 17 00:00:00 2001 From: Gunjan Datta Date: Tue, 11 Aug 2026 15:24:02 -0400 Subject: [PATCH 1/4] Replace lib. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5b619cc..53f8df8 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "jszip": "^3.10.1", "mammoth": "^1.12.0", "moment": "^2.30.1", - "pdf-parse": "^2.4.5" + "pdfjs-dist": "^3.11.174" }, "devDependencies": { "@babel/core": "^7.26.0", @@ -44,4 +44,4 @@ "webpack": "^5.96.1", "webpack-cli": "^5.1.4" } -} \ No newline at end of file +} From 0aab1ed8739e4c5fff87b7d9d3509c6ca89d0c8e Mon Sep 17 00:00:00 2001 From: Gunjan Datta Date: Tue, 11 Aug 2026 15:24:34 -0400 Subject: [PATCH 2/4] Set required worker source. --- src/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.ts b/src/index.ts index 2196b23..be96e28 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,11 @@ import Strings, { setContext } from "./strings"; // Styling import "./styles.scss"; +// PDF - Set Worker Source +import * as pdfjsLib from "pdfjs-dist"; +import * as pdfWorker from "pdfjs-dist/build/pdf.worker.min.js"; +pdfjsLib.GlobalWorkerOptions.workerSrc = pdfWorker; + // Create the global variable for this solution const GlobalVariable = { Configuration, From 1efab583428b098452ceb163eb2e0ec6483d67ac Mon Sep 17 00:00:00 2001 From: Gunjan Datta Date: Tue, 11 Aug 2026 15:25:04 -0400 Subject: [PATCH 3/4] Replace pdf code for new lib. --- src/reports/searchDocs.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/reports/searchDocs.ts b/src/reports/searchDocs.ts index 6f3705c..c6455ed 100644 --- a/src/reports/searchDocs.ts +++ b/src/reports/searchDocs.ts @@ -4,7 +4,7 @@ import { Workbook } from "exceljs"; import { loadAsync } from "jszip"; import { extractRawText } from "mammoth"; import * as moment from "moment"; -import { PDFParse } from "pdf-parse"; +import * as pdfjsLib from "pdfjs-dist"; import { DataSource } from "../ds"; import { M365Groups } from "../m365Groups"; import { IRegexPattern } from "../regexPatternsDialog"; @@ -74,8 +74,22 @@ export class SearchDocs { break; case "pdf": // Get the content - let pdf = new PDFParse({ data: buffer }); - pdf.getText().then(content => { resolve(content.text); }).catch(reject); + pdfjsLib.getDocument({ data: buffer }).promise.then(pdf => { + let fullText = ''; + let pages = []; + for (let i = 0; i < pdf.numPages; i++) { pages.push(i); } + Helper.Executor(pages, pageNum => { + // Return a promise + return new Promise(resolve => { + pdf.getPage(pageNum + 1).then(page => { + page.getTextContent().then(content => { + fullText += content.items.map((item: any) => item.str || "").join(" "); + resolve(null); + }); + }); + }); + }).then(() => { resolve(fullText); }); + }).catch(reject); break; case "pptx": // Load the file From 8bf23f4a637967392ae06d44727cd697b4f169ea Mon Sep 17 00:00:00 2001 From: Gunjan Datta Date: Tue, 11 Aug 2026 15:26:44 -0400 Subject: [PATCH 4/4] Code cleanup. --- src/reports/searchDocs.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/reports/searchDocs.ts b/src/reports/searchDocs.ts index c6455ed..6fe03ba 100644 --- a/src/reports/searchDocs.ts +++ b/src/reports/searchDocs.ts @@ -76,13 +76,18 @@ export class SearchDocs { // Get the content pdfjsLib.getDocument({ data: buffer }).promise.then(pdf => { let fullText = ''; + + // Parse the pages let pages = []; for (let i = 0; i < pdf.numPages; i++) { pages.push(i); } Helper.Executor(pages, pageNum => { // Return a promise return new Promise(resolve => { + // Get the page pdf.getPage(pageNum + 1).then(page => { + // Get the text page.getTextContent().then(content => { + // Append the text fullText += content.items.map((item: any) => item.str || "").join(" "); resolve(null); });