Первое, что вы можете сделать, это использовать org.apache.pdfbox
.
См. Дополнительную информацию и множество примеров https://pdfbox.apache.org/
Когда пользователь нажимает кнопку создания, вам потребуется создатьpdf шаг за шагом, чтобы он выглядел как шаблон.Вы не можете «скопировать» часть шаблона jsp, включая данные, прямо в pdf.
Вы можете создать вывод в виде файла или в виде байтового массива:
protected void create(Object model, HttpServletRequest request, HttpServletResponse response) throws Exception {
ByteArrayOutputStream baos = createTemporaryOutputStream();
PDDocument document = newDocument();
// Build PDF document.
buildPdfDocument(model, document, request, response);
document.save(baos);
document.close();
final String filename = "pdf-as-byte-stream.pdf";
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
writeToResponse(response, baos);
}
При вышеуказанном решении pdf будет отображаться в полноэкранном режиме браузера.Но поскольку вы хотите показать его как iframe, вам нужно сохранить поток байтов в файл и затем указать iframe на этот файл.
<iframe src="https://www.yoursite.com/pdf/dgxedg37gd3wedb3d83vd3dgv3dt3.pdf"></iframe>
(Убедитесь, что вы сгенерировали уникальное имя для pdf)