您的位置:首页 > 健康 > 美食 > app开发郑州_加盟类网站建设_软文投放平台有哪些_网络服务商

app开发郑州_加盟类网站建设_软文投放平台有哪些_网络服务商

2025/4/16 16:04:08 来源:https://blog.csdn.net/2301_77946674/article/details/146907268  浏览:    关键词:app开发郑州_加盟类网站建设_软文投放平台有哪些_网络服务商
app开发郑州_加盟类网站建设_软文投放平台有哪些_网络服务商

场景:后端传pdf文件流,前端在页面中展示pdf 

request请求为:

//使用get请求
export async function getRequest(INSTSN, REGISTESN) {const url = '/api/getPdf?INSTSN=' + INSTSN + '&REGISTESN=' + REGISTESNconst method = 'get'const headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }const responseType = 'arraybuffer'const response = await service.request({url,method,headers,responseType,})return response;
}

调用请求,处理返回的数据显示pdf

自动下载pdf,打开打印界面,跳转到pdf界面

async getReport() {//得到需要的参数const INSTSN = INSTSN;const REGISTESN = REGISTESN;try {//通过get请求,从后端返回得到pdf的数据const response = await getReport(INSTSN, REGISTESN);const binaryData = [response];const blob = new Blob(binaryData, { type: 'application/pdf' });const pdfUrl = URL.createObjectURL(blob);if (pdfUrl) {this.handlePrint(pdfUrl);}} catch (error) {console.error('加载 PDF 失败:', error);alert('无法打开 PDF,请检查控制台!');}},//处理生成的url,打开pdfhandlePrint(pdfUrl) {// 创建一个隐藏的 a 标签用于下载 PDFconst a = document.createElement('a');a.href = pdfUrl;a.download = 'report.pdf';a.style.display = 'none';document.body.appendChild(a);// // 触发下载a.click();// 移除 a 标签document.body.removeChild(a);// 打开 PDF 并直接调用打印功能const newWindow = window.open(pdfUrl);if (newWindow) {newWindow.onload = function () {newWindow.print();};}// 释放之前创建的临时 URLURL.revokeObjectURL(pdfUrl);}

打开打印界面,转到pdf界面,不会自动下载

async getReport() {//得到需要的参数const INSTSN = INSTSN;const REGISTESN = REGISTESN;try {//通过get请求,从后端返回得到pdf的数据const response = await getReport(INSTSN, REGISTESN);const binaryData = [response];const blob = new Blob(binaryData, { type: 'application/pdf' });const pdfUrl = URL.createObjectURL(blob);if (pdfUrl) {this.handlePrint(pdfUrl);}} catch (error) {console.error('加载 PDF 失败:', error);alert('无法打开 PDF,请检查控制台!');}},//处理生成的url,打开pdfhandlePrint(pdfUrl) {// 创建一个隐藏的 a 标签用于下载 PDF//const a = document.createElement('a');//a.href = pdfUrl;//a.download = 'report.pdf';//a.style.display = 'none';//document.body.appendChild(a);// // 触发下载//a.click();// 移除 a 标签//document.body.removeChild(a);// 打开 PDF 并直接调用打印功能const newWindow = window.open(pdfUrl);if (newWindow) {newWindow.onload = function () {newWindow.print();};}// 释放之前创建的临时 URLURL.revokeObjectURL(pdfUrl);}

转到pdf页面,不会自动下载,不会跳出打印窗口

async getReport() {//得到需要的参数const INSTSN = INSTSN;const REGISTESN = REGISTESN;try {//通过get请求,从后端返回得到pdf的数据const response = await getReport(INSTSN, REGISTESN);const binaryData = [response];const blob = new Blob(binaryData, { type: 'application/pdf' });const pdfUrl = URL.createObjectURL(blob);if (pdfUrl) {this.handlePrint(pdfUrl);}} catch (error) {console.error('加载 PDF 失败:', error);alert('无法打开 PDF,请检查控制台!');}},//处理生成的url,打开pdfhandlePrint(pdfUrl) {// 创建一个隐藏的 a 标签用于下载 PDF//const a = document.createElement('a');//a.href = pdfUrl;//a.download = 'report.pdf';//a.style.display = 'none';//document.body.appendChild(a);// // 触发下载//a.click();// 移除 a 标签//document.body.removeChild(a);// 打开 PDF 并直接调用打印功能const newWindow = window.open(pdfUrl);//if (newWindow) {//newWindow.onload = function () {//newWindow.print();//};// }// 释放之前创建的临时 URLURL.revokeObjectURL(pdfUrl);}

原文链接:vue接收后端传来的pdf文件流,前端调用预览PDF_vue如何显示fastreport-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com