XFA-formulieren invullen en lezen met C#

Adobe introduceerde een interactief en dynamisch formulier genaamd XFA-formulieren. XFA staat voor XML Forms Architecture. XFA-formulier is vergelijkbaar met een HTML-bestand. Het bevat invulbare velden en bepaalt de lay-out of het uiterlijk als een formulier dat is ingesloten in PDF-documenten. In dit artikel leren we hoe XFA-formulieren moeten worden ingevuld en gelezen met C#. In dit artikel komen de volgende onderwerpen aan bod:

  • [C# API om XFA-formulieren te lezen en in te vullen][1]
  • [Vul XFA-formulieren in met C#][2]
  • [Lees XFA-formulieren met C#][3]

C# API om XFA-formulieren te lezen en in te vullen

Voor het werken met XFA [PDF][4]-formulieren gebruiken we de [Aspose.PDF for .NET][5] API. Hiermee kunnen we [ondersteunde documenten][6] genereren, wijzigen, converteren, weergeven, beveiligen en afdrukken zonder Adobe Acrobat te gebruiken. [Download][7] de DLL van de API of installeer deze met [NuGet][8].

PM> Install-Package Aspose.Pdf

XFA-formulieren invullen met C#

We kunnen XFA-formulieren programmatisch invullen door de onderstaande stappen te volgen:

  1. Laad eerst een XFA-formulierbestand met de klasse [Document][9].
  2. Krijg namen van de geladen [XFA][10] formuliervelden.
  3. Stel veldwaarden in.
  4. Roep ten slotte de methode [Save()][11] aan. Het neemt het pad van het uitvoerbestand als argument. Het volgende codevoorbeeld laat zien hoe een XFA-formulier moet worden ingevuld met C#.
    // This code example demonstrates how to fill an XFA form.
    // Load XFA form
    Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");
    // Get names of XFA form fields
    string[] names = doc.Form.XFA.FieldNames;
    // Set field values
    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";
    // Save the form
    doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
    XFA-formulieren invullen met C#.

    XFA-formulieren invullen met C#.

XFA-formulieren lezen met C#

We kunnen het ingevulde XFA-formulier lezen door de onderstaande stappen te volgen:

  1. Laad eerst een Excel-bestand met de klasse [Document][9].
  2. Krijg namen van de geladen [XFA][12] formuliervelden.
  3. Haal in een lus velddetails op met de methode [GetFieldTemplate()][13].
  4. Toon ten slotte veldattributen. Het volgende codevoorbeeld laat zien hoe u het ingevulde XFA-formulier kunt lezen met C#.
    // This code example demonstrates how to read a filled XFA form.
    // Load XFA form
    Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");
    // Get names of XFA form fields
    string[] names = doc.Form.XFA.FieldNames;
    for (int count=0; count<names.Length; count++)
    {
    // Get field details
    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();
    }
    }
    Lees het ingevulde XFA-formulier met behulp van C#.

    Lees het ingevulde XFA-formulier met behulp van C#.

Ontvang een gratis licentie

Probeer de API zonder evaluatiebeperkingen door [een gratis tijdelijke licentie][14] aan te vragen.

Conclusie

In dit artikel hebben we geleerd hoe u de XFA-formulieren kunt invullen zonder Adobe Writer te gebruiken. We hebben ook gezien hoe het ingevulde XFA-formulier programmatisch te lezen. Bovendien kunt u meer leren over Aspose.PDF voor .NET API met behulp van de [documentatie][15]. Neem bij onduidelijkheden gerust contact met ons op via het [forum][16].

Zie ook