Sobes.tech
Назад к вопросам
Junior — Middle
112

Каким образом реализовать отправку PDF-документа пользователю в приложении?

Компании, где спрашивали
RedLab

Ответ от нейросети

sobes.tech AI

Для отправки PDF-документа пользователю в Java-приложении, например, веб-приложении на Spring Boot, можно сделать следующее:

  1. Сформировать PDF-файл или получить его из хранилища.
  2. Установить правильные HTTP-заголовки для ответа, чтобы браузер понимал, что это PDF и предлагал скачать или открыть файл.
  3. Записать содержимое PDF в поток ответа.

Пример контроллера на Spring Boot:

@GetMapping("/download/pdf")
public void downloadPdf(HttpServletResponse response) throws IOException {
    // Путь к PDF-файлу
    File pdfFile = new File("path/to/document.pdf");

    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "attachment; filename=document.pdf");
    response.setContentLength((int) pdfFile.length());

    try (InputStream is = new FileInputStream(pdfFile);
         OutputStream os = response.getOutputStream()) {
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = is.read(buffer)) != -1) {
            os.write(buffer, 0, bytesRead);
        }
        os.flush();
    }
}

Если PDF генерируется динамически, можно использовать библиотеки вроде iText или Apache PDFBox для создания документа в памяти и отправки его через OutputStream.