• 关于 js 下载PDF文件时


    1.原因:google浏览器内部判断了是不是PDF ,如果是就会启动内置的PDF阅读器。

    解决:file-saver

    import FileSave from 'file-saver';
    
    
    downloadPDF(URLToPDF,PDFName) {
          var oReq = new XMLHttpRequest();
          oReq.open("GET", URLToPDF, true);
          oReq.responseType = "blob";
          oReq.onload = function() {
            var file = new Blob([oReq.response], { 
                type: 'application/pdf' 
            });
            FileSave.saveAs(file, PDFName);
          };
          oReq.send();
     },
    

    2.预览pdf文件

      a.使用vue-pdf

      

     
    
    <div class="button-wrapper">
          <el-button class="left" :disabled="page === 1" @click="pageReduce">上一页</el-button>
          <el-button class="right" :disabled="page === numPages" @click="pageAdd">下一页</el-button>
         </div>
         <div class="middle">
            <pdf
            ref="pdf"
            :src="src"
            :page="page"
            @progress="loadedRatio = $event"
            @error="error" @num-pages="numPages = $event" @link-clicked="page = $event"
          ></pdf>
    
    
    import pdf from 'vue-pdf'
    export default {
        data() {
         
          return {
            show: false,
            src: `http://${window.location.host}/static/test.pdf`,
            loadedRatio: 0,
            page: 1,
            numPages: 0,
          }
        },
        components: {
          pdf
        },
        methods: {
          pageAdd() {
            this.page ++ ;
            if(this.page >= this.numPages) {
              this.page = this.numPages
            }
          },
          pageReduce() {
            this.page -- ;
            if(this.page <= 1) {
              this.page = 1
            }
          },
          dialogShow() {
            this.show = true
          },
          handleClose() {
            this.show = false
          },
          password: function(updatePassword, reason) {
    
            updatePassword(prompt('password is "test"'));
          },
          error: function(err) {
            console.log(err);
          }
        } 
      };
    

      b.iframe 嵌套

      

    <iframe :src="src" frameborder="0" style=" 100%; height: 100%"></iframe>
  • 相关阅读:
    Linux下安装配置SVN服务器,windows访问
    Zookeeper集群版搭建
    Zookeeper单机版启动
    Nginx-Session缓存一致性-memcached
    Nginx-配置多台Tomcat-反向代理
    Linux-tomcat-安装启动
    Linux-JDK-环境搭建安装
    Nginx-安装-运行访问页面
    Linux-虚拟机-克隆-学习
    解决CocosCreator 在微信小游戏中使用Socket.io 报错的问题
  • 原文地址:https://www.cnblogs.com/tutao1995/p/13223760.html
Copyright © 2020-2023  润新知