Да, это работает, большое спасибо!

аюсь преобразовать страницу JSF в PDF с помощью Flying Saucer.

@ManagedBean
@SessionScoped
public class ReportController {
    ...
    public void createPDF() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExternalContext externalContext = facesContext.getExternalContext();
        try {
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument(new URL("http://myserver.com/report.xhtml").toString());
        renderer.layout();
        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
        response.reset();
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "inline; filename="report.pdf");
        OutputStream browserStream = response.getOutputStream();
        renderer.createPDF(browserStream);
        } catch (Exception ex) {
            ...
        }
        facesContext.responseComplete();
    }
}

На странице /report.xhtml у меня есть некоторые параметры бина, значения которых должны появиться в pdf. Но они этого не делают. Если я захожу на страницу xhtml, то значения отображаются правильно. Я думаю, что это потому, что renderer.setDocument (String URI) создает новое соединение (и новый сеанс) для загрузки документа из указанного URL-адреса. Как я могу получить содержимое страницы в формате HTML в моем текущем сеансе (со всеми значениями параметров)?

Ответы на вопрос(1)

Ваш ответ на вопрос