Angularjs Blob pdf呈现提供错误无效的外部参照流标头
我试图通过Angular Blob在我的web应用程序上显示来自服务器的pdf文件,但我在那里收到了一些错误。我已经被这个问题困扰了太长时间,并且尝试了其他一些不起作用的东西。请建议。 我的Spring控制器返回字节[]:Angularjs Blob pdf呈现提供错误无效的外部参照流标头,angularjs,spring-mvc,pdf,Angularjs,Spring Mvc,Pdf,我试图通过Angular Blob在我的web应用程序上显示来自服务器的pdf文件,但我在那里收到了一些错误。我已经被这个问题困扰了太长时间,并且尝试了其他一些不起作用的东西。请建议。 我的Spring控制器返回字节[]: @RequestMapping(value = "/showpdf", method = RequestMethod.POST, produces="application/octet-stream") @ResponseBody pu
@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);
}
我的角度代码:
$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);
});
我的HTML页面:
<div>
<object data="{{content}}" type="application/pdf" style="width: 100%; height: 1000px;"></object>
</div>
pdf窗口即将出现,但它不显示任何数据,并继续在工具栏中加载(请参见附件),浏览器工具中将出现以下错误
Error: Invalid XRef stream header
pdf.worker.js (line 250)
<System>
XRef_readXRef@resource://pdf.js/build/pdf.worker.js:3693:13
XRef_parse@resource://pdf.js/build/pdf.worker.js:3289:23
PDFDocument_setup@resource://pdf.js/build/pdf.worker.js:2484:7
PDFDocument_parse@resource://pdf.js/build/pdf.worker.js:2371:7
LocalPdfManager_ensure/<@resource://pdf.js/build/pdf.worker.js:1934:20
LocalPdfManager_ensure@resource://pdf.js/build/pdf.worker.js:1929:1
BasePdfManager_ensureDoc@resource://pdf.js/build/pdf.worker.js:1861:14
loadDocument/</<@resource://pdf.js/build/pdf.worker.js:33208:11
pdf.worker.js (line 252)
<System>
Warning: Unsupported feature "unknown"
pdf.worker.js (line 235)
<System>
Warning: Unsupported feature "unknown"
Warning: Indexing all PDF objects
pdf.worker.js (line 235)
<System>
PDF 0d3cdf6286f2947410f0d270a249f816 [1.4 iText 2.1.3 (by lowagie.com) kSar Version:5.0.6] (PDF.js: 1.0.1149)
Error: Bad uncompressed block length in flate stream
pdf.worker.js (line 250)
<System>
FlateStream_readBlock@resource://pdf.js/build/pdf.worker.js:31244:9
DecodeStream_getByte@resource://pdf.js/build/pdf.worker.js:30882:9
Lexer_nextChar@resource://pdf.js/build/pdf.worker.js:30125:34
Lexer@resource://pdf.js/build/pdf.worker.js:30067:5
EvaluatorPreprocessor@resource://pdf.js/build/pdf.worker.js:12105:30
PartialEvaluator_getOperatorList@resource://pdf.js/build /pdf.worker.js:10616:26
Page_getOperatorList/pageListPromise<@resource://pdf.js/build/pdf.worker.js:2216:16
pdf.worker.js (line 252)
<System>
Warning: Unsupported feature "unknown"
pdf.worker.js (line 235)
错误:无效的外部参照流标题
pdf.worker.js(第250行)
外部参照_readXRef@resource://pdf.js/build/pdf.worker.js:3693:13
外部参照_parse@resource://pdf.js/build/pdf.worker.js:3289:23
PDF文档_setup@resource://pdf.js/build/pdf.worker.js:2484:7
PDF文档_parse@resource://pdf.js/build/pdf.worker.js:2371:7
LocalPdfManager_sure/使用“arraybuffer”而不是“arraybuffer”作为responseType参数可以解决以下问题:
$http.post('showpdf',{responseType: 'arraybuffer'}).success(
...
{responseType:'arraybuffer'}
中的arraybuffer
是否应全部小写?@async5:问题已解决,您能否将其作为答案发布,以便我可以接受其正确性。谢谢!非常感谢你的帮助!