Convertir Jsf A Pdf 💎
document.add(table); document.close();
<h:form> <h:commandButton value="Download PDF" action="#pdfConverterBean.convertToPdf"/> </h:form> Method 2: OpenPDF (iText 5+ alternative – LGPL) Dependency <dependency> <groupId>com.github.librepdf</groupId> <artifactId>openpdf</artifactId> <version>1.3.30</version> </dependency> Generate PDF from HTML import com.lowagie.text.Document; import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.html.HtmlParser; public void htmlToPdf(String htmlContent, OutputStream out) Document document = new Document(); PdfWriter.getInstance(document, out); document.open();
public void convertToPdf() throws Exception FacesContext facesContext = FacesContext.getCurrentInstance(); // Get current JSF view HTML as String String htmlContent = captureCurrentViewAsHtml(facesContext); // Convert HTML to PDF ByteArrayOutputStream pdfStream = new ByteArrayOutputStream(); ITextRenderer renderer = new ITextRenderer(); renderer.setDocumentFromString(htmlContent); renderer.layout(); renderer.createPDF(pdfStream); // Send PDF response sendPdfResponse(pdfStream.toByteArray()); convertir jsf a pdf
import com.lowagie.text.*; import com.lowagie.text.pdf.PdfPTable; public void generatePdfFromData(List<MyData> data) Document document = new Document(); ByteArrayOutputStream out = new ByteArrayOutputStream(); PdfWriter.getInstance(document, out); document.open();
PdfPTable table = new PdfPTable(3); table.addCell("Name"); table.addCell("Value"); table.addCell("Date"); document
// Save or stream response sendPdfResponse(pdf); If you just need a PDF from your data , skip HTML:
private String captureCurrentViewAsHtml(FacesContext context) throws IOException // Alternative: Use a custom PhaseListener or render via URL // Simpler: Re-render the component tree to a buffer UIViewRoot viewRoot = context.getViewRoot(); ResponseWriter originalWriter = context.getResponseWriter(); StringWriter stringWriter = new StringWriter(); context.setResponseWriter(context.getRenderKit().createResponseWriter( stringWriter, "text/html", "UTF-8")); viewRoot.encodeAll(context); context.responseComplete(); String html = stringWriter.toString(); context.setResponseWriter(originalWriter); return html; Generate PDF from HTML import com.lowagie.text.Document
private void sendPdfResponse(byte[] pdfData) FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment; filename=\"output.pdf\""); response.setContentLength(pdfData.length); try response.getOutputStream().write(pdfData); context.responseComplete(); catch (IOException e) e.printStackTrace();