Pdf.js: Redacte un ejemplo para el visor de una sola página

Creado en 24 sept. 2017  ·  8Comentarios  ·  Fuente: mozilla/pdf.js

En la solicitud de extracción n. ° 8724 se implementó un visor de una sola página. Sería bueno tener un ejemplo de componentes en la carpeta examples que demuestre cómo usar este visor.

1-other 5-good-beginner-bug

Comentario más útil

En la carpeta de componentes, pageviewer.js es un ejemplo que usa pdf_page_view.js para mostrar archivos pdf normalmente. Necesito crear un ejemplo como singlepageviewer.js que use pdf_single_page_viewer.js.

Considerando que PDFSinglePageViewer implementa la misma interfaz que PDFViewer , basando el nuevo ejemplo en https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js sería un punto de partida mucho más apropiado.

Todos 8 comentarios

¡Hola! Me gustaría abordar este problema. Esta es la primera vez que resuelvo un problema en Github, así que me encantaría que me ayudaran a descubrir cómo empezar.
Ya tengo una copia local ejecutándose con el servidor de gulp.

Hay ejemplos de componentes en la carpeta https://github.com/mozilla/pdf.js/tree/master/examples/components . El objetivo de este parche es agregar un ejemplo que use PDFSinglePageViewer . Al igual que los otros ejemplos allí, solo puede cargar el archivo PDF de Tracemonkey predeterminado.

¡Gracias! Intentaré trabajar en esto.

Entonces, me estoy confundiendo un poco aquí. Esto es lo que entendí:
En la carpeta de componentes, pageviewer.js es un ejemplo que usa pdf_page_view.js para mostrar archivos pdf normalmente. Necesito crear un ejemplo como singlepageviewer.js que use pdf_single_page_viewer.js.

¿Estoy por el camino correcto hasta ahora?

Entonces, ¿básicamente es esto lo que necesito editar desde el archivo pageviewer.js para que haga uso del visor de una sola página?

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();
  });

Esto es lo que contiene singlepageviewer.js como la parte editada:

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();
  });

¿Mi enfoque hasta ahora tiene sentido?

¡Muchas gracias por su tiempo!

Volver a publicar el comentario con el formato adecuado.

En la carpeta de componentes, pageviewer.js es un ejemplo que usa pdf_page_view.js para mostrar archivos pdf normalmente. Necesito crear un ejemplo como singlepageviewer.js que use pdf_single_page_viewer.js.

Considerando que PDFSinglePageViewer implementa la misma interfaz que PDFViewer , basando el nuevo ejemplo en https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js sería un punto de partida mucho más apropiado.

¡Gracias por ese consejo!
Envié una solicitud de extracción https://github.com/mozilla/pdf.js/pull/8989. Revíselo y avíseme si desea realizar algún cambio.

Editar:
No sé si me falta algo aquí, pero ninguno de los ejemplos de componentes muestra nada en el navegador en http://localhost:8888/examples/components/{anyfile}.html . La consola muestra los siguientes errores:

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

No sé si me falta algo aquí, pero ninguno de los ejemplos de componentes muestra nada en el navegador en http: // localhost : 8888 / examples / components / {anyfile} .html. La consola muestra los siguientes errores:

Como se menciona en los archivos *.js de los ejemplos, consulte, por ejemplo, aquí , ¿ejecutó gulp dist-install ?

¡Gracias!
Aquí está la solicitud de extracción que incluye todos los cambios revisados ​​y de acuerdo con la wiki de Contribuciones y Compromisos de aplastamiento: https://github.com/mozilla/pdf.js/pull/8990
¡Muchas gracias por su tiempo!

¿Fue útil esta página
0 / 5 - 0 calificaciones