internal static void ExportarPdf(DateTime dataInicio, TipoProgramacao tipo, Stream saida)
        {
            var programacoes = Programacao.Listar(dataInicio, tipo, true);
            var estudos = new List<Estudo>();
            foreach (var programacao in programacoes)
            {
                estudos.AddRange(programacao.Estudos);
            }
            Boolean mostrarExpositor = Permissao.TrabalhadorLogadoPossuiPermissao(Permissao.Obter(Permissao.IdVerExpositores));
            var dadosProgramacao = (from e in estudos
                                    orderby e.Inicio ascending , e.Fim ascending , e.Tipo ascending
                                    select (IEnumerable<string>) new String[]
                                                                     {
                                                                         e.Inicio.ToString("dd/MM/yy") + "\n" +
                                                                         Funcoes.ColocarPrimeiraLetraMaiuscula(
                                                                             e.Inicio.ToString("dddd").Replace(
                                                                                 "-feira", "")),
                                                                         e.Programacao.HorarioInicio + "\n" +
                                                                         e.Programacao.HorarioFim,
                                                                         (mostrarExpositor ? e.Tipo : e.TipoComExpositor),
                                                                         e.Tema,
                                                                         e.DescricaoLocal
                                                                     });

            ExportadorPDF exportadorPDF = new ExportadorPDF(
                new String[] {"Data", "Horário", "Estudo", "Tema", "Local"}, dadosProgramacao)
                                              {
                                                  AlturaCelula = 50,
                                                  NroGrupos = 2,
                                                  NroMaxLinhas = 14,
                                                  TamanhoColunas = new float[] {12, 10, 30, 36, 12},
                                                  TextoTopoCabecalho =
                                                      "Programação " +
                                                      (tipo == TipoProgramacao.Diaria
                                                           ? " diária"
                                                           : Funcoes.ColocarPrimeiraLetraMaiuscula(
                                                               dataInicio.ToString("dddd").Replace("-feira", ""))) + "\nAtualizado em " + DateTime.Now.ToString("dd/MM/yy"),
                                                  TextoNaoHaDados = "Não há dados de programação cadastrados para o período"
                                              };
            exportadorPDF.ExportarPdf(saida);
        }
 private static void ExportarPdfPorTipo(Stream saida)
 {
     var atividades = Atividade.Listar();
     var dadosAtividade = (from a in atividades
                           orderby a.TipoAtividade ascending,
                               a.DiaDaSemana ascending,
                               a.HorarioIncio ascending,
                               a.HorarioFim ascending,
                               a.Descricao ascending
                           select (IEnumerable<string>)new String[]
                                                            {
                                                                a.TipoAtividade.Replace("/", "\n"),
                                                                a.DiaDaSemanaTexto,
                                                                a.HorarioInicioTexto + " às " + a.HorarioFimTexto,
                                                                a.Descricao
                                                            });
     ExportadorPDF exportadorPDF = new ExportadorPDF(
         new String[] { "Tipo", "Dia", "Horário", "Atividade" }, dadosAtividade)
     {
         AlturaCelula = 20,
         NroGrupos = 2,
         NroMaxLinhas = 35,
         TamanhoColunas = new float[] { 10, 8, 12, 40 },
         TextoTopoCabecalho =
             "Atividades Agrupadas Por Tipo \n" + DateTime.Today.ToString("dd/MM/yyyy"),
         TextoNaoHaDados = "Não há dados de atividades cadastrados",
         AlinhamentoHorizontalDados = new int[] { Element.ALIGN_CENTER, Element.ALIGN_CENTER,
             Element.ALIGN_CENTER, Element.ALIGN_LEFT }
     };
     exportadorPDF.ExportarPdf(saida);
 }