Я использую класс AbstractPdfView для создания PDF и загрузки в браузере, но мне также нужно отправить его по электронной почте.Я знаю, что решение очень очевидно, но я застрял на этом в течение дня и не могу увидеть его.Вот что у меня есть:
@GetMapping()
public PdfView generate(Model model, @RequestParam int event) {
model.addAttribute("event", eventService.getEventById(event));
return new PdfView();
}
Это класс PdfView:
public class PdfView extends AbstractPdfView {
@Override
protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception {
//add the iformation for the pdf
document.add(getInvoiceInfo());
}
}
И это класс AbstractPdfView:
public abstract class AbstractPdfView extends AbstractView {
public AbstractPdfView() {
setContentType("application/pdf");
}
@Override
protected boolean generatesDownloadContent() {
return true;
}
@Override
protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
ByteArrayOutputStream out = createTemporaryOutputStream();
Document document = new Document(PageSize.A4.rotate(), 35, 35, 50, 36);
PdfWriter writer = PdfWriter.getInstance(document, out);
prepareWriter(model, writer, request);
buildPdfMetadata(model, document, request);
document.open();
buildPdfDocument(model, document, writer, request, response);
document.close();
//i know i has to happen before this bit here but not sure how
writeToResponse(response, out);
}
protected void prepareWriter(Map<String, Object> model, PdfWriter writer, HttpServletRequest request) throws DocumentException {
writer.setViewerPreferences(getViewerPreferences());
}
protected int getViewerPreferences() {
return PdfWriter.ALLOW_PRINTING | PdfWriter.PageLayoutSinglePage;
}
protected void buildPdfMetadata(Map<String, Object> model, Document document, HttpServletRequest request) {
}
protected abstract void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer,
HttpServletRequest request, HttpServletResponse response) throws Exception;
}
Любая помощьприветствуется!Спасибо, ребята.