2016-07-16 4 views
1

2つの編集可能なテキストボックスと3つのオプションを持つラジオボタングループを持つPDFフォーム(Adobe Acrobat - test_pdfから生成)を用意しました。私は正しいオプションを選択し、PDFテンプレートでこれをマークすることができますどのようにiTextSharpでラジオボタングループを塗りつぶす

enter image description here

? 私は以下のようにラジオボタンフィールド設定した場合:残念ながら、常に最後のボタンが「オン」に設定されている

 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(); 

を(私はこの例では、最初のボタンを設定したいと思います)。

どのように私は 'foreach'ループを構築する必要がありますか?

ご協力いただきありがとうございます。

答えて

1

私は解決策が見つかりました:はい

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

をあなたは '「オン」の値を'使用した理由は、私は理解していませんでした。それはあまり意味がありませんでした。 –

関連する問題