当前位置: 首页 > article >正文

VUE + pdfh5 实现pdf 预览,主要用来uniappH5实现嵌套预览PDF

1. 安装依赖

npm install pdfh5 

2. pdfh5 预览(移动端,h5)

npm install pdfh5 , (会报错,需要其他依赖,不能直接用提示的语句直接npm下载,依旧会报错,npm报错:These dependencies were not found:* canvas in ./node_modules/pdfh5/js/pdf.js* dommatrix/dist/d )

npm install canvas

 vue2 实例

  • vue 文件中 创建div 节点
  • <template>
      <div class="wrap">
        <div id="demo"></div>
      </div>
    </template>
  • js 中配置
  • <script>
    import Pdfh5 from "pdfh5";  // 这两个一定要引入
    import "pdfh5/css/pdfh5.css"; // 这两个一定要引入, 这个是在加载时,顶部会出来一个加载进度条和一些其他的样式
    export default {
      name: "openPdf",
      data() {
        return {
          pdfh5: null,
        };
      },
      mounted() {
        // ---------------------------- 方法一 -----------------------------
        this.pdfh5 = new Pdfh5("#demo", {
          pdfurl: "https://www.*********uanfu.pdf", // pdf 地址,请求的地址需要为线上的地址,测试的本地的地址是不可以的
          lazy: true, // 是否懒加载
          withCredentials: true,
          renderType: "svg",
          maxZoom: 3, //手势缩放最大倍数 默认3
          scrollEnable: true, //是否允许pdf滚动
          zoomEnable: true, //是否允许pdf手势缩放
        });
        // --------------------------- 方法二 ---------------------------
        //实例化
        this.pdfh5 = new Pdfh5("#demo", {
            pdfurl: "https://www**********anfu.pdf",
        });
        //监听完成事件
        this.pdfh5.on("complete", function (status, msg, time) {
            console.log("状态:" + status +",信息:" +msg +",耗时:" + time + "毫秒,总页数:" + this.totalNum);
        });
      },
    };
    </script>
     
    

    本人亲测用的方法二,方法一会控制台报错

  • Vue3 实例

  • import Pdfh5 from "pdfh5";
    import "pdfh5/css/pdfh5.css";
    
    const refPdf = ref(null);
    const LoadPdf = (url) => {
      const pdfh5 = new Pdfh5(refPdf.value, {
        pdfurl: url,
      });
      pdfh5.on("complete", (status, msg, time) => { });
    };
    
    const getDocById = (id) => {
      readPDF(id).then((res) => {
        if (res) {
          LoadPdf(window.URL.createObjectURL(new Blob([res])));
        }
      });
    }
    


http://www.kler.cn/a/488389.html

相关文章:

  • openGauss系列 --启动和停止服务器
  • Garnet:微软官方基于.Net 8开源缓存系统,可无需任何改动直接替代Redis,而且还更高性能!
  • S变换matlab实现
  • 2025 最新React面试题
  • 【ASP.NET学习】Web Forms创建Web应用
  • Moq与xUnit在C#单元测试中的应用
  • 比亚迪夏直插家用MPV腹地,“迪王”开启全面销冠新征程
  • 观察者模式详解
  • HTTP-响应协议
  • React Context用法总结
  • Rancher运维三板斧:告警设置、日志管理与数据备份恢复
  • 走进 JavaScript 世界:掌握核心技能
  • Golang中使用 Mqtt
  • 计算机网络 笔记 数据链路层 2
  • docker(目录挂载、卷映射)
  • HTML实战课堂之启动动画弹窗
  • 高级软件工程-复习
  • CancerGPT :基于大语言模型的罕见癌症药物对协同作用少样本预测研究
  • 【Leetcode 热题 100】394. 字符串解码
  • 【STM32】利用SysTick定时器定时1s