请求pdf文件流并进行预览

最近做了一个需求就是预览pdf等文件,不过后端返回的是一个文件流,需要前端做一定地处理才行。

我们来看一下具体的实现方式。预览pdf的插件使用的是pdf.js,具体请看这篇文章:pdf.js插件怎么控制工具栏的显示与隐藏

1、请求pdf文件流数据

先看一下请求pdf文件流的请求接口

javascript 复制代码
getPdfStream(id,data,responseType = 'blob'){
   return request.get('/api/business/getPdfStream/'+id,{params:{...data},responseType:responseType})
}
2、把请求回来的文件流数据转化为url
javascript 复制代码
<template>
   <div>
     <iframe
        allowfullscreen="true"
        :src="contentUrl"
        frameborder="0"
        width="100%"
        height="1200px"
     ></iframe>
   </div>
</template>
<script setup>	
import {onMounted,ref} from 'vue'
let contentUrl = ref("")
let fileId = new URLSearchParams(location.hash.split("previewPdf?")[1]);
onMounted(()=>{
   getPdfContent(fileId)
})

// 获取pdf内容
function getPdfContent(fileId) {
   API.getPdfStream(fileId).then(res=>{
      // 这一步是关键,使用window.URL.createObjectURL把blob数据转为本地URL
      let url = window.URL.createObjectURL(new Blob([res.data]));
      
      contentUrl.value = `static/pdfjs/web/viewer.html?file=${url}`
   })
}
</script>
相关推荐
souyuanzhanvip9 小时前
PDF24 工具箱 V11.23.0 免费离线 PDF 处理工具
pdf·实用工具
非凡ghost9 小时前
批量校正图像方向(校正PDF页面方向)
windows·学习·pdf·软件需求
缘如风9 小时前
Poppler一个PDF的c++库
pdf
喜欢吃豆9 小时前
从「文件URL」到「模型可理解内容」:一套完整的文件上传与解析处理流程详解(含PDF/Excel/图片)
pdf·大模型·excel
夜喵YM10 小时前
基于 Spire.XLS.Free for Java 实现无水印 Excel 转 PDF
java·pdf·excel
weixin_4624462311 小时前
使用 Docker / Docker Compose 部署 PdfDing —— 个人 PDF笔记
笔记·docker·pdf
苦逼的老王12 小时前
《java-使用kkview+libreoffice 实现在线预览ppt、xls、doc、pdf..》
java·pdf·powerpoint
李小白杂货铺12 小时前
从基于致远互联(Seeyon)封装的SuwellLightRead技术的PDF预览页面提取原始PDF文件的方法原理与实践
pdf·提取pdf文件·提取原始pdf·致远互联·seeyon·suwell·lightread
徐同保12 小时前
使用onlyoffice预览word、excel、ppt、pdf等,可以双击index.html看效果的demo示例
pdf
不吃香菜的猪1 天前
使用@vue-office/pdf时,pdf展示不全
javascript·vue.js·pdf