Esempio n. 1
0
        public static IPdfReportData CreatePdfReport(CommonTechnicalStaffReportModel reportModel, string headerMessage)
        {
            var appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            if (HttpContext.Current != null)
            {
                appPath = HttpContext.Current.Server.MapPath("~/App_Data");
            }

            return(new PdfReport().DocumentPreferences(doc =>
            {
                doc.RunDirection(PdfRunDirection.RightToLeft);
                doc.Orientation(PageOrientation.Portrait);
                doc.PageSize(PdfPageSize.A4);
                doc.DocumentMetadata(new DocumentMetadata
                {
                    Author = "Vahid",
                    Application = "PdfRpt",
                    Keywords = "IList Rpt.",
                    Subject = "Test Rpt",
                    Title = "Test"
                });
                doc.Compression(new CompressionSettings
                {
                    EnableCompression = true,
                    EnableFullCompression = true
                });
            })
                   .DefaultFonts(fonts =>
            {
                //fonts.Path(
                //    System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\arial.ttf"),
                //    System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\verdana.ttf"));
                fonts.Path(HttpContext.Current.Server.MapPath("~/Content/Fonts/irsans.ttf"),
                           System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\Tahoma.ttf"));
                fonts.Size(9);
                fonts.Color(System.Drawing.Color.Black);
            })
                   .PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToPersianDateTime());
                //var date = DateTime.Now.ToString("MM/dd/yyyy");
                //footer.InlineFooter(inlineFooter =>
                //{
                //    inlineFooter.FooterProperties(new FooterBasicProperties
                //    {
                //        PdfFont = footer.PdfFont,
                //        HorizontalAlignment = HorizontalAlignment.Center,
                //        RunDirection = PdfRunDirection.LeftToRight,
                //        SpacingBeforeTable = 30,
                //        TotalPagesCountTemplateHeight = 9,
                //        TotalPagesCountTemplateWidth = 50
                //    });

                //    //return inlineFooter;
                //});
            })
                   .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);     // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.RightToLeft);
                    //defaultHeader.ImagePath(System.IO.Path.Combine(appPath, "Images\\01.png"));
                    defaultHeader.Message(headerMessage);
                });
            })
                   .MainTableTemplate(template =>
            {
                //template.BasicTemplate(BasicTemplate.BlackAndBlue1Template);
                template.CustomTemplate(new MyTemplate());
            })
                   .MainTablePreferences(table =>
            {
                table.ColumnsWidthsType(TableColumnWidthType.Relative);
                table.SpacingBefore(10);
                table.SplitLate(true);
            })
                   .MainTableDataSource(dataSource =>
            {
                dataSource.StronglyTypedList(reportModel.TechnicalStaves);
            })
                   .MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName("rowNo");
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <TechnicalStaffReportModel>(x => x.Image);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(3);
                    column.HeaderCell("تصویر");
                    column.FixedHeight(70);
                    column.ColumnItemsTemplate(t => t.ImageFilePath(defaultImageFilePath: string.Empty,
                                                                    fitImages: true));
                });


                columns.AddColumn(column =>
                {
                    column.PropertyName <TechnicalStaffReportModel>(x => x.FullName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(3.5f);
                    column.HeaderCell("نام و نام خانوادگی");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <TechnicalStaffReportModel>(x => x.FatherName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("نام پدر");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <TechnicalStaffReportModel>(x => x.NationalCode);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("کد ملی");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <TechnicalStaffReportModel>(x => x.Role);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2.5f);
                    column.HeaderCell("سمت");
                    //column.ColumnItemsTemplate(template =>
                    //{
                    //    template.TextBlock();
                    //    template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                    //        ? string.Empty
                    //        : ((DateTime)obj).ToPersianDateTime(includeHourMinute: false));
                    //});
                });
            })
                   .MainTableEvents(events =>
            {
                events.DataSourceIsEmpty(message: "There is no data available to display.");

                events.DocumentClosing(e =>
                {
                    // close the document without closing the underlying stream
                    e.PdfWriter.CloseStream = false;
                    e.PdfDoc.Close();

                    e.PdfStreamOutput.Position = 0;
                });


                events.MainTableAdded(args =>
                {
                    var infoTable = new PdfGrid(numColumns: 2)
                    {
                        WidthPercentage = 100,
                        SpacingAfter = 50,
                        SpacingBefore = 50,
                        RunDirection = PdfWriter.RUN_DIRECTION_RTL,
                        SplitLate = true,
                        SplitRows = true
                    };

                    infoTable.AddSimpleRow(

                        (cellData, properties) =>
                    {
                        cellData.Value =
                            "مراتب فوق مورد تایید است.\n \n \n \n \n مهر و امضاء مسئول تربیت بدنی واحد";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 80;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle = DocumentFontStyle.Bold;
                    },
                        (cellData, properties) =>
                    {
                        cellData.Value = "مراتب فوق مورد تایید است.\n \n \n \n \n مهر و امضاء رئیس واحد";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 80;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle= DocumentFontStyle.Bold;
                    }
                        );

                    infoTable.SetExtendLastRow(false, false);


                    args.PdfDoc.Add(infoTable);
                });
            })
                   .Export(export =>
            {
                //export.ToExcel();
            })
                   .Generate(
                       data => data.AsPdfStream(new MemoryStream())
                       //data.AsPdfFile(string.Format("{0}\\Pdf\\EFSample-{1}.pdf", appPath, Guid.NewGuid().ToString("N")))
                       ));
            // data.AsPdfFile(string.Format("{0}\\Pdf\\EFSample-{1}.pdf", appPath, Guid.NewGuid().ToString("N"))));
        }
Esempio n. 2
0
        public static IPdfReportData CreatePdfReport(IndividualSportCompetitonReportModel reportModel, string headerMessage)
        {
            var appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            if (HttpContext.Current != null)
            {
                appPath = HttpContext.Current.Server.MapPath("~/App_Data");
            }

            return(new PdfReport().DocumentPreferences(doc =>
            {
                doc.RunDirection(PdfRunDirection.RightToLeft);
                doc.Orientation(PageOrientation.Portrait);
                doc.PageSize(PdfPageSize.A4);
                doc.DocumentMetadata(new DocumentMetadata
                {
                    Author = "Vahid",
                    Application = "PdfRpt",
                    Keywords = "IList Rpt.",
                    Subject = "Test Rpt",
                    Title = "Test"
                });
                doc.Compression(new CompressionSettings
                {
                    EnableCompression = true,
                    EnableFullCompression = true
                });
            })
                   .DefaultFonts(fonts =>
            {
                //fonts.Path(
                //    System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\arial.ttf"),
                //    System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\verdana.ttf"));
                fonts.Path(HttpContext.Current.Server.MapPath("~/Content/Fonts/irsans.ttf"),
                           System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\Tahoma.ttf"));
                fonts.Size(9);
                fonts.Color(System.Drawing.Color.Black);
            })
                   .PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToPersianDateTime());
                //var date = DateTime.Now.ToString("MM/dd/yyyy");
                //footer.InlineFooter(inlineFooter =>
                //{
                //    inlineFooter.FooterProperties(new FooterBasicProperties
                //    {
                //        PdfFont = footer.PdfFont,
                //        HorizontalAlignment = HorizontalAlignment.Center,
                //        RunDirection = PdfRunDirection.LeftToRight,
                //        SpacingBeforeTable = 30,
                //        TotalPagesCountTemplateHeight = 9,
                //        TotalPagesCountTemplateWidth = 50
                //    });

                //    //return inlineFooter;
                //});
            })
                   .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);     // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.RightToLeft);
                    //defaultHeader.ImagePath(System.IO.Path.Combine(appPath, "Images\\01.png"));
                    defaultHeader.Message(headerMessage);
                });
            })
                   .MainTableTemplate(template =>
            {
                //template.BasicTemplate(BasicTemplate.BlackAndBlue1Template);
                template.CustomTemplate(new MyTemplate());
            })
                   .MainTablePreferences(table =>
            {
                table.ColumnsWidthsType(TableColumnWidthType.Relative);
                table.SpacingBefore(10);
                table.SplitLate(true);
            })
                   .MainTableDataSource(dataSource =>
            {
                dataSource.StronglyTypedList(reportModel.Competitors);
            })
                   .MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName("rowNo");
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.Image);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(3);
                    column.HeaderCell("تصویر");
                    column.FixedHeight(70);
                    column.ColumnItemsTemplate(t => t.ImageFilePath(defaultImageFilePath: string.Empty,
                                                                    fitImages: true));
                });


                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.FullName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(3.5f);
                    column.HeaderCell("نام و نام خانوادگی");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.FatherName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("نام پدر");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.BirthDate);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2.7f);
                    column.HeaderCell("تاریخ تولد");
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                ? string.Empty
                                : ((DateTime)obj).ToPersianDateTime(includeHourMinute: false));
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.NationalCode);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("کد ملی");
                });



                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.StudyField);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("رشته");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.StudentNumber);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2.5f);
                    column.HeaderCell("شماره دانشجویی");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.University);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2.5f);
                    column.HeaderCell("واحد/منطقه/استان");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <IndividualSportCompetitorReportModel>(x => x.InsuranceNumber);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("شماره کارت بیمه ورزشی");
                });
            })
                   .MainTableEvents(events =>
            {
                events.DataSourceIsEmpty(message: "There is no data available to display.");



                events.MainTableAdded(args =>
                {
                    events.DocumentClosing(e =>
                    {
                        // close the document without closing the underlying stream
                        e.PdfWriter.CloseStream = false;
                        e.PdfDoc.Close();

                        e.PdfStreamOutput.Position = 0;
                    });


                    var infoTable = new PdfGrid(numColumns: 2)
                    {
                        WidthPercentage = 100,
                        SpacingAfter = 50,
                        SpacingBefore = 50,
                        RunDirection = PdfWriter.RUN_DIRECTION_RTL,
                        SplitLate = true,
                        SplitRows = true
                    };

                    infoTable.AddSimpleRow(

                        (cellData, properties) =>
                    {
                        cellData.Value =
                            "مراتب فوق مورد تایید است.\n \n \n \n \n مهر و امضاء مسئول تربیت بدنی واحد";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 80;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle = DocumentFontStyle.Bold;
                    },
                        (cellData, properties) =>
                    {
                        cellData.Value = "مراتب فوق مورد تایید است.\n \n \n \n \n مهر و امضاء رئیس واحد";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 80;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle= DocumentFontStyle.Bold;
                    }
                        );


                    //args.Table.ad


                    var techTitleTable = new PdfGrid(numColumns: 2)
                    {
                        WidthPercentage = 100,
                        SpacingAfter = 20,
                        SpacingBefore = 20,
                        RunDirection = PdfWriter.RUN_DIRECTION_RTL,
                    };

                    techTitleTable.AddSimpleRow(

                        (cellData, properties) =>
                    {
                        cellData.Value =
                            "فهرست اعضای کادر فنی";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 20;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle = DocumentFontStyle.Bold;
                    },
                        (cellData, properties) =>
                    {
                        cellData.Value = "";
                        properties.ShowBorder = true;
                        properties.BorderWidth = 0;
                        properties.PdfFont = events.PdfFont;
                        properties.RunDirection = PdfRunDirection.RightToLeft;

                        properties.FixedHeight = 20;
                        //properties.PaddingTop = 0;
                        //properties.PaddingRight = 25;
                        //properties.PaddingLeft = 25;
                        //properties.PaddingBottom = 0;

                        properties.HorizontalAlignment = HorizontalAlignment.Left;
                        //properties.PdfFontStyle= DocumentFontStyle.Bold;
                    }
                        );



                    var table = new PdfGrid(7)
                    {
                        WidthPercentage = 100,
                        SpacingAfter = 50,
                        SpacingBefore = 50,
                        RunDirection = PdfWriter.RUN_DIRECTION_RTL,
                        ExtendLastRow = false,
                        HeaderRows = 1,
                        SplitLate = true,
                        SplitRows = true,
                    };



                    var borderColor = new BaseColor(ColorTranslator.FromHtml("#999999").ToArgb());

                    var oddRowColor = new BaseColor(ColorTranslator.FromHtml("#CCCCCC").ToArgb());


                    //table.SetExtendLastRow(false, false);


                    table.AddSimpleRow(
                        (cellData, cellProperties) =>
                    {
                        cellProperties.CellPadding = 3;
                        cellData.Value = "#";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "تصویر";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "نام و نام خانوادگی";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "نام پدر";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "کد ملی";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "واحد/منطقه/استان";
                        //cellProperties.PdfFont = PdfRptFont;
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    },
                        (cellData, cellProperties) =>
                    {
                        cellData.Value = "سمت";
                        cellProperties.PdfFontStyle = DocumentFontStyle.Bold;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                        cellProperties.ShowBorder = true;
                        cellProperties.BorderWidth = 0;
                        cellProperties.PdfFont = events.PdfFont;
                        cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                        cellProperties.BorderColor = borderColor;
                    }
                        );

                    var index = 1;
                    foreach (var technicalStaff in reportModel.TechnicalStaves)
                    {
                        var staff = technicalStaff;
                        var staff1 = technicalStaff;
                        var technicalStaff1 = technicalStaff;
                        bool isOdd = (index % 2 != 0);

                        table.AddSimpleRow(
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = index.ToString();
                            index++;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.CellTemplate = new ImageFilePathField(defaultImageFilePath: string.Empty,
                                                                           fitImages: true);
                            cellData.Value = technicalStaff.Image;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.PdfFontStyle = DocumentFontStyle.None;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.FixedHeight = 70;
                            cellProperties.CellPadding = 0;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = staff1.FullName;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = technicalStaff1.FatherName;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = staff.NationalCode;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = staff.University;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        },
                            (cellData, cellProperties) =>
                        {
                            cellData.Value = staff.Role;
                            //cellProperties.PdfFont = PdfRptFont;
                            cellProperties.PdfFontStyle = DocumentFontStyle.Normal;
                            cellProperties.HorizontalAlignment = HorizontalAlignment.Center;
                            cellProperties.ShowBorder = true;
                            cellProperties.BorderWidth = 0;
                            cellProperties.PdfFont = events.PdfFont;
                            cellProperties.RunDirection = PdfRunDirection.RightToLeft;
                            cellProperties.BorderColor = borderColor;
                            if (isOdd)
                            {
                                cellProperties.BackgroundColor = oddRowColor;
                            }
                        }
                            );
                    }


                    techTitleTable.AddBorderToTable(
                        borderColor: new BaseColor(ColorTranslator.FromHtml("#999999").ToArgb()), spacingBefore: 5f);


                    table.AddBorderToTable(
                        borderColor: new BaseColor(ColorTranslator.FromHtml("#999999").ToArgb()), spacingBefore: 5f);

                    table.SetExtendLastRow(false, false);

                    int[] firstTablecellwidth = { 10, 13, 15, 12, 20, 12, 5 };

                    table.SetWidths(firstTablecellwidth);


                    infoTable.SetExtendLastRow(false, false);

                    args.PdfDoc.Add(table);
                    //args.PdfDoc.Add(techTitleTable);
                    args.PdfDoc.Add(infoTable);
                });
            })
                   .Export(export =>
            {
                //export.ToExcel();
            })
                   .Generate(data =>
                             data.AsPdfStream(new MemoryStream())
                             // data.AsPdfFile(string.Format("{0}\\Pdf\\EFSample-{1}.pdf", appPath, Guid.NewGuid().ToString("N")))
                             ));
            // data.AsPdfFile(string.Format("{0}\\Pdf\\EFSample-{1}.pdf", appPath, Guid.NewGuid().ToString("N"))));
        }