请求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>
相关推荐
优化控制仿真模型14 小时前
【2026年最新】英语四级历年真题及答案解析PDF电子版(2015-2025年12月)
经验分享·pdf
asdzx6714 小时前
使用 Python 快速为 PDF 添加背景色或背景图片
python·pdf
其实秋天的枫17 小时前
【26年3月最新】计算机二级WPS真题试题及答案14套电子版PDF(含操作题和选择题)
经验分享·pdf
DeskUI~~17 小时前
倚天剑术34--批量获取PDF文档中的图片
pdf
河北之花17 小时前
演示软件界面及快捷键、幻灯片操作、输出为PDF
pdf·wps
开开心心就好18 小时前
安卓免费证件照制作软件,无广告弹窗
linux·运维·安全·pdf·迭代器模式·依赖倒置原则·1024程序员节
YXWik619 小时前
Linux 环境 libreoffice 执行word转pdf 中文乱码问题
linux·pdf·word
这辈子谁会真的心疼你19 小时前
怎么把caj转化为pdf?批量转换的方法
pdf
南风微微吹19 小时前
【2026年最新】英语四级历年真题及答案解析PDF电子版(2015-2025年12月)
pdf·英语四级
其实秋天的枫1 天前
2025年12月大学英语六级真题及答案电子版pdf三套全
经验分享·pdf