我有一个Jersey REST服务器来响应PDF(应用程序/ pdf)给React。 我想在客户端将PDF转换为base64,然后显示到新窗口。 但是,使用FileReader转换后,pdf将丢失内容。(就像这篇文章:FileReader losing data when reading PDF)
Jersey服务器代码:
@Override
@GET
@Path("/pdf")
@Produces(MediaType.APPLICATION_PDF_VALUE)
public Response testPdf() throws Exception {
// TODO Auto-generated method stub
File file = new File("C:\\test.pdf");
FileInputStream fileInputStream = new FileInputStream(file);
ResponseBuilder response = Response.ok((Object) fileInputStream);
response.type("application/pdf");
response.header("Content-Disposition", "filename=test.pdf");
return response.build();
}
反应客户端:
axios.get(/test/pdf).then((response) => {
let reader = new FileReader();
var file = new Blob([response.data], { type: 'application/pdf' });
reader.onloadend = () => {
// that.setState({
let pdfWindow = window.open("")
pdfWindow.document.write("<iframe width='100%' height='100%' src='" +reader.result+"'></iframe>")
}
reader.readAsDataURL(file);
})
任何人都可以帮助我在React中将PDF转换为base64吗?
谢谢