老莫的笔记本  
  
查看: 1046|回复: 2

PDF 与 IE 的战斗!在线显示PDF内容

[复制链接]

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
发表于 2018-7-10 17:13:54 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2018-7-10 17:16 编辑

等会儿!我先说一句!!!
让我死吧!!!!微软 我爱你 咱俩一起死吧!!!!!!!!!

开始:
        前景提要: 要用IE在线展示 pdf文件。版本要求 9+
我在度娘上一层一层的找代码,发现几个版本;
       1. 第一种: 直接 html代码搞定!【不兼容IE】, 为懒鬼准备我放下代码: (参考网址:https://www.cnblogs.com/xgyy/p/6119459.html )不要IE就这个不错
  1. <embed src="http://localhost/180709/zkzkzk.pdf"
  2.          id="review" style="width:800px;  height:750px; margin-top:45px;margin-left:500px" >
  3.     </embed>   
复制代码

      2. 第二种: 在第一种的基础上  到IE时候 弹个窗 让他下载插件!【或许该说是第一种的补充吧 不过 玛德我踩了这个坑 】;


      3. 重点 !划重点! 第三种!! 注意 支持IE9 及 以上版本。
      pdfobject.js  +   pdf.js      我先解释一下:                                pdfobject.js---------- 判断浏览器 是否 支持在线显示 pdf ;
pdf.js-------渲染pdf
      使用步骤:
              1. 下载  这两个不是一个东西 ,所以 得去两个地方下 有条件的可以百度。没条件的—— 没条件管我啥事?反正我写个自己看的!  
                            我把两个合一块了,下载地址: http://gis.dengmichong.top/images/在线演示pdf.zip
               2. 使用  来 把演示文件:index.html 里的代码复制粘贴出来 就可以 .不过配合iframe的封装我还没做 。贴一下吧:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <title></title>
  7. <style>
  8. .pdfobject-container {
  9. width: 100%;
  10. height:580px;
  11. }
  12. .pdfobject { border: solid 1px #666; }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="pdf"></div>
  17. <script src="./web/pdfobject.min.js"></script>
  18. <script>
  19. var options = {
  20.     pdfOpenParams: {
  21.         navpanes: 0,
  22.         toolbar: 0,
  23.         statusbar: 0,
  24.         view: "FitV",
  25.         pagemode: "thumbs",
  26.         page: 2
  27.     },
  28.     forcePDFJS: true,
  29.     PDFJS_URL: "./web/viewer.html"
  30. };
  31.     // 在底下的位置 修改 pdf 的路径 记得加上PDF
  32.     var myPDF = PDFObject.embed("http://localhost/180709/zkzkzk.pdf", "#pdf", options);
  33.     var el = document.querySelector("#results");
  34. </script>
  35. <script>
  36.     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  37.     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  38.     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  39.     })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  40.     ga('create', 'UA-1394306-6', 'auto');
  41.     ga('send', 'pageview');
  42. </script>
  43. </body>
  44. </html>
复制代码
         注意: 网上说 文件 一定要放到 web 文件夹里!但是实际情况却不是这样的。不过 要是相对目录的话 就得以WEB 目录为根 而不是以index.html 为根了。


   



回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-7-10 23:37:49 | 显示全部楼层
本帖最后由 周大胖子 于 2018-7-10 23:56 编辑

在这里 封装之前。我做点小调整
参考文献:  https://blog.csdn.net/atluckstar/article/details/77688972
需要明确: 1, 我是在展示页面内嵌iframe  然后通过点击按钮改变链接 达到展示不同 pdf 的目的
                 2.   达到目的的手段有两种 区别在于 内嵌的页是谁。  
                        2.1 第一种内嵌到 viewer 页面 改变参数 file  例如:  http://localhost/h5/pdf/180709/web/viewer.html?file=hhh.pdf
                                            这是他自己的设置 缺点在于 传的值 居然只能是 Web中 或者相对路径的 pdf 文件
                        2.2 第二种内嵌在外层 也就是我展示的这个页面  利用 它里面本来就可以传 绝对路径 做文章 把这个值作为参数 ,                               在url 中传进去并且 页面接收后。这个缺点嘛 实践多一步不说 重点是 中文名 和符号必须解析后传,然后再接收 转译 再使用。
用第一种 2.1 我发现  绝对路径也能传!中文也没问题!
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-7-12 08:52:35 | 显示全部楼层
本帖最后由 周大胖子 于 2018-7-12 09:00 编辑

综上所述最后使用方法:
  1. <iframe src="./../src/lib/pdfjs/web/viewer.html?file=/pdf/嘿.pdf" frameborder="0" class="lm-w100 lm-left-height"></iframe>
复制代码
后面的 class不用管, 前台控制iframe 中的 src 就行 。传参 : PDF的绝对路径。 ?file=路径
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表