2017-02-04 2 views
0

-je utiliser pdfjs importés comme suitUnhandled Erreur: Undefined variable: PDFJS seulement avec Opera

<script type="text/javascript" src="https://rawgithub.com/mozilla/pdf.js/gh-pages/build/pdf.js"></script> 

J'ai script pour le rendu des fichiers PDF sur la toile:

function renderPDF(url, canvas_name, scale) { 
    function renderPage(page) { 
     var canvas = $("#"+canvas_name)[0]; 
     var ctx = canvas.getContext('2d'); 
     var viewport = page.getViewport(canvas.width/page.getViewport(scale).width); 
     var renderContext = { 

      canvasContext: ctx, 
      viewport: viewport 
     }; 

     canvas.height = viewport.height; 
     canvas.width = viewport.width; 

     page.render(renderContext); 
    } 
    function renderPages(pdfDoc) { 
     pdfDoc.getPage(1).then(renderPage); 
    } 
    PDFJS.disableWorker = true; 
    PDFJS.getDocument(url).then(renderPages); 
}; 

Il fonctionne parfaitement avec Chrome et Firefox. Mais avec Opera, j'obtiens l'erreur suivante

Unhandled Error: Undefined variable: PDFJS 

Qu'est-ce que je fais mal?

EDIT:

Maintenant, je remarque que dans Firefox Je reçois d'erreur suivant forme pdf.js dans la console (même si elle fonctionne comme prévu):

Error: Invalid parameter in getDocument, need either Uint8Array, string or a parameter object 
+1

Vous ne devriez pas charger pdfJS directement à partir de GitHub - il n'est pas un CDN. Téléchargez-le sur votre serveur ou trouvez un CDN – mplungjan

+0

@mplungjan Ok, maintenant il ne génère aucune erreur. Mais ne fonctionne pas non plus. Je vais mettre à jour la question. – matousc

+0

S'il vous plaît noter que OPERA comprend pdfjs comme un moteur de rendu. Peut-être qu'il y a un conflit – mplungjan

Répondre

0

problème a été résolu quand je téléchargez le pdfjs et utilisez-le localement, comme suggéré par mplungjan.

En outre, il est nécessaire de charger plusieurs fichiers dans modèle exactement dans cet ordre:

<script src="js/pdfjs/web/compatibility.js"></script> 
<script src="js/pdfjs/build/pdf.js"></script> 
<script src="js/pdfjs/build/pdf.worker.js"></script>