首页 > 解决方案 > 无法加载 PDF 但可以看到数据

问题描述

我收到 Chrome 无法加载 PDF 文档的错误消息。我可以看到数据的内容是控制台窗口,所以我返回了数据我只是不确定为什么它不会显示?如果我 File.WriteAllBytes要磁盘,它会很好地打开,所以它可能与创建new Blob

无法加载 PDF 文档。

调试器

ts代码

 printItems(versionKeys: string[]): JQueryPromise<any> {
        console.log('printItems');
        $.ajax({
            type: "post",
            contentType: "application/json",
            data: JSON.stringify(versionKeys),
            url: this.apiUrls.PrintTemplates,
            success: function (data, status, xhr) {
                console.log('printItems');
                console.log(data);
                let blob = new Blob([data.Content], { type: data.ContentType });
                var url = URL.createObjectURL(blob);
                console.log(url);
                window.open(url);
                console.log('success');
            }
        });

        return;
    }

错误

在此处输入图像描述

标签: javascriptasp.net-mvctypescript

解决方案


我将base64字符串转换为字节

  var binary_string = window.atob(data.Content)
  var len = data.Content.length;
  var bytes = new Uint8Array(len);
  for (var i = 0; i < len; i++) {
      bytes[i] = binary_string.charCodeAt(i);
  }
  let blob = new Blob([bytes.buffer], { type: data.ContentType })

  var url = URL.createObjectURL(blob);

  window.open(url);

推荐阅读