Créer un AcroForm - Créer un PDF remplissable en C#
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing .
La classe Document fournit une collection nommée Form qui vous aide à gérer les champs de formulaire dans un document PDF.
Pour ajouter un champ de formulaire :
Créez le champ de formulaire que vous souhaitez ajouter.
Appelez la méthode Add de la collection Form .
Ajouter un TextBoxField
L’exemple ci-dessous montre comment ajouter un TextBoxField .
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Open PDF document
using ( var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" ))
{
// Create a field
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" ;
// Configure border
var border = new Aspose . Pdf . Annotations . Border ( textBoxField );
border . Width = 5 ;
border . Dash = new Aspose . Pdf . Annotations . Dash ( 1 , 1 );
textBoxField . Border = border ;
// Set color
textBoxField . Color = Aspose . Pdf . Color . FromRgb ( System . Drawing . Color . Green );
// Add field to the document
document . Form . Add ( textBoxField , 1 );
// Save PDF document
document . Save ( dataDir + "TextBox_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Open PDF document
using var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" );
// Create a field
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" ;
// Configure border
var border = new Aspose . Pdf . Annotations . Border ( textBoxField );
border . Width = 5 ;
border . Dash = new Aspose . Pdf . Annotations . Dash ( 1 , 1 );
textBoxField . Border = border ;
// Set color
textBoxField . Color = Aspose . Pdf . Color . FromRgb ( System . Drawing . Color . Green );
// Add field to the document
document . Form . Add ( textBoxField , 1 );
// Save PDF document
document . Save ( dataDir + "TextBox_out.pdf" );
}
Les extraits de code suivants montrent comment ajouter un RadioButtonField dans un document PDF.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddRadioButtonToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
document . Pages . Add ();
// Instantiate RadioButtonField object with page number as argument
var radio = new Aspose . Pdf . Forms . RadioButtonField ( document . Pages [ 1 ]);
// Add first radio button option and also specify its origin using Rectangle object
radio . AddOption ( "Test" , new Aspose . Pdf . Rectangle ( 0 , 0 , 20 , 20 ));
// Add second radio button option
radio . AddOption ( "Test1" , new Aspose . Pdf . Rectangle ( 20 , 20 , 40 , 40 ));
// Add radio button to form object of Document object
document . Form . Add ( radio );
// Save PDF document
document . Save ( dataDir + "RadioButton_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddRadioButtonToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
document . Pages . Add ();
// Instantiate RadioButtonField object with page number as argument
var radio = new Aspose . Pdf . Forms . RadioButtonField ( document . Pages [ 1 ]);
// Add first radio button option and also specify its origin using Rectangle object
radio . AddOption ( "Test" , new Aspose . Pdf . Rectangle ( 0 , 0 , 20 , 20 ));
// Add second radio button option
radio . AddOption ( "Test1" , new Aspose . Pdf . Rectangle ( 20 , 20 , 40 , 40 ));
// Add radio button to form object of Document object
document . Form . Add ( radio );
// Save PDF document
document . Save ( dataDir + "RadioButton_out.pdf" );
}
TextBoxField peut être ajouté avec quelques annotations de widget.
.NET Core 3.1
// For complete examples and data files, please visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextBoxFieldToPdf ()
{
// The path to the documents directory
string dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
var page = document . Pages . Add ();
// Defining an array with rectangle data for widget annotations.
// The number of elements in the array determines the number of widget annotations to 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 )
};
// Defining an array with DefaultAppearance used to specify how widget annotations are displayed in the added field.
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 )
};
// Create a field
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( page , rects );
// Setting the appearances of widget annotations
short i = 0 ;
foreach ( Aspose . Pdf . Annotations . WidgetAnnotation wa in textBoxField )
{
wa . DefaultAppearance = defaultAppearances [ i ++];
}
textBoxField . Value = "Text" ;
// Add field to the document
document . Form . Add ( textBoxField );
// Save PDF document
document . Save ( dataDir + "TextBox_out.pdf" );
}
}
.NET 8
// For complete examples and data files, please visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextBoxFieldToPdf ()
{
// The path to the documents directory
string dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
var page = document . Pages . Add ();
// Defining an array with rectangle data for widget annotations.
// The number of elements in the array determines the number of widget annotations to 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 )
};
// Defining an array with DefaultAppearance used to specify how widget annotations are displayed in the added field.
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 )
};
// Create a field
var textBoxField = new Aspose . Pdf . Forms . TextBoxField ( page , rects );
// Setting the appearances of widget annotations
short i = 0 ;
foreach ( Aspose . Pdf . Annotations . WidgetAnnotation wa in textBoxField )
{
wa . DefaultAppearance = defaultAppearances [ i ++];
}
textBoxField . Value = "Text" ;
// Add field to the document
document . Form . Add ( textBoxField );
// Save PDF document
document . Save ( dataDir + "TextBox_out.pdf" );
}
L’extrait de code suivant montre les étapes pour ajouter un RadioButtonField avec trois options et les placer à l’intérieur des cellules d’un tableau.
L’extrait de code suivant montre comment ajouter une légende qui sera associée à RadioButtonField :
Une autre variante pour ajouter des cases à cocher groupées
Les extraits de code suivants montrent comment ajouter des champs de case à cocher groupés dans un document PDF.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddGroupedCheckBoxFieldsToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
var page = document . Pages . Add ();
var radioButtonField = new Aspose . Pdf . Forms . RadioButtonField ( page );
// Add radio button options and specify its position using Rectangle
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 ));
// Set option names for identification
opt1 . OptionName = "Option1" ;
opt2 . OptionName = "Option2" ;
// Set the style of the radio buttons
opt1 . Style = Aspose . Pdf . Forms . BoxStyle . Square ;
opt2 . Style = Aspose . Pdf . Forms . BoxStyle . Cross ;
// Configure the border of the first radio button
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 ;
// Configure the border of the second radio button
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 );
// Add radio button field to the form object of the document
document . Form . Add ( radioButtonField );
// Save PDF document
document . Save ( dataDir + "GroupedCheckboxFields_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddGroupedCheckBoxFieldsToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
var page = document . Pages . Add ();
var radioButtonField = new Aspose . Pdf . Forms . RadioButtonField ( page );
// Add radio button options and specify its position using Rectangle
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 ));
// Set option names for identification
opt1 . OptionName = "Option1" ;
opt2 . OptionName = "Option2" ;
// Set the style of the radio buttons
opt1 . Style = Aspose . Pdf . Forms . BoxStyle . Square ;
opt2 . Style = Aspose . Pdf . Forms . BoxStyle . Cross ;
// Configure the border of the first radio button
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 ;
// Configure the border of the second radio button
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 );
// Add radio button field to the form object of the document
document . Form . Add ( radioButtonField );
// Save PDF document
document . Save ( dataDir + "GroupedCheckboxFields_out.pdf" );
}
Ajouter un champ ComboBox
Les extraits de code suivants montrent comment ajouter un champ ComboBox dans un document PDF.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddComboBoxToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
document . Pages . Add ();
// Instantiate ComboBox Field object
var combo = new Aspose . Pdf . Forms . ComboBoxField ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 600 , 150 , 616 ));
// Add options to ComboBox
combo . AddOption ( "Red" );
combo . AddOption ( "Yellow" );
combo . AddOption ( "Green" );
combo . AddOption ( "Blue" );
// Add combo box object to form fields collection of document object
document . Form . Add ( combo );
// Save PDF document
document . Save ( dataDir + "ComboBox_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddComboBoxToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
document . Pages . Add ();
// Instantiate ComboBox Field object
var combo = new Aspose . Pdf . Forms . ComboBoxField ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 600 , 150 , 616 ));
// Add options to ComboBox
combo . AddOption ( "Red" );
combo . AddOption ( "Yellow" );
combo . AddOption ( "Green" );
combo . AddOption ( "Blue" );
// Add combo box object to form fields collection of document object
document . Form . Add ( combo );
// Save PDF document
document . Save ( dataDir + "ComboBox_out.pdf" );
}
Ajouter un CheckboxField
L’extrait de code suivant montre comment ajouter un CheckboxField dans un document PDF.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddCheckBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
var checkboxField = new Aspose . Pdf . Forms . CheckboxField ( page , new Aspose . Pdf . Rectangle ( 50 , 620 , 100 , 650 ));
checkboxField . Characteristics . Background = System . Drawing . Color . Aqua ;
checkboxField . Style = Aspose . Pdf . Forms . BoxStyle . Circle ;
// Add field to the form
document . Form . Add ( checkboxField );
// Save PDF document
document . Save ( dataDir + "CheckboxField_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddCheckBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
var checkboxField = new Aspose . Pdf . Forms . CheckboxField ( page , new Aspose . Pdf . Rectangle ( 50 , 620 , 100 , 650 ));
checkboxField . Characteristics . Background = System . Drawing . Color . Aqua ;
checkboxField . Style = Aspose . Pdf . Forms . BoxStyle . Circle ;
// Add field to the form
document . Form . Add ( checkboxField );
// Save PDF document
document . Save ( dataDir + "CheckboxField_out.pdf" );
}
Ajouter un ListBoxField
L’extrait de code suivant montre comment ajouter un ListBoxField dans un document PDF.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddListBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ())
{
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
var listBoxField = new Aspose . Pdf . Forms . ListBoxField ( page , new Aspose . Pdf . Rectangle ( 50 , 650 , 100 , 700 ));
listBoxField . PartialName = "list" ;
listBoxField . AddOption ( "Red" );
listBoxField . AddOption ( "Green" );
listBoxField . AddOption ( "Blue" );
// Add field to the form
document . Form . Add ( listBoxField );
// Save PDF document
document . Save ( dataDir + "ListBoxField_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddListBoxFieldToPdf ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ();
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
var listBoxField = new Aspose . Pdf . Forms . ListBoxField ( page , new Aspose . Pdf . Rectangle ( 50 , 650 , 100 , 700 ));
listBoxField . PartialName = "list" ;
listBoxField . AddOption ( "Red" );
listBoxField . AddOption ( "Green" );
listBoxField . AddOption ( "Blue" );
// Add field to the form
document . Form . Add ( listBoxField );
// Save PDF document
document . Save ( dataDir + "ListBoxField_out.pdf" );
}
Utiliser SignatureField
L’extrait de code suivant montre comment signer un document PDF par SignatureField.
.NET Core 3.1
private static void SignPdfBySignatureField ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using ( var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" ))
{
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
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 );
// Save PDF document
document . Save ( dataDir + "SignatureField_out.pdf" );
}
}
.NET 8
private static void SignPdfBySignatureField ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_Forms ();
// Create PDF document
using var document = new Aspose . Pdf . Document ( dataDir + "TextField.pdf" );
// Add page to PDF file
var page = document . Pages . Add ();
// Create a field
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 );
// Save PDF document
document . Save ( dataDir + "SignatureField_out.pdf" );
}
La classe Document fournit une collection nommée Form qui gère les champs de formulaire dans un document PDF. Pour ajouter une info-bulle à un champ de formulaire, utilisez la propriété AlternateName de la classe Field. Adobe Acrobat utilise le « nom alternatif » comme info-bulle de champ.
Les extraits de code qui suivent montrent comment ajouter une info-bulle à un champ de formulaire, d’abord en utilisant C# puis Visual Basic.