gpt4 book ai didi

javascript - pdf.js 回馈 "InvalidPDFException: Invalid Pdf Structure"

转载 作者:行者123 更新时间:2023-12-02 11:21:58 30 4
gpt4 key购买 nike

我目前有一个后端 java 服务,可以使用 itext 将 html 转换为 pdf。我将 pdf 作为 byte[] 返回给客户端(Angular 5)。但当我尝试在其上运行 getDocument 函数时,我最终得到“无效的 pdf 结构”。我不相信 pdf 结构实际上是无效的。我将我的 html 模板上传到在线 pdf 转换器,它工作得很好。

这是我从后端得到的:

enter image description here

这是我的 pdfjs 代码:

class MyDocumentsProvider{
downloadPdf():any{
return this.http.get(environment.webappServer+"/get1098E", {responseType:'arraybuffer'}).map(
(res) =>{
return res;
}
)
}
}
this.myDocumentsProvider.downloadPdf().subscribe((res)=>{
PDFJS.disableWorker = true; //<-- removing this does nothing

PDFJS.getDocument(res).then((pdf)=>{
this.showLoader = false;
this.pdf = pdf;
this.pagesTotal = pdf.numPages;
pdf.getPage(this.pageNum).then((page) => {
this.handlePages(page);
this.writeFile();
})
}).catch((err)=>{
this.showError = true;
console.error(err);
})
},((err)=>{
this.showError = true;
console.error(err);
}))
}

我也尝试过这样做

    PDFJS.getDocument(new Uint8Array(res))then((pdf)...

我已经使用 pdf 文件的直接 url 测试了此代码,它可以工作。

这是一些java代码:

@RequestMapping(value="/testPdf",  headers="Accept=*/*", method = RequestMethod.GET)
public ResponseEntity<?> testPdf() throws IOException{


HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type","application/octet-stream;charset=UTF-8"); //<-- this was added later on. Did nothing....
ResponseEntity <byte[]> arr = pdfService.htmlTemplateToPdf()
return new ResponseEntity<>(arr,responseHeaders, HttpStatus.OK);

}

请各位SO同胞们帮忙!

最佳答案

而不是:

return this.http.get(environment.webappServer+"/get1098E", {responseType:'arraybuffer'}).map(
(res) =>{
return res;
}
)

我刚刚删除了responseType:'arraybuffer'。然后我获取响应并手动将其转换为类型化数组(Uint8Array)。我猜想responseType:arraybuffer正在返回一些损坏的东西。

关于javascript - pdf.js 回馈 "InvalidPDFException: Invalid Pdf Structure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849122/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com