Java 将字符串转换为字节[]并将其另存为pdf
我使用JaspeExportManager将pdf导出为byte[],然后将其转换为字符串,以便能够将其添加到响应JSON对象中 在angular的前端,我无法将其转换回字节数组以再次保存它,我可能可以使用lifesaver库保存它,但它无法打开pdf已损坏 这是我的服务代码:Java 将字符串转换为字节[]并将其另存为pdf,java,angular,jasper-reports,Java,Angular,Jasper Reports,我使用JaspeExportManager将pdf导出为byte[],然后将其转换为字符串,以便能够将其添加到响应JSON对象中 在angular的前端,我无法将其转换回字节数组以再次保存它,我可能可以使用lifesaver库保存它,但它无法打开pdf已损坏 这是我的服务代码: InputStream jrxmlFile = myclass.class.getResourceAsStream("/myjrxml.jrxml"); // Map params = new H
InputStream jrxmlFile =
myclass.class.getResourceAsStream("/myjrxml.jrxml");
// Map params = new HashMap();
HashMap reportParameters = new HashMap();
reportParameters.put("Parameter1", goodsIssueCode);
JasperReport jasperReport = JasperCompileManager.compileReport(jrxmlFile);
JasperPrint report =
JasperFillManager.fillReport(jasperReport, reportParameters, dataSource.getConnection());
report.addStyle(prepareNormalStyle());
byte[] pdf = JasperExportManager.exportReportToPdf(report);
// Export pdf file
return getSuccessResponse(pdf.toString());
以及我的前端功能:
mergeMap(response => {
let b: any = new Blob([response['code']], { type: 'application/pdf' });
FileSaver.saveAs(b, 'mypdf.pdf');
return [];
})
您需要添加
{responseType:'blob'}
试着这样做:
this.http.get(url, { responseType: 'blob' }).subscribe((resp: any) => {
...
});
首先不要将数据转换为字符串,只将其作为字节发送。试试这个:显示http调用函数谢谢你,但是前端在你的链接中太复杂了