请求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 小时前
python爬取pdf文件并保存至本地
chrome·爬虫·python·pdf·网络爬虫
曹牧15 小时前
Java中处理URL转义并下载PDF文件
java·开发语言·pdf
xuehuayu.cn15 小时前
预览img图片文件pdf文件如何鉴权配置请求头token
pdf
造价女工15 小时前
PDF图纸拆分:一键解构大文件,精准管理单张图
pdf
好记忆不如烂笔头abc15 小时前
标书加密阶段提示合并PDF失败:错误码3
pdf
SJjiemo18 小时前
金山PDF定制版
pdf
网络真危险!!1 天前
前端实现 PDF 与 DOCX 预览全方案:从基础到进阶实践
前端·pdf
winfredzhang1 天前
用 Python + wxPython 打造一个万能网页图片一键下载神器(附完整源码 + 详细解析)
python·微信·pdf·遍历·图片·网页·保存
ekkcole2 天前
java word转pdf工具类,兼容linux和windows服务器
开发语言·pdf·c#
开开心心_Every2 天前
Excel图片提取工具,批量导出无限制
学习·pdf·华为云·.net·excel·harmonyos·1024程序员节