最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue项目中,下载pdfjs压缩包,将pfdjs作为静态资源的方式使用pdfjs

    正文概述 掘金(下一秒)   2021-01-28   699

    demo,请参考demo地址

    版本:

        "vue": "^2.6.11",
        "pdfjs-dist": "^2.6.347"
    

    一、详细步骤

    1. 下载pdfjs的压缩包,并根据需求更改源代码,删除不必要的部分

    1. 到github上下载pdfjs的压缩包,减压后将其放于项目的根目录下的static下(或者放在public的pdfjs文件夹下)
    2. 下载地址:github.com/mozilla/pdf…

    2. 在组件中测试:

    利用viewer.html实现pdf文件的在线展示 ,注意:只能是绝对路径或者文件流

      window.open(`pdfjs/web/viewer.html?file=${this.pdfFileUrl}`); // pdfFileUrl为远程地址
      window.open(`pdfjs/web/viewer.html?file=test.pdf`); // 本地文件test.pdf 和viewer.html文件处于同级目录;
     测试的pdf地址:
     https://dakaname.oss-cn-hangzhou.aliyuncs.com/file/2018-12-28/1546003237411.pdf
     https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf
    

    3. 遇到报错信息:file origin does not match viewer’s

    遇到file origin does not match viewer’s 的报错信息,要到viewer.js文件中注释调下面几行用于判断远程地址的代码(因为pdf.js不支持跨域请求)

                //  if (origin !== viewerOrigin && protocol !== "blob:") {
                //   throw new Error("file origin does not match viewer's");
              // }
    

    4. 遇到报错信息:Uncaught SyntaxError: Unexpected token '<'

    vue-cli3及以上 项目中,下载的资源一定要放在public文件夹下;否则会报错 :Uncaught SyntaxError: Unexpected token '<'

    public下的pdfjs文件夹下:在使用的时候,是 pdfjs/... / 并未涉及public;

     window.open(`pdfjs/web/viewer.html?file=${this.pdfFileUrl}`); // pdfFileUrl为远程地址
    

    二、在组件中测试并使用

    Test.vue文件

    1. 新开一页展示pdf,window.open(url) 方式

    <template>
      <div class="test">
        <el-button type="danger" @click="previewPDF">点击预览pdf</el-button>
      </div>
    </template>
    <script>
    export default {
      methods: {
        previewPDF() {
          let pdfFileUrl =
            "https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf";
          window.open(`pdfjs/web/viewer.html?file=${pdfFileUrl}`); // 新开一页,展示pdf文档
        }
      }
    };
    </script>
    

    vue项目中,下载pdfjs压缩包,将pfdjs作为静态资源的方式使用pdfjs

    2. 在当前页展示pdf, iframe方式

    <template>
      <div class="test">
        <el-button v-if="!pdfFileUrl" type="danger" @click="previewPDF"
          >点击预览pdf</el-button
        >
        <iframe
          v-if="pdfFileUrl"
          :src="'pdfjs/web/viewer.html?file=' + pdfFileUrl"
          class="pdf-viewer"
        />
      </div>
    </template>
    <script>
    export default {
      data() {
        return {
          pdfFileUrl: ""
        };
      },
      methods: {
        previewPDF() {
          this.pdfFileUrl ="https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf";
        }
      }
    };
    </script>
    <style lang="scss">
    .pdf-viewer {
      height: 100vh;
      width: 100vw;
    }
    .test {
      overflow-x: hidden;
    }
    </style>
    

    vue项目中,下载pdfjs压缩包,将pfdjs作为静态资源的方式使用pdfjs

    详细demo,请参考demo地址

    vue项目中,npm install方式使用pdfjs,请参考 博客

    此篇文章参考了:博客,详细信息可前往该博客查看。


    起源地下载网 » vue项目中,下载pdfjs压缩包,将pfdjs作为静态资源的方式使用pdfjs

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元