Feedback

PDF Formularfelder und Checkboxwerte auslesen mit iText7

Sprache: C#

Das Snippet liest Felder aus PDF Formularen aus und schreibt die Feldnamen und Werte in eine Textdatei. Das Snippet ist in .NET 6.0 geschrieben Achtung: Es ist ein sehr einfaches Beispiel. Es wird weder geprüft, ob die übergebene Datei tatsächlich eine PDF-Datei ist, noch werden Exceptions abgefangen usw. Außerdem gilt zu beachten, dass die gewählte Ausgabe als Text/CSV Datei ohne weitere Behandlung Probleme mit Zeilenumbrüchen in den Feldern bekommt. Hier geht es rein um das Auslesen der Formularfelder. Lizenz von iText: iText kann als AGPLv3 oder kommerzielle Lizenz erworben werden, um die Limitierungen der AGPLv3 aufzuheben.
using iText;
using iText.Kernel.Pdf;
using iText.Forms;
using iText.Forms.Fields;


WriteFieldValuesFromPdfToCSV(args[0]);
      

static void WriteFieldValuesFromPdfToCSV(string file)
{
    var reader = new PdfReader(file);
    var pdfDoc = new PdfDocument(reader);
    var aform = PdfAcroForm.GetAcroForm(pdfDoc, true);
    var afields = aform.GetFormFields();

    Console.WriteLine($"rn------------------rn{file}rn-----------------");
    using (var sr = new StreamWriter($"{file.Replace(".pdf", "_parameter.csv")}", false, System.Text.Encoding.UTF8))
    {
        sr.WriteLine("Feld/Checkbox;Wert");
        foreach (var field in afields)
        {
            Console.WriteLine($"{field.Key,-30}:{field.Value.GetValue()}");

            sr.WriteLine($"{field.Key};{field.Value.GetValue()?.ToString()}");
        }
        sr.Close();
    }

    pdfDoc.Close();

}
using iText;
using iText.Kernel.Pdf;
using iText.Forms;
using iText.Forms.Fields;


WriteFieldValuesFromPdfToCSV(args[0]);
      

static void WriteFieldValuesFromPdfToCSV(string file)
{
    var reader = new PdfReader(file);
    var pdfDoc = new PdfDocument(reader);
    var aform = PdfAcroForm.GetAcroForm(pdfDoc, true);
    var afields = aform.GetFormFields();

    Console.WriteLine($"rn------------------rn{file}rn-----------------");
    using (var sr = new StreamWriter($"{file.Replace(".pdf", "_parameter.csv")}", false, System.Text.Encoding.UTF8))
    {
        sr.WriteLine("Feld/Checkbox;Wert");
        foreach (var field in afields)
        {
            Console.WriteLine($"{field.Key,-30}:{field.Value.GetValue()}");

            sr.WriteLine($"{field.Key};{field.Value.GetValue()?.ToString()}");
        }
        sr.Close();
    }

    pdfDoc.Close();

}