Example #1
0
        public void publishReportForWeb(Siberix.Report.Report Report)
        {
            try
            {
                System.Web.HttpContext  context  = System.Web.HttpContext.Current;
                System.Web.HttpResponse response = context.Response;
                response.Clear();

                //PDF
                response.ContentType = "application/pdf";
                response.AddHeader("content-disposition", "attachment; filename=report-" + string.Format("{0}.pdf", DateTime.Now.ToString("MMddyy")));

                Report.Publish(response.OutputStream, Siberix.Report.FileFormat.PDF);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
                response.Close();
            }
            catch (Exception ex)
            {
            }
        }
        private string createPDF(string[] rows, string fileName)
        {
            try
            {
                var firstRow = rows[0];
                //if (!useSiberix)
                //{

                //    var document = new Document(PageSize.A4.Rotate(), 10, 10, 10, 10);

                //    var memStream = new MemoryStream();

                //    PdfWriter.GetInstance(document, memStream);

                //    document.Open();

                //    var p1 = new Paragraph(new Chunk(firstRow,
                //                                     FontFactory.GetFont(FontFactory.HELVETICA, 20))) { SpacingAfter = 20 };

                //    document.Add(p1);

                //    var headerRow = rows[1];
                //    var columns = headerRow.Split('|');

                //    var dataTable = new PdfPTable(columns.Length);

                //    dataTable.DefaultCell.Padding = 3;

                //    dataTable.DefaultCell.BorderWidth = 1;

                //    dataTable.WidthPercentage = 100;
                //    dataTable.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;

                //    foreach (var s in columns)
                //    {
                //        dataTable.DefaultCell.GrayFill = 0.7f;
                //        dataTable.DefaultCell.Padding = 5;

                //        dataTable.AddCell(s.Replace("\"", ""));
                //        dataTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
                //    }

                //    dataTable.HeaderRows = 1; // this is the end of the table header

                //    dataTable.DefaultCell.BorderWidth = 1;

                //    for (var i = 2; i < rows.Length; i++)
                //    {
                //        dataTable.DefaultCell.GrayFill = i % 2 == 1 ? 0.9f : 1f;

                //        var values = rows[i].Split('|');
                //        for (var x = 0; x < columns.Length; x++)
                //        {
                //            dataTable.DefaultCell.HorizontalAlignment = x == 0
                //                                                            ? Element.ALIGN_LEFT
                //                                                            : Element.ALIGN_CENTER;
                //            var value = values[x] ?? "";
                //            dataTable.AddCell(value.Replace("\"", ""));
                //        }

                //    }

                //    document.Add(dataTable);

                //    document.Close();

                //    var idFile = TempFileManagerProvider.TempFileManager.SaveFile(memStream.ToArray());

                //    return String.Format("{{ \"fileId\" : \"{0}\", \"fileName\": \"{1}\" }}", idFile, fileName);
                //}
                //else
                //{
                var report = new Siberix.Report.Report();

                report.Info.Title = "Ranking Monitor Report";
                report.Info.Author = "SEOToolSet";
                report.Info.Creator = "SEOToolSet";
                report.Info.Copyright = "© SEOToolSet, USA";

                var section = report.AddSection();
                section.Size = Siberix.Report.PageSize.A4;
                section.Orientation = Siberix.Report.Orientation.Landscape;
                section.Spacings.All = 35;
                var titleStyle = new Siberix.Report.Text.Style(new Siberix.Graphics.Fonts.ArialBold(16), Siberix.Graphics.Brushes.Black);
                var headerStyle = new Siberix.Report.Text.Style(new Siberix.Graphics.Fonts.ArialBold(12), Siberix.Graphics.Brushes.Black);

                var rowStyle = new Siberix.Report.Text.Style(new Siberix.Graphics.Fonts.Arial(10), Siberix.Graphics.Brushes.Black);

                var text = section.AddText();
                text.Style = titleStyle;
                text.AddContent(firstRow);

                var headerRow = rows[1];
                var columns = headerRow.Split('|');

                var grid = section.AddGrid();
                grid.Borders = new Siberix.Report.Borders(Siberix.Graphics.Pens.Black);
                grid.Spacings.All = 5;
                grid.Background = new Siberix.Report.Background(new Siberix.Graphics.Color(240, 240, 220));

                // columns

                foreach (var s in columns)
                {
                    var column = grid.AddColumn();
                    column.Width = new Siberix.Report.RelativeWidth((float)(100.0 / columns.Length));
                }

                // Header
                var header = grid.AddHeader();
                header.Repeat = true;
                var row = header.AddRow();

                foreach (var s in columns)
                {
                    var cell = row.AddCell();
                    cell.Alignment.Horizontal = Siberix.Report.HorizontalAlignment.Center;
                    cell.Borders = new Siberix.Report.Borders(Siberix.Graphics.Pens.Black);
                    cell.Paddings.All = 5;
                    cell.Background = new Siberix.Report.Background
                                          {
                                              Brush =
                                                  new Siberix.Graphics.LinearGradientBrush(Siberix.Graphics.Colors.LightSteelBlue,
                                                                                           Siberix.Graphics.Colors.
                                                                                               WhiteSmoke, (float)90.0)
                                          };

                    text = cell.AddText();
                    text.Style = headerStyle;
                    text.AddContent(s);

                }

                for (var i = 2; i < rows.Length; i++)
                {
                    row = grid.AddRow();
                    var alternateBackground = i % 2 == 0;
                    var values = rows[i].Split('|');
                    for (var x = 0; x < columns.Length; x++)
                    {
                        var value = values[x] ?? "";
                        var cell = row.AddCell();

                        cell.Alignment.Horizontal = x == 0 ? Siberix.Report.HorizontalAlignment.Left : Siberix.Report.HorizontalAlignment.Center;
                        cell.Borders = new Siberix.Report.Borders(Siberix.Graphics.Pens.Black);
                        cell.Paddings.All = 5;
                        text = cell.AddText();
                        text.Style = rowStyle;
                        text.AddContent(value);
                        if (alternateBackground)
                            cell.Background =
                                new Siberix.Report.Background(new Siberix.Graphics.Color(255, 255, 255));
                    }

                }

                var memStream = new MemoryStream();
                report.Publish(memStream, Siberix.Report.FileFormat.PDF);

                var idFile = TempFileManagerProvider.TempFileManager.SaveFile(memStream.ToArray());
                return String.Format("{{ \"fileId\" : \"{0}\", \"fileName\": \"{1}\" }}", idFile, fileName);

                //}
            }
            catch (Exception ex)
            {
                LoggerFacade.Log.LogException(GetType(), ex);
            }
            // return -1 to indicate no file was created
            return "{ \"fileId\" : \"-1\" }";
        }