Заповнити форму PDF

PDF-форми часто використовуються для збору даних та інформації. Наприклад, анкети зазвичай призначені для збору відповідей для цілей опитування. Ви можете заповнювати, редагувати та змінювати PDF-форми в C# програмно, оскільки ми взаємодіємо з різними доступними для заповнення PDF-формами в сучасному цифровому світі. Враховуючи величезний обсяг і важливість PDF-форм, API Aspose.PDF for .NET підтримує багато функцій для роботи з PDF-формами. Давайте розглянемо наступні випадки використання мови C# у цій статті:

Програмно створюйте заповнювані форми PDF за допомогою C#

Ви можете створити PDF-форму, яку можна заповнити, з нуля, використовуючи Aspose.PDF for .NET API. Тут ми розглянемо базовий приклад додавання двох екземплярів TextBoxField і RadioButton. Однак одне поле TextBoxField є однорядковим, а інше – багаторядковим. Нижче наведено кроки для створення форми в документі PDF:

  1. Створіть екземпляр класу Document.
  2. Додайте порожню сторінку в документ PDF
  3. Додайте поле TextBox у форму
  4. Встановіть різні властивості полів, зокрема шрифт, рамку тощо.
  5. Додайте радіокнопку у форму
  6. Зберегти документ 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

Заповніть, змініть або видаліть поля форми в наявному PDF-файлі за допомогою C#

Оскільки ми досліджували створення форми в документі PDF за допомогою C#, API Aspose.PDF for .NET також підтримує роботу з існуючими формами PDF. Давайте обговоримо наступні функції API.

i) Програмно заповніть поле форми в існуючому файлі PDF за допомогою C#

Для заповнення PDF-форм ми продовжимо PDF-документ, створений у наведеному вище прикладі. Нижче наведено кроки для заповнення полів у наявному документі PDF.

  1. Завантажити вихідний документ PDF
  2. Отримати Textbox поля та заповнити значення
  3. Отримайте Поле радіокнопок і виберіть опцію з групи
  4. Зберегти заповнену форму 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#:

Заповнюваний PDF

ii) Змініть поле форми в PDF-документі за допомогою C#

Іноді вам може знадобитися змінити значення в будь-якому полі форми PDF. Зміна значення в полі форми є основним варіантом використання, який можна досягти за допомогою наведених нижче кроків.

  1. Завантажте форму PDF
  2. Отримайте певне поле, використовуючи його назву
  3. Змінити значення поля
  4. Збережіть оновлений документ 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. Тепер розглянемо видалення поля форми. Вам потрібно виконати наведені нижче дії.

  1. Завантажте документ PDF
  2. Викличте метод Delete з назвою поля форми
  3. Зберегти 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. Щоб виконати цю вимогу, виконайте наведені нижче кроки.

  1. Ініціювати екземпляр класу Document
  2. Додайте TextBoxField на першу сторінку за певними координатами сторінки
  3. Налаштувати JavaScript
  4. Вкажіть дію документа
  5. Зберегти документ 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 пропонує багато таких захоплюючих функцій для роботи з різними файлами. Повідомте нам свої відгуки чи коментарі через Безкоштовний форум підтримки.

Дивись також