Генерация PDF и отправка его пользователю с использованием HttpServletResponse (заголовки) - PullRequest
0 голосов
/ 13 декабря 2011

Добро пожаловать всем.
Я пытаюсь создать PDF для отправки пользователю без предварительного сохранения файла на моем сервере.
Я использую Hibernate + Struts2. Мои образцы кода: CreatePDF.java (класс для генерации PDF) Метод BuildPdf():

ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
    document = new Document();
    PdfWriter.getInstance(document,baos);
    document.open();
    buildPage(document, snippet, snippetContent);
    document.close();
    response.setContentType("application/pdf");
    response.setContentLength(baos.size());
    response.setHeader("Content-Disposition", "attachment;filename=document.pdf");
    ServletOutputStream out = response.getOutputStream();
    baos.writeTo(out);
    out.flush();
    response.flushBuffer();
} catch (Exception e) {
    Log4jUtil.debug(logger, "Can not buid pdf-file", e);
}

Мой пример действия: индекс метода ():

pdf = new CreatePDF();
pdf.buildPdf(snippet, snippetContent);
return SUCCESS;

Можете ли вы проверить мой код, пожалуйста, для ошибки поиска? Могут ли быть ошибки .... Пожалуйста, помогите мне. Нужны идеи или пример кода для решения моей задачи.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Во-первых, Hibernate здесь совершенно неактуален.Struts2 уместен, но вы его не используете, вы используете простой (низкоуровневый) API сервлета.Это, вероятно, должно работать, но если ваше веб-приложение построено на Struts2, это не рекомендуемый способ.Вместо этого вы должны использовать Stream stream

0 голосов
/ 14 декабря 2011

Для создания PDF-документов вы можете использовать Smart PDF Creator.Он создает профессиональные PDF-файлы в пару кликов.Вы можете попробовать это бесплатно здесь: http://www.smartpdfcreator.com

...