Compila e leggi i moduli XFA utilizzando C#

Adobe ha introdotto un modulo interattivo e dinamico chiamato moduli XFA. XFA sta per XML Forms Architecture. Il modulo XFA è simile a un file HTML. Contiene campi compilabili e determina il layout o l’aspetto di un modulo incorporato nei documenti PDF. In questo articolo impareremo come compilare e leggere i moduli XFA usando C#.

In questo articolo verranno trattati i seguenti argomenti:

API C# per leggere e compilare moduli XFA

Per lavorare con i moduli XFA PDF, utilizzeremo l’API Aspose.PDF for .NET. Ci consente di generare, modificare, convertire, eseguire il rendering, proteggere e stampare documenti supportati senza utilizzare Adobe Acrobat. Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.Pdf

Compila i moduli XFA utilizzando C#

Possiamo compilare i moduli XFA in modo programmatico seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica un file di modulo XFA utilizzando la classe Document.
  2. Ottieni i nomi dei campi del modulo XFA caricati.
  3. Imposta i valori dei campi.
  4. Infine, chiama il metodo Save(). Prende il percorso del file di output come argomento.

L’esempio di codice seguente mostra come compilare un modulo XFA usando C#.

// Questo esempio di codice mostra come compilare un modulo XFA.
// Carica modulo XFA
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");

// Ottieni i nomi dei campi modulo XFA
string[] names = doc.Form.XFA.FieldNames;

// Imposta i valori dei campi
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";

// Salva il modulo
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
Compila i moduli XFA utilizzando C#.

Compila i moduli XFA utilizzando C#.

Leggi i moduli XFA usando C#

Possiamo leggere il modulo XFA compilato seguendo i passaggi indicati di seguito:

  1. Innanzitutto, carica un file Excel utilizzando la classe Document.
  2. Ottieni i nomi dei campi modulo XFA caricati.
  3. In un ciclo, ottieni i dettagli del campo usando il metodo GetFieldTemplate().
  4. Infine, mostra gli attributi del campo.

L’esempio di codice seguente mostra come leggere il modulo XFA compilato usando C#.

// Questo esempio di codice mostra come leggere un modulo XFA compilato.
// Carica modulo XFA
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");

// Ottieni i nomi dei campi modulo XFA
string[] names = doc.Form.XFA.FieldNames;

for (int count=0; count<names.Length; count++)
{
    // Ottieni i dettagli del campo
    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();
    }
}
Leggi il modulo XFA compilato usando C#.

Leggi il modulo XFA compilato usando C#.

Ottieni una licenza gratuita

Prova l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo abbiamo imparato come compilare i moduli XFA senza utilizzare Adobe writer. Abbiamo anche visto come leggere il modulo XFA compilato a livello di codice. Inoltre, puoi saperne di più su Aspose.PDF per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche