Buat AcroForm - Buat PDF yang Dapat Diisi di C#
Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing .
Kelas Document menyediakan koleksi bernama Form yang membantu Anda mengelola bidang formulir dalam dokumen PDF.
Untuk menambahkan bidang formulir:
Buat bidang formulir yang ingin Anda tambahkan.
Panggil metode Add dari koleksi Form .
Menambahkan TextBoxField
Contoh di bawah ini menunjukkan cara menambahkan 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" );
}
Potongan kode berikut menunjukkan cara menambahkan RadioButtonField dalam dokumen 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 dapat ditambahkan dengan beberapa anotasi 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" );
}
Potongan kode berikut menunjukkan langkah-langkah untuk menambahkan RadioButtonField dengan tiga opsi dan menempatkannya di dalam sel Tabel.
Potongan kode berikut menunjukkan cara menambahkan keterangan yang akan dikaitkan dengan RadioButtonField:
Varian lain untuk menambahkan Checkbox yang dikelompokkan
Potongan kode berikut menunjukkan cara menambahkan bidang checkBox yang dikelompokkan dalam dokumen 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" );
}
Menambahkan bidang ComboBox
Potongan kode berikut menunjukkan cara menambahkan bidang ComboBox dalam dokumen 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" );
}
Menambahkan CheckboxField
Potongan kode berikut menunjukkan cara menambahkan CheckboxField dalam dokumen 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" );
}
Menambahkan ListBoxField
Potongan kode berikut menunjukkan cara menambahkan ListBoxField dalam dokumen 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" );
}
Menggunakan SignatureField
Potongan kode berikut menunjukkan cara menandatangani dokumen PDF dengan 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" );
}
Kelas Document menyediakan koleksi bernama Form yang mengelola bidang formulir dalam dokumen PDF. Untuk menambahkan tooltip ke bidang formulir, gunakan kelas Field AlternateName. Adobe Acrobat menggunakan ’nama alternatif’ sebagai tooltip bidang.
Potongan kode berikut menunjukkan cara menambahkan tooltip ke bidang formulir, pertama menggunakan C# dan kemudian Visual Basic.