private ComponentBuilder<?, ?> generaCabecera(Map map) throws FileNotFoundException {
    InputStream medida =
        new FileInputStream(
            map.get(Constantes.INT_PARAM_GRAF_MEDIDA) + Constantes.STR_EXTENSION_PNG);

    return cmp.verticalList(
        cmp.verticalGap(5), // SALTO DE LINEA
        cmp.horizontalList(
            cmp.text(objDatosReporte.getStrDescripcion())
                .setStyle(ModeloGeneral.styleTituloPrincipal))
        // ,//SALTO DE LINEA
        // cmp.line().setPen(stl.pen(new Float("0.1"), LineStyle.SOLID))
        , // SALTO DE LINEA
        cmp.verticalGap(10), // SALTO DE LINEA
        cmp.horizontalList(
            // cmp.text("Medida").setStyle(styleColumnaSubtitulo).setWidth(350),
            cmp.image(medida).setFixedDimension(225, 20),
            cmp.horizontalGap(50),
            // cmp.text("Rel").setStyle(ModeloGeneral.styleColumnaSubtitulo).setWidth(140),
            cmp.text("Prom").setStyle(ModeloGeneral.styleColumnaSubtitulo).setWidth(80),
            cmp.text("Descripcion")
                .setStyle(ModeloGeneral.styleColumnaSubtitulo)
                .setHorizontalAlignment(HorizontalAlignment.RIGHT)
                .setWidth(220)),
        cmp.verticalGap(5));
  }
  private ComponentBuilder<?, ?> generaPie(Map map) throws FileNotFoundException {

    return cmp.horizontalList()
        .add(cmp.line().setPen(stl.pen(new Float("0.25"), LineStyle.SOLID)))
        .newRow()
        .add(cmp.verticalGap(5))
        .newRow()
        .add(
            cmp.horizontalList(
                cmp.verticalList(
                        cmp.text(objDatosReporte.getStrNombreEvaluado())
                            .setStyle(ModeloNormal.styleFooterLeftBottomParam),
                        cmp.text(objDatosReporte.getStrCuestionario())
                            .setStyle(ModeloNormal.styleFooterLeftTopParam))
                    .setWidth(400),
                cmp.verticalList(
                    // cmp.pageNumber().setStyle(ModeloNormal.styleFooterRightBottomParam)
                    )));
  }
  public String build(DatosReporte objDatosReporte, Map map) throws IOException {

    this.objDatosReporte = objDatosReporte;

    String strNombreReporte = objDatosReporte.getStrID() + Constantes.STR_EXTENSION_PDF;
    JasperPdfExporterBuilder pdfExporter =
        export
            .pdfExporter(Constantes.STR_INBOX_PRELIMINAR + File.separator + strNombreReporte)
            .setEncrypted(Boolean.FALSE);

    try {
      report()
          .setTemplate(ModeloGeneral.reportTemplate)
          .setSummaryWithPageHeaderAndFooter(Boolean.TRUE)
          .pageHeader(generaCabecera(map))
          .summary(generaConenido())
          .pageFooter(generaPie(map))
          .toPdf(pdfExporter);
    } catch (DRException ex) {
      log.error(ex);
      return null;
    }
    return strNombreReporte;
  }