码迷,mamicode.com
首页 > Web开发 > 详细

JS通过使用PDFJS实现基于文件流的预览功能

时间:2016-03-11 14:09:26      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

需求:

使用JS实现PDF文件预览功能

备选方案:

  1. 使用ViewerJS,官网  http://viewerjs.org/
  1. 使用PDFJS,官网  https://mozilla.github.io/pdf.js/

结论:

通过研究发现,Viewer JS预览pdf文件,其pdf文件只能url地址,不支持获取文件流到客户端,生成blob地址预览。而PDFJS能够支持

代码实践:

<div class="modal inmodal fade" id="previewModal" tabindex="-1" role="dialog" aria-hidden="true">

    <div style="width:60%;height:90%" class="modal-dialog modal-lg">

        <div class="modal-content">

            <div class="modal-body" style="padding:0; height:700px">

                <iframe id="iframePreview" width=‘100%‘ height=‘700‘ allowfullscreen webkitallowfullscreen></iframe>

            </div>

        </div>

    </div>

</div>

 

this.previewFile = function (fileUrl,fileType) {

    getBlobUrl(fileUrl, fileType, callBack);

    function callBack(data) {

        var fileURL= data;

        $("#iframePreview").attr("src", ‘vendor/pdfjs/web/viewer.html?file=‘ + fileURL);

        $(‘#previewModal‘).modal();

    }

}; 

 

this.getBlobUrl = function (url, fileType, callBack) {

    sendRequest({ url: url, responseType: ‘arraybuffer‘ },

        function (data) {

            var file = new Blob([new Uint8Array(data)], { type: ‘application/octet-stream‘ });

            var fileURL = URL.createObjectURL(file);

            fileURL = encodeURIComponent(fileURL).replace(‘blob:http‘, ‘blob:https‘);

            fileURL = fileURL.replace(‘%3A9090‘, ‘‘);

            callBack(fileURL);

        });

};  

 

JS通过使用PDFJS实现基于文件流的预览功能

标签:

原文地址:http://www.cnblogs.com/xiaxianfei/p/5265247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!