Извлечение текста из PDF с использованием JavaScript
Извлечение текста со всех страниц PDF-документа
Извлечение текста из PDF не является простой задачей. Не многие PDF-ридеры могут извлекать текст из изображений PDF или отсканированных PDF. Но инструмент Aspose.PDF для JavaScript через C++ позволяет легко извлекать текст из любого PDF-файла.
Посмотрите фрагмент кода и следуйте шагам, чтобы извлечь текст из вашего PDF:
-
Выберите PDF-файл для извлечения текста.
-
Создайте ‘FileReader’ для чтения текста.
-
Функция AsposePdfExtractText выполняется.
-
Далее, если ‘json.errorCode’ равно 0, то ‘json.extractText’ будет содержать извлеченный контент. Если параметр ‘json.errorCode’ не равен 0 и, соответственно, в вашем файле будет ошибка, то информация об этой ошибке будет содержаться в ‘json.errorText’.
-
В результате вы получите строку с извлеченным текстом из вашего PDF.
var ffileExtract = function (e) {
const file_reader = new FileReader();
file_reader.onload = (event) => {
/*Извлечение текста из PDF-файла*/
const json = AsposePdfExtractText(event.target.result, e.target.files[0].name);
if (json.errorCode == 0) document.getElementById('output').textContent = json.extractText;
else document.getElementById('output').textContent = json.errorText;
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};
Использование Web Workers
/*Создать Web Worker*/
const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
AsposePDFWebWorker.onerror = evt => console.log(`Ошибка от Web Worker: ${evt.message}`);
AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent =
(evt.data == 'ready') ? 'загружено!' :
(evt.data.json.errorCode == 0) ?
evt.data.json.extractText :
`Ошибка: ${evt.data.json.errorText}`;
/*Обработчик событий*/
const ffileExtract = e => {
const file_reader = new FileReader();
file_reader.onload = event => {
/*Извлечение текста из PDF-файла - запрос Web Worker*/
AsposePDFWebWorker.postMessage(
{ "operation": 'AsposePdfExtractText', "params": [event.target.result, e.target.files[0].name] },
[event.target.result]
);
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};