No PDFJS.workerSrc specified

匿名 (未验证) 提交于 2019-12-03 02:24:01

问题:

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.

回答1:

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'; } 


回答2:

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.



回答3:

Specify psd.worker.js file path in your page where you want to use the pdf.js file (viewer.html in case you are using viewer.html come with distribution bundle) like this. It work for me.

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



回答4:

Go to pdf.js

search function getWorkerSrc()

replace this lines

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!