2016-07-16 17 views
1

Ich habe einfach PDF-Formular (generiert aus Adobe Acrobat - test_pdf) mit zwei editierbaren Textfelder und eine Optionsfeldgruppe mit 3 Optionen.Füllen Radiotastengruppe mit iTextSharp

enter image description here

Wie ich die richtige Option wählen und diese Vorlage auf pdf markieren? Als ich eingestellt Radiobutton Felder wie folgt:

 string pdfTemplate = @"c:\Temp\PDF\fw4.pdf"; 
     string newFile = @"c:\Temp\PDF\completed_fw4.pdf"; 

     PdfReader pdfReader = new PdfReader(pdfTemplate); 
     PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); 
     AcroFields pdfFormFields = pdfStamper.AcroFields; 

     pdfFormFields.SetField("Text1", "test1"); 
     pdfFormFields.SetField("Text2", "test2"); 

     var radiobuttons = pdfFormFields.GetAppearanceStates("Group3"); 
     foreach (string rb in radiobuttons) 
     { 
      if (rb != "Off") 
      { 
       if (rb == "Wybór1") 
       { 
        pdfFormFields.SetField(rb, "On"); 
       } 
       else 
       { 
        pdfFormFields.SetField(rb, "Off"); 
       } 
      } 
     } 

     pdfStamper.FormFlattening = true; 
     pdfStamper.Close(); 

leider immer letzte Taste wird als ‚On‘ (Ich möchte erste Schaltfläche in diesem Beispiel setzen).

Wie sollte ich 'foreach' Schleife erstellen?

Vielen Dank im Voraus für Anregungen.

Antwort

1

fand ich die Lösung:

string pdfTemplate = @"c:\Temp\PDF\fw4.pdf"; 
    string newFile = @"c:\Temp\PDF\completed_fw4.pdf"; 

    PdfReader pdfReader = new PdfReader(pdfTemplate); 
    PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); 
    AcroFields pdfFormFields = pdfStamper.AcroFields; 

    pdfFormFields.SetField("Text1", "test1"); 
    pdfFormFields.SetField("Text2", "test2"); 
    pdfFormFields.SetField("Group3", "Wybór1"); // it's only 1 line 

    pdfStamper.FormFlattening = true; 
    pdfStamper.Close(); 
+0

Ja, ich verstand nicht, warum Sie den Wert verwendet ' "On"'. Das ergab wenig Sinn. –