/// <summary>
/// Combines all the students into a single PDF with each page a seperate report.
/// </summary>\
void ExportToSinglePDF()
{
string savePath = System.IO.Path.Combine(System.IO.Path.GetFullPath(textSavePath.Text), string.Format("{0}.pdf", textFileName.Text));
string templatePath = System.IO.Path.GetFullPath(textTempLocation.Text);
int finishedReports = 0;
using (Document doc = new Document())
{
using (PdfSmartCopy copy = new PdfSmartCopy(doc, new FileStream(savePath, FileMode.Create)))
{
doc.Open();
foreach (var student in StudentList)
{
PdfReader reader = new PdfReader(templatePath);
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(reader, ms))
{
var form = stamper.AcroFields;
//Setting the text of the template to the stored info
form.SetField("Street", student.Address);
form.SetField("CityZipState", student.CityZipState);
form.SetField("ClassName", student.ClassName);
form.SetField("Comments", student.Comments);
form.SetField("Grade", student.Grade.ToString());
form.SetField("Critique", student.Critique);
form.SetField("HighSchool", student.HighSchool);
form.SetField("Session", student.Session);
form.SetField("Absences", student.SemesterTotalAbs.ToString());
form.SetField("Tardies", student.SemesterTotalTdy.ToString());
form.SetField("NetAbsences", student.SemesterNetAbs.ToString());
form.SetField("StuNameReversed", student.NameReversed);
form.SetField("Date", DateTime.Now.ToShortDateString());
form.RenameField("Comments", string.Format("Comments{0}", finishedReports));
form.RenameField("Date", string.Format("Date{0}", finishedReports));
//Flatten the fields that we do not want editable
stamper.FormFlattening = true;
stamper.PartialFormFlattening("StuNameReversed");
stamper.PartialFormFlattening("Street");
stamper.PartialFormFlattening("CityZipState");
stamper.PartialFormFlattening("HighSchool");
stamper.PartialFormFlattening("ClassName");
stamper.PartialFormFlattening("Session");
stamper.PartialFormFlattening("Absences");
stamper.PartialFormFlattening("Tardies");
stamper.PartialFormFlattening("NetAbsences");
stamper.PartialFormFlattening("Grade");
stamper.PartialFormFlattening("Critique");
stamper.PartialFormFlattening("Date");
}
reader = new PdfReader(ms.ToArray());
//Adds page to the output pdf
copy.AddPage(copy.GetImportedPage(reader, 1));
//Report progress to update status text
bgProgressThread.ReportProgress(++finishedReports);
}
}// Student Foreach end
}
}
}