Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为字节[]并将其另存为pdf_Java_Angular_Jasper Reports - Fatal编程技术网

Java 将字符串转换为字节[]并将其另存为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

我使用JaspeExportManager将pdf导出为byte[],然后将其转换为字符串,以便能够将其添加到响应JSON对象中

在angular的前端,我无法将其转换回字节数组以再次保存它,我可能可以使用lifesaver库保存它,但它无法打开pdf已损坏

这是我的服务代码:

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调用函数谢谢你,但是前端在你的链接中太复杂了