В запросе на вытягивание № 8724 был реализован одностраничный просмотрщик. Было бы неплохо иметь пример компонентов в папке examples
, демонстрирующий, как использовать эту программу просмотра.
Привет! Я бы хотел заняться этим вопросом. Я впервые решаю проблему на 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:
Большое спасибо за уделенное время!
Самый полезный комментарий
Учитывая, что
PDFSinglePageViewer
реализует тот же интерфейс, что иPDFViewer
, в основе нового примера https://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.js было бы гораздо более подходящей отправной точкой.