首页 > 解决方案 > 使用 OpenHTMLPdf 和 Primefaces 创建 PDF

问题描述

我想创建一个基于 Primefaces 和 OpenHTMLPDF 的 PDF:

我在转换为我的私有 org.primefaces.model.StreamedContent pdfTemplate 时遇到问题;

所以我猜想最后两行代码需要帮助:

    ExternalContext externalContext = facesContext.getExternalContext();
        String serverName = externalContext.getRequestServerName();
        String port = String.valueOf(externalContext.getRequestServerPort());
        String appName = externalContext.getRequestContextPath();
        String protocol = externalContext.getRequestScheme();
        String url = protocol + "://myurl.com";

        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
        response.reset();
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "inline; filename=\"" + "pdfTemplate.pdf" + "\"");

        OutputStream browserStream = response.getOutputStream();

        PdfRendererBuilder builder = new PdfRendererBuilder();
        builder.useFastMode();
        builder.withUri(new URL(url).toString());
        builder.toStream(browserStream);
        builder.run();

        FileInputStream fis = new FileInputStream(new File("C:\\samplexxx.pdf"));
        pdfTemplate = new DefaultStreamedContent(fis, "application/pdf");

是否还需要增强?关闭流,例如等?我是否需要为 PdfRendererBuilder 做更多的事情(更改设置)?非常感谢

标签: jsfstreamopenhtmltopdf

解决方案


推荐阅读