Feedback

C# - PDF Formularfelder und Checkboxwerte auslesen mit iText7

Veröffentlicht von am 20.12.2022
(0 Bewertungen)
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($"\r\n------------------\r\n{file}\r\n-----------------");
    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();

}
Abgelegt unter iText, PDF, Formulare, Felder.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!