Forums

Skip Navigation LinksHome  /  Support  /  Forums  /  DynamicPDF Generator for .NET (v10.x)  /  Pdf dynamic forms

Forum Thread - Pdf dynamic forms

 Mar 01 2019 3:03 AM
Hello,

Is it possible to create a dynamic forms in a PDF ?
like having  3 textbox, and the last one must be the concat or sum of the other.

I have start a sample, but i don't know how to add a script or how to bind on event ...


 var lPath = @"D:\temp\test.pdf";
           
            // Create a PDF Document
            Document document = new Document();

            // Create a Page and add it to the document
            ceTe.DynamicPDF.Page page = new ceTe.DynamicPDF.Page();
            document.Pages.Add(page);

            //TextField 1
            ceTe.DynamicPDF.PageElements.Forms.TextField textField = new ceTe.DynamicPDF.PageElements.Forms.TextField("Text1", 50, 50, 50, 50);
            textField.DefaultValue = "1";
            page.Elements.Add(textField);

            //TextField 2
            ceTe.DynamicPDF.PageElements.Forms.TextField textField2 = new ceTe.DynamicPDF.PageElements.Forms.TextField("Text2", 50, 110, 50, 50);
            textField2.DefaultValue = "2";
            page.Elements.Add(textField2);

            //TextField 3
            ceTe.DynamicPDF.PageElements.Forms.TextField textFieldSum = new ceTe.DynamicPDF.PageElements.Forms.TextField("TextSum", 50, 170, 50, 50);
            textFieldSum.DefaultValue = "";
            page.Elements.Add(textFieldSum);
 

            // Save the PDF
            document.Draw(lPath);
            Process.Start(lPath);

 Mar 01 2019 10:42 AM
Posted by a ceTe Software moderator
Hello,
 
You can achieve your requirements by using the page level and form field level JavaScript. Below is the code sample. Also you can refer to the documentation on Events here.
 
            Document document = new Document();
            Page page = new Page(PageSize.Letter);
            document.Pages.Add(page);
 
            //TextField 1
            ceTe.DynamicPDF.PageElements.Forms.TextField textField = new ceTe.DynamicPDF.PageElements.Forms.TextField("Text1", 50, 50, 50, 50);
            textField.BorderStyle = BorderStyle.Solid;
            textField.DefaultValue = "4";
            textField.ReaderEvents.OnBlur = new JavaScriptAction(" var num1 = this.getField(\"Text1\").value; var num2 = this.getField(\"Text2\").value; var sum = num1+num2; this.getField(\"TextSum\").value = sum; ");
            page.Elements.Add(textField);
 
            //TextField 2
            ceTe.DynamicPDF.PageElements.Forms.TextField textField2 = new ceTe.DynamicPDF.PageElements.Forms.TextField("Text2", 50, 110, 50, 50);
            textField2.BorderStyle = BorderStyle.Solid;
            textField2.DefaultValue = "6";
            textField2.ReaderEvents.OnBlur = new JavaScriptAction(" var num1 = this.getField(\"Text1\").value; var num2 = this.getField(\"Text2\").value; var sum = num1+num2; this.getField(\"TextSum\").value = sum; ");
            page.Elements.Add(textField2);
 
            //TextField 3
            ceTe.DynamicPDF.PageElements.Forms.TextField textFieldSum = new ceTe.DynamicPDF.PageElements.Forms.TextField("TextSum", 50, 170, 50, 50);
            textFieldSum.BorderStyle = BorderStyle.Solid;
            page.Elements.Add(textFieldSum);
            page.ReaderEvents.Open = new JavaScriptAction(" var num1 = this.getField(\"Text1\").value; var num2 = this.getField(\"Text2\").value; var sum = num1+num2; this.getField(\"TextSum\").value = sum; ");
            document.Draw(@"Path to save the PDF");
 
Thanks,
ceTe Software Support Team

All times are US Eastern Standard time. The time now is 12:45 AM.