Search in sources :

Example 1 with PdfBoxRenderer

use of com.openhtmltopdf.pdfboxout.PdfBoxRenderer in project alf.io by alfio-event.

the class TemplateProcessor method prepareItextRenderer.

public static PdfBoxRenderer prepareItextRenderer(String page) {
    PdfRendererBuilder builder = new PdfRendererBuilder();
    builder.withW3cDocument(DOMBuilder.jsoup2DOM(Jsoup.parse(page)), "");
    PdfBoxRenderer renderer = builder.buildPdfRenderer();
    try (InputStream is = new ClassPathResource("/alfio/font/DejaVuSansMono.ttf").getInputStream()) {
        renderer.getFontResolver().addFont(() -> is, "DejaVu Sans Mono", null, null, false);
    } catch (IOException e) {
        log.warn("error while loading DejaVuSansMono.ttf font", e);
    }
    renderer.layout();
    return renderer;
}
Also used : InputStream(java.io.InputStream) IOException(java.io.IOException) PdfRendererBuilder(com.openhtmltopdf.pdfboxout.PdfRendererBuilder) ClassPathResource(org.springframework.core.io.ClassPathResource) PdfBoxRenderer(com.openhtmltopdf.pdfboxout.PdfBoxRenderer)

Example 2 with PdfBoxRenderer

use of com.openhtmltopdf.pdfboxout.PdfBoxRenderer in project alf.io by alfio-event.

the class TicketController method generateTicketPdf.

@RequestMapping(value = "/event/{eventName}/ticket/{ticketIdentifier}/download-ticket", method = RequestMethod.GET)
public void generateTicketPdf(@PathVariable("eventName") String eventName, @PathVariable("ticketIdentifier") String ticketIdentifier, HttpServletRequest request, HttpServletResponse response) throws IOException, WriterException {
    Optional<Triple<Event, TicketReservation, Ticket>> oData = ticketReservationManager.fetchCompleteAndAssigned(eventName, ticketIdentifier);
    if (!oData.isPresent()) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return;
    }
    Triple<Event, TicketReservation, Ticket> data = oData.get();
    Ticket ticket = data.getRight();
    response.setContentType("application/pdf");
    response.addHeader("Content-Disposition", "attachment; filename=ticket-" + ticketIdentifier + ".pdf");
    try (OutputStream os = response.getOutputStream()) {
        PdfBoxRenderer renderer = preparePdfTicket(request, data.getLeft(), data.getMiddle(), ticket).generate(ticket);
        if (renderer != null) {
            renderer.createPDF(os);
        }
    }
}
Also used : Triple(org.apache.commons.lang3.tuple.Triple) Ticket(alfio.model.Ticket) OutputStream(java.io.OutputStream) Event(alfio.model.Event) TicketReservation(alfio.model.TicketReservation) PdfBoxRenderer(com.openhtmltopdf.pdfboxout.PdfBoxRenderer)

Aggregations

PdfBoxRenderer (com.openhtmltopdf.pdfboxout.PdfBoxRenderer)2 Event (alfio.model.Event)1 Ticket (alfio.model.Ticket)1 TicketReservation (alfio.model.TicketReservation)1 PdfRendererBuilder (com.openhtmltopdf.pdfboxout.PdfRendererBuilder)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 Triple (org.apache.commons.lang3.tuple.Triple)1 ClassPathResource (org.springframework.core.io.ClassPathResource)1