2013-10-31 2 views
10

여러 가지 방법을 시도했지만 확인란을 선택하지 못했습니다! 내가 시도한 것은 다음과 같습니다.itextsharp로 pdf 체크 박스를 선택하십시오.

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

있습니까? – ovaltein

답변

12

가능한 값을 "추측해서는 안됩니다. PDF에 저장된 값을 사용해야합니다.

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를 사용하여 PDF를 살펴 :이 가능한 값을 찾기 위해 CheckBoxValues 예를보십시오. 위젯 주석으로 이동하여 정상 (/N) 모양 (AP) 상태를 찾습니다. 내 예에서 그들은 /Off/Yes이다 : 당신은 체크 박스 필드는 정말 "ISNO"라는되어 있는지 확인

screen shot

+0

AP 어레이의 정확한 의미는 무엇입니까? 첫 번째 값은 항상 "선택 취소"상태로 사용되고 두 번째 값은 "확인"으로 사용됩니다. 현재 나는 그 추정에 의존하고 이상한 PDF에 대해서도 잘 작동하지만, 확실하게하고 싶습니다 ... –

+0

'Off'값은 항상 * off 상태 *를 반영해야합니다. 순서는 중요하지 않습니다. 따라서 첫 번째 상태를 "선택 취소"상태로 계산해서는 안됩니다. –

관련 문제