Нет PDFJS.workerSrc specified

попытка использовать PDF JS на локальном сервере Apache и получение следующей ошибки в консоли:

Uncaught Error: No PDFJS.workerSrc specified

это очень странно, потому что я следую всем, что примеры указывают здесь http://mozilla.github.io/pdf.js/examples/.

у меня есть в моей основной папке пример файла под названием file.pdf и я просто пытаюсь отобразить его. Я сделал это, используя iframe с

5 ответов


У меня была аналогичная ошибка, и я исправил ее, указав pdf.работник.JS явно в конце pdf.js

if (!PDFJS.workerSrc && typeof document !== 'undefined') {
  // workerSrc is not set -- using last script url to define default location
  ****** I have no clue what the code below hope to accomplish ********
  ****** How can it locate the script container by assuming it ********
  ****** always would be at the end of <body> or <head> ????   ********
  PDFJS.workerSrc = (function () {
    'use strict';
    var scriptTagContainer = document.body ||
                             document.getElementsByTagName('head')[0];
    var pdfjsSrc = scriptTagContainer.lastChild.src;
    return pdfjsSrc && pdfjsSrc.replace(/\.js$/i, '.worker.js');
  })();


  ****** Here I just hardcode the location of the needed file *********
  ****** This is the part that makes it work.                 *********
  ****** Obviously, tailor this to the same path of pdf.js    *********
  PDFJS.workerSrc = '/static/js/pdf.worker.js';
}

включить совместимость.в JS чтобы исправить "ошибку непойманные: нет PDFJS.workerSrc указан " ошибка в IE11.

https://github.com/mozilla/pdf.js/blob/master/src/shared/compatibility.js

<script src="compatibility.js"></script>
<script src="pdf.js"></script>

совместимость.js реализует любую отсутствующую функциональность, требуемую PDFJS.

Примечание: он должен быть загружен до PDFJS, не после.


укажите psd.работник.путь к файлу js на странице, где вы хотите использовать pdf.JS файл (viewer.html в случае, если вы используете viewer.html поставляется с дистрибутивным пакетом), как это. Это работает на меня.

<script>
    PDFJS.workerSrc ='path to psd.worker.js';


Я добавил ниже код в конце pdf.JS и работает нормально

if (!PDFJS.workerSrc && typeof document !== 'undefined') {
  PDFJS.workerSrc = (function () {
    'use strict';
    var scriptTagContainer = document.body ||
                             document.getElementsByTagName('head')[0];
    var pdfjsSrc = scriptTagContainer.lastChild.src;
    return pdfjsSrc && pdfjsSrc.replace(/\.js$/i, '.worker.js');
  })();
  PDFJS.workerSrc = 'pdf.worker.js';
}

перейти к pdf.js

функция поиска getWorkerSrc ()

заменить эти строки

pdfjsFilePath = "YOUR_PATH_TO_JS_FILE/pdf.worker.js";
if (pdfjsFilePath) {
  return pdfjsFilePath;
}