Blob pdf渲染给出错误无效的XRef流标头

时间:2016-07-13 23:47:36

标签: angularjs spring-mvc pdf

我试图通过Angular Blob在我的网络应用程序上显示我的服务器上的pdf文件,但我收到了一些错误。我已经坚持了太长时间,并尝试了其他不起作用的东西。请建议。 我的Spring控制器返回byte []:

:'<,'>Align \(field\d\|string,\?\|bigint\|comment.*\)

我的角度代码:

    @RequestMapping(value = "/showpdf", method = RequestMethod.POST, produces="application/octet-stream")
        @ResponseBody
        public byte[] showPDFFile(@RequestBody FilePath filePath, final HttpServletResponse response) throws IOException {
                  return org.apache.commons.io.FileUtils.readFileToByteArray(file);             
    }

我的HTML页面:

$http.post('/showpdf',{responseType: 'arrayBuffer'}).success(
                            function(response) {
                                console.log(response);
                                var file = new Blob([response], {type: 'application/pdf'});
                                   var fileURL = URL.createObjectURL(file);
                                   $scope.content = $sce.trustAsResourceUrl(fileURL);

                            });

pdf窗口即将发布,但它不会显示任何数据并在工具栏中继续加载(请参阅附件),并且浏览器工具中会出现以下错误。

<div>
    <object data="{{content}}" type="application/pdf" style="width: 100%; height: 1000px;"></object>
</div>

我试过硬编码这个pdf,它渲染得很好。

1 个答案:

答案 0 :(得分:4)

Using 'arraybuffer' instead of 'arrayBuffer' as the responseType parameter shall solve the issue:

$http.post('showpdf',{responseType: 'arraybuffer'}).success(
...