请求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>
相关推荐
zyplayer-doc13 小时前
目录支持批量操作,文档增加可见范围、锁定功能,PDF查看优化,zyplayer-doc 2.5.8 发布啦!
数据库·人工智能·pdf·编辑器·飞书·石墨文档
2501_9307077821 小时前
如何使用C#代码在 PDF 文档添加页码
pdf
AI人工智能+21 小时前
文档抽取技术结合OCR、NLP和计算机视觉,能智能提取PDF、扫描件等版式文档中的结构化数据
pdf·ocr·文档抽取
梵克之泪1 天前
根据表格内容和模板文件批量创建word文件,一次性生成多个word文档和批量生成创建PDF文件
pdf·word
December3101 天前
【图文教程】图片转pdf,从入门到精通
pdf·图片·格式转换·图片转换·图片转pdf·图转pdf
g***96901 天前
【Spring Boot 实现 PDF 导出】
spring boot·后端·pdf
zyplayer-doc2 天前
重写OFD查看器,完善PDF查看器,增加搜索历史记录、滚动分页、目录排序等,zyplayer-doc 2.5.7 发布啦!
pdf·编辑器·飞书·开源软件·创业创新·有道云笔记
傻啦嘿哟2 天前
Python实现PDF文档高效转换为HTML文件:从基础到进阶的完整指南
python·pdf·html
流浪猪头拯救地球2 天前
利用 Python 解密 / 加密 PDF 文件
python·pdf·php
兰琛2 天前
Android Compose展示PDF文件
android·pdf