【发布时间】:2022-01-22 23:58:23
【问题描述】:
我正在尝试将 blob 对象转换为 pdf 并下载它。
到目前为止,我已经尝试了以下方法:
var downloadLink = document.createElement('a');
downloadLink.target = '_blank';
downloadLink.download = 'name_to_give_saved_file.pdf';
// convert downloaded data to a Blob
var blob = new Blob([file.$binary], { type: 'application/pdf' });
// create an object URL from the Blob
var URL = window.URL || window.webkitURL;
var downloadUrl = URL.createObjectURL(blob);
// set object URL as the anchor's href
downloadLink.href = downloadUrl;
// append the anchor to document body
document.body.append(downloadLink);
// fire a click event on the anchor
downloadLink.click();
文件大小似乎是正确的,但我无法查看它,因为它似乎已损坏。
在我的 html 文件中查看 PDF 的工作方式如下:
$('#test').html('<embed width=100% height=100%'
+ ' type="application/pdf"'
+ ' src="data:application/pdf;base64,'
+ escape(file.$binary)
+ '"></embed>')
这没有任何问题!
现在我的问题...为什么一个工作而另一个不工作?
感谢您的帮助...
【问题讨论】:
-
你的
file.$binary是二进制PDF数据还是base64数据? -
我相信是二进制PDF数据!文件对象如下所示:` $binary: "JVBERi0xLjQKJcK1wrYKCjEgMCBvYmoKPDwvQXJ0Qm94WzAgM...." $type: "00" `
-
是的,它不是二进制文件。它是一个字符串,包含二进制数据的 base64 表示。请注意您的
<embed>标签如何具有data:application/pdf;base64,。
标签: javascript pdf blob