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

前端文件预览,PDF,word,TXT

先说一下需求:

        这里要做的就是从后端返回的URL下载地址,然后前端去渲染出来

刚开始看了其他的一些博主的文章,都是不怎么适用于我,我自己找了几个新的第三方库

vue-office/pdf

官网:vue-office简介 | vue-office

这里支持docx,xlsx,PDF文件格式

mammoth.js

文档:mammoth - npm

PDF预览

我用的是vue-office/pdf这个库

<vue-office-pdf :src="src" />
//引入该库
import VueOfficePdf from '@vue-office/pdf'

// 使用ref创建一个DOM引用
const src = ref('')

// 简历预览
const handleChange = () => {
  axios({
    method: 'get',
    responseType: 'blob',
    url: 后端传递给你的下载文件的地址
  }).then(({ data }) => {
    // console.log(data, '后端返回') // 后端返回的是流文件
     pdfPrew(data)
  })
}

// pdf文件预览
const pdfPrew = (data) => {
  let reader = new FileReader()
  reader.readAsArrayBuffer(data)
  reader.onload = (loadEvent) => {
    let arrayBuffer = loadEvent.target.result
    src.value = arrayBuffer
  }
}

docx文件预览

我用的是mammoth.js

<div v-html="convertedHtml"></div>
  const convertedHtml = ref()

// mammoth  word文件预览
const convertToHtml = (file) => {
  const reader = new FileReader()
  reader.onload = (event) => {
    const arrayBuffer = event.target.result
    mammoth
      .convertToHtml({ arrayBuffer: arrayBuffer })
      .then((result) => {
        convertedHtml.value = result.value // 将转换后的 HTML 设置到 data 属性中
      })
      .catch((err) => console.error(err))
  }
  reader.readAsArrayBuffer(file) // 读取文件内容
}

TXT文件

对于txt文件,其实很简单,没必要去用其他的第三方库

<pre>{{ fileContent }}</pre>
 const fileContent = ref('')

// 此处用于TXT文件的预览
const handleFileUpload = (file) => {
  if (file) {
    const reader = new FileReader()
    reader.readAsText(file, 'UTF-8')
    reader.onload = (e) => {
      fileContent.value = e.target.result
    }
  }
}

 

 


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

相关文章:

  • 【C++】类和对象(5)
  • 基于Python的药物相互作用预测模型AI构建与优化(下.代码部分)
  • MySQL注入中load_file()函数的使用
  • 【AI】Deepseek本地部署探索,尝试联网搜索
  • 最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
  • 全面解析文件上传下载删除漏洞:风险与应对
  • 项目日志——日志落地模块的设计、实现、测试
  • windows上.chm文件打不开
  • 【Hot100】LeetCode—139. 单词拆分
  • 苹果三款Mac新品十月登场:标配M4系列芯片
  • mysql学习教程,从入门到精通,MySQL WHERE 子句(10)
  • 【区块链通用服务平台及组件】ESGC 基准报告应用 | FISCO BCOS应用案例
  • kubeadm 初始化 k8s 证书过期解决方案
  • 跨部门SOP与统一知识库:打破信息孤岛,促进团队协作
  • Console函数的所有使用方式详解比较
  • Redis 缓存深度解析:穿透、击穿、雪崩与预热的全面解读
  • 如果 Android 手机出现数据丢失,如何在Android上恢复丢失的数据
  • 蓝光3D扫描仪用于小尺寸精密注塑零件三维检测
  • HarmonyOs 应用基础--ArkTS-核心-基础
  • 深入掌握大模型精髓:《实战AI大模型》带你全面理解大模型开发!
  • JVM、JRE和 JDK:理解Java开发的三大核心组件
  • 内衣专用洗衣机怎么样?五款高分热门产品汇总,亮点满满
  • 计算机毕业设计 校内跑腿业务系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • SprinBoot+Vue个性化旅游推荐系统的设计与实现
  • 多个时间序列的滞后相关性
  • 生物信息名词汇总|生物信息基础知识