我在java中有服务器代码(休息服务):
@GET
@Path("/Trip/PDF/{tripId}")
@Produces("application/pdf")
public javax.ws.rs.core.Response getPdf(@PathParam("tripId") Integer tripId) throws Exception {
...
byte[] pdf = null;
...
javax.ws.rs.core.Response.ResponseBuilder responseBuilder = javax.ws.rs.core.Response.ok((Object) pdf);
responseBuilder.type("application/pdf");
responseBuilder.header("Content-Disposition", "filename=tripPdf.pdf");
return responseBuilder.build();
直接在浏览器中使用url我可以看到生成的PDF但是 当我试图从角度调用url时我什么都没得到(java代码运行)。
来自UI的电话:
<a (click)="generateTripPdf(data.trip.id)" href="#" target="_blank">
服务电话(tripId可用):
generateTripPdf(tripId) {
this.documentService.getTripPdf(tripId);
}
服务:
const httpOptionsPdf = {
headers: new HttpHeaders({ 'Accept': 'application/pdf', 'Content-Type': 'application/pdf' })
};
@Injectable()
export class DocumentService {
...
constructor(private http: HttpClient) { }
...
public getTripPdf(tripId) {
return this.http.get<any>(`${this.baseUrl}/Doc/Trip/PDF/${tripId}`, httpOptionsPdf);
}
知道如何让它发挥作用吗?
答案 0 :(得分:0)
你可以这样做。在你的组件中,
constructor() {
this.baseUrl = 'your-url';
this.pdfUrl = `${this.baseUrl}/Doc/Trip/PDF/${tripId}`;
}
在你的模板中。
<a [href]="pdfUrl" target="_blank">Download PDF.</a> <br>
希望这有帮助。