如何将工具栏查看器添加到PDF.js

时间:2017-08-06 13:56:55

标签: javascript jquery html pdf pdf.js

我试图在我的项目上实施PDF.js,但它比预期的要难。

目前,我能够在div中渲染整个PDF,但我无法渲染标准工具栏查看器;您可以在此演示页面的顶部看到我想要的示例:https://mozilla.github.io/pdf.js/web/viewer.html

我的JS代码目前看起来像这样:



var url = '/filemanager/example.pdf';
var pdfScale = 1;
PDFJS.workerSrc = '/js/pdfJs/build/pdf.worker.js';

function renderPDF(url, canvasContainer, options) {
    var options = options || { scale: pdfScale };

    function renderPage(page) {
        var viewport = page.getViewport(options.scale);
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        var renderContext = {
            canvasContext: ctx,
            viewport: viewport
        };

        canvas.height = viewport.height;
        canvas.width = viewport.width;
        canvasContainer.appendChild(canvas);

        page.render(renderContext);
    }

    function renderPages(pdfDoc) {
        for(var num = 1; num <= pdfDoc.numPages; num++)
            pdfDoc.getPage(num).then(renderPage);
    }
    PDFJS.disableWorker = true;
    PDFJS.getDocument(url).then(renderPages);
}

renderPDF(url, document.getElementById('the-canvas'));
&#13;
<div id="the-canvas" class="text-center" style="overflow: auto; max-height: 450px"></div>
&#13;
&#13;
&#13;

那么......工具栏查看器如何使用所有控件,如演示页?

2 个答案:

答案 0 :(得分:0)

请观看此视频:https://www.youtube.com/watch?v=TstpR_gGb-4

据说,在您下载了pdf.js之后,将pdf放在&#34; web&#34;文件夹,它将工作(使用工具栏),无需任何代码。

答案 1 :(得分:0)

很遗憾,PDF.js软件包maintainers have decided to remove viewer.html from their pre-built distribution NPM package因为:

担心最终用户将Firefox PDF Viewer与 自定义网站部署,这将增加我们的支持负担。

您可以手动复制此文件夹,但这意味着您还需要手动更新它,这对于现代Web应用程序开发而言不是理想的方法。

尽管他们已经为Web开发人员发布了可重用组件,但是关于如何实际利用这些组件的信息却很少:

我们正在缓慢地重构查看器以提供一组可嵌入的 API,因此自定义查看器可以轻松部署在自定义网站上 UI定制对网站开发人员的负担。看到 web / pdf_viewer文件和示例,网址为 https://github.com/mozilla/pdf.js/tree/master/examples/components#5552

我所获得的所有示例,文章和第三方包(对于我选择的框架)都是实现自己的UI功能。

如果有人有更多关于如何基于PDF.js组件构建示例,我们有兴趣阅读有关它的更多信息。