Pdf.js: Составьте пример для просмотра одной страницы

Созданный на 24 сент. 2017  ·  8Комментарии  ·  Источник: mozilla/pdf.js

В запросе на вытягивание № 8724 был реализован одностраничный просмотрщик. Было бы неплохо иметь пример компонентов в папке examples , демонстрирующий, как использовать эту программу просмотра.

1-other 5-good-beginner-bug

Самый полезный комментарий

В папке компонентов pageviewer.js является примером, который использует pdf_page_view.js для обычного отображения файлов pdf. Мне нужно создать пример, например singlepageviewer.js, который использует pdf_single_page_viewer.js.

Учитывая, что PDFSinglePageViewer реализует тот же интерфейс, что и PDFViewer , в основе нового примера https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js было бы гораздо более подходящей отправной точкой.

Все 8 Комментарий

Привет! Я бы хотел заняться этим вопросом. Я впервые решаю проблему на Github, поэтому я был бы рад, если бы вы помогли мне понять, с чего начать.
У меня уже есть локальная копия, работающая с сервером gulp.

Примеры компонентов находятся в папке https://github.com/mozilla/pdf.js/tree/master/examples/components . Цель этого патча - добавить пример, в котором используется PDFSinglePageViewer . Как и другие примеры, он может просто загрузить PDF-файл Tracemonkey по умолчанию.

Благодаря! Я постараюсь над этим поработать.

Итак, я здесь немного запутался. Вот что я понял:
В папке компонентов pageviewer.js является примером, который использует pdf_page_view.js для обычного отображения файлов pdf. Мне нужно создать пример, например singlepageviewer.js, который использует pdf_single_page_viewer.js.

Я до сих пор на правильном пути?

Итак, в основном это то, что мне нужно отредактировать из файла pageviewer.js, чтобы он использовал одностраничный просмотрщик?

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

Вот что содержит файл singlepageviewer.js в качестве отредактированной части:

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

Имеет ли мой подход до сих пор смысл?

Большое спасибо за уделенное время!

Репост комментария с правильным форматированием.

В папке компонентов pageviewer.js является примером, который использует pdf_page_view.js для обычного отображения файлов pdf. Мне нужно создать пример, например singlepageviewer.js, который использует pdf_single_page_viewer.js.

Учитывая, что PDFSinglePageViewer реализует тот же интерфейс, что и PDFViewer , в основе нового примера https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js было бы гораздо более подходящей отправной точкой.

Спасибо за совет!
Я отправил запрос на перенос https://github.com/mozilla/pdf.js/pull/8989. Просмотрите его и дайте мне знать, если нужно внести какие-либо изменения.

Редактировать:
Я не знаю, упустил ли я что-то здесь, но ни один из примеров компонентов ничего не отображает в браузере по адресу http://localhost:8888/examples/components/{anyfile}.html . Консоль показывает следующие ошибки:

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

Я не знаю, не хватает ли мне чего-то здесь, но ни один из примеров компонентов ничего не отображает в браузере по адресу http: // localhost : 8888 / examples / components / {anyfile} .html. Консоль показывает следующие ошибки:

Как упоминалось в файлах *.js примеров, см., Например, здесь , вы запускали gulp dist-install ?

Понял, спасибо!
Вот запрос на вытягивание, включающий все проверенные вами изменения и согласно вики- странице Contributing and Squashing Commits:
Большое спасибо за уделенное время!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги