У меня есть приложение Jhipster, которое генерирует PDF с библиотекой iText, этот PDF сохраняется на компьютере по указанному мною маршруту.
Я хотел бы, чтобы при создании PDF-файла появилось диалоговое окно для загрузки PDF-файла. Мне безразлично, сохранен ли pdf в папке проекта или нет в любом месте.
Я видел много постов с возможными ответами на этой странице и в Интернете, но многие уже устарели, а другие не работают для меня.
generatePDF
public void generatePDF(User u) {
String dest = "D:/PDF/result.pdf";
String src = "D:/PDF/template.pdf";
try {
PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
Map<String, PdfFormField> fields = form.getFormFields();
fields.get("name").setValue(u.getFirstName());
fields.get("surname").setValue(u.getLastName());
fields.get("email").setValue(u.getEmail());
pdf.close();
} catch (IOException e) {
log.debug(e.getMessage());
}
}
UserResource
@GetMapping("/print-user/{id}")
@Timed
public ResponseEntity<User> printUserTemplate(@PathVariable Long id) {
User user = userRepository.findOne(id);
userService.generatePDF(user);
return ResponseUtil.wrapOrNotFound(Optional.ofNullable(user));
}
EDIT
entity.component.ts
downloadFile() {
this.entityService.downloadFile().subscribe();
}
entity.service.ts
downloadFile(): Observable<any> {
return this.http.get(SERVER_API_URL + 'api/downloadFile');
}