请求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>
相关推荐
神奇侠20247 小时前
基于tabula对pdf中多个excel进行识别并转换成word中的优化(四)
python·pdf·word·tabula
松间听雨1 天前
开源免费 PDF 编辑器来了,付费软件平替!
经验分享·pdf·电脑·软件需求
課代表1 天前
对 FormCalc 语言支持较好的 PDF 编辑软件综述
adobe·pdf·表单·formcalc
一城烟雨_2 天前
vue3 实现将html内容导出为图片、pdf和word
前端·javascript·vue.js·pdf
witton2 天前
记一次pdf转Word的技术经历
pdf·乱码·word·pymupdf·mupdf·mupdf.js·winansiencoding
马武寨山的猴子3 天前
【MinerU】:一款将PDF转化为机器可读格式的工具——RAG加强(Docker版本)
人工智能·docker·容器·pdf·rag
萧鼎3 天前
PDFMathTranslate:让数学公式在PDF翻译中不再痛苦
python·pdf
会功夫的李白3 天前
PDF嵌入隐藏的文字
java·pdf·itext
陌殇殇4 天前
Java使用IText7动态生成带审批文本框的PDF文档
java·pdf
Ven%4 天前
VsCode如何使用默认程序打开word Excel pdf等文件
ide·vscode·pdf·编辑器