PDF预览 (引入pdf.js)

pdf.js是一款开源的pdf文档读取解析插件,据说在HTML5下诞生的,对于主流的浏览器基本都支持。

pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,,一个负责API解析,一个负责核心解析

程序的结构翻译
build/

pdf.js                      display layer,显示层采用核心层并且暴露了一个更容易使用的API来渲染PDF文件,并获得其他的资料出文                                 件。该API基于不同的版本号而不同。

pdf.worker.js         core layer         core层是PDF解析和解释核心功能,是所有其它层的基础

web/

cmaps/                  character maps(required by core)  字符映射(core层需要的资源)

compatibility.js       polyfills for missing features           Polyfilling 是由 RemySharp提出的一个术语,它是用来描述复制缺少的                                    API和API功能的行为。

09.pdf                    test pdf                                            测试用的pdf文件

debugger.js           helpful pdf debugging features

images/                 images for the viewer and annotation icons                 viewer界面的图标

l10n.js                   localization

扫描二维码关注公众号,回复: 4315910 查看本文章

locale/                   translation files                                  翻译文件,包含所有支持语言的翻译资源

viewer.css             viewer style sheet                             viewer界面的css

viewer.html            viewer html,viewer主界面

viewer.js                viewer layer,viewer界面的js,页面参数包括加载的PDF文件路径都在这里设置

在viewer.js中,var DEFAULT_URL 是默认的PDF文件地址,当动态加载文件时,要删除这个字段,在HTML中,

<script type="text/javascript">   
        var BASE64_MARKER = ';base64,';
        var preFileId = "";
        var pdfAsDataUri = "";
        var DEFAULT_URL
        $(document).ready(function () {
            Request = GetRequest();
                preFileId = Request["id"];
                $.ajax({
                    type: "post",
                    async: false,                    
                    contentType: "application/pdf;charset=utf-8",
                    url: 读取文件流地址,
                    success: function (data) {
                        var pdfAsDataUri = data;
                        var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
                        DEFAULT_URL = pdfAsArray;
                    }
                });
        });

        function convertDataURIToBinary(dataURI) {   //编码转换
            var raw = window.atob(dataURI);//这个方法在ie内核下无法正常解析。
            var rawLength = raw.length;
            //转换成pdf.js能直接解析的Uint8Array类型
            var array = new Uint8Array(new ArrayBuffer(rawLength));
            for (i = 0; i < rawLength; i++) {
                array[i] = raw.charCodeAt(i) & 0xff;
            }
            return array;
        }
</script>
下载pdf.zip的地址:https://pan.baidu.com/s/1EkXSzn7Z4CrutTg4GqeIgw

https://blog.csdn.net/xiangcns/article/details/42089189

猜你喜欢

转载自blog.csdn.net/J_M_S_H_T/article/details/83273192