PDF-Formular ausfüllen

PDF-Formulare werden häufig zum Sammeln von Daten und Informationen verwendet. Beispielsweise sind Fragebögen in der Regel darauf ausgelegt, Antworten für Umfragezwecke zu sammeln. In der heutigen digitalen Welt interagieren wir mit verschiedenen ausfüllbaren PDF-Formularen. In Anbetracht des enormen Umfangs und der Bedeutung von PDF-Formularen unterstützt die API Aspose.PDF for .NET viele Funktionen für die Arbeit mit PDF-Formularen. Lassen Sie uns in diesem Artikel die folgenden Anwendungsfälle mit der Sprache C# untersuchen:

Ausfüllbare PDF-Formulare mit C# erstellen

Mit Aspose.PDF for .NET API können Sie ein ausfüllbares PDF-Formular von Grund auf neu erstellen. Hier betrachten wir das einfache Beispiel des Hinzufügens von zwei TextBoxField-Instanzen und RadioButton. Eines der TextBoxFields ist jedoch einzeilig, während das andere mehrzeilig ist. Im Folgenden finden Sie die Schritte zum Erstellen eines Formulars in einem PDF Dokument:

  1. Erstellen Sie eine Instanz der Klasse Document.
  2. Fügen Sie eine leere Seite in ein PDF Dokument ein
  3. Fügen Sie dem Formular das Feld TextBox hinzu
  4. Legen Sie verschiedene Eigenschaften der Felder fest, einschließlich Schriftart, Rahmen usw.
  5. Fügen Sie dem Formular Radio Button hinzu
  6. PDF Dokument speichern

Das folgende code snippet zeigt, wie Sie mit C# ein PDF-Formular erstellen:

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);
// Formularfelder zur ersten Seite des PDF Dokuments hinzufügen            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Radiobuttons an bestimmten Positionskoordinaten in PDF hinzufügen
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Stellen Sie hier die Position ein
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");

Der folgende Screenshot zeigt das ausgegebene PDF Dokument, das Formularfelder enthält, wie im obigen code snippet angegeben:

PDF-Formular

Füllen, ändern oder löschen Sie Formularfelder in vorhandener PDF Datei mit C#

Wie wir das Erstellen eines Formulars in einem PDF Dokument mit C# untersucht haben, unterstützt Aspose.PDF for .NET API auch die Arbeit mit vorhandenen PDF-Formularen. Lassen Sie uns die folgenden Funktionen der API besprechen.

i) Füllen Sie ein Formularfeld in einer vorhandenen PDF Datei mit C# aus

Zum Ausfüllen der PDF-Formulare fahren wir mit dem PDF Dokument fort, das im obigen Beispiel erstellt wurde. Im Folgenden finden Sie die Schritte zum Ausfüllen von Feldern in einem vorhandenen PDF Dokument:

  1. Quell-PDF Dokument laden
  2. Holen Sie sich Textbox-Felder und füllen Sie Werte aus
  3. Holen Sie sich Optionsfeld und wählen Sie eine Option aus der Gruppe aus
  4. Ausgefülltes PDF-Formular speichern

Das folgende code snippet folgt diesen Schritten und erklärt, wie Felder in einem PDF Dokument mit C# ausgefüllt werden:

// Dokument öffnen
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Holen Sie sich die Felder
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Füllen Sie die Werte der Formularfelder aus
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Optionsfeld abrufen
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Geben Sie den Index des Optionsfelds aus der Gruppe an
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Aktualisiertes Dokument speichern
pdfDocument.Save(dataDir);

Der folgende Screenshot zeigt ausgefüllte Formularfelder eines PDF-Formulars mit C#:

Ausfüllbares PDF

ii) Ändern Sie ein Formularfeld in einem PDF Dokument mit C#

Manchmal müssen Sie den Wert in einem beliebigen Feld eines PDF-Formulars ändern. Das Ändern eines Werts in einem Formularfeld ist ein grundlegender Anwendungsfall, der mit den folgenden Schritten erreicht werden kann:

  1. Laden Sie das PDF-Formular
  2. Rufen Sie ein bestimmtes Feld mit seinem Namen ab
  3. Feldwert ändern
  4. Speichern Sie das aktualisierte PDF Dokument

Das folgende code snippet zeigt, wie Sie einen Wert in einem Formularfeld eines PDF Dokuments ändern:

// Dokument öffnen
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Holen Sie sich ein Feld
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Feldwert ändern
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Aktualisiertes Dokument speichern
pdfDocument.Save(dataDir);

Bemerkenswert ist hier, dass Sie nicht nur den Wert des Formulars ändern können, sondern auch andere Eigenschaften aktualisiert werden können. Beispielsweise wurde das Feld im obigen code snippet als schreibgeschützt markiert.

iii) Löschen Sie ein Formularfeld in einer vorhandenen PDF Datei mit C#

Wir haben bereits gelernt, wie man PDF-Formularfelder hinzufügt und ausfüllt. Lassen Sie uns nun untersuchen, wie Sie ein Formularfeld entfernen. Sie müssen die folgenden Schritte ausführen:

  1. Laden Sie das PDF Dokument
  2. Rufen Sie die Delete methode mit dem Namen des Formularfelds auf
  3. PDF Dokument speichern

Das folgende code snippet zeigt, wie Sie mit C# ein Formularfeld aus einer PDF Datei löschen:

// Dokument öffnen
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Löschen Sie ein bestimmtes Feld nach Namen
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Geändertes Dokument speichern
pdfDocument.Save(dataDir);

Erweiterte Rechte von PDF-Formularen mit C# beibehalten

Ein PDF-Formular verfügt möglicherweise über erweiterte Rechte, auch als erweiterte Funktionen bezeichnet, die Sie bei der Formularbearbeitung beibehalten möchten. Sie sollten es inkrementell speichern, während Sie die folgenden Schritte ausführen:

  • Laden Sie das PDF Dokument in Stream
  • Arbeiten Sie mit Formularen
  • Speichern Sie die Datei ohne Parameter

Das folgende C# code snippet erläutert, wie erweiterte Rechte des PDF-Formulars beibehalten werden:

// Lesen Sie das Quell-PDF-Formular mit FileAccess von Read and Write.
// Wir benötigen die ReadWrite-Berechtigung, da nach der Änderung
// Wir müssen die aktualisierten Inhalte im selben Dokument/in derselben Datei speichern.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Dokumentinstanz instanziieren
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Holen Sie sich Werte aus allen Feldern
foreach (Field formField in pdfDocument.Form)
{
    // Wenn der vollständige Name des Felds A1 enthält, führen Sie die Operation aus
    if (formField.FullName.Contains("nameBox1"))
    {
        // Formularfeld als TextBox umwandeln
        TextBoxField textBoxField = formField as TextBoxField;
        // Feldwert ändern
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Speichern Sie das aktualisierte Dokument in Save FileStream
pdfDocument.Save();
// Schließen Sie das File Stream objekt
fs.Close();

JavaScript im PDF-Formular mit C# verwenden

Sie können JavaScript in PDF-Formularfeldern mit Aspose.PDF for .NET API verwenden. Lassen Sie uns die folgenden Schritte ausführen, um diese Anforderung zu erfüllen:

  1. Initiieren Sie eine Instanz der Document Klasse
  2. Fügen Sie auf der ersten Seite an bestimmten Seitenkoordinaten ein TextBoxField hinzu
  3. JavaScript einrichten
  4. Dokumentaktion angeben
  5. PDF Dokument speichern

Das folgende code snippet zeigt, wie Sie JavaScript in PDF-Form mit C# hinzufügen:

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 = new 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);
// Feld zum Dokument hinzufügen
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");

Das JavaScript ruft das aktuelle Datum und die Uhrzeit des Systems ab, wenn das PDF Dokument geöffnet wird, und dieser Wert wird in ein Textfeld eingetragen.

Fazit

In diesem Artikel haben wir verschiedene Aspekte der Arbeit mit Formularen in PDF Dokumenten kennengelernt. Das Erstellen, Ausfüllen oder Bearbeiten von PDF-Formularen ist mit Aspose.PDF for .NET API ganz einfach. Die API bietet viele solche aufregenden Funktionen, um mit verschiedenen Dateien zu arbeiten. Teilen Sie uns Ihr Feedback oder Ihre Kommentare über das kostenlose Support-Forum mit.

Siehe auch