abc123aaaa Ответов: 1

Ошибка " rangeerror: превышен максимальный размер стека вызовов"


Я пытаюсь получить данные формы из pdf-файла с помощью PDF.js но попал выше ошибки.Я скачал pdf.js файл из Здесь[^]

Что я уже пробовал:

var tmppath = URL.createObjectURL(document.getElementById('flupd').files[0]);
      PDFJS.workerSrc = "js/pdf.worker.js";
      PDFJS.getDocument(tmppath).then(function getPdfHelloWorld(pdf) {
         
      pdf.getData().then(function (arrayBuffer) {                  
      var pdfraw = String.fromCharCode.apply(null, arrayBuffer);  //getting error here
                
                });
            });

1 Ответов

Рейтинг:
2

Jochen Arndt

Видеть Функция.прототип.применить() - JavaScript-кода | МДН[^]:

Цитата:
Метод apply () вызывает функцию с заданным значением this и аргументами, представленными в виде массива.
Это означает, что String.fromCharCode вызывается с таким количеством аргументов, сколько элементов в массиве. Но существует ограничение на максимальное количество аргументов, которые могут быть переданы функции (обычно около 64 КБ). Вы достигли этого предела, на который указывает сообщение об ошибке.

Решение:
Используйте цикл для вызова String.fromCharCode для каждого элемента массива или использовать текстовый декодер (напр. TextDecoder("utf-8").decode(arrayBuffer)).