Überprüfen Ankreuzfelder in einem PDF mit iText7 in .NET

stimmen
0

Ich habe eine PDF-Beispiel, dass ich programmatisch als solche bin ausfüllen (mit iText7): -

string name = TextBox1.Text.ToString();
string pdfTemplate = @..\WebApplication1\Sample.pdf;
string newFile = @..\WebApplication1\completed_sample.pdf;

PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;

// This doesn't work //
fields.TryGetValue(TypeofApplication.1, out toSet);
toSet.SetValue(/On);

// This works //
fields.TryGetValue(FullName, out toSet);
toSet.SetValue(name);

form.FlattenFields();
pdf.Close(); 

Ich bin in der Lage, die Textfelder im PDF ausfüllen, aber nicht über die Radiobuttons / Kontrollkästchen ausfüllen.

Art der Anwendung hat zwei Möglichkeiten in meiner cshtmlSeite:

@Html.RadioButton(Application_Type, New) New 
@Html.RadioButton(Application_Type, Renew) Renewal 

und wenn ich mich durch meine Werte Wörterbuch ich sehe, dass es 3 Möglichkeiten:

  1. TypeofApplication
  2. TypeofApplication.1
  3. TypeofApplication.2

Wie stelle ich die Kontrollkästchen wie checked = true.

Meine Logik ist wie folgt:

if(dr.Application_Type == New){
    fields.TryGetValue(TypeofApplication.1, out toSet);
    toSet.SetValue(/On);}

Aber das ist natürlich nicht funktionieren.

Veröffentlicht am 13/02/2020 um 21:53
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

So Übrigens dachte ich diese aus: -

1) öffnete ich die pdf, setzen Sie das Kontrollkästchen als geprüft und gespeichert es in meinem Arbeitsplatz - Ordner.
2) Dann öffnete ich programmatisch die Datei und überprüft den Feldwert als solche: -

            string pdfTemplate = @"..\WebApplication1\Sample.pdf";
            string newFile = @"..\WebApplication1\completed_sample.pdf";

            PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
            PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary<String, PdfFormField> fields = form.GetFormFields();
            PdfFormField toSet;
            fields.TryGetValue("TypeofApplication", out toSet);
            var x = toSet.GetValueAsString();

Jetzt weiß ich den Wert von x, die das geprüfte Feld ist. (Neu oder Erneuerung). Ich habe diese Technik, um alle möglichen Werte für jede gegebene Checkbox zu finden, Radiobutton-Liste, et cetera.

Beantwortet am 14/02/2020 um 00:15
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more