Trying to use PDF JS in a local Apache server and receiving the following error in console:
Uncaught Error: No PDFJS.workerSrc specified
This is very weird, because I'm following all that the examples specifies here http://mozilla.github.io/pdf.js/examples/.
I have, in my main folder, a sample file called file.pdf
and I'm just trying to display it. I did it by using a iframe with a file
parameter:
<iframe src="./web/viewer.html?file=http://localhost:99/PDF/arquivo.pdf" width="1800px" height="900px" />
And now I'm trying to use the JavaScript API to display it. I'm trying to do:
<!DOCTYPE html>
<html>
<head>
<script src="./build/pdf.js" type="text/javascript"></script>
<script type="text/javascript">
PDFJS.getDocument('arquivo.pdf').then(function(pdf) {
// Here I use it
})
</script>
</head>
<body>
</body>
</html>
If I try to include pdf.worker.js
manually, I receive:
GET http://localhost:99/PDF/build/pdf.worker.worker.js 404 (Not Found)
because it programmatically includes pdf.worker.js.
With the sample code I posted here, I receive a log and an error:
Error: No PDFJS.workerSrc specified pdf.js:249
at error (http://localhost:99/PDF/build/pdf.js:251:15)
at Object.WorkerTransport (http://localhost:99/PDF/build/pdf.js:2305:9)
at Object.getDocument (http://localhost:99/PDF/build/pdf.js:1805:15)
at http://localhost:99/PDF/:6:10 pdf.js:251
Warning: Unsupported feature "unknown" pdf.js:234
Uncaught Error: No PDFJS.workerSrc specified
Do I need to manually specify pdf.worker.js? Please, what can I try to solve this?
Thank you so much!
(*) - I can see a lack of good content and a well explained documentation of PDF.JS.
Worker-src is a Content Security Policy (CSP) Level 3 directive that was introduced to specify valid sources for worker scripts (worker, shared worker and service worker) Web Workers makes it possible to run a script operation in a background thread separate from the main execution thread of a web application.
A general-purpose, web standards-based platform for parsing and rendering PDFs. Download Demo GitHub Project. ©Mozilla and individual contributors. PDF.js is licensed under Apache, documentation is licensed under CC BY-SA 2.5.
I had a similar error and I fixed it by specifying the pdf.worker.js explicitly at the end of the 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';
}
Include compatibility.js to fix the "Uncaught Error: No PDFJS.workerSrc specified" error on IE11.
https://github.com/mozilla/pdf.js/blob/master/src/shared/compatibility.js
<script src="compatibility.js"></script>
<script src="pdf.js"></script>
compatibility.js implements any missing functionality required by PDFJS.
Note: It should be loaded before PDFJS, not after.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With