请求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>
相关推荐
拓端研究室7 小时前
专题:2025AI产业应用与投资趋势报告:技术选型、行业落地与效益洞察|附900+份报告PDF、数据、可视化模板汇总下载
pdf
GodFamiliar7 小时前
linux下(华为云)libreoffice工具doc转pdf坑
pdf·华为云
点云-激光雷达-Slam-三维牙齿8 小时前
任意PDF与图片的批量信息提取软件 OCR 识别加大模型
pdf·ocr
E_ICEBLUE8 小时前
使用 Java 将 PowerPoint 转换为 PDF 的完整指南
java·开发语言·pdf·powerpoint·ppt
qq_296544658 小时前
永久免费的PDF转word,PDFgear安卓版,mac版,win版都有,word转PDF,PDF转Excel
pdf·word
Ron丶20 小时前
10 款 PDF 处理工具(全解锁 · 免费使用)
pdf
烂不烂问厨房1 天前
前端实现docx与pdf预览
前端·javascript·pdf
一晌小贪欢1 天前
【静态功能网站】构建高效的 Markdown 转 PDF 在线工具
pdf·markdown·markdown转pdf·markdown 转 pdf
拓端研究室1 天前
专题:2025年汽车行业研究报告-重塑之局:新能源、智能网联与全球化|附340+份报告PDF、数据、可视化模板汇总下载
pdf
wxl7812271 天前
从图片PDF到结构化文本:基于Python+Dify的批量OCR自动化解决方案
python·pdf·ocr