Ausfüllen und Lesen von XFA-Formularen mit C#

Adobe hat ein interaktives und dynamisches Formular namens XFA-Formulare eingeführt. XFA steht für XML Forms Architecture. Das XFA-Formular ähnelt einer HTML-Datei. Es enthält ausfüllbare Felder und bestimmt das Layout bzw. Aussehen als in PDF-Dokumente eingebettetes Formular. In diesem Artikel erfahren Sie, wie Sie XFA-Formulare mit C# ausfüllen und lesen.

Folgende Themen sollen in diesem Artikel behandelt werden:

C#-API zum Lesen und Ausfüllen von XFA-Formularen

Für die Arbeit mit XFA PDF-Formularen verwenden wir die Aspose.PDF for .NET-API. Es ermöglicht uns, unterstützte Dokumente ohne Verwendung von Adobe Acrobat zu generieren, zu ändern, zu konvertieren, zu rendern, zu sichern und zu drucken. Bitte downloaden Sie die DLL der API oder installieren Sie sie mit NuGet.

PM> Install-Package Aspose.Pdf

XFA-Formulare mit C# ausfüllen

Wir können XFA-Formulare programmgesteuert ausfüllen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst eine XFA-Formulardatei mit der Klasse Document.
  2. Namen der geladenen XFA-Formularfelder abrufen.
  3. Feldwerte festlegen.
  4. Rufen Sie abschließend die Methode Save() auf. Als Argument wird der Pfad der Ausgabedatei verwendet.

Das folgende Codebeispiel zeigt, wie Sie ein XFA-Formular mit C# ausfüllen.

// Dieses Codebeispiel zeigt, wie ein XFA-Formular ausgefüllt wird.
// XFA-Formular laden
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");

// Rufen Sie Namen von XFA-Formularfeldern ab
string[] names = doc.Form.XFA.FieldNames;

// Feldwerte festlegen
doc.Form.XFA[names[0]] = "12345";
doc.Form.XFA[names[1]] = "24/02/2022";
doc.Form.XFA[names[2]] = "Company Name";
doc.Form.XFA[names[3]] = "Company Address";
doc.Form.XFA[names[4]] = "Company City";
doc.Form.XFA[names[5]] = "Canada";
doc.Form.XFA[names[6]] = "Alberta";
doc.Form.XFA[names[7]] = "T9S";
doc.Form.XFA[names[8]] = "+112345567";
doc.Form.XFA[names[10]] = "Mr. John Smith";
doc.Form.XFA[names[11]] = "Delivered to Company Name";
doc.Form.XFA[names[12]] = "Delivery Company Address";
doc.Form.XFA[names[13]] = "Delivery City";
doc.Form.XFA[names[17]] = "+123456789";
doc.Form.XFA[names[19]] = "Mr. Will Smith";
doc.Form.XFA[names[22]] = "57251";

// Speichern Sie das Formular
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
Füllen Sie XFA-Formulare mit C# aus.

Füllen Sie XFA-Formulare mit C# aus.

XFA-Formulare mit C# lesen

Wir können das ausgefüllte XFA-Formular lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst eine Excel-Datei mit der Klasse Document.
  2. Namen der geladenen XFA-Formularfelder abrufen.
  3. Rufen Sie in einer Schleife Felddetails mit der Methode GetFieldTemplate() ab.
  4. Zeigen Sie schließlich Feldattribute an.

Das folgende Codebeispiel zeigt, wie das ausgefüllte XFA-Formular mit C# gelesen wird.

// Dieses Codebeispiel zeigt, wie ein ausgefülltes XFA-Formular gelesen wird.
// XFA-Formular laden
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");

// Rufen Sie Namen von XFA-Formularfeldern ab
string[] names = doc.Form.XFA.FieldNames;

for (int count=0; count<names.Length; count++)
{
    // Felddetails abrufen
    var field = doc.Form.XFA.GetFieldTemplate(names[count]);
    string fieldName = doc.Form.XFA.GetFieldTemplate(names[count]).InnerText;
    string fieldValue = doc.Form.XFA[names[count]];

    if (!string.IsNullOrEmpty(fieldValue) && fieldValue != "0")
    {
        Console.WriteLine("Field Name : " + field.Attributes["name"].Value);
        Console.WriteLine("Field Description : " + fieldName);
        Console.WriteLine("Field Value : " + fieldValue);
        Console.WriteLine();
    }
}
Lesen Sie das ausgefüllte XFA-Formular mit C#.

Lesen Sie das ausgefüllte XFA-Formular mit C#.

Holen Sie sich eine kostenlose Lizenz

Bitte testen Sie die API ohne Evaluierungseinschränkungen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben wir gelernt, wie man die XFA-Formulare ausfüllt, ohne Adobe Writer zu verwenden. Wir haben auch gesehen, wie das ausgefüllte XFA-Formular programmgesteuert gelesen wird. Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.PDF für die .NET-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch