- Add a link to PDF with an external destination
- Add a link with an internal destination to PDF
- Add a note to PDF
- Add barcodes to PDF
- Add bookmarks to PDF
- Add footer to PDF
- Add simple html text to PDF
- Add hyperlink to PDF
- Add Long Term Validation (LTV) data to an existing signature
- Add multiline text to a PDF document
- Add a rubber stamp annotation with a custom icon
- Add single-line text to PDF
- Add Stamp to PDF
- Add tags to existing PDF
- Add text field to PDF
- Add a Diagonal Watermark to PDF in C# - TallComponents - PDF Library
- pdfkit5 - detailed changes to the API - Tall Components
- Append two or more existing PDF files
- Change the color inside a PDF
- Change the formatting of a numeric field
- Change page orientation PDF
- Clip PDF page content in C#
- .NET Core console app on MacOS
- Convert PDF to plain text
- Convert SVG to PDF
- Create a text annotation in PDF with rich text
- Create formfields in PDF documents
- Create a new digitally signed PDF document
- Create rectangles with rounded corners
- Create tagged PDF
- Create text with decorations
- How to create a tiling for shapes in PDF
- Crop content on a PDF page
- Determine the content bounding box
- Determine if a PDF only contains images
- Digitally sign a PDF form in C# or VB.NET
- Disable submit button after submitting
- How to downscale all images in a PDF
- Download and convert image to PDF
- How to downscale all images in a PDF
- Vector graphics in PDF
- Fill XFA form and export XDP data
- Fill and save dynamic XFA form
- Merge XDP data with dynamic XFA form
- Dynamic XFA
- How to embed files in a PDF document
- Embed TrueType font in PDF
- EMF to PDF as vector image
- Export FDF from PDF form
- Extract embedded files from PDF
- Extract glyph boxes from PDF
- Extract glyphs and sort by reading order
- Extract graphics from PDF
- Extract images from PDF
- Fill in a template PDF document
- Fill PDF form
- Fit image to PDF page
- Flatten Markup Annotation
- Flatten PDF form
- How to generate and export certificates
- How do I extract page destinations from bookmarks?
- Highlight fields in PDF
- How to add autosized text to PDF
- How to sign and verify updates to a PDF document
- Import FDF into PDF
- Licensing and .NET Standard
- Merge PDF files in C# .NET
- How to mirror PDF pages and other shapes
- Layout text with MultilineTextShape
- pdfkit5 and .NET Core
- pdfkit5 .NET Standard API
- Read and write meta data from PDF
- Read PDF tags
- How to reduce PDF file size
- Reduce PDF size
- Remove graphics from PDF
- Remove PDF security settings
- Replace field with image
- Resize PDF pages
- Rotate a PDF page
- How to scale content of PDF
- Search text in PDF
- PDF Viewer Preferences
- Create a custom signature handler to sign and verify PDF documents
- Split PDF pages in C# and VB.NET
- Tagged PDF
- TIFF to PDF C#
- Translate PDF page content
- Use multiple licenses
- Use TrueType font collections
- Write Document to HttpResponse
- Use pdfkit5 with a Xamarin.Forms app
- pdfkit5 and Xamarin
Create formfields in PDF documents
This codesample shows how you can create different types of formfields in PDF.
This sample may seem long, but it uses a lot of different field types in a lot of ways. The key-message here is to create an instance of a formfield, assigning a widget to it and setting layout values of the widget.
//New document
Document document = new Document();
Page page = new Page(PageSize.A4);
document.Pages.Add(page);
//TextBox Field with all default values
{
TextShape textShape = new TextShape( 250, page.Height - 50, "TextBox Field with all default values", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
TextField field = new TextField("FieldName1");
Widget widget = new Widget(10, page.Height - 50, 200, 15);
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//TextBox Field with text (and Cmyk black)
{
TextShape textShape = new TextShape( 250, page.Height - 75, "TextBox Field with text (and Cmyk black)", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
TextField field = new TextField("FieldName2");
field.Value = "Hello World!";
Widget widget = new Widget(10, page.Height - 75, 200, 15);
widget.TextColor = TallComponents.PDF.Colors.CmykColor.Black;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//TextBox Field with multiline text
{
TextShape textShape = new TextShape( 250, page.Height - 150, "TextBox Field with multiline text", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
TextField field = new TextField("FieldName3");
field.Value = "Default text...\n...already included new-lines";
field.ToolTip = "Tooltip for field 3";
field.MappingName = "Mappingname3";
field.MaxLength = 200;
field.Multiline = true;
field.RequiredMode = RequiredMode.Required;
Widget widget = new Widget(10, page.Height - 150, 200, 65);
widget.TextColor = System.Drawing.Color.Purple;
widget.BorderStyle = BorderStyle.Dashed;
widget.BorderColor = System.Drawing.Color.Red;
widget.BackgroundColor = System.Drawing.Color.Yellow;
widget.Font = TallComponents.PDF.Fonts.Font.TimesBoldItalic;
widget.FontSize = 9;
widget.HorizontalAlignment = HorizontalAlignment.Center;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//DropDownList Field -- no options but editable
{
TextShape textShape = new TextShape( 250, page.Height - 200, "DropDownList Field -- no options but editable", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
DropDownListField field = new DropDownListField("FieldName4");
field.AllowTextEntry = true;
Widget widget = new Widget(10, page.Height - 200, 200, 15);
widget.BorderColor = System.Drawing.Color.Black;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//DropDownList Field -- with options
{
TextShape textShape = new TextShape( 250, page.Height - 225, "DropDownList Field -- with options", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
DropDownListField field = new DropDownListField("FieldName5");
field.Options.Add(new ListOption("opt1"));
field.Options.Add(new ListOption("opt2"));
field.Options.Add(new ListOption("opt3"));
field.Value = "opt2";
Widget widget = new Widget(10, page.Height - 225, 200, 15);
widget.BorderColor = System.Drawing.Color.Black;
widget.BorderStyle = BorderStyle.Inset;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//ListBox Field -- with options
{
TextShape textShape = new TextShape( 250, page.Height - 300, "ListBox Field -- with 6 options", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
ListBoxField field = new ListBoxField("FieldName6");
field.Options.Add(new ListOption("1", "opt1"));
field.Options.Add(new ListOption("2", "opt2"));
field.Options.Add(new ListOption("3", "opt3"));
field.Options.Add(new ListOption("4", "opt4"));
field.Options.Add(new ListOption("5", "opt5"));
field.Options.Add(new ListOption("6", "opt6"));
field.ListBoxValue = new ListOption[1] { field.Options[1] };
Widget widget = new Widget(10, page.Height - 300, 200, 50);
widget.BorderColor = System.Drawing.Color.DarkBlue;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//CheckBox Field -- unchecked
{
TextShape textShape = new TextShape( 250, page.Height - 350, "CheckBox Field -- unchecked", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
CheckBoxField field = new CheckBoxField("FieldName7");
CheckBoxWidget widget = new CheckBoxWidget(10, page.Height - 350, 15, 15);
widget.BorderColor = System.Drawing.Color.Black;
widget.BorderStyle = BorderStyle.Inset;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//CheckBox Field -- checked, custom on-value
{
TextShape textShape = new TextShape( 250, page.Height - 375, "CheckBox Field -- checked, custom on-value", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
CheckBoxField field = new CheckBoxField("FieldName8");
field.CheckBoxValue = CheckState.On;
CheckBoxWidget widget = new CheckBoxWidget(10, page.Height - 375, 15, 15);
widget.CheckMarkAppearance = CheckMarkAppearance.Check;
widget.TextColor = System.Drawing.Color.Purple;
widget.BorderColor = System.Drawing.Color.Green;
widget.BorderStyle = BorderStyle.Inset;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//PushButton Field -- default
{
TextShape textShape = new TextShape( 250, page.Height - 425, "PushButton Field -- default", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
PushButtonField field = new PushButtonField("FieldName9");
PushButtonWidget widget = new PushButtonWidget(10, page.Height - 425, 100, 30);
widget.BackgroundColor = System.Drawing.Color.LightGray;
widget.BorderColor = System.Drawing.Color.Black;
widget.BorderStyle = BorderStyle.Beveled;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//PushButton Field -- with label
{
TextShape textShape = new TextShape( 250, page.Height - 474, "PushButton Field -- with label", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
PushButtonField field = new PushButtonField("FieldName10");
PushButtonWidget widget = new PushButtonWidget(10, page.Height - 475, 200, 30);
widget.BackgroundColor = System.Drawing.Color.LightGray;
widget.BorderColor = System.Drawing.Color.Gray;
widget.BorderStyle = BorderStyle.Beveled;
widget.Label = "Push me!";
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
//Show how a submit action must be included.
TallComponents.PDF.Actions.SubmitFormAction action = new TallComponents.PDF.Actions.SubmitFormAction();
action.SubmitFormat = TallComponents.PDF.Actions.SubmitFormat.Xfdf;
action.Url = @"http://www.yourname.com/receiver.aspx";
widget.MouseUpActions.Add( action );
}
//PushButton Field -- with icon
{
TextShape textShape = new TextShape( 250, page.Height - 545, "PushButton Field -- with icon", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
PushButtonField field = new PushButtonField("FieldName11");
PushButtonWidget widget = new PushButtonWidget(10, page.Height - 545, 100, 50);
widget.BackgroundColor = System.Drawing.Color.LightGray;
widget.BorderColor = System.Drawing.Color.Gray;
widget.BorderStyle = BorderStyle.Beveled;
widget.Layout = PushButtonLayout.IconOnly;
using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap( @"..\..\..\inputDocuments\logo_pdfkit.gif"))
{
widget.SetIcon(bitmap);
}
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//RadioButtonField -- with 3 options
{
TextShape textShape = new TextShape( 250, page.Height - 600, "RadioButtonField -- with 3 options", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
RadioButtonField field = new RadioButtonField( "FieldName12");
RadioButtonWidget widget = new RadioButtonWidget(10, page.Height - 600, 15, 15, "Option1");
widget.BorderColor = System.Drawing.Color.Black;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
widget = new RadioButtonWidget(35, page.Height - 600, 15, 15, "Option2");
widget.BorderColor = System.Drawing.Color.Purple;
widget.BackgroundColor = System.Drawing.Color.Yellow;
widget.TextColor = System.Drawing.Color.Blue;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
widget = new RadioButtonWidget(60, page.Height - 600, 15, 15, "Option3");
widget.BorderColor = System.Drawing.Color.Green;
widget.BorderStyle = BorderStyle.Dashed;
widget.TextColor = System.Drawing.Color.Red;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
field.RadioButtonValue = field.Options[1] as RadioButtonOption;
field.RadioButtonDefaultValue = field.Options[2] as RadioButtonOption;
document.Fields.Add(field);
}
//SignatureField -- unsigned
{
TextShape textShape = new TextShape( 250, page.Height - 650, "SignatureField -- unsigned", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
SignatureField field = new SignatureField("FieldName13");
SignatureWidget widget = new SignatureWidget(10, page.Height - 650, 150, 40);
widget.BorderColor = System.Drawing.Color.Indigo;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//SignatureField -- signed
{
TextShape textShape = new TextShape( 250, page.Height - 700, "SignatureField -- signed", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
SignatureField field = new SignatureField("FieldName14");
Pkcs12Store ks = null;
using (FileStream file = new FileStream( @"..\..\..\inputdocuments\ChrisSharp.pfx", FileMode.Open, FileAccess.Read))
{
ks = new Pkcs12Store(file, "Sample");
}
SignatureHandler handler = StandardSignatureHandler.Create(ks);
field.SignatureHandler = handler;
field.ContactInfo = "+31(0)77 4748677";
field.Location = "The Netherlands";
field.Reason = "I fully agree!";
SignatureWidget widget = new SignatureWidget(10, page.Height - 700, 150, 40);
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
//PasswordField
{
TextShape textShape = new TextShape( 250, page.Height - 725, "PasswordField", Font.Helvetica, 12 );
page.VisualOverlay.Add( textShape );
PasswordField field = new PasswordField("FieldName15");
Widget widget = new Widget(10, page.Height - 725, 100, 15);
widget.BorderColor = System.Drawing.Color.HotPink;
field.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(field);
}
// write the modified document to disk, note: signing requires read-write file access
using ( FileStream outFile = new FileStream( @"..\..\createformfields.pdf", FileMode.Create, FileAccess.ReadWrite ) )
{
document.Write( outFile );
}
'New document
Dim document As New Document()
Dim page As New Page(PageSize.A4)
document.Pages.Add(page)
'TextBox Field with all default values
Dim textShape1 As New TextShape(250, page.Height - 50, "TextBox Field with all default values", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape1)
Dim field1 As New TextField("FieldName1")
Dim widget1 As New Widget(10, page.Height - 50, 200, 15)
field1.Widgets.Add(widget1)
page.Widgets.Add(widget1)
document.Fields.Add(field1)
'TextBox Field with text (and Cmyk black)
Dim textShape2 As New TextShape(250, page.Height - 75, "TextBox Field with text (and Cmyk black)", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape2)
Dim field2 As New TextField("FieldName2")
field2.Value = "Hello World!"
Dim widget2 As New Widget(10, page.Height - 75, 200, 15)
widget2.TextColor = TallComponents.PDF.Colors.CmykColor.Black
field2.Widgets.Add(widget2)
page.Widgets.Add(widget2)
document.Fields.Add(field2)
'TextBox Field with multiline text
Dim textShape3 As New TextShape(250, page.Height - 150, "TextBox Field with multiline text", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape3)
Dim field3 As New TextField("FieldName3")
field3.Value = "Default text..." & Environment.NewLine & "...already included new-lines"
field3.ToolTip = "Tooltip for field 3"
field3.MappingName = "Mappingname3"
field3.MaxLength = 200
field3.Multiline = True
field3.RequiredMode = RequiredMode.Required
Dim widget3 As New Widget(10, page.Height - 150, 200, 65)
widget3.TextColor = System.Drawing.Color.Purple
widget3.BorderStyle = BorderStyle.Dashed
widget3.BorderColor = System.Drawing.Color.Red
widget3.BackgroundColor = System.Drawing.Color.Yellow
widget3.Font = TallComponents.PDF.Fonts.Font.TimesBoldItalic
widget3.FontSize = 9
widget3.HorizontalAlignment = HorizontalAlignment.Center
field3.Widgets.Add(widget3)
page.Widgets.Add(widget3)
document.Fields.Add(field3)
'DropDownList Field -- no options but editable
Dim textShape4 As New TextShape(250, page.Height - 200, "DropDownList Field -- no options but editable", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape4)
Dim field4 As New DropDownListField("FieldName4")
field4.AllowTextEntry = True
Dim widget4 As New Widget(10, page.Height - 200, 200, 15)
widget4.BorderColor = System.Drawing.Color.Black
field4.Widgets.Add(widget4)
page.Widgets.Add(widget4)
document.Fields.Add(field4)
'DropDownList Field -- with options
Dim textShape5 As New TextShape(250, page.Height - 225, "DropDownList Field -- with options", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape5)
Dim field5 As New DropDownListField("FieldName5")
field5.Options.Add(New ListOption("opt1"))
field5.Options.Add(New ListOption("opt2"))
field5.Options.Add(New ListOption("opt3"))
field5.Value = "opt2"
Dim widget5 As New Widget(10, page.Height - 225, 200, 15)
widget5.BorderColor = System.Drawing.Color.Black
widget5.BorderStyle = BorderStyle.Inset
field5.Widgets.Add(widget5)
page.Widgets.Add(widget5)
document.Fields.Add(field5)
'ListBox Field -- with options
Dim textShape6 As New TextShape(250, page.Height - 300, "ListBox Field -- with 6 options", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape6)
Dim field6 As New ListBoxField("FieldName6")
field6.Options.Add(New ListOption("1", "opt1"))
field6.Options.Add(New ListOption("2", "opt2"))
field6.Options.Add(New ListOption("3", "opt3"))
field6.Options.Add(New ListOption("4", "opt4"))
field6.Options.Add(New ListOption("5", "opt5"))
field6.Options.Add(New ListOption("6", "opt6"))
field6.ListBoxValue = New ListOption(0) {field6.Options(1)}
Dim widget6 As New Widget(10, page.Height - 300, 200, 50)
widget6.BorderColor = System.Drawing.Color.DarkBlue
field6.Widgets.Add(widget6)
page.Widgets.Add(widget6)
document.Fields.Add(field6)
'CheckBox Field -- unchecked
Dim textShape7 As New TextShape(250, page.Height - 350, "CheckBox Field -- unchecked", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape7)
Dim field7 As New CheckBoxField("FieldName7")
Dim widget7 As New CheckBoxWidget(10, page.Height - 350, 15, 15)
widget7.BorderColor = System.Drawing.Color.Black
widget7.BorderStyle = BorderStyle.Inset
field7.Widgets.Add(widget7)
page.Widgets.Add(widget7)
document.Fields.Add(field7)
'CheckBox Field -- checked, custom on-value
Dim textShape8 As New TextShape(250, page.Height - 375, "CheckBox Field -- checked, custom on-value", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape8)
Dim field8 As New CheckBoxField("FieldName8")
field8.CheckBoxValue = CheckState.[On]
Dim widget8 As New CheckBoxWidget(10, page.Height - 375, 15, 15)
widget8.CheckMarkAppearance = CheckMarkAppearance.Check
widget8.TextColor = System.Drawing.Color.Purple
widget8.BorderColor = System.Drawing.Color.Green
widget8.BorderStyle = BorderStyle.Inset
field8.Widgets.Add(widget8)
page.Widgets.Add(widget8)
document.Fields.Add(field8)
'PushButton Field -- default
Dim textShape9 As New TextShape(250, page.Height - 425, "PushButton Field -- default", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape9)
Dim field9 As New PushButtonField("FieldName9")
Dim widget9 As New PushButtonWidget(10, page.Height - 425, 100, 30)
widget9.BackgroundColor = System.Drawing.Color.LightGray
widget9.BorderColor = System.Drawing.Color.Black
widget9.BorderStyle = BorderStyle.Beveled
field9.Widgets.Add(widget9)
page.Widgets.Add(widget9)
document.Fields.Add(field9)
'PushButton Field -- with label
Dim textShape10 As New TextShape(250, page.Height - 474, "PushButton Field -- with label", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape10)
Dim field10 As New PushButtonField("FieldName10")
Dim widget10 As New PushButtonWidget(10, page.Height - 475, 200, 30)
widget10.BackgroundColor = System.Drawing.Color.LightGray
widget10.BorderColor = System.Drawing.Color.Gray
widget10.BorderStyle = BorderStyle.Beveled
widget10.Label = "Push me!"
field10.Widgets.Add(widget10)
page.Widgets.Add(widget10)
document.Fields.Add(field10)
'Show how a submit action must be included.
Dim action As New TallComponents.PDF.Actions.SubmitFormAction()
action.SubmitFormat = TallComponents.PDF.Actions.SubmitFormat.Xfdf
action.Url = "http://www.yourname.com/receiver.aspx"
widget10.MouseUpActions.Add(action)
'PushButton Field -- with icon
Dim textShape11 As New TextShape(250, page.Height - 545, "PushButton Field -- with icon", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape11)
Dim field11 As New PushButtonField("FieldName11")
Dim widget11 As New PushButtonWidget(10, page.Height - 545, 100, 50)
widget11.BackgroundColor = System.Drawing.Color.LightGray
widget11.BorderColor = System.Drawing.Color.Gray
widget11.BorderStyle = BorderStyle.Beveled
widget11.Layout = PushButtonLayout.IconOnly
Using bitmap As New System.Drawing.Bitmap("..\..\..\inputDocuments\logo_pdfkit.gif")
widget11.SetIcon(bitmap)
End Using
field11.Widgets.Add(widget11)
page.Widgets.Add(widget11)
document.Fields.Add(field11)
'RadioButtonField -- with 3 options
Dim textShape12 As New TextShape(250, page.Height - 600, "RadioButtonField -- with 3 options", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape12)
Dim field12 As New RadioButtonField("FieldName12")
Dim widget12 As New RadioButtonWidget(10, page.Height - 600, 15, 15, "Option1")
widget12.BorderColor = System.Drawing.Color.Black
field12.Widgets.Add(widget12)
page.Widgets.Add(widget12)
widget12 = New RadioButtonWidget(35, page.Height - 600, 15, 15, "Option2")
widget12.BorderColor = System.Drawing.Color.Purple
widget12.BackgroundColor = System.Drawing.Color.Yellow
widget12.TextColor = System.Drawing.Color.Blue
field12.Widgets.Add(widget12)
page.Widgets.Add(widget12)
widget12 = New RadioButtonWidget(60, page.Height - 600, 15, 15, "Option3")
widget12.BorderColor = System.Drawing.Color.Green
widget12.BorderStyle = BorderStyle.Dashed
widget12.TextColor = System.Drawing.Color.Red
field12.Widgets.Add(widget12)
page.Widgets.Add(widget12)
field12.RadioButtonValue = TryCast(field12.Options(1), RadioButtonOption)
field12.RadioButtonDefaultValue = TryCast(field12.Options(2), RadioButtonOption)
document.Fields.Add(field12)
'SignatureField -- unsigned
Dim textShape13 As New TextShape(250, page.Height - 650, "SignatureField -- unsigned", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape13)
Dim field13 As New SignatureField("FieldName13")
Dim widget13 As New SignatureWidget(10, page.Height - 650, 150, 40)
widget13.BorderColor = System.Drawing.Color.Indigo
field13.Widgets.Add(widget13)
page.Widgets.Add(widget13)
document.Fields.Add(field13)
'SignatureField -- signed
Dim textShape14 As New TextShape(250, page.Height - 700, "SignatureField -- signed", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape14)
Dim field14 As New SignatureField("FieldName14")
Dim ks As Pkcs12Store = Nothing
Using file As New FileStream("..\..\..\inputdocuments\ChrisSharp.pfx", FileMode.Open, FileAccess.Read)
ks = New Pkcs12Store(file, "Sample")
End Using
Dim handler As SignatureHandler = StandardSignatureHandler.Create(ks)
field14.SignatureHandler = handler
field14.ContactInfo = "+31(0)77 4748677"
field14.Location = "The Netherlands"
field14.Reason = "I fully agree!"
Dim widget14 As New SignatureWidget(10, page.Height - 700, 150, 40)
field14.Widgets.Add(widget14)
page.Widgets.Add(widget14)
document.Fields.Add(field14)
'PasswordField
Dim textShape15 As New TextShape(250, page.Height - 725, "PasswordField", Font.Helvetica, 12)
page.VisualOverlay.Add(textShape15)
Dim field15 As New PasswordField("FieldName15")
Dim widget15 As New Widget(10, page.Height - 725, 100, 15)
widget15.BorderColor = System.Drawing.Color.HotPink
field15.Widgets.Add(widget15)
page.Widgets.Add(widget15)
document.Fields.Add(field15)
' write the modified document to disk, note: signing requires read-write file access
Using outFile As New FileStream("..\..\createformfields.pdf", FileMode.Create, FileAccess.ReadWrite)
document.Write(outFile)
End Using