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
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" );
}
Les extraits de code suivants montrent comment ajouter un RadioButtonField dans un document PDF.
.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 peut être ajouté avec quelques annotations de widget.
.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" );
}
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
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" );
}
Ajouter un champ ComboBox
Les extraits de code suivants montrent comment ajouter un champ ComboBox dans un document PDF.
Ajouter un CheckboxField
L’extrait de code suivant montre comment ajouter un CheckboxField dans un document PDF.
Ajouter un ListBoxField
L’extrait de code suivant montre comment ajouter un ListBoxField dans un document PDF.
Utiliser SignatureField
L’extrait de code suivant montre comment signer un document PDF par 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" );
}
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.