Exemple #1
0
        protected MemoryStream GeneratePDF(DateTime from, DateTime to, Student student)
        {
            MemoryStream memstream = new MemoryStream();
            Document     Report    = new Document(PageSize.LETTER);

            Report.SetMargins(36, 36, 36, 60);

            PdfWriter writer = PdfWriter.GetInstance(Report, memstream);

            Report.Open();
            PdfContentByte content = writer.DirectContent;

            /* Header and footer stuff - work to be done on this before it can be implemented */
            PdfPageEventHandler PageEventHandler = new PdfPageEventHandler();

            writer.PageEvent = PageEventHandler;

            PageEventHandler.bottomCenter = "Printed " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
            PageEventHandler.bottomLeft   = student.getDisplayName();

            Report.Add(SLReports.Attendance.AttendancePDFParts.livingSkyHeading());
            Report.Add(SLReports.Attendance.AttendancePDFParts.pageTitle(content, from, to));
            Report.Add(SLReports.Attendance.AttendancePDFParts.studentNamePlate(student));
            Report.Add(SLReports.Attendance.AttendancePDFParts.attendanceTable(student));
            Report.Add(SLReports.Attendance.AttendancePDFParts.attendanceSummary(student));

            Report.Close();
            return(memstream);
        }
        public static MemoryStream GeneratePDF(School school, List <Student> students, bool doubleSidedMode = true)
        {
            MemoryStream memstream   = new MemoryStream();
            Document     PDFDocument = new Document(PageSize.LETTER);
            PdfWriter    writer      = PdfWriter.GetInstance(PDFDocument, memstream);

            PDFDocument.Open();
            PdfContentByte content = writer.DirectContent;

            PdfPageEventHandler PageEventHandler = new PdfPageEventHandler();

            writer.PageEvent = PageEventHandler;
            PageEventHandler.DoubleSidedMode = doubleSidedMode;
            PageEventHandler.ShowOnFirstPage = true;
            PageEventHandler.bottomCenter    = "Printed " + DateTime.Now.ToLongDateString();
            PageEventHandler.bottomLeft      = "Student list by grade";

            // Organize students into grades
            SortedDictionary <string, List <Student> > studentsByGrade = new SortedDictionary <string, List <Student> >();

            foreach (Student student in students)
            {
                if (!studentsByGrade.ContainsKey(student.getGradeFormatted()))
                {
                    studentsByGrade.Add(student.getGradeFormatted(), new List <Student>());
                }
                studentsByGrade[student.getGradeFormatted()].Add(student);
            }

            foreach (KeyValuePair <string, List <Student> > grade in studentsByGrade)
            {
                // Show a page header
                PDFDocument.Add(header(school));

                // Show a list
                PDFDocument.Add(studentList(grade.Value, grade.Key));

                // Page break after each grade
                PDFDocument.NewPage();
            }

            PDFDocument.Close();
            return(memstream);
        }
Exemple #3
0
        protected MemoryStream GeneratePDF(DateTime from, DateTime to, List <Student> students)
        {
            MemoryStream memstream = new MemoryStream();
            Document     Report    = new Document(PageSize.LETTER);

            Report.SetMargins(36, 36, 36, 60);

            PdfWriter writer = PdfWriter.GetInstance(Report, memstream);

            Report.Open();
            PdfContentByte content = writer.DirectContent;

            /* Header and footer stuff - work to be done on this before it can be implemented */
            PdfPageEventHandler PageEventHandler = new PdfPageEventHandler();

            writer.PageEvent = PageEventHandler;

            PageEventHandler.DoubleSidedMode = false; // Doesn't work so well with large multi-student documents...

            foreach (Student student in students)
            {
                PageEventHandler.bottomCenter = "Printed " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
                PageEventHandler.bottomLeft   = student.getDisplayName();
                PageEventHandler.ResetPageNumbers(Report);

                Report.Add(SLReports.Attendance.AttendancePDFParts.livingSkyHeading());
                Report.Add(SLReports.Attendance.AttendancePDFParts.pageTitle(content, from, to));
                Report.Add(SLReports.Attendance.AttendancePDFParts.studentNamePlate(student));
                Report.Add(SLReports.Attendance.AttendancePDFParts.attendanceTable(student));
                Report.Add(SLReports.Attendance.AttendancePDFParts.attendanceSummary(student));
                Report.NewPage();
                Report.Add(new Phrase(String.Empty));
            }

            Report.Close();
            return(memstream);
        }