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_ice16 小时前
Next-1-启动!
开发语言·前端·javascript
小时前端16 小时前
谁说 AI 历史会话必须存后端?IndexedDB方案完美翻盘
前端·agent·indexeddb
wordbaby16 小时前
TanStack Router 基于文件的路由
前端
wordbaby16 小时前
TanStack Router 路由概念
前端
wordbaby16 小时前
TanStack Router 路由匹配
前端
cc蒲公英16 小时前
vue nextTick和setTimeout区别
前端·javascript·vue.js
程序员刘禹锡16 小时前
Html中常用的块标签!!!12.16日
前端·html
njsgcs16 小时前
ezdxf 打印dxf为pdf
pdf·ezdxf
sinat_3842410916 小时前
OpenSpeedy 是一款开源免费的游戏变速工具
javascript
我血条子呢17 小时前
【CSS】类似渐变色弯曲border
前端·css