使用 JavaScript 下载 PDF 文件

Download PDF file with JavaScript

本文关键字:文件 PDF 下载 JavaScript 使用      更新时间:2023-09-26

我想下载一个通过AJAX加载的PDF文件。我尝试通过使用库FileSave.js来执行此操作。以下代码有效,但是当我打开PDF文件时,它完全是空的。我注意到 PDF 文件的编码是 UTF-8,但端点返回带有 ANSI 编码的 PDF。

为了下载具有正确编码的文件,我必须做什么?

var downloadReport = function() {
    $http.get("../api/report").then( function(response) {
        var blob = new Blob([response.data], {
            type: "application/pdf",
        });
        saveAs(blob, fileName);
    });
};

最后我自己找到了问题。我不得不将responseType: "arrayBuffer"添加到 http 请求中:

$http({
    method: 'POST',
    url: '../api/report',
    responseType: "arraybuffer"
    }).then( function(response) {
        var blob = new Blob([response.data], {
            type: "application/pdf",
        });
    saveAs(blob, fileName);
    });
};