Esempio n. 1
0
        /// <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++;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        /// <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]);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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();
 }
 }
Esempio n. 10
0
        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);
                    }
                }
            }
        }
Esempio n. 11
0
        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"));
        }
Esempio n. 12
0
        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
                }));
            }
        }
Esempio n. 13
0
        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
                }));
            }
        }
Esempio n. 14
0
        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();
        }
Esempio n. 15
0
        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();
        }
Esempio n. 16
0
        //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);
            }
        }
Esempio n. 17
0
        /// <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;
                }
            }
        }
Esempio n. 18
0
        //--------------------------------------

        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();
        }
Esempio n. 19
0
        /// <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());
                        }
                    }
                });
            }
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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";
            }
        }