private void crearElementosDocumentoPdf( Programa programa, List<Seccion> seccionesPdf, final DocumentoPdfItext documentoPdfItext) { try { if (!programaBusiness.tieneResolucion(programa.getIdPrograma())) { documentoPdfItext.getPageEvent().getHeaders().add(new ProductorEncabezadoEstatusPrograma()); } documentoPdfItext.getDocument().open(); crearTituloPrincipal(documentoPdfItext, programa); crearSecciones(programa, seccionesPdf, documentoPdfItext); } catch (DocumentException e) { throw new UaqException(MsgError.ERROR_PDF, e); } }
private void agregarComponenteBySeccion( final Programa programa, final DocumentoPdfItext documentoPdfItext, final ProductorCapituloPdf productorCapituloPdf, final Seccion seccion) throws DocumentException { documentoPdfItext.setTituloConIndice(productorCapituloPdf.getTituloConIndice(seccion)); ProductorComponentePdf productorComponentePdf = crearProductorPdf(documentoPdfItext, seccion); productorComponentePdf.init(programa, seccion); for (Element element : productorComponentePdf.crear(programa, seccion)) { documentoPdfItext.getDocument().add(element); } }
private OutputStream generarStream(final Programa programa, final List<Seccion> seccionesPdf) { DocumentoPdfItext documentoPdfItext = getRyspeDocumentoPdfItext(); crearElementosDocumentoPdf(programa, seccionesPdf, documentoPdfItext); OutputStream pdfOutputStream = documentoPdfItext.generar(); if (isProgramaRechazado(programa.getIdPrograma())) { try { pdfOutputStream = marcarReporteProgramaRechazado( programa, new ByteArrayInputStream(((ByteArrayOutputStream) pdfOutputStream).toByteArray())); } catch (IOException | DocumentException e) { throw new UaqException(MsgError.ERROR_PDF, e); } } return pdfOutputStream; }
private void crearTituloPrincipal( final DocumentoPdfItext documentoPdfItext, final Programa programa) throws DocumentException { for (Element elementoTituloPrincipal : productorTituloPrincipal.crear(programa, new Seccion())) { documentoPdfItext.getDocument().add(elementoTituloPrincipal); } }
private Chapter crearSecciones( final Programa programa, final List<Seccion> seccionesPdf, final DocumentoPdfItext documentoPdfItext) throws DocumentException { Chapter capitulo = new Chapter(-1); ProductorCapituloPdf productorCapituloPdf = getProductorCapituloPdf(); documentoPdfItext.getPageEvent().getFooters().add(new ProductorNumeroPaginaFooter()); for (Seccion seccion : seccionesPdf) { agregarComponenteBySeccion(programa, documentoPdfItext, productorCapituloPdf, seccion); } return capitulo; }