Create AcroForm - Create Fillable PDF in C#
The following code snippet also work with Aspose.PDF.Drawing library.
The Document class provides a collection named Form which helps you manage form fields in a PDF document.
To add a form field:
Create the form field you want to add.
Call the Form collection’s Add method.
Adding TextBoxField
Below example shows how to add a TextBoxField .
.NET Core 3.1
Copy
private static void AddTextBoxFieldToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using ( var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" ))
{
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 200 , 300 , 300 ));
textBoxField . PartialName = "textbox1" ;
textBoxField . Value = "Text Box" ;
var border = new Aspose . Pdf . Annotations . Border ( textBoxField );
border . Width = 5 ;
border . Dash = new Aspose . Pdf . Annotations . Dash ( 1 , 1 );
textBoxField . Border = border ;
textBoxField . Color = Aspose . Pdf . Color . FromRgb ( System . Drawing . Color . Green );
document . Form . Add ( textBoxField , 1 );
document . Save ( dataDir + "TextBox_out.pdf" );
}
}
.NET 8
Copy
private static void AddTextBoxFieldToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" );
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 200 , 300 , 300 ));
textBoxField . PartialName = "textbox1" ;
textBoxField . Value = "Text Box" ;
var border = new Aspose . Pdf . Annotations . Border ( textBoxField );
border . Width = 5 ;
border . Dash = new Aspose . Pdf . Annotations . Dash ( 1 , 1 );
textBoxField . Border = border ;
textBoxField . Color = Aspose . Pdf . Color . FromRgb ( System . Drawing . Color . Green );
document . Form . Add ( textBoxField , 1 );
document . Save ( dataDir + "TextBox_out.pdf" );
}
The following code snippets show how to add RadioButtonField in a PDF document.
.NET Core 3.1
Copy
private static void AddRadioButtonToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using ( var document = new Aspose . Pdf . Document ())
{
document . Pages . Add ();
var radio = new Aspose . Pdf . Forms . RadioButtonField ( document . Pages [ 1 ]);
radio . AddOption ( "Test" , new Aspose . Pdf . Rectangle ( 0 , 0 , 20 , 20 ));
radio . AddOption ( "Test1" , new Aspose . Pdf . Rectangle ( 20 , 20 , 40 , 40 ));
document . Form . Add ( radio );
document . Save ( dataDir + "RadioButton_out.pdf" );
}
}
.NET 8
Copy
private static void AddRadioButtonToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using var document = new Aspose . Pdf . Document ();
document . Pages . Add ();
var radio = new Aspose . Pdf . Forms . RadioButtonField ( document . Pages [ 1 ]);
radio . AddOption ( "Test" , new Aspose . Pdf . Rectangle ( 0 , 0 , 20 , 20 ));
radio . AddOption ( "Test1" , new Aspose . Pdf . Rectangle ( 20 , 20 , 40 , 40 ));
document . Form . Add ( radio );
document . Save ( dataDir + "RadioButton_out.pdf" );
}
TextBoxField can be added with some widget annotations.
.NET Core 3.1
Copy
private static void AddTextBoxFieldToPdf ( )
{
string dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using ( var document = new Aspose . Pdf . Document ())
{
var page = document . Pages . Add ();
var rects = new Aspose . Pdf . Rectangle []
{
new Aspose . Pdf . Rectangle ( 10 , 600 , 110 , 620 ),
new Aspose . Pdf . Rectangle ( 10 , 630 , 110 , 650 ),
new Aspose . Pdf . Rectangle ( 10 , 660 , 110 , 680 )
};
var defaultAppearances = new Aspose . Pdf . Annotations . DefaultAppearance []
{
new Aspose . Pdf . Annotations . DefaultAppearance ( "Arial" , 10 , System . Drawing . Color . DarkBlue ),
new Aspose . Pdf . Annotations . DefaultAppearance ( "Helvetica" , 12 , System . Drawing . Color . DarkGreen ),
new Aspose . Pdf . Annotations . DefaultAppearance ( Aspose . Pdf . Text . FontRepository . FindFont ( "TimesNewRoman" ), 14 , System . Drawing . Color . DarkMagenta )
};
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( page , rects );
short i = 0 ;
foreach ( Aspose . Pdf . Annotations . WidgetAnnotation wa in textBoxField )
{
wa . DefaultAppearance = defaultAppearances [ i ++];
}
textBoxField . Value = "Text" ;
document . Form . Add ( textBoxField );
document . Save ( dataDir + "TextBox_out.pdf" );
}
}
.NET 8
Copy
private static void AddTextBoxFieldToPdf ( )
{
string dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using var document = new Aspose . Pdf . Document ();
var page = document . Pages . Add ();
var rects = new Aspose . Pdf . Rectangle []
{
new Aspose . Pdf . Rectangle ( 10 , 600 , 110 , 620 ),
new Aspose . Pdf . Rectangle ( 10 , 630 , 110 , 650 ),
new Aspose . Pdf . Rectangle ( 10 , 660 , 110 , 680 )
};
var defaultAppearances = new Aspose . Pdf . Annotations . DefaultAppearance []
{
new Aspose . Pdf . Annotations . DefaultAppearance ( "Arial" , 10 , System . Drawing . Color . DarkBlue ),
new Aspose . Pdf . Annotations . DefaultAppearance ( "Helvetica" , 12 , System . Drawing . Color . DarkGreen ),
new Aspose . Pdf . Annotations . DefaultAppearance ( Aspose . Pdf . Text . FontRepository . FindFont ( "TimesNewRoman" ), 14 , System . Drawing . Color . DarkMagenta )
};
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( page , rects );
short i = 0 ;
foreach ( Aspose . Pdf . Annotations . WidgetAnnotation wa in textBoxField )
{
wa . DefaultAppearance = defaultAppearances [ i ++];
}
textBoxField . Value = "Text" ;
document . Form . Add ( textBoxField );
document . Save ( dataDir + "TextBox_out.pdf" );
}
The following code snippet shows the steps to add RadioButtonField with three options and place them inside Table cells.
Following code snippet shows how to add caption which will be associated with RadioButtonField:
Another variant for adding grouped Checkboxes
The following code snippets show how to add Grouped checkBox fields in a PDF document.
.NET Core 3.1
Copy
private static void AddGroupedCheckBoxFieldsToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using ( var document = new Aspose . Pdf . Document ())
{
var page = document . Pages . Add ();
var radioButtonField = new Aspose . Pdf . Forms . RadioButtonField ( page );
var opt1 = new Aspose . Pdf . Forms . RadioButtonOptionField ( page , new Aspose . Pdf . Rectangle ( 50 , 500 , 70 , 520 ));
var opt2 = new Aspose . Pdf . Forms . RadioButtonOptionField ( page , new Aspose . Pdf . Rectangle ( 100 , 500 , 120 , 520 ));
opt1 . OptionName = "Option1" ;
opt2 . OptionName = "Option2" ;
opt1 . Style = Aspose . Pdf . Forms . BoxStyle . Square ;
opt2 . Style = Aspose . Pdf . Forms . BoxStyle . Cross ;
opt1 . Border = new Aspose . Pdf . Annotations . Border ( opt1 );
opt1 . Border . Style = Aspose . Pdf . Annotations . BorderStyle . Dashed ;
opt1 . Border . Width = 1 ;
opt1 . Characteristics . Border = System . Drawing . Color . Blue ;
opt2 . Border = new Aspose . Pdf . Annotations . Border ( opt2 );
opt2 . Border . Style = Aspose . Pdf . Annotations . BorderStyle . Solid ;
opt2 . Border . Width = 1 ;
opt2 . Characteristics . Border = System . Drawing . Color . Black ;
radioButtonField . Add ( opt1 );
radioButtonField . Add ( opt2 );
document . Form . Add ( radioButtonField );
document . Save ( dataDir + "GroupedCheckboxFields_out.pdf" );
}
}
.NET 8
Copy
private static void AddGroupedCheckBoxFieldsToPdf ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using var document = new Aspose . Pdf . Document ();
var page = document . Pages . Add ();
var radioButtonField = new Aspose . Pdf . Forms . RadioButtonField ( page );
var opt1 = new Aspose . Pdf . Forms . RadioButtonOptionField ( page , new Aspose . Pdf . Rectangle ( 50 , 500 , 70 , 520 ));
var opt2 = new Aspose . Pdf . Forms . RadioButtonOptionField ( page , new Aspose . Pdf . Rectangle ( 100 , 500 , 120 , 520 ));
opt1 . OptionName = "Option1" ;
opt2 . OptionName = "Option2" ;
opt1 . Style = Aspose . Pdf . Forms . BoxStyle . Square ;
opt2 . Style = Aspose . Pdf . Forms . BoxStyle . Cross ;
opt1 . Border = new Aspose . Pdf . Annotations . Border ( opt1 );
opt1 . Border . Style = Aspose . Pdf . Annotations . BorderStyle . Dashed ;
opt1 . Border . Width = 1 ;
opt1 . Characteristics . Border = System . Drawing . Color . Blue ;
opt2 . Border = new Aspose . Pdf . Annotations . Border ( opt2 );
opt2 . Border . Style = Aspose . Pdf . Annotations . BorderStyle . Solid ;
opt2 . Border . Width = 1 ;
opt2 . Characteristics . Border = System . Drawing . Color . Black ;
radioButtonField . Add ( opt1 );
radioButtonField . Add ( opt2 );
document . Form . Add ( radioButtonField );
document . Save ( dataDir + "GroupedCheckboxFields_out.pdf" );
}
Adding ComboBox field
The following code snippets show how to add ComboBox field in a PDF document.
Adding CheckboxField
The following code snippet show how to add CheckboxField in a PDF document.
Adding ListBoxField
The following code snippet show how to add ListBoxField in a PDF document.
Using SignatureField
The following code snippet show how to sign a PDF document by SignatureField.
.NET Core 3.1
Copy private static void SignPdfBySignatureField ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using ( var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" ))
{
var page = document . Pages . Add ();
var signatureField = new Aspose . Pdf . Forms . SignatureField ( page , new Aspose . Pdf . Rectangle ( 100 , 700 , 200 , 800 ));
document . Form . Add ( signatureField );
var pkcs = new Aspose . Pdf . Forms . PKCS7 ( "test1.pfx" , "test1" );
pkcs . Date = new DateTime ();
pkcs . ContactInfo = "Test" ;
pkcs . Location = "TestLocation" ;
pkcs . Reason = "Verify" ;
pkcs . ShowProperties = false ;
signatureField . Sign ( pkcs );
document . Save ( dataDir + "SignatureField_out.pdf" );
}
}
.NET 8
Copy private static void SignPdfBySignatureField ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
using var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" );
var page = document . Pages . Add ();
var signatureField = new Aspose . Pdf . Forms . SignatureField ( page , new Aspose . Pdf . Rectangle ( 100 , 700 , 200 , 800 ));
document . Form . Add ( signatureField );
var pkcs = new Aspose . Pdf . Forms . PKCS7 ( "test1.pfx" , "test1" );
pkcs . Date = new DateTime ();
pkcs . ContactInfo = "Test" ;
pkcs . Location = "TestLocation" ;
pkcs . Reason = "Verify" ;
pkcs . ShowProperties = false ;
signatureField . Sign ( pkcs );
document . Save ( dataDir + "SignatureField_out.pdf" );
}
The Document class provides a collection named Form which manages form fields in a PDF document. To add a tooltip to a form field, use the Field class AlternateName. Adobe Acrobat uses the ‘alternate name’ as a field tooltip.
The code snippets that follow show how to add a tooltip to a form field, first using C# and then Visual Basic.