Wypełnij formularz PDF

Formularze PDF są często używane do gromadzenia danych i informacji. Na przykład Kwestionariusze są zwykle przeznaczone do zbierania odpowiedzi do celów ankiety. Możesz programowo wypełniać, edytować i modyfikować formularze PDF w języku C#, ponieważ w dzisiejszym cyfrowym świecie wchodzimy w interakcje z różnymi wypełnialnymi formularzami PDF. Biorąc pod uwagę ogromny zakres i znaczenie formularzy PDF, Aspose.PDF for .NET API obsługuje wiele funkcji do pracy z formularzami PDF. W tym artykule przyjrzyjmy się następującym przypadkom użycia języka C#:

Twórz formularze PDF do wypełnienia, używając programowo języka C#

Możesz utworzyć formularz PDF do wypełnienia od podstaw, używając Aspose.PDF for .NET API. Tutaj rozważymy podstawowy przykład dodania dwóch instancji TextBoxField i RadioButton. Jednak jedno pole TextBoxField jest jednowierszowe, a drugie wielowierszowe. Poniżej przedstawiono kroki tworzenia formularza w dokumencie PDF:

  1. Utwórz instancję klasy Document.
  2. Dodaj pustą stronę w dokumencie PDF
  3. Dodaj pole TextBox w formularzu
  4. Ustaw różne właściwości pól, w tym czcionkę, obramowanie itp.
  5. Dodaj Przycisk radiowy w formularzu
  6. Zapisz dokument PDF

Poniższy fragment kodu pokazuje, jak utworzyć formularz w formacie PDF przy użyciu języka 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);
// Dodaj pola formularza do pierwszej strony dokumentu PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Dodaj przyciski opcji w określonych współrzędnych pozycji w formacie PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Ustaw pozycję tutaj
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");

Poniższy zrzut ekranu pokazuje wyjściowy dokument PDF zawierający pola formularza, jak określono w powyższym fragmencie kodu:

Formularz PDF

Wypełnij, zmodyfikuj lub usuń pola formularza w istniejącym pliku PDF za pomocą C#

Jak badaliśmy tworzenie formularza w dokumencie PDF przy użyciu C#, Aspose.PDF for .NET API obsługuje również pracę z istniejącymi formularzami PDF. Omówmy następujące funkcje interfejsu API.

i) Wypełnij pole formularza w istniejącym pliku PDF za pomocą programu C#

Aby wypełnić formularze PDF, będziemy kontynuować z dokumentem PDF utworzonym w powyższym przykładzie. Poniżej przedstawiono kroki wypełniania pól w istniejącym dokumencie PDF:

  1. Załaduj źródłowy dokument PDF
  2. Pobierz Textbox Pola i wypełnij wartości
  3. Pobierz Pole przycisku radiowego i wybierz opcję z grupy
  4. Zapisz wypełniony formularz PDF

Poniższy fragment kodu wykonuje następujące kroki i wyjaśnia, jak wypełniać pola w dokumencie PDF przy użyciu języka C#:

// Otwórz dokument
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Zdobądź pola
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Wypełnij wartości pól formularza
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Pobierz pole przycisku radiowego
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Określ indeks przycisku radiowego z grupy
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Zapisz zaktualizowany dokument
pdfDocument.Save(dataDir);

Poniższy zrzut ekranu pokazuje wypełnione pola formularza PDF przy użyciu języka C#:

PDF do wypełnienia

ii) Zmodyfikuj pole formularza w dokumencie PDF za pomocą C#

Czasami może być konieczna zmiana wartości w dowolnym polu formularza PDF. Zmiana wartości w polu formularza to podstawowy przypadek użycia, który można osiągnąć, wykonując poniższe czynności:

  1. Załaduj formularz PDF
  2. Uzyskaj określone pole, używając jego nazwy
  3. Zmodyfikuj wartość pola
  4. Zapisz zaktualizowany dokument PDF

Poniższy fragment kodu pokazuje, jak zmienić wartość w polu formularza dokumentu PDF:

// Otwórz dokument
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Zdobądź pole
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Zmodyfikuj wartość pola
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Zapisz zaktualizowany dokument
pdfDocument.Save(dataDir);

W tym miejscu warto zauważyć, że można nie tylko zmienić wartość formularza, ale także zaktualizować inne właściwości. Na przykład pole zostało oznaczone jako tylko do odczytu we fragmencie kodu powyżej.

iii) Usuń pole formularza w istniejącym pliku PDF za pomocą C#

Dowiedzieliśmy się już o dodawaniu i wypełnianiu pól formularza PDF. Przyjrzyjmy się teraz usuwaniu pola formularza. Musisz wykonać poniższe czynności:

  1. Załaduj dokument PDF
  2. Wywołaj metodę Delete z nazwą pola formularza
  3. Zapisz dokument PDF

Poniższy fragment kodu pokazuje, jak usunąć pole formularza z pliku PDF za pomocą C#:

// Otwórz dokument
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Usuń określone pole według nazwy
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Zapisz zmodyfikowany dokument
pdfDocument.Save(dataDir);

Zachowaj rozszerzone prawa formularzy PDF przy użyciu języka C#

Formularz PDF może mieć rozszerzone uprawnienia, zwane również rozszerzonymi funkcjami, które chcesz zachować podczas manipulowania formularzem. Powinieneś zapisywać go stopniowo, wykonując poniższe czynności:

  • Załaduj dokument PDF w strumieniu
  • Pracuj z formą
  • Zapisz plik bez żadnych parametrów

Poniższy fragment kodu C# wyjaśnia, jak zachować rozszerzone prawa formularza PDF:

// Przeczytaj źródłowy formularz PDF z FileAccess do odczytu i zapisu.
// Potrzebujemy uprawnień ReadWrite, ponieważ po modyfikacji
// Musimy zapisać zaktualizowaną zawartość w tym samym dokumencie/pliku.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Utwórz instancję dokumentu
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Pobierz wartości ze wszystkich pól
foreach (Field formField in pdfDocument.Form)
{
    // Jeśli pełna nazwa pola zawiera A1, wykonaj operację
    if (formField.FullName.Contains("nameBox1"))
    {
        // Rzuć pole formularza jako TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // Zmodyfikuj wartość pola
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Zapisz zaktualizowany dokument w pliku Zapisz FileStream
pdfDocument.Save();
// Zamknij obiekt Strumień plików
fs.Close();

Użyj JavaScript w formularzu PDF przy użyciu C#

Możesz używać JavaScript w polach formularzy PDF z Aspose.PDF for .NET API. Wykonajmy poniższe kroki, aby spełnić to wymaganie:

  1. Zainicjuj instancję klasy Document
  2. Dodaj TextBoxField na pierwszej stronie w określonych współrzędnych strony
  3. Skonfiguruj JavaScript
  4. Określ akcję dokumentu
  5. Zapisz dokument PDF

Poniższy fragment kodu pokazuje, jak dodać JavaScript w formacie PDF za pomocą 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 = nowa granica();
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);
// Dodaj pole do dokumentu
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 pobiera aktualną datę i godzinę systemu, kiedy dokument PDF jest otwierany i ta wartość jest wypełniana w polu tekstowym.

Wniosek

W tym artykule poznaliśmy różne aspekty pracy z formularzami w dokumentach PDF. Tworzenie, wypełnianie lub edytowanie formularzy PDF jest proste dzięki Aspose.PDF for .NET API. Interfejs API oferuje wiele takich ekscytujących funkcji do pracy z różnymi plikami. Przekaż nam swoją opinię lub komentarz za pośrednictwem Bezpłatnego forum pomocy technicznej.

Zobacz też