JS-前端在dom中预览pdf等文件

1、将pdf等文件显示到dom元素中预览

  • pdf文件可以是blob、url、file类型等
  • 只要使用URL.createObjectURL(file)全部转为URL即可使用
  • 无需借助任何插件,只需要使用<object></object>标签即可实现

1.1、html

html 复制代码
<template>
  <div class="home">
    <object id="pdf-object" width="50%" height="500px"></object>
 
    <input type="file" id="pdf-file" />
    <button @click="showPDF">预览文件</button>
  </div>
</template>

1.2、js

js 复制代码
<script>

export default {
  name: 'HomeView',
  methods: {
    showPDF() {
      const inputElement = document.getElementById('pdf-file');
      const objectData = document.getElementById('pdf-object');

	  // 获取选择的文件
      const file = inputElement.files[0];
      // 转为url
      const url = URL.createObjectURL(file);
      // 给object标签赋值 相当于image标签的src属性
      objectData.data = url;
    }
  }
}
</script>

1.3、效果

1.4、注意

  • 如果不是这种file类型,而是后台返回的blob类型数据。
  • 那么在接收blob的时候,需要给构造函数传入第二个类型参数application/pdf,如下这样
  • 如果需要展示其他类型文件,只需修改相应type值即可。
  • word、excel、ppt等,不能直接展示,具体原因如下
相关推荐
LFly_ice几秒前
Next-1-启动!
开发语言·前端·javascript
小时前端3 分钟前
谁说 AI 历史会话必须存后端?IndexedDB方案完美翻盘
前端·agent·indexeddb
wordbaby7 分钟前
TanStack Router 基于文件的路由
前端
wordbaby12 分钟前
TanStack Router 路由概念
前端
wordbaby14 分钟前
TanStack Router 路由匹配
前端
cc蒲公英15 分钟前
vue nextTick和setTimeout区别
前端·javascript·vue.js
程序员刘禹锡20 分钟前
Html中常用的块标签!!!12.16日
前端·html
njsgcs20 分钟前
ezdxf 打印dxf为pdf
pdf·ezdxf
sinat_3842410926 分钟前
OpenSpeedy 是一款开源免费的游戏变速工具
javascript
我血条子呢30 分钟前
【CSS】类似渐变色弯曲border
前端·css