Feedback

C# - PDF Formularfelder und Checkboxwerte auslesen mit iText7

Veröffentlicht von am 12/20/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!