Pdf.js: Rédiger un exemple pour le visualiseur de page unique

Créé le 24 sept. 2017  ·  8Commentaires  ·  Source: mozilla/pdf.js

Dans la demande d'extraction n ° 8724, un afficheur de page unique a été implémenté. Ce serait bien d'avoir un exemple de composants dans le dossier examples qui montre comment utiliser cette visionneuse.

1-other 5-good-beginner-bug

Commentaire le plus utile

Dans le dossier des composants, pageviewer.js est un exemple qui utilise pdf_page_view.js pour afficher normalement les fichiers pdf. J'ai besoin de créer un exemple comme singlepageviewer.js qui utilise pdf_single_page_viewer.js.

Considérant que PDFSinglePageViewer implémente la même interface que PDFViewer , basant le nouvel exemple sur https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js serait un point de départ beaucoup plus approprié.

Tous les 8 commentaires

Salut! J'aimerais aborder ce problème. C'est la première fois que je résolve un problème sur Github, je serais donc ravi si vous pouviez m'aider à trouver comment commencer.
J'ai déjà une copie locale en cours d'exécution avec le serveur gulp.

Il existe des exemples de composants dans le dossier https://github.com/mozilla/pdf.js/tree/master/examples/components . L'objectif de ce patch est d'ajouter un exemple qui utilise PDFSinglePageViewer . Comme les autres exemples, il peut simplement charger le fichier PDF Tracemonkey par défaut.

Merci! J'essaierai de travailler là-dessus.

Donc, je suis un peu confus ici. Voici ce que j'ai compris:
Dans le dossier des composants, pageviewer.js est un exemple qui utilise pdf_page_view.js pour afficher normalement les fichiers pdf. J'ai besoin de créer un exemple comme singlepageviewer.js qui utilise pdf_single_page_viewer.js.

Suis-je sur la bonne voie jusqu'à présent?

Est-ce donc essentiellement ce que j'ai besoin de modifier à partir du fichier pageviewer.js pour qu'il utilise le visualiseur de page unique?

return pdfDocument.getPage(PAGE_TO_VIEW).then(function (pdfPage) {
    // Creating the page view with default parameters.
    var pdfPageView = new PDFJS.PDFPageView({
      container: container,
      id: PAGE_TO_VIEW,
      scale: SCALE,
      defaultViewport: pdfPage.getViewport(SCALE),
      // We can enable text/annotations layers, if needed
      textLayerFactory: new PDFJS.DefaultTextLayerFactory(),
      annotationLayerFactory: new PDFJS.DefaultAnnotationLayerFactory()
    });
    // Associates the actual page with the view, and drawing it
    pdfPageView.setPdfPage(pdfPage);
    return pdfPageView.draw();
  });

Voici ce que singlepageviewer.js contient comme partie modifiée:

return pdfDocument.getPage(PAGE_TO_VIEW).then(function (pdfPage) {
    // Creating the page view with default parameters.
    var pdfSinglePageView = new PDFJS.PDFSinglePageViewer({
      container: container,
      id: PAGE_TO_VIEW,
      scale: SCALE,
      defaultViewport: pdfPage.getViewport(SCALE),
      // We can enable text/annotations layers, if needed
      textLayerFactory: new PDFJS.DefaultTextLayerFactory(),
      annotationLayerFactory: new PDFJS.DefaultAnnotationLayerFactory()
    });
    // Associates the actual page with the view, and drawing it
    pdfSinglePageView.setPdfPage(pdfPage);
    return pdfSinglePageView.draw();
  });

Mon approche a-t-elle pour l'instant du sens?

Merci beaucoup pour votre temps!

Republier le commentaire avec un formatage approprié.

Dans le dossier des composants, pageviewer.js est un exemple qui utilise pdf_page_view.js pour afficher normalement les fichiers pdf. J'ai besoin de créer un exemple comme singlepageviewer.js qui utilise pdf_single_page_viewer.js.

Considérant que PDFSinglePageViewer implémente la même interface que PDFViewer , basant le nouvel exemple sur https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js serait un point de départ beaucoup plus approprié.

Merci pour ce conseil!
J'ai soumis une demande d'extraction https://github.com/mozilla/pdf.js/pull/8989. Veuillez l'examiner et me faire savoir si des modifications doivent être apportées.

Éditer:
Je ne sais pas s'il me manque quelque chose ici mais aucun des exemples de composants n'affiche quoi que ce soit dans le navigateur à http://localhost:8888/examples/components/{anyfile}.html . La console affiche les erreurs suivantes:

singlepageviewer.html:38 GET http://localhost:8888/node_modules/pdfjs-dist/web/pdf_viewer.css net::ERR_ABORTED
singlepageviewer.html:40 GET http://localhost:8888/node_modules/pdfjs-dist/build/pdf.js net::ERR_ABORTED
singlepageviewer.html:41 GET http://localhost:8888/node_modules/pdfjs-dist/web/pdf_single_page_viewer.js net::ERR_ABORTED
singlepageviewer.js:18 Uncaught ReferenceError: PDFJS is not defined
    at singlepageviewer.js:18

Je ne sais pas s'il me manque quelque chose ici, mais aucun des exemples de composants n'affiche quoi que ce soit dans le navigateur à l' adresse http: // localhost : 8888 / examples / components / {anyfile} .html. La console affiche les erreurs suivantes:

Comme mentionné dans les fichiers *.js des exemples, voyez par exemple ici , avez-vous exécuté gulp dist-install ?

Je l'ai Merci!
Voici la pull request incluant toutes vos modifications révisées et selon le wiki Contributing and Squashing Commits: https://github.com/mozilla/pdf.js/pull/8990
Merci beaucoup pour votre temps!

Cette page vous a été utile?
0 / 5 - 0 notes