从数组创建 pdf Blob 并查看它

Creating pdf Blob from array and viewing it

我无法显示我的 pdf。我将文件数据作为字节数组获取。这是我目前拥有的:

    // data is originally String {0: % 1:P 2:D ...}
    const byteArray = _.map(data); // ["%", "P", "D", "F", "-", "1", ".", "4", "↵", ...]
    const blob = new Blob(byteArray, {type: 'application/pdf'});
    const blobURL = URL.createObjectURL(blob);
    window.open(blobURL),

当我记录它时,Blob 出现了,它有适当的长度和所有内容。由于某种原因,pdf 打开但为空。只有选项卡中的 header 是正确的(所以一定有正确的地方?)。故障可能出在我从中获取数据的后端,但我不确定,因为我无权访问它。如果有必要,您还可以建议更好的格式来从后端传输数据。

数据会不会以其原始形式呈现错误?

编辑:

当我用邮递员做请求时,它正确地显示了文件而我没有做任何事情

我通过在请求配置中添加 responseType='arraybuffer' 解决了这个问题。之后效果很好。

const blob = new Blob([byteArray], {type: 'application/pdf'});
const blobURL = URL.createObjectURL(blob);
window.open(blobURL)