首页 > 解决方案 > base64字符串转pdf下载

问题描述

我在 SAPUI5 应用程序中下载 pdf 时遇到问题。问题是从后端系统获取 base64 字符串,但无法将其转换并显示为 PDF。

我可以转换 base64 并下载,但尺寸很小。无法下载较大的 PDF 文件,但显示下载失败。

请帮帮我

var data =" JVBERi0xLjQNJeLjz9MNCjc1MDEgMCBvYmogPDwvTGluZWFyaXplZCAxL0wgOTM2NDM1Mi9PIDc1MDMvRSAxMjE3ODgvTiA1MjIvVCA5MjE0MjgzL0ggWyA2..";

var uri = 'data:application/pdf;base64,' + atob(data);
var link = document.createElement("a");
link.href = uri;
link.style = "visibility:hidden";
link.download = object.FileName;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);

标签: javascriptpdfsapui5

解决方案


将数据保存为 blob 并设置下载链接以从博客中获取数据可能会解决大文件的问题。这种机制中最有效的方法是从您的服务器获取数据作为二进制而不是 Base64。它也适用于 base64 - 但它只是在 blob 场景中杀死的资源。

var data = Uint8Array.from(atob(base64_string), c => c.charCodeAt(0));
var blob = new Blob([data], {type: "octet/stream"});

var link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
...
...

推荐阅读