Create PDF with OpenHTMLPdf and Primefaces

236 Views Asked by At

I want to create a PDF based on Primefaces and OpenHTMLPDF:

I have issues with the converting to my private org.primefaces.model.StreamedContent pdfTemplate;

So I need help for the last 2 code lines I guess:

    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");

Is there also an enhancement needed? Close stream e.g. etc? Do I have to do something more for PdfRendererBuilder (change settings) ? Many thanks

0

There are 0 best solutions below