在IE中从字节数组显示PDF而不“打开或保存?”

时间:2016-10-10 22:04:55

标签: angularjs internet-explorer pdf reporting-services

我有一个Web应用程序,它在前端使用AngularJS,在后端使用WebAPI。

我使用API​​中的内置SQL Reporting Services功能生成PDF,然后将其转换为字节数组以发送回客户端。最后一步是向用户显示PDF。

这是我对API层的AngularJS调用以获取字节数组:

    this.$http({
        method: 'POST',
        url: getApiUrl()  //link to my API method
        cache: false,
        responseType: 'arraybuffer'
     }).then(function(response) {
        deferred.resolve(response);
    });

    return deferred.promise;

我可以在Chrome中执行以下操作(“响应”是从上面的API调用返回的内容):

    var file = new Blob([response.data], {type: 'application/pdf'});
    var fileURL = URL.createObjectURL(file);
    this.$window.open(fileURL);

在Chrome中,PDF会按预期显示并在浏览器中成功显示在单独的标签中。

然而,在IE中,我被迫使用它,这会提示用户在继续之前“打开或保存xxxx.pdf”:

    this.$window.navigator.msSaveOrOpenBlob(file);

我们的最终用户要求PDF需要直接从IE打开,而无需中间额外的步骤来“打开或保存”。如果将PDF保存到目录并且存在指向该文件的链接,则还有其他库允许您执行此操作,但我希望从字节数组动态生成它,然后在没有中间步骤的情况下显示它。有没有办法在IE中实现这一点,而不是(a)强制用户打开或保存,或(b)将文件保存到目录?

0 个答案:

没有答案
相关问题