请求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>
相关推荐
爱码猿17 小时前
Springboot结合thymeleaf模板生成pdf文件
spring boot·后端·pdf
南风微微吹19 小时前
2025年12月英语四级真题及答案解析完整版(第一、二、三套全PDF)
pdf·英语四级真题
我叫汪枫20 小时前
Python 实战:把 PDF 表格完整转换成 Excel(小白教程)
python·pdf·excel
海上Bruce21 小时前
长图PDF转多页PDF文件
pdf
南风微微吹21 小时前
2025年12月英语六级真题及答案解析完整版(第一、二、三套全PDF)
pdf·英语六级
奋斗的袍子0071 天前
Spring Boot 项目实现Word转PDF
spring boot·pdf·word
开开心心_Every2 天前
强制打字练习工具:打够百字才可退出
java·游戏·微信·eclipse·pdf·excel·语音识别
开开心心_Every2 天前
多端免费远程控制工具:4K流畅同账号直连
游戏·macos·微信·pdf·excel·语音识别·phpstorm
心语星光2 天前
用LibreOffice实现批量将pptx文件转换为pdf文件
开发语言·pdf·ppt
夏日白云2 天前
《PDF解析工程实录》第 17 章|内容流里“看得见却看不见”的字符:那些幽灵文字从哪来?
pdf·llm·大语言模型·rag·文档解析