Вот код, который у меня сейчас есть:
Код: Выделить всё
import * as pdfjsLib from 'pdfjs-dist';
import Tesseract from 'tesseract.js';
pdfjsLib.GlobalWorkerOptions.workerSrc = 'pdfjs-dist/build/pdf.worker.js'; // Important!
async function extractTextFromPDF(file) {
const fileReader = new FileReader();
fileReader.readAsArrayBuffer(file);
const arrayBuffer = await new Promise((resolve, reject) => {
fileReader.onload = event => resolve(event.target.result);
fileReader.onerror = error => reject(error);
});
const pdf = await pdfjsLib.getDocument(arrayBuffer).promise;
const page = await pdf.getPage(1); // Get the first page
const viewport = page.getViewport({ scale: 1.0 });
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
await page.render({ canvasContext: context, viewport: viewport }).promise;
const { data: { text } } = await Tesseract.recognize(
canvas,
'eng', // Language
{ logger: m => console.log(m) } // Optional logging
);
console.log(text);
return text;
}
extractTextFromPDF('your_pdf.pdf');
Что я могу сделать, чтобы он работал как в веб-работнике, так и в в средах Node.js? Я не смог найти никаких решений или руководств в Интернете или где-либо еще.
Буду очень признателен за помощь.
Я пробовал Tesseract OCR, но он не работает, как и pdfjs.
Подробнее здесь: https://stackoverflow.com/questions/793 ... eb-workers
Мобильная версия