PDF-форми часто використовуються для збору даних та інформації. Наприклад, анкети зазвичай призначені для збору відповідей для цілей опитування. Ви можете заповнювати, редагувати та змінювати PDF-форми в C# програмно, оскільки ми взаємодіємо з різними доступними для заповнення PDF-формами в сучасному цифровому світі. Враховуючи величезний обсяг і важливість PDF-форм, API Aspose.PDF for .NET підтримує багато функцій для роботи з PDF-формами. Давайте розглянемо наступні випадки використання мови C# у цій статті:
- Програмно створюйте заповнювані форми PDF за допомогою C#
- Програмно заповніть поле форми в існуючому файлі PDF за допомогою C#
- Змініть поле форми в PDF-документі за допомогою C#
- Видалення поля форми в наявному файлі PDF за допомогою C#
- Зберігайте розширені права на PDF-форми за допомогою C#
- Використовуйте JavaScript у формі PDF за допомогою C#
Програмно створюйте заповнювані форми PDF за допомогою C#
Ви можете створити PDF-форму, яку можна заповнити, з нуля, використовуючи Aspose.PDF for .NET API. Тут ми розглянемо базовий приклад додавання двох екземплярів TextBoxField і RadioButton. Однак одне поле TextBoxField є однорядковим, а інше – багаторядковим. Нижче наведено кроки для створення форми в документі PDF:
- Створіть екземпляр класу Document.
- Додайте порожню сторінку в документ PDF
- Додайте поле TextBox у форму
- Встановіть різні властивості полів, зокрема шрифт, рамку тощо.
- Додайте радіокнопку у форму
- Зберегти документ PDF
Наступний фрагмент коду показує, як створити форму в PDF за допомогою C#:
Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Додайте поля форми на першу сторінку документа PDF
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);
//Додайте радіокнопки в певні координати позиції в PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Встановіть позицію тут
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");
На знімку екрана нижче показано вихідний документ PDF, що містить поля форми, як зазначено у фрагменті коду вище:
Заповніть, змініть або видаліть поля форми в наявному PDF-файлі за допомогою C#
Оскільки ми досліджували створення форми в документі PDF за допомогою C#, API Aspose.PDF for .NET також підтримує роботу з існуючими формами PDF. Давайте обговоримо наступні функції API.
i) Програмно заповніть поле форми в існуючому файлі PDF за допомогою C#
Для заповнення PDF-форм ми продовжимо PDF-документ, створений у наведеному вище прикладі. Нижче наведено кроки для заповнення полів у наявному документі PDF.
- Завантажити вихідний документ PDF
- Отримати Textbox поля та заповнити значення
- Отримайте Поле радіокнопок і виберіть опцію з групи
- Зберегти заповнену форму PDF
Наступний фрагмент коду виконує ці кроки та пояснює, як заповнити поля в документі PDF за допомогою C#:
// відкритий документ
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");
// Отримайте поля
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Заповнити значення полів форми
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";
// Отримати поле радіокнопки
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Укажіть індекс радіокнопки з групи
radioField.Selected = 1;
dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Зберегти оновлений документ
pdfDocument.Save(dataDir);
На знімку екрана нижче показано заповнені поля форми PDF-форми за допомогою C#:
ii) Змініть поле форми в PDF-документі за допомогою C#
Іноді вам може знадобитися змінити значення в будь-якому полі форми PDF. Зміна значення в полі форми є основним варіантом використання, який можна досягти за допомогою наведених нижче кроків.
- Завантажте форму PDF
- Отримайте певне поле, використовуючи його назву
- Змінити значення поля
- Збережіть оновлений документ PDF
Наступний фрагмент коду показує, як змінити значення в полі форми PDF-документа:
// відкритий документ
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Отримати поле
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Змінити значення поля
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Зберегти оновлений документ
pdfDocument.Save(dataDir);
Тут варто зазначити, що ви можете не лише змінити значення форми, але й інші властивості також можна оновити. Наприклад, у наведеному вище фрагменті коду поле було позначено як лише для читання.
iii) Видалення поля форми в наявному файлі PDF за допомогою C#
Ми вже дізналися про додавання та заповнення полів форми PDF. Тепер розглянемо видалення поля форми. Вам потрібно виконати наведені нижче дії.
- Завантажте документ PDF
- Викличте метод Delete з назвою поля форми
- Зберегти PDF-документ
Наступний фрагмент коду показує, як видалити поле форми з PDF-файлу за допомогою C#:
// відкритий документ
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Видалити певне поле за назвою
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Зберегти змінений документ
pdfDocument.Save(dataDir);
Зберігайте розширені права на PDF-форми за допомогою C#
PDF-форма може мати розширені права, які також називають розширеними функціями, які ви хочете зберегти під час роботи з формою. Ви повинні зберігати його поступово, виконуючи наведені нижче дії.
- Завантажте PDF-документ у Stream
- Робота з формою
- Збережіть файл без будь-яких параметрів
У наведеному нижче фрагменті коду C# пояснюється, як зберегти розширені права на форму PDF:
// Читайте вихідну форму PDF за допомогою FileAccess для читання та запису.
// Нам потрібен дозвіл ReadWrite, тому що після зміни
// Нам потрібно зберегти оновлений вміст у тому ж документі/файлі.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Створення екземпляра документа
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Отримати значення з усіх полів
foreach (Field formField in pdfDocument.Form)
{
// Якщо повна назва поля містить A1, виконайте операцію
if (formField.FullName.Contains("nameBox1"))
{
// Перевести поле форми як TextBox
TextBoxField textBoxField = formField as TextBoxField;
// Змінити значення поля
textBoxField.Value = "Preserve Extended Features";
}
}
// Збережіть оновлений документ у save FileStream
pdfDocument.Save();
// Закрийте об’єкт File Stream
fs.Close();
Використовуйте JavaScript у формі PDF за допомогою C#
Ви можете використовувати JavaScript у полях форм PDF за допомогою API Aspose.PDF for .NET. Щоб виконати цю вимогу, виконайте наведені нижче кроки.
- Ініціювати екземпляр класу Document
- Додайте TextBoxField на першу сторінку за певними координатами сторінки
- Налаштувати JavaScript
- Вкажіть дію документа
- Зберегти документ PDF
Наступний фрагмент коду показує, як додати JavaScript у форму PDF за допомогою C#:
Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = нова межа();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Додати поле до документа
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");
JavaScript отримує поточну дату й час системи, коли PDF-документ відкривається, і це значення заповнюється в текстовому полі.
Висновок
У цій статті ми ознайомилися з різними аспектами роботи з формою в документах PDF. Створювати, заповнювати або редагувати PDF-форми легко за допомогою API Aspose.PDF for .NET. API пропонує багато таких захоплюючих функцій для роботи з різними файлами. Повідомте нам свої відгуки чи коментарі через Безкоштовний форум підтримки.