vue-pdf 单列显示多个pdf页面

javascript 复制代码
<template>
  <div>
    <pdf
      v-for="i in numPages"
      :key="i"
      :src="src"
      :page="i"
      style="display: inline-block; width: 100%"
    ></pdf>
<!-- 宽度设置100% 一行只展示一页 -->
  </div>
</template>
<script>
import pdf from "vue-pdf";
var loadingTask = pdf.createLoadingTask(
  "/static/clause.pdf"
);
export default {
  data() {
    return { src: loadingTask, numPages: undefined };
  },
  components: {
    pdf,
  },
  mounted() {
    this.src.promise.then((pdf) => {
      this.numPages = pdf.numPages;
    });
  },
};
</script><template>
  <div>
    <pdf
      v-for="i in numPages"
      :key="i"
      :src="src"
      :page="i"
      style="display: inline-block; width: 100%"
    ></pdf>
  </div>
</template>
<script>
import pdf from "vue-pdf";
var loadingTask = pdf.createLoadingTask(
  "/static/clause.pdf"
);
export default {
  data() {
    return { src: loadingTask, numPages: undefined };
  },
  components: {
    pdf,
  },
  mounted() {
    this.src.promise.then((pdf) => {
      this.numPages = pdf.numPages;
    });
  },
};
</script>

注意:文件要放在public文件夹下,不然会报错:如果文件放在远程服务器上,则直接写远程地址

Warning: Ignoring invalid character "33" in hex string'

原因:读取 PDF 文件时,路径不合法,导致读取不到文件; 在 vue-cli3 脚手架搭建的项目中,读取本地的 PDF 文件需要放到 public 文件夹中,在引用时,不能使用相对路径,且'/'即表示 public 文件夹 (需略去 public);

相关推荐
VX:Fegn08956 小时前
计算机毕业设计|基于ssm + vue超市管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
2401_892000527 小时前
Flutter for OpenHarmony 猫咪管家App实战 - 添加提醒实现
前端·javascript·flutter
Yolanda947 小时前
【项目经验】vue h5移动端禁止缩放
前端·javascript·vue.js
VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
vue.js·spring boot·课程设计
EndingCoder9 小时前
案例研究:从 JavaScript 迁移到 TypeScript
开发语言·前端·javascript·性能优化·typescript
Irene19919 小时前
Vue3 中使用的命名规则 和 实际开发命名规范总结
vue.js·命名规范
Amumu1213810 小时前
Vue脚手架(二)
前端·javascript·vue.js
lichenyang45311 小时前
从零开始构建 React 文档系统 - 完整实现指南
前端·javascript·react.js
比特森林探险记11 小时前
Hooks、状态管理
前端·javascript·react.js
比特森林探险记12 小时前
组件通信 与 ⏳ 生命周期
前端·javascript·vue.js