使用itextsharp检查pdf复选框

use*_*060 11 pdf checkbox 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");
}
Run Code Online (Sandbox Code Playgroud)

他们都没有工作.有任何想法吗?

Bru*_*gie 14

你不应该"猜测"可能的值.您需要使用存储在PDF中的值.尝试使用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();
}
Run Code Online (Sandbox Code Playgroud)

或者使用RUPS查看PDF .转到窗口小部件注释并查找normal(/N)外观(AP)状态.在我的例子,他们是/Off/Yes:

屏幕截图