/// import * as pdfjsLib from "pdfjs-dist"; // Worker receives messages from main thread self.onmessage = async (e) => { try { const { buffer } = e.data; // Load PDF document from transferred ArrayBuffer const pdf = await pdfjsLib.getDocument({ data: buffer }).promise; let fullText = ""; // Process each page sequentially for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) { const page = await pdf.getPage(pageNum); const content = await page.getTextContent(); // Extract text from each item on the page for (const item of content.items) { if ('str' in item) { fullText += item.str + " "; } } // Optional: Send progress updates to main thread self.postMessage({ type: 'progress', page: pageNum, total: pdf.numPages }); } // Send final result back to main thread self.postMessage({ text: fullText }); } catch (error) { // Send error back to main thread self.postMessage({ error: error instanceof Error ? error.message : String(error) }); } }; __ __