java prettyprint-override">if(format.equals(Constant.PDF_FORMAT)) {
ByteArrayInputStream stream = reportPDF.generateReportDocument(dtos);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "inline; filename=report.pdf");
return ResponseEntity.ok()
.headers(headers)
.contentType(MediaType.APPLICATION_PDF)
.body(new InputStreamResource(stream));
}
public getReports(type?: string): void {
this.params['expected-format'] = type;
if (type === 'json') {
this.Service.getPilotReports(this.params).subscribe((res) => {
this.reportsData = res;
this.pilotBankSpinnerService.closeSpinner();
});
} else {
this.Service.customGetForDownload(this.params).subscribe(
(data: Blob) => {
var file = new Blob([data], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = 'reports.pdf';
document.body.appendChild(a);
a.click();
},
(error) => {
console.log('getPDF error: ', error);
}
);
}
}
public customGetForDownload<blob, T>(url: string, params: any): any {
const headers = new HttpHeaders({ 'Content-Type': 'application/json', responseType: 'blob' });
const httpParams = this.http.constructParams(params);
const absoluteUrl = this.getAbsoluteUrl(url);
return this.httpClient.get(absoluteUrl, {
headers: headers,
params: httpParams,
responseType: 'blob' as 'json',
observe: 'response',
});
}
首先,我看到一个语法错误:
ByteArrayInputStream stream=ReportPDF.GenerateReportDocument(dtos,);
(逗号后)您的InputStreamResource
是一种有效的方法,但是在使用它时应该有信心。
记住:输入用于读取(例如从请求中),输出用于写入(例如到响应中)。因此,您需要一个输出类型,如byte[]
或bytearrayoutputstream
等作为响应体。
当将输入读入ByteArrayInputStream流
时,可以使用Apache-Commons ioutils:ioutils.copy(in,out);
从该输入复制到输出流。或者只返回字节数组:byte[]data=stream.readallbytes();
参见:Java InputStream to Byte Array和ByteBuffer Baeldung
我正在尝试下载一个运行时生成的PDF文件(使用iTextPDF生成的PDF文件)在Springboot服务,并希望通过angular 6.0在新选项卡中打开该文件。我试着遵循这个,如何下载一个在我的服务器(springboot)上生成的angular的pdf文件?但错误为“无法加载PDF文档”。代码出了什么问题? Springboot服务:
“我想下载一个从基于spring的restful web服务发送的.pdf文件到我的angular应用程序。如何下载,我的angular应用程序或Spring Boot上是不是缺少了一些代码?” 我正在从angular 6应用程序向spring-boot服务器发送一个HTTP GET请求,该服务器生成一个.pdf文件,然后将这个.pdf文件作为blob发送给我,但当我试图在angular侧创建一个
问题内容: 使用该插件,我将创建一个文件并基于单击按钮生成下载。我想将文件保存到服务器上,而不是启动下载。因此,当单击按钮时,我希望将文件保存在: 我知道我需要使用将文件发布到服务器。但是,查看文档并没有看到对任何数据类型的支持。 我的代码: 基于此xml文档保存示例,我尝试了以下操作: 这将下载文件而不是保存文件。如何保存文件? 问题答案: 我设法使用来解决此问题,方法如下: upload.ph
问题内容: 绘图模块 主模块 我想将所有图plot1,plot2,plot3保存到一个PDF文件中。有什么办法可以实现?我不能在主模块中包含该功能。 有一个名为的函数,但只有将其与绘图模块一起放置时,该函数才起作用。还有其他方法可以实现吗? 问题答案: 没关系,有办法做到这一点。 ------绘图模块------ ----- mainModule ---- ----- mainModule ---
问题内容: 我读过多个有关使用mgo保存文件的博客,但找不到满足特定需求的解决方案,请大声喊叫! 下面在MongoDb中插入对象: 下面能够保存文件: 现在,在插入对象之前,我需要将上述文件设置为: 我的结构对象: 用外行术语来说,问题是:如何使用mgo驱动程序通过GoLang结构在mongoDb中插入文件(从HTML表单接收)? 谢谢阅读!:) 更新: PDF存储在MongoDB中,如下所示:
问题内容: 我有一个Java类,正在使用iText库生成PDF文件。现在,根据我的需要,我必须将生成的PDF文件保存到MySQL数据库表中,但是我不知道该怎么做。 我担心的是: 我应该在PDF表的MySQL列中使用哪种 数据类型 来保存PDF文件 哪个查询会将生成的PDF文件插入数据库 目前,我正在生成PDF文件,并将其存储到本地磁盘的硬编码文件路径中。 这是我的Java PDF生成代码: 请帮我