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 节点
html 复制代码
<template>
  <div class="wrap">
    <div id="demo"></div>
  </div>
</template>
  • js 中配置
javascript 复制代码
<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 实例

javascript 复制代码
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])));
    }
  });
}
相关推荐
指针向南1 小时前
PDF转长图用什么?3种方法实测(2026)
图像处理·人工智能·计算机视觉·pdf
2501_915921433 小时前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
android·ios·小程序·https·uni-app·iphone·webview
Java后端的Ai之路4 小时前
前端技术Vue-09-webpack-vuejs-实战
前端·vue.js·webpack
tryCbest6 小时前
Vue3——第 7 篇:组件基础——从注册到使用的完整流程
前端·javascript·vue.js
weixin_BYSJ19876 小时前
【计算机毕设】房屋租赁系统02647
java·vue.js·spring boot·python·django·课程设计
时间的情敌6 小时前
Electron 设置-webkit-app-region: drag;实现拖拽后, 无法响应鼠标划过事件及点击事件的解决方式
前端·vue.js
行思理7 小时前
个推厂商应用开通指南
运维·服务器·uni-app·个推·uni-app push
专业程序开发源7 小时前
springboot校企合作双选会一站式预约与面试系统16010-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·面试·php·课程设计
郑州光合科技余经理8 小时前
同城商城源码:商品库和订单库怎么随包交付
android·java·开发语言·后端·uni-app·php·ai编程
肖老师xy8 小时前
uniapp实现带展开收起按钮文本多行省略
uni-app