public string gerarPDF(int CodTitulo, bool Armazenar) { ClassWebBI.ClassFuncoes clFuncoes = new ClassWebBI.ClassFuncoes(); SqlCommand sCommand = new SqlCommand(); System.Data.DataTable tblTitulo = new System.Data.DataTable(); SqlParameter pCodigo = new SqlParameter("@COD_TITULO", System.Data.SqlDbType.Int); sCommand.Parameters.Add(pCodigo); sCommand.Parameters["@COD_TITULO"].Value = CodTitulo; SqlParameter pAtualiza = new SqlParameter("@DT_GERACAO", System.Data.SqlDbType.DateTime); sCommand.Parameters.Add(pAtualiza); sCommand.Parameters["@DT_GERACAO"].Value = clFuncoes.GetProperties("fData"); SqlParameter pHrAtualiza = new SqlParameter("@HR_GERACAO", System.Data.SqlDbType.VarChar, 5); sCommand.Parameters.Add(pHrAtualiza); sCommand.Parameters["@HR_GERACAO"].Value = DateTime.Now.ToString("HH:mm"); sCommand.CommandText = "SELECT COD_TITULO, NOME, COD_EXCEL, NUM_PLAN_PDF, TIPO_ARMAZENAGEM FROM EXCEL_TITULOS WHERE COD_TITULO = @COD_TITULO"; tblTitulo = clFuncoes.ExecReader(sCommand); if (tblTitulo.Rows.Count <= 0) { return(""); } string Arquivo = salvaArquivoExcel(Convert.ToInt32(tblTitulo.Rows[0]["COD_EXCEL"].ToString())); if (!File.Exists(Arquivo)) { return(""); } Application xlsApp = new Application(); if (xlsApp == null) { return(""); } string NomeSimples = tblTitulo.Rows[0]["NOME"].ToString().Replace(" ", "") + "_" + clFuncoes.GetDataParcial(Convert.ToDateTime(pAtualiza.Value), tblTitulo.Rows[0]["TIPO_ARMAZENAGEM"].ToString()); string Nome = clFuncoes.GetProperties("fTempDirUsuario").ToString() + NomeSimples + ".pdf"; Workbook workbook = xlsApp.Workbooks.Open(Arquivo); Worksheet worksheet = workbook.Sheets[Convert.ToInt32(tblTitulo.Rows[0]["NUM_PLAN_PDF"].ToString())] as Worksheet; worksheet.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, @Nome, XlFixedFormatQuality.xlQualityStandard); //GC.Collect(); // GC.WaitForPendingFinalizers(); workbook.Close(true); workbook = null; xlsApp.Quit(); xlsApp = null; if (Armazenar) { sCommand.CommandText = "UPDATE EXCEL_TITULOS" + " SET DT_GERACAO = @DT_GERACAO" + ", HR_GERACAO = @HR_GERACAO" + " WHERE COD_TITULO = @COD_TITULO"; string sAux = clFuncoes.ExecNonQuery(sCommand); sAux = NomeSimples + ".pdf"; adicionaAnexoBase(Convert.ToInt32(pCodigo.Value), @Nome, "PDF", sAux, Convert.ToDateTime(pAtualiza.Value), pHrAtualiza.Value.ToString()); } return(@Nome); }