+ 1, потому что это правильный вопрос.
Клиентская сторона
Вы можете использовать pdf.js библиотеку javascript из mozilla для отображения pdf в виде изображений
Сторона сервера
Если ваш pdf находится в файловой системе изменен отсюда
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pdfFileName = "pdf-test.pdf";
String contextPath = getServletContext().getRealPath(File.separator);
File pdfFile = new File(contextPath + pdfFileName);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "inline; filename=" + pdfFileName)
response.setContentLength((int) pdfFile.length());
FileInputStream fileInputStream = new FileInputStream(pdfFile);
OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
}
Если вы генерируете pdf в памяти с использованием таких библиотек, как pdfbox
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int marginTop = 30;
String title = "HELLO WORLD";
final PDFont fontData = PDType1Font.HELVETICA;
final int fontSize = 8;
//java8 color issue
System.setProperty("sun.java2d.cmm", "sun.java2d.cmm.kcms.KcmsServiceProvider");
final PDPage page = new PDPage();
final PDFont fontLabel = PDType1Font.HELVETICA_BOLD;
final int titleFontSize = 12;
float heightLabelText = fontLabel.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * fontSize;
try (final PDDocument pdf = new PDDocument())
{
pdf.addPage(page);
try (PDPageContentStream stream = new PDPageContentStream(pdf, page)) {
float top = page.getMediaBox().getHeight() - marginTop;
float titleWidth = fontLabel.getStringWidth(title) / 1000 * titleFontSize;
stream.setFont(fontLabel, titleFontSize);
stream.beginText();
stream.newLineAtOffset((page.getMediaBox().getWidth() - titleWidth) / 2, top - 25);
stream.showText(title);
stream.endText();
}
try(ByteArrayOutputStream output = new ByteArrayOutputStream()) {
pdf.save(output);
resp.setContentType("application/pdf");
resp.addHeader("Content-Type", "application/pdf");
resp.addHeader("Content-Disposition", "inline; filename=\"yourFile" + "-" + new Random().nextInt() + ".pdf" + "\"");
byte[] bytes = output.toByteArray();
resp.getOutputStream().write(bytes);
resp.setContentLength((int) bytes.length);
}
}
}