2013-10-31 8 views
10

के साथ पीडीएफ चेकबॉक्स को चेक करना मैंने कई अलग-अलग तरीकों की कोशिश की है, लेकिन मुझे चेक बॉक्स चेक नहीं किया जा सकता है! यहां मैंने जो कोशिश की है:itextsharp

var reader = new iTextSharp.text.pdf.PdfReader(originalFormLocation); 
using (var stamper = new iTextSharp.text.pdf.PdfStamper(reader,ms)) { 
    var formFields = stamper.AcroFields; 
    formFields.SetField("IsNo", "1"); 
    formFields.SetField("IsNo", "true"); 
    formFields.SetField("IsNo", "On"); 
} 

उनमें से कोई भी काम नहीं करता है। कोई विचार?

+0

आप यह सुनिश्चित करें कि चेकबॉक्स क्षेत्र वास्तव में "IsNo" नाम दिया गया है कर रहे हैं? – ovaltein

उत्तर

12

आपको संभावित मानों के लिए "अनुमान" नहीं होना चाहिए। आपको पीडीएफ में संग्रहीत मूल्य का उपयोग करने की आवश्यकता है। इन संभावित मान को खोजने के लिए CheckBoxValues उदाहरण का प्रयास करें:

public String getCheckboxValue(String src, String name) throws IOException { 
    PdfReader reader = new PdfReader(SRC); 
    AcroFields fields = reader.getAcroFields(); 
    // CP_1 is the name of a check box field 
    String[] values = fields.getAppearanceStates("IsNo"); 
    StringBuffer sb = new StringBuffer(); 
    for (String value : values) { 
     sb.append(value); 
     sb.append('\n'); 
    } 
    return sb.toString(); 
} 

या पीडीएफ RUPS का उपयोग कर पर एक नज़र डालें। विजेट एनोटेशन पर जाएं और सामान्य (/N) उपस्थिति (AP) देखें। मेरे उदाहरण में वे /Off और /Yes हैं:

screen shot

+0

उस एपी सरणी का सटीक अर्थ क्या है? पहला मूल्य हमेशा "अनचेक" स्थिति के लिए उपयोग किया जाता है और दूसरा "चेक" के लिए किया जाता है? वर्तमान में मैं उस धारणा पर भरोसा करता हूं और यह अजीब पीडीएफ के लिए भी ठीक काम करता है, लेकिन मैं यह सुनिश्चित करना चाहता हूं ... –

+0

'ऑफ' मान हमेशा * ऑफ स्टेट * को प्रतिबिंबित करना चाहिए। आदेश कोई फर्क नहीं पड़ता। इसलिए आपको "अनचेक" स्थिति होने के लिए पहले राज्य पर भरोसा नहीं करना चाहिए। –