/// <summary> /// To set the value of the PDF Form field /// </summary> /// <param name="pdfFormFields">AcroFields</param> /// <param name="ctrlname">string</param> /// <param name="ctrlvalue">string</param> /// <param name="ischeckbox">bool</param> /// <param name="istextbox">bool</param> /// <param name="minLength">int</param> /// <param name="maxLength">int</param> public static void GenericClass(AcroFields pdfFormFields, string ctrlname, string ctrlvalue, bool ischeckbox, bool istextbox, int minLength, int maxLength) { if (ischeckbox == true) { pdfFormFields.SetField(ctrlname, ctrlvalue); } if (istextbox == true) { pdfFormFields.SetField(ctrlname, ctrlvalue); } else { if (ctrlvalue.Length != 0) { int j = 0; for (int i = minLength; i <= maxLength; i++) { if (j <= ctrlvalue.Length - 1 && pdfFormFields.GetField(i.ToString()) != null) { pdfFormFields.SetField(i.ToString(), ctrlvalue[j].ToString()); j++; } } } } }
/// <summary> /// METODO 2: Flaggare un acrofield di tipo checkbox /// Looking for a checkbox and checking it /// </summary> /// <param name="fieldName">string Name of the checkbox to check</param> /// <returns>bool Operation result</returns> public void FlagCheckbox(string fieldName) { //Checking if argument is null if (fieldName == null) { throw new ArgumentNullException(fieldName); } //Getting forms AcroFields form = stamper.AcroFields; //Checking if document has no fields if (form.Fields.Count == 0) { throw new DocumentHasNoFieldsException(); } //Looking for a checkbox with the given name var result = form.Fields .Where(kvp => form.GetTranslatedFieldName(kvp.Key).Equals(fieldName) && form.GetFieldType(kvp.Key) == AcroFields.FIELD_TYPE_CHECKBOX ) .Select(kvp => new { kvp.Key, Name = form.GetTranslatedFieldName(kvp.Key), Values = form.GetAppearanceStates(form.GetTranslatedFieldName(kvp.Key)) }) ?.FirstOrDefault(); //Checking if the query had results if (result == null) { throw new FieldNotFoundException(fieldName, AcroFields.FIELD_TYPE_CHECKBOX); } //If the box isn't checked, we check it if (form.GetField(result.Key).Equals(result.Values[0]) || form.GetField(result.Key).Length == 0) { //Changing state and returning true (in case of error it returns false) form.SetField(result.Name, result.Values[1]); } }
private static Dictionary <string, string> GetFormFieldValues(PdfReader pdfReader) { AcroFields form = pdfReader.AcroFields; var dict = new Dictionary <string, string>(); foreach (var item in form.Fields) { dict.Add(item.Key, form.GetField(item.Key)); } return(dict); }
private void FillForm() { string pdfTemplate = @"c:\Temp\PDF\SBAForm1846.pdf"; string newFile = @"c:\Temp\PDF\completed_SBAForm1846.pdf"; PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream( newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; DataSet ds = new DataSet(); //old business layer code - without WCF service - commented Andy //ds = (new Form1846_BAL().Forms_BAL(null, null)); //new WCF service code added to do the same - andy ds = m_serviceClient.GetForms1846_BAL(null, null); // set form pdfFormFields pdfFormFields.SetField("Date", ds.Tables[0].Rows[0]["DateEstablished"].ToString().Trim()); pdfFormFields.SetField("Nametitle", ds.Tables[0].Rows[0]["CoName"].ToString().Trim()); pdfFormFields.SetField("signature", ds.Tables[0].Rows[0]["CoDBA"].ToString().Trim()); // report by reading values from completed PDF string sTmp = "SBAForm1846 Completed for " + pdfFormFields.GetField("Nametitle") + " " + pdfFormFields.GetField("signature"); MessageBox.Show(sTmp, "Finished"); // flatten the form to remove editting options, set it to false // to leave the form open to subsequent manual edits pdfStamper.FormFlattening = false; // close the pdf pdfStamper.Close(); }
private object ProcessPdf(PdfReader pr) { AcroFields flds = pr.AcroFields; FormSubmission formSub = Container.NewTransientInstance <FormSubmission>(); foreach (DictionaryEntry entry in flds.Fields) { string fieldName = entry.Key.ToString(); FieldTypes type = (FieldTypes)flds.GetFieldType(fieldName); string content = flds.GetField(fieldName); formSub.AddFormField(type, fieldName, content); } //Following code will write the .pdf as a byte array var ims = new MemoryStream(); var ps = new PdfStamper(pr, ims); ps.Close(); formSub.FormAsBytes = ims.ToArray(); //TODO: Guard against 1) the FormCode field not existing 2) There being no FormDefinition for that code string formCode = flds.GetField(AppSettings.FieldLabelForFormCode()); formSub.FormCode = formCode; FormDefinition formDef = FormRepository.FindFormDefinitionByCode(formCode); Container.Persist(ref formSub); //GenerateTaskIfApplicable(formSub, formDef); object result = null; if (formDef != null) { result = AutoProcessIfApplicable(formSub, formDef); //TODO: Or maybe form submission? Or some standard thank you acknowledgement? } return(result ?? formSub); }
public Dictionary <string, string> GetFormData() { Dictionary <string, string> frmData = new Dictionary <string, string>(); //Get the form from the pdf AcroFields frm = pdfReader.AcroFields; //Extract the data from the fields string data = string.Empty; foreach (string key in frm.Fields.Keys) { data = frm.GetField(key); frmData.Add(key, data); } return(frmData); }
public List <myKey> getKeys(AcroFields af) { XfaForm xfa = af.Xfa; List <myKey> Keys = new List <myKey>(); foreach (var field in af.Fields) { Keys.Add(new myKey(field.Key, af.GetField(field.Key))); } if (xfa.XfaPresent) { System.Xml.XmlNode n = xfa.DatasetsNode.FirstChild; Keys.AddRange(BFS(n)); } return(Keys); }
static void Main(string[] args) { PdfReader pdfReader = new PdfReader(@"C:\Users\michael.jamwant\Documents\Projects\ODBClaim_PDF\new\ODBclaimreversalform2020.pdf"); string TempFilename = Path.GetTempFileName(); AcroFields pdfFormFields = pdfReader.AcroFields; foreach (KeyValuePair <string, AcroFields.Item> kvp in pdfFormFields.Fields) { string exportPath = @"C:\Users\michael.jamwant\Documents\Projects\ODBClaim_PDF\New\claim.txt"; string fieldName = kvp.Key.ToString(); string fieldValue = pdfFormFields.GetField(kvp.Key.ToString()); Console.WriteLine(fieldName + " " + fieldValue); File.AppendAllText(exportPath, fieldName + "/n"); } pdfReader.Close(); }
//Read all 'Form values/keys' from an existing multi-page PDF document public void ReadPDFformDataPageWise() { PdfReader reader = new PdfReader(Server.MapPath(P_InputStream3)); AcroFields form = reader.AcroFields; try { for (int page = 1; page <= reader.NumberOfPages; page++) { foreach (KeyValuePair<string, AcroFields.Item> kvp in form.Fields) { switch (form.GetFieldType(kvp.Key)) { case AcroFields.FIELD_TYPE_CHECKBOX: case AcroFields.FIELD_TYPE_COMBO: case AcroFields.FIELD_TYPE_LIST: case AcroFields.FIELD_TYPE_RADIOBUTTON: case AcroFields.FIELD_TYPE_NONE: case AcroFields.FIELD_TYPE_PUSHBUTTON: case AcroFields.FIELD_TYPE_SIGNATURE: case AcroFields.FIELD_TYPE_TEXT: int fileType = form.GetFieldType(kvp.Key); string fieldValue = form.GetField(kvp.Key); string translatedFileName = form.GetTranslatedFieldName(kvp.Key); break; } } } } catch { } finally { reader.Close(); } }
private void btnOpen_Click(object sender, EventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "PDF files|*.pdf", ValidateNames = true, Multiselect = false }) { if (ofd.ShowDialog() == DialogResult.OK) { try { iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(ofd.FileName); StringBuilder sb = new StringBuilder(); for (int i = 1; i <= reader.NumberOfPages; i++) { sb.Append(PdfTextExtractor.GetTextFromPage(reader, i)); } //richTextBox1.Text = sb.ToString(); //AcroFields fields = reader.AcroFields; //string val = fields.GetField("Character_Name"); //richTextBox1.Text = val; //reader.Close(); StringBuilder build = new StringBuilder(); AcroFields fields = reader.AcroFields; foreach (var item in reader.AcroFields.Fields) { string val1 = fields.GetField(item.Key.ToString()); build.Append(val1 + Environment.NewLine); } reader.Close(); //string pdfTemplate = @"C:\Users\Tau\Desktop\Pathfinder_Charactersheet_Joe.pdf"; // title the form //this.Text += " - " + pdfTemplate; // create a new PDF reader based on the PDF template document //PdfReader pdfReader = new PdfReader(pdfTemplate); // create and populate a string builder with each of the // field names available in the subject PDF //foreach (KeyValuePair<string, iTextSharp.text.pdf.AcroFields.Item> de in pdfReader.AcroFields.Fields) //{ // sb.Append(de.Key.ToString() + Environment.NewLine); //} // Write the string builder's content to the form's textbox which includes form data names //richTextBox2.Text = sb.ToString(); //richTextBox2.SelectionStart = 0; label2.Text = fields.GetField("Character_Player"); characterName.Text = fields.GetField("Character_Name"); characterRace.Text = fields.GetField("Character_Race"); characterSize.Text = fields.GetField("Character_Size"); //Character newChar = new Character(); newChar.charName = fields.GetField("Character_Name"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
public ActionResult Index(CharitableContributionForm obj) { eTracLoginModel ObjLoginModel = null; long UserId = 0; long LocationId = 0; var objModel = new PDFSaveModel(); if (Session != null && Session["eTrac"] != null) { ObjLoginModel = (eTracLoginModel)(Session["eTrac"]); if (LocationId > 0) { LocationId = ObjLoginModel.LocationID; } } try { string pdfTemplate = Path.Combine(Server.MapPath(ConfigurationManager.AppSettings["PDFPath"]), "Content/PDFForms/CharitableContributionRequestForm.pdf"); string FileName = ObjLoginModel.UserId + "_" + DateTime.Now.Ticks.ToString() + "_" + Convert.ToString("CharitableContributionRequestForm"); obj.FileName = FileName; ViewBag.FileName = FileName; var newFile = Path.Combine(Server.MapPath(ConfigurationManager.AppSettings["PDFForm"]), "PDFFormAfterFilling/" + FileName + ".pdf"); //@"D:\Project\eTrac\WorkOrderEMS\Content\PDFForms\PDFFormAfterFilling\" + FileName + ".pdf"; PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream( newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; objModel.UserId = ObjLoginModel.UserId; objModel.LocationId = ObjLoginModel.LocationID; objModel.FileName = FileName; var savePDF = _IMainPDFFormManager.SavePDFData(objModel); // set form pdfFormFields // The first worksheet and W-4 form //pdfFormFields.SetFieldProperty("names", "textsize", 4f, null); pdfFormFields.SetField("Services of America Inc accounting department accountseliteparkingofamericacom Please write", obj.NonProfitOrganization); pdfFormFields.SetField("Name of nonprofit organization", obj.MailingAddress); pdfFormFields.SetField("undefined", obj.ContactPerson); pdfFormFields.SetField("Contact person", obj.PhoneNumber); pdfFormFields.SetField("Phone number", obj.NameOfEvent); pdfFormFields.SetField("Name of event", obj.DateOfEvent); pdfFormFields.SetField("Date of event", obj.DateOfEvent); pdfFormFields.SetField("Federal Tax ID", obj.FederalTaxID); pdfFormFields.SetField("Contribution requested eg funds food services", obj.ContributionRequested); pdfFormFields.SetField("Estimated number of attendees at event or people receiving donation", obj.EstimatedNumberOfAttendees); pdfFormFields.SetField("malefemale age special interests sports education child welfare etc 1", obj.DescribeTheDemographic); pdfFormFields.SetField("malefemale age special interests sports education child welfare etc 2", obj.DescribeTheDemographic1); pdfFormFields.SetField("press releases interviews 1", obj.publicityIsPlanned); pdfFormFields.SetField("press releases interviews 2", obj.publicityIsPlanned1); pdfFormFields.SetField("What opportunities will be available to display the Elite Parking Services logo 1", obj.opportunitiesDescription); pdfFormFields.SetField("What opportunities will be available to display the Elite Parking Services logo 2", obj.opportunitiesDescription1); // report by reading values from completed PDF string sTmp = "Charitable Contribution Request Form Completed for " + pdfFormFields.GetField("Services of America Inc accounting department accountseliteparkingofamericacom Please write") + " " + pdfFormFields.GetField("Mailing address"); //MessageBox.Show(sTmp, "Finished"); // flatten the form to remove editting options, set it to false // to leave the form open to subsequent manual edits pdfStamper.FormFlattening = false; // close the pdf //foreach (System.Collections.DictionaryEntry de in pdfReader.AcroFields.Fields) //{ // pdfFormFields.SetFieldProperty(de.Key.ToString(), // "setfflags", // PdfFormField.FF_READ_ONLY, // null); //} //pdfStamper.AcroFields.SetFieldProperty(); //pdfFormFields.GetField(pdfDoc, true).FlattenFields(); pdfStamper.Close(); } catch (Exception ex) { ViewBag.Message = ex.Message; ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; } var objData = new CharitableContributionForm(); return(View("PDFView")); }
public async Task <JsonResult> GetSubmittedDocumentMeta(string submitted_document_id) { try { Guid id; if (Guid.TryParse(submitted_document_id, out id)) { //Grab the desired file SubmittedDocument SubmittedDocument = _SubmittedDocumentService.GetPopulated(id); ApplicationUser user = await _UserManager.GetUserAsync(User); var DocAssignees = _DocumentAsigneeService.GetByDocument(SubmittedDocument.IdSubmittedDocument); var UserPermissions = DocAssignees.FirstOrDefault(e => e.IdAssigneeId == user.Id); if (UserPermissions == null || !UserPermissions.IsActive) { return(Json(new Result() { reason = "User does not have permission to view this document", result = "Failure", status_code = 401 })); } Marine_Permit_Palace.Models.Document document = _DocumentSerivce.Get(SubmittedDocument.DocumentId); MemoryStream PDF_Mem = new MemoryStream(); MemoryStream file = new MemoryStream(System.IO.File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist", "documents", document.TemplateName))); file.CopyTo(PDF_Mem); using (PdfReader reader = new PdfReader(System.IO.File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist", "documents", document.TemplateName)))) using (PdfStamper stamper = new PdfStamper(reader, PDF_Mem, '\0', false)) { stamper.FormFlattening = false; AcroFields pdfFormFields = stamper.AcroFields; if (user != null) { //populate all the known fields based on user information AutoFillManager.AutoFillBasedOnUser(user, pdfFormFields); } string RequestingUserId = user.Id; List <string> FieldNames = pdfFormFields.Fields.Select(e => e.Key).ToList(); //List<DocumentMeta> JsonDocument = new List<DocumentMeta>(); List <PDFPage> pages = new List <PDFPage>(); foreach (string field in FieldNames) { var Position = pdfFormFields.GetFieldPositions(field).FirstOrDefault(); if (Position == null) { continue; } if (pages.FirstOrDefault(e => e.page_number == Position.page) == null) { pages.Add(new PDFPage() { page_number = Position.page, page = reader.GetPageSize(Position.page), document_meta = new List <DocumentMeta>() }); } int indexOfPage = pages.FindIndex(e => e.page_number == Position.page); string field_type; switch (reader.AcroFields.GetFieldType(field)) { case AcroFields.FIELD_TYPE_CHECKBOX: field_type = ("Checkbox"); break; case AcroFields.FIELD_TYPE_COMBO: field_type = ("Combobox"); break; case AcroFields.FIELD_TYPE_LIST: field_type = ("List"); break; case AcroFields.FIELD_TYPE_NONE: field_type = ("None"); break; case AcroFields.FIELD_TYPE_PUSHBUTTON: field_type = ("Pushbutton"); break; case AcroFields.FIELD_TYPE_RADIOBUTTON: field_type = ("Radiobutton"); break; case AcroFields.FIELD_TYPE_SIGNATURE: field_type = ("Signature"); break; case AcroFields.FIELD_TYPE_TEXT: field_type = ("Text"); break; default: field_type = ("?"); break; } string value, disabled_message = null; bool IsAllowedToEdit = true; FieldData field_data = SubmittedDocument[field]; var AssigneeDodID = ""; if (field_data == null) { value = pdfFormFields.GetField(field); } else { value = field_data.value; if (!string.IsNullOrEmpty(field_data.user_assigned)) { var OtherUser = await _UserManager.FindByIdAsync(field_data.user_assigned); if (OtherUser != null) { AssigneeDodID = OtherUser.UserName; IsAllowedToEdit = RequestingUserId == field_data.user_assigned; if (!IsAllowedToEdit) { disabled_message = $"This field is assigned to {OtherUser.Rank}. {OtherUser.LastName}, {OtherUser.FirstName}"; } } } } pages[indexOfPage].document_meta.Add(new DocumentMeta() { field_name = field, field_position = Position, value = value, field_type = field_type, assigned_to = AssigneeDodID, disabled_message = disabled_message, is_disabled = !IsAllowedToEdit }); } return(Json(new { result = "Success", status_code = 200, pages })); } } else { return(Json(new Result("Failure", "Incorrect Guid Format", 406))); } } catch (Exception ex) { return(Json(new Result() { reason = $"Something went wrong while reading the file: See Exception... {ex.Message}", result = "Failure", status_code = 500 })); } }
public async Task <JsonResult> GetDocumentMeta(string document_id) // Save the { try { Guid id; if (Guid.TryParse(document_id, out id)) { //Grab the desired file Marine_Permit_Palace.Models.Document document = _DocumentSerivce.Get(id); MemoryStream PDF_Mem = new MemoryStream(); MemoryStream file = new MemoryStream(System.IO.File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist", "documents", document.TemplateName))); file.CopyTo(PDF_Mem); using (PdfReader reader = new PdfReader(System.IO.File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist", "documents", document.TemplateName)))) using (PdfStamper stamper = new PdfStamper(reader, PDF_Mem, '\0', false)) { stamper.FormFlattening = false; AcroFields pdfFormFields = stamper.AcroFields; //AcroFields.FieldPosition ApplicationUser user = await _UserManager.GetUserAsync(User); if (user != null) { //populate all the known fields based on user information //AutoFillManager.AutoFillBasedOnUser(user, pdfFormFields); } List <PDFPage> pages = new List <PDFPage>(); List <string> FieldNames = pdfFormFields.Fields.Select(e => e.Key).ToList(); foreach (string field in FieldNames) { var Position = pdfFormFields.GetFieldPositions(field).FirstOrDefault(); if (Position == null) { continue; } if (pages.FirstOrDefault(e => e.page_number == Position.page) == null) { pages.Add(new PDFPage() { page_number = Position.page, page = reader.GetPageSize(Position.page), document_meta = new List <DocumentMeta>() }); } int indexOfPage = pages.FindIndex(e => e.page_number == Position.page); string value = pdfFormFields.GetField(field); string field_type; switch (reader.AcroFields.GetFieldType(field)) { case AcroFields.FIELD_TYPE_CHECKBOX: field_type = ("Checkbox"); break; case AcroFields.FIELD_TYPE_COMBO: field_type = ("Combobox"); break; case AcroFields.FIELD_TYPE_LIST: field_type = ("List"); break; case AcroFields.FIELD_TYPE_NONE: field_type = ("None"); break; case AcroFields.FIELD_TYPE_PUSHBUTTON: field_type = ("Pushbutton"); break; case AcroFields.FIELD_TYPE_RADIOBUTTON: field_type = ("Radiobutton"); break; case AcroFields.FIELD_TYPE_SIGNATURE: field_type = ("Signature"); break; case AcroFields.FIELD_TYPE_TEXT: field_type = ("Text"); break; default: field_type = ("?"); break; } pages[indexOfPage].document_meta.Add(new DocumentMeta() { field_name = field, field_position = Position, value = value, field_type = field_type }); } return(Json(new { result = "Success", status_code = 200, pages })); } } else { return(Json(new Result("Failure", "Incorrect Guid Format", 406))); } } catch (Exception ex) { return(Json(new Result() { reason = $"Something went wrong while reading the file: See Exception... {ex.Message}", result = "Failure", status_code = 500 })); } }
private void FillForm() { string pdfTemplate = @"c:\Temp\PDF\fw4.pdf"; string newFile = @"c:\Temp\PDF\completed_fw4.pdf"; PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream( newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; // set form pdfFormFields // The first worksheet and W-4 form pdfFormFields.SetField("f1_01(0)", "1"); pdfFormFields.SetField("f1_02(0)", "1"); pdfFormFields.SetField("f1_03(0)", "1"); pdfFormFields.SetField("f1_04(0)", "8"); pdfFormFields.SetField("f1_05(0)", "0"); pdfFormFields.SetField("f1_06(0)", "1"); pdfFormFields.SetField("f1_07(0)", "16"); pdfFormFields.SetField("f1_08(0)", "28"); pdfFormFields.SetField("f1_09(0)", "Franklin A."); pdfFormFields.SetField("f1_10(0)", "Benefield"); pdfFormFields.SetField("f1_11(0)", "532"); pdfFormFields.SetField("f1_12(0)", "12"); pdfFormFields.SetField("f1_13(0)", "1234"); // The form's checkboxes pdfFormFields.SetField("c1_01(0)", "0"); pdfFormFields.SetField("c1_02(0)", "Yes"); pdfFormFields.SetField("c1_03(0)", "0"); pdfFormFields.SetField("c1_04(0)", "Yes"); // The rest of the form pdfFormFields pdfFormFields.SetField("f1_14(0)", "100 North Cujo Street"); pdfFormFields.SetField("f1_15(0)", "Nome, AK 67201"); pdfFormFields.SetField("f1_16(0)", "9"); pdfFormFields.SetField("f1_17(0)", "10"); pdfFormFields.SetField("f1_18(0)", "11"); pdfFormFields.SetField("f1_19(0)", "Walmart, Nome, AK"); pdfFormFields.SetField("f1_20(0)", "WAL666"); pdfFormFields.SetField("f1_21(0)", "AB"); pdfFormFields.SetField("f1_22(0)", "4321"); // Second Worksheets pdfFormFields // In order to map the fields, I just pass them a sequential // number to mark them; once I know which field is which, I // can pass the appropriate value pdfFormFields.SetField("f2_01(0)", "1"); pdfFormFields.SetField("f2_02(0)", "2"); pdfFormFields.SetField("f2_03(0)", "3"); pdfFormFields.SetField("f2_04(0)", "4"); pdfFormFields.SetField("f2_05(0)", "5"); pdfFormFields.SetField("f2_06(0)", "6"); pdfFormFields.SetField("f2_07(0)", "7"); pdfFormFields.SetField("f2_08(0)", "8"); pdfFormFields.SetField("f2_09(0)", "9"); pdfFormFields.SetField("f2_10(0)", "10"); pdfFormFields.SetField("f2_11(0)", "11"); pdfFormFields.SetField("f2_12(0)", "12"); pdfFormFields.SetField("f2_13(0)", "13"); pdfFormFields.SetField("f2_14(0)", "14"); pdfFormFields.SetField("f2_15(0)", "15"); pdfFormFields.SetField("f2_16(0)", "16"); pdfFormFields.SetField("f2_17(0)", "17"); pdfFormFields.SetField("f2_18(0)", "18"); pdfFormFields.SetField("f2_19(0)", "19"); // report by reading values from completed PDF string sTmp = "W-4 Completed for " + pdfFormFields.GetField("f1_09(0)") + " " + pdfFormFields.GetField("f1_10(0)"); MessageBox.Show(sTmp, "Finished"); // flatten the form to remove editting options, set it to false // to leave the form open to subsequent manual edits pdfStamper.FormFlattening = false; // close the pdf pdfStamper.Close(); }
private void FillForm() { //pdf to be completed string pdfTemplate = @"C:\Users\e6420\Desktop\PdfGenerator_CS\PdfGenerator\fw4.pdf"; //new pdf completed string newFile = @"C:\Users\e6420\Desktop\PdfGenerator_CS\PdfGenerator\completed_fw4.pdf"; PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream( newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; // set form pdfFormFields // The first worksheet and W-4 form pdfFormFields.SetField("f1_01(0)", "1"); pdfFormFields.SetField("f1_02(0)", "1"); pdfFormFields.SetField("f1_03(0)", "1"); pdfFormFields.SetField("f1_04(0)", "8"); pdfFormFields.SetField("f1_05(0)", "0"); pdfFormFields.SetField("f1_06(0)", "1"); pdfFormFields.SetField("f1_07(0)", "16"); pdfFormFields.SetField("f1_08(0)", "28"); pdfFormFields.SetField("f1_09(0)", "Alexandra M."); pdfFormFields.SetField("f1_10(0)", "Damaschin"); pdfFormFields.SetField("f1_11(0)", "532"); pdfFormFields.SetField("f1_12(0)", "12"); pdfFormFields.SetField("f1_13(0)", "1234"); // The form's checkboxes pdfFormFields.SetField("c1_01(0)", "0"); pdfFormFields.SetField("c1_02(0)", "Yes"); pdfFormFields.SetField("c1_03(0)", "0"); pdfFormFields.SetField("c1_04(0)", "Yes"); // The rest of the form pdfFormFields pdfFormFields.SetField("f1_14(0)", "Virginia"); pdfFormFields.SetField("f1_15(0)", "Williamsburg"); pdfFormFields.SetField("f1_16(0)", "9"); pdfFormFields.SetField("f1_17(0)", "10"); pdfFormFields.SetField("f1_18(0)", "11"); pdfFormFields.SetField("f1_19(0)", "Wyndham Hotel"); pdfFormFields.SetField("f1_20(0)", "WAL666"); pdfFormFields.SetField("f1_21(0)", "AB"); pdfFormFields.SetField("f1_22(0)", "4321"); // Second Worksheets pdfFormFields // In order to map the fields, I just pass them a sequential // number to mark them; once I know which field is which, I // can pass the appropriate value pdfFormFields.SetField("f2_01(0)", "1"); pdfFormFields.SetField("f2_02(0)", "2"); pdfFormFields.SetField("f2_03(0)", "3"); pdfFormFields.SetField("f2_04(0)", "4"); pdfFormFields.SetField("f2_05(0)", "5"); pdfFormFields.SetField("f2_06(0)", "6"); pdfFormFields.SetField("f2_07(0)", "7"); pdfFormFields.SetField("f2_08(0)", "8"); pdfFormFields.SetField("f2_09(0)", "9"); pdfFormFields.SetField("f2_10(0)", "10"); pdfFormFields.SetField("f2_11(0)", "11"); pdfFormFields.SetField("f2_12(0)", "12"); pdfFormFields.SetField("f2_13(0)", "13"); pdfFormFields.SetField("f2_14(0)", "14"); pdfFormFields.SetField("f2_15(0)", "15"); pdfFormFields.SetField("f2_16(0)", "16"); pdfFormFields.SetField("f2_17(0)", "17"); pdfFormFields.SetField("f2_18(0)", "18"); pdfFormFields.SetField("f2_19(0)", "19"); // report by reading values from completed PDF string sTmp = "W-4 Completed for " + pdfFormFields.GetField("f1_09(0)") + " " + pdfFormFields.GetField("f1_10(0)"); MessageBox.Show(sTmp, "Finished"); // flatten the form to remove editting options, set it to false // to leave the form open to subsequent manual edits pdfStamper.FormFlattening = false; // close the pdf pdfStamper.Close(); }
//Select Pdf private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { PdfReader.unethicalreading = true; inputFileName = openFileDialog1.SafeFileName; extension = Path.GetExtension(inputFileName); this.PDFPath = openFileDialog1.FileName; if (extension == ".pdf") { PdfReader reader = new PdfReader(this.PDFPath); AcroFields form = reader.AcroFields; pdfForm = reader; // 2. Get the acroform! if (pdfForm == null) { Console.WriteLine("No form available"); } else { try { foreach (KeyValuePair <string, AcroFields.Item> kvp in form.Fields) { switch (form.GetFieldType(kvp.Key)) { case AcroFields.FIELD_TYPE_CHECKBOX: // string translatedCheckboxName = form.GetTranslatedFieldName(kvp.Key); //checkboxCount.Add(translatedCheckboxName); // break; case AcroFields.FIELD_TYPE_COMBO: case AcroFields.FIELD_TYPE_LIST: case AcroFields.FIELD_TYPE_RADIOBUTTON: case AcroFields.FIELD_TYPE_NONE: case AcroFields.FIELD_TYPE_PUSHBUTTON: case AcroFields.FIELD_TYPE_SIGNATURE: case AcroFields.FIELD_TYPE_TEXT: int fileType = form.GetFieldType(kvp.Key); string fieldValue = form.GetField(kvp.Key); string translatedFileName = form.GetTranslatedFieldName(kvp.Key); formsNtype.Add(translatedFileName); break; } } } catch { } /*finally * { * reader.Close(); * }*/ Console.WriteLine("Form Selected"); // 3. Filling the acroform fields... } } else if (extension == ".XLSX") { ReadExistingExcel(JsonData); } }
/// <summary> /// Handles the Click event of the BtnGenerateReport control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void BtnGenerateReport_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(txtPDFFile.Text)) { _formFields.Clear(); try { using (MemoryStream ms = new MemoryStream()) { using (FileStream fs = File.OpenRead(txtPDFFile.Text)) { fs.CopyTo(ms); } PdfReader.unethicalreading = true; PdfReader pdfReader = new PdfReader(ms.ToArray()); AcroFields pdfFormFields = pdfReader.AcroFields; foreach (KeyValuePair <string, AcroFields.Item> kvp in pdfFormFields.Fields) { FormField formField = new FormField { FieldName = pdfFormFields.GetTranslatedFieldName(kvp.Key), FieldValue = pdfFormFields.GetField(kvp.Key), FieldType = GetFormFieldType(pdfFormFields.GetFieldType(kvp.Key)) }; AcroFields.Item field = pdfFormFields.GetFieldItem(kvp.Key); PdfDictionary merged = field.GetMerged(0); TextField fld = new TextField(null, null, null); pdfFormFields.DecodeGenericDictionary(merged, fld); formField.FontName = GetFontName(fld.Font); string fontSize = (fld.FontSize == 0.0f) ? "Auto" : fld.FontSize.ToString(); formField.FontSize = fontSize; List <AcroFields.FieldPosition> fieldPositions = pdfFormFields.GetFieldPositions(kvp.Key).ToList(); float pageHeight = pdfReader.GetPageSizeWithRotation(fieldPositions[0].page).Height; formField.FieldPositionTop = (pageHeight - fieldPositions[0].position.Top); formField.FieldPositionBottom = (pageHeight - fieldPositions[0].position.Bottom); formField.FieldPositionLeft = fieldPositions[0].position.Left; formField.FieldPositionRight = fieldPositions[0].position.Right; formField.FieldHeight = fieldPositions[0].position.Height; formField.FieldWidth = fieldPositions[0].position.Width; formField.PageNumber = fieldPositions[0].page; _formFields.Add(formField); } GenerateTreeViewDisplay(); pnlSaveOptions.Enabled = true; } } catch (Exception ex) { MessageBox.Show("There was an issue with processing the request. Message: \n\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); pnlSaveOptions.Enabled = pnlSaveOptions.Enabled ? true : false; } } }
//-------------------------------------- public void Read_CustEnqySheet(clsOpCond OpCond_In) //==================================================== { PdfReader pPdfDocu = new PdfReader(mFilePath_CustEnqSheet); AcroFields pPDFField = pPdfDocu.AcroFields; clsUnit pUnit = new clsUnit(); // Project Related Data // --------------------- mCustomer.Name = pPDFField.GetField("Name"); mCustomer.MachineDesc = pPDFField.GetField("Machine Description"); // Operating Condition Related Data // -------------------------------- //....Load Angle. Double pLoadAng = 0.0F; pLoadAng = modMain.ConvTextToDouble(pPDFField.GetField("Load_Angle")); OpCond_In.Radial_LoadAng = pLoadAng; //....Speed. //...Min,Max Val in Eng. //Double[] pSpeed = new Double[2]; //pSpeed[0] = modMain.ConvTextToDouble(pPDFField.GetField("Op_Speed_Min")); //pSpeed[1] = modMain.ConvTextToDouble(pPDFField.GetField("Op_Speed_Max")); //BG 22NOV11 int[] pSpeed = new int[2]; pSpeed[0] = modMain.ConvTextToInt(pPDFField.GetField("Op_Speed_Min")); pSpeed[1] = modMain.ConvTextToInt(pPDFField.GetField("Op_Speed_Max")); //...Nominal Val in Eng. //Double pSpeed_Nom = 0.0F; //pSpeed_Nom = modMain.ConvTextToDouble(pPDFField.GetField("Op_Speed_Nom")); //BG 22NOV11 int pSpeed_Nom = 0; pSpeed_Nom = modMain.ConvTextToInt(pPDFField.GetField("Op_Speed_Nom")); //....Assign Values. if (pSpeed[0] != 0.0F && pSpeed[1] != 0.0F) { ////OpCond_In.Speed_Range[0] = pSpeed[0]; ////OpCond_In.Speed_Range[1] = pSpeed[1]; } else { ////OpCond_In.Speed_Range[0] = pSpeed_Nom; ////OpCond_In.Speed_Range[1] = pSpeed_Nom; } //....Load //...Min,Max Val in Eng. Double[] pLoad = new Double[2]; pLoad[0] = modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Min")); pLoad[1] = modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Max")); //...Nominal Val in Eng. Double pLoad_Nom = 0.0F; pLoad_Nom = modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Nom")); //...Min,Max Val in Met. Double[] pLoad_Met = new Double[2]; pLoad_Met[0] = (Double)pUnit.CFac_Load_MetToEng(modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Met_Min"))); pLoad_Met[1] = (Double)pUnit.CFac_Load_MetToEng(modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Met_Max"))); //...Nominal Val in Met. Double pLoad_Met_Nom = 0.0F; pLoad_Met_Nom = (Double)pUnit.CFac_Load_MetToEng(modMain.ConvTextToDouble(pPDFField.GetField("Op_Load_Met_Nom"))); //....Assign Values. if (pLoad[0] != 0.0F && pLoad[1] != 0.0F) //--------------------------------------- { ////OpCond_In.Radial_Load_Range[0] = pLoad[0]; ////OpCond_In.Radial_Load_Range[1] = pLoad[1]; } else if (pLoad_Nom != 0.0F) //------------------------- { ////OpCond_In.Radial_Load_Range[0] = pLoad_Nom; ////OpCond_In.Radial_Load_Range[1] = pLoad_Nom; } else if (pLoad_Met[0] != 0.0F && pLoad_Met[1] != 0.0F) //---------------------------------------------------- { ////OpCond_In.Radial_Load_Range[0] = pLoad_Met[0]; ////OpCond_In.Radial_Load_Range[1] = pLoad_Met[1]; } else if (pLoad_Met_Nom != 0.0F) //----------------------------- { ////OpCond_In.Radial_Load_Range[0] = pLoad_Met_Nom; ////OpCond_In.Radial_Load_Range[1] = pLoad_Met_Nom; } //....Pressure //....Val in Eng. Double pPress = 0.0F; pPress = modMain.ConvTextToDouble(pPDFField.GetField("Pressure")); //....Val in Met. Double pPress_Met = 0.0F; pPress_Met = (Double)pUnit.CFac_Press_MetToEng(modMain.ConvTextToDouble(pPDFField.GetField("Pressure_Met"))); ////if (pPress != 0.0F) //// OpCond_In.OilSupply_Press = pPress; ////else if (pPress_Met != 0.0F) //// OpCond_In.OilSupply_Press = pPress_Met; //....Tempurature //....Val in Eng. Double pTemp = 0.0F; pTemp = modMain.ConvTextToDouble(pPDFField.GetField("Temperature")); //....Val in Met. Double pTemp_Met = 0.0F; pTemp_Met = (Double)pUnit.CFac_Temp_MetToEng(modMain.ConvTextToDouble(pPDFField.GetField("Temperature_Met"))); ////if (pPress != 0.0F) //// OpCond_In.OilSupply_Temp = pTemp; ////else if (pPress_Met != 0.0F) //// OpCond_In.OilSupply_Temp = pTemp_Met; //////.....Lube Type ////OpCond_In.OilSupply_Lube_Type = pPDFField.GetField("Type"); //////.....OilSupply Type ////string pOilType = pPDFField.GetField("OilSupply_Type"); ////if (pOilType == "Pressurized") //// OpCond_In.OilSupply_Type = "Pressurized"; ////else if (pOilType != "" && pOilType != null) ////{ //// MessageBox.Show("Please change oilsupply type, this is not supported in this version"); //// OpCond_In.OilSupply_Type = "Pressurized"; ////} ////else //// OpCond_In.OilSupply_Type = "Pressurized"; //....Directionality String pRot_Directionality = pPDFField.GetField("Directionality"); if (pRot_Directionality == "Uni") { OpCond_In.Rot_Directionality = (clsOpCond.eRotDirectionality)Enum.Parse(typeof(clsOpCond.eRotDirectionality), "Uni"); } else if (pRot_Directionality == "Bi") { OpCond_In.Rot_Directionality = (clsOpCond.eRotDirectionality)Enum.Parse(typeof(clsOpCond.eRotDirectionality), "Bi"); } else if (pRot_Directionality == "" && pRot_Directionality == null) { OpCond_In.Rot_Directionality = (clsOpCond.eRotDirectionality)Enum.Parse(typeof(clsOpCond.eRotDirectionality), "Bi"); } // Bearing Related Data. // --------------------- //....Type String pBearingType = pPDFField.GetField("BearingType").Trim(); //mRadialType = (eRadialType)Enum.Parse(typeof(eRadialType), pBearingType); if (pBearingType != null) { if (pBearingType != clsBearing_Radial.eDesign.Flexure_Pivot.ToString().Replace("_", " ").Trim()) { System.Windows.Forms.MessageBox.Show("This type not supported in this version"); } else if (pBearingType == clsBearing_Radial.eDesign.Flexure_Pivot.ToString().Replace("_", " ")) { pBearingType = pBearingType.Replace(" ", "_").Trim(); ((clsBearing_Radial_FP)mProduct.Bearing).Design = (clsBearing_Radial_FP.eDesign)Enum.Parse(typeof(clsBearing_Radial_FP.eDesign), pBearingType); } } //Bearing_In.TypeRadial = "Flexure Pivot"; //....Split Config String pSplitConfig = pPDFField.GetField("SplitConfig"); //if (pSplitConfig == "Yes") // Bearing_In.SplitConfig = true; //else if (pSplitConfig == "No") // Bearing_In.SplitConfig = false; //else if (pSplitConfig == "" && pSplitConfig == null) // Bearing_In.SplitConfig = true; if (pSplitConfig == "Yes") { ((clsBearing_Radial_FP)mProduct.Bearing).SplitConfig = true; } else if (pSplitConfig == "No") { ((clsBearing_Radial_FP)mProduct.Bearing).SplitConfig = false; } else if (pSplitConfig == "" || pSplitConfig == null) { ((clsBearing_Radial_FP)mProduct.Bearing).SplitConfig = true; } pPdfDocu.Close(); }
/// <summary> /// An item was added. /// </summary> public override void ItemAdded(SPItemEventProperties properties) { base.ItemAdded(properties); //Ausführen des folgenden Codes nur, wenn ein PDF vorhanden ist if (properties.ListItem.Name.Contains(".pdf")) { //Durch folgende Zeile wird der enthaltene Code als SHAREPOINT\System ausgeführt und nicht unter dem Kontext des Benutzers, der den Auftrag unterschrieben hat SPSecurity.RunWithElevatedPrivileges(delegate() { //Laden des aktuellen Webs; das ist nötig, um alle möglichen Operationen mit Bibliotheken und Elementen auszuführen //dieses wird wieder geschlossen bzw. freigegeben, wenn die geschweifte Klammer von "using" geschlossen wird using (SPSite site = new SPSite(properties.WebUrl)) { using (SPWeb web = site.OpenWeb()) { //Summe korrigieren string orderPdfSumClm = "Summe"; string orderPdfSumField = "Summe"; string orderPdfNumberClm = "Auftragsnummer"; SPListItem _currentItem = web.Lists[properties.ListId].GetItemById(properties.ListItemId); string title = _currentItem.Title.ToString(); string logFile = @"C:\Bestellung\Logs\EventReceivers\OrderPdfArchived\" + title + ".log"; StringBuilder sb = new StringBuilder(); sb.AppendLine("OrderPdf " + title + " was added"); sb.AppendLine("Check if fields exist..."); bool sumFieldExists = _currentItem.Fields.ContainsField(orderPdfSumClm); bool orderIdFieldExists = _currentItem.Fields.ContainsField(orderPdfNumberClm); sb.AppendLine(orderPdfSumClm + ": " + sumFieldExists.ToString()); sb.AppendLine(orderPdfNumberClm + ": " + orderIdFieldExists.ToString()); if (sumFieldExists && orderIdFieldExists) { sb.AppendLine("Fields exist, go on..."); string orderId = _currentItem[orderPdfNumberClm].ToString(); decimal sumClmValue = decimal.Parse(_currentItem[orderPdfSumClm].ToString(), NumberStyles.Currency); sb.AppendLine("Sum in collumn is: " + sumClmValue.ToString()); sb.AppendLine("Opening pdf..."); decimal sumPdfValue; SPFile pdfFile = _currentItem.File; byte[] pdfBytes = pdfFile.OpenBinary(); using (PdfReader pdfreader = new PdfReader(pdfBytes)) { sb.AppendLine("Pdf opened with iText..."); AcroFields fields = pdfreader.AcroFields; sumPdfValue = decimal.Parse(fields.GetField(orderPdfSumField), NumberStyles.Currency); sb.AppendLine("Sum in pdf is: " + sumPdfValue.ToString()); } sb.AppendLine("Checking if sum values differ..."); if (sumClmValue != sumPdfValue) { sb.AppendLine("Sums are different. Assiging new sum (" + sumPdfValue + ") to collumn..."); double sumPdfValueDouble = (double)sumPdfValue; _currentItem[orderPdfSumClm] = sumPdfValueDouble; } else { sb.AppendLine("Sums are not different, carry on..."); } //Gruppe eintragen sb.AppendLine("Set the group collumn..."); string groupStr = ""; string orderPdfGroupClm = "Gruppe"; string orderFormGroupClm = "Gruppe"; string orderPdfIDDBClm = "IDDB"; string orderFormLibrary = "Auftragsformular"; string orderFormArchiveLibrary = "Auftragsformular-Archiv"; string orderFormIdStr = _currentItem[orderPdfIDDBClm].ToString(); sb.AppendLine("Got the ID of InfoPath form: " + orderFormIdStr); string orderNumber = _currentItem[orderPdfNumberClm].ToString(); sb.AppendLine("Got the orderNumber"); decimal orderFormIdDec = Convert.ToDecimal(orderFormIdStr); int orderFormId = Convert.ToInt32(orderFormIdDec); SPList orderFormList = web.Lists.TryGetList(orderFormLibrary); sb.AppendLine("Got the library " + orderFormList.Title.ToString()); //Prüfen, ob das Auftragsformular noch nicht in das Archiv verschoben wurde //Es wird die Anzahl aller Elemente, die die obrige ID haben, gespeichert. sb.AppendLine("Trying to find Info-Path forms with ID " + orderFormId); int countFoundOrderFormItems = (from SPListItem item in orderFormList.Items where Convert.ToInt32(item["ID"]) == orderFormId select item).Count(); if (countFoundOrderFormItems > 0) { //Das Auftragsformular wurde noch nicht verschoben sb.AppendLine("Forms were found: " + countFoundOrderFormItems.ToString()); sb.AppendLine("Trying to get the one form..."); SPListItem orderFormItem = orderFormList.GetItemById(orderFormId); groupStr = orderFormItem[orderFormGroupClm].ToString(); sb.AppendLine("Got form and group " + groupStr); SPGroup group = web.Groups[groupStr]; string groupLogin = group.ID.ToString() + ";#" + group.LoginName.ToString(); sb.AppendLine("Assigning group " + groupLogin + " to collumn"); _currentItem[orderPdfGroupClm] = groupLogin; } else //Das Auftragsformular wurde ins Archiv verschoben { sb.AppendLine("No form was found..."); } using (EventReceiverManager eventReceiverManager = new EventReceiverManager(true)) { sb.AppendLine("Try updating item " + _currentItem.Title.ToString()); _currentItem.SystemUpdate(false); sb.AppendLine("Item updated"); } } else { sb.AppendLine("Required fields do not exist. Do nothing and quit."); } File.AppendAllText(logFile, sb.ToString()); } } }); } }
public object save() { string templateFile = "/Users/user/Downloads/1022out.pdf"; string outFile = "/Users/user/Downloads/1022out.html"; // ConvertPdfStreamToHtml(); iTextSharp.text.pdf.PdfReader pdfReader = null; PdfStamper pdfStamper = null; try { pdfReader = new iTextSharp.text.pdf.PdfReader(templateFile); PRAcroForm s = pdfReader.AcroForm; AcroFields pdfFormFields = pdfReader.AcroFields; foreach (var item in pdfFormFields.Fields) { var d = item.Value.GetMerged(0); int type = pdfFormFields.GetFieldType(item.Key); string aaac = pdfFormFields.GetField(item.Key); PRAcroForm.FieldInformation aaad = s.GetField(item.Key); PdfString aae = aaad.Info.GetAsString(PdfName.TU); if (aae == null) { continue; } // Console.WriteLine(item.Key+":"+type.ToString); Console.WriteLine("===={0},{1},{2},{3}===", item.Key, type, aaac, aae.ToString()); if (type == 2) { string[] aaa = pdfFormFields.GetAppearanceStates(item.Key); Console.WriteLine("{0}", string.Join(",", aaa)); } // PrintProperties(item); var str = d.Get(PdfName.V); if (!string.IsNullOrEmpty(str?.ToString())) { var p = (str.GetBytes()[0] << 8) + str.GetBytes()[1]; string code; switch (p) { case 0xefbb: code = "UTF-8"; break; case 0xfffe: code = "Unicode"; break; case 0xfeff: code = "UTF-16BE"; break; default: code = "GBK"; break; } var value = Encoding.GetEncoding(code).GetString(str.GetBytes()); Console.WriteLine(item.Key + ":" + value); } } } catch (Exception ex) { Console.WriteLine("" + ex.Message); } finally { if (pdfStamper != null) { pdfStamper.Close(); } if (pdfReader != null) { pdfReader.Close(); } } return(DateTime.Now); }
private void FillForm() { int totalMarks = 0; int accumulatedMarks = 0; string pdfTemplate = "QUT_MCQ_A4.pdf"; string newFile = "QUT_MCQ_A4_NEW.pdf"; PdfReader pdfReader = new PdfReader(pdfTemplate); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); fields = pdfStamper.AcroFields; using (StreamReader sr = new StreamReader(filePath)) { string line; while ((line = sr.ReadLine()) != null) { string[] splittedline = line.Split(' '); switch (splittedline[0]) { case "Surname": fillSurname(splittedline[1]); break; case "Initials": fillInitials(splittedline[1]); break; case "SubjectCode": fillSubjectCode(splittedline[1]); break; case "StudentNumber": fillStudentNumber(splittedline[1]); break; case "Codes": fillCodes(splittedline[1]); break; case "TotalMarks": totalMarks = Int32.Parse(splittedline[1]); break; default: if (Int32.TryParse(splittedline[0], out int number)) { fillQuestionAnswer(splittedline); accumulatedMarks += Int32.Parse(splittedline[2]); } else { log.Text = log.Text + DateTime.Now + " -- INVALID INPUT -- " + line + Environment.NewLine; } break; } } sr.Close(); } pdfStamper.FormFlattening = true; pdfStamper.Close(); log.Text = log.Text + DateTime.Now + " -- Generating Completed for " + fields.GetField("SubjectCode") + Environment.NewLine; if (totalMarks != accumulatedMarks) { log.Text = log.Text + DateTime.Now + "WARNING -- ACCUMULATED MARKS DOES NOT EQUAL TO THE TOTAL MARKS SET! PLEASE CHECK AGAIN!"; } else { log.Text = log.Text + DateTime.Now + " -- ACCUMULATED MARKS MATCHED THE TOTAL MARKS SET"; } }