Criar AcroForm - Criar PDF Preenchível em C#
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing .
A classe Document fornece uma coleção chamada Form que ajuda você a gerenciar campos de formulário em um documento PDF.
Para adicionar um campo de formulário:
Crie o campo de formulário que você deseja adicionar.
Chame o método Add da coleção Form .
Adicionando TextBoxField
O exemplo abaixo mostra como adicionar um 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" );
}
Os seguintes trechos de código mostram como adicionar RadioButtonField em um documento 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 pode ser adicionado com algumas anotações 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" );
}
O seguinte trecho de código mostra os passos para adicionar RadioButtonField com três opções e colocá-los dentro de células de tabela.
O seguinte trecho de código mostra como adicionar uma legenda que será associada ao RadioButtonField:
Outra variante para adicionar Checkboxes agrupados
Os seguintes trechos de código mostram como adicionar campos de checkbox agrupados em um documento 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" );
}
Adicionando campo ComboBox
Os seguintes trechos de código mostram como adicionar um campo ComboBox em um documento PDF.
Adicionando CheckboxField
O seguinte trecho de código mostra como adicionar CheckboxField em um documento PDF.
Adicionando ListBoxField
O seguinte trecho de código mostra como adicionar ListBoxField em um documento PDF.
Usando SignatureField
O seguinte trecho de código mostra como assinar um documento PDF usando 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" );
}
A classe Document fornece uma coleção chamada Form que gerencia campos de formulário em um documento PDF. Para adicionar um tooltip a um campo de formulário, use a classe Field AlternateName. O Adobe Acrobat usa o ’nome alternativo’ como um tooltip de campo.
Os trechos de código que seguem mostram como adicionar um tooltip a um campo de formulário, primeiro usando C# e depois Visual Basic.