2017-01-06 1 views
0

그래서이 PdfFormField.createRadioButton()을 사용하여 라디오 그룹을 만들고 setFieldName()을 호출합니다.PdfAnnotation에서 PdfFormField의 필드 이름을 추출하는 방법

그러나 PdfAnnotation에는 필드 이름을 저장하는 키가 표시되지 않습니다. 나는 PdfAnnotation 안에 다른 사전을 보았지만 아무 것도 찾을 수 없었다.

reader.getAcroFields(). getFields(). keySet()은 양식 필드의 필드 이름을 나열하지만 PdfAnnotation을 통해 방법이 있는지 묻고 싶습니다.

라디오 그룹 개체 내에 사용자 지정 PdfName을 넣으려고했지만 PdfAnnotation의 사전에 표시되지 않습니다.

답변

3

주석 (링크 주석, 파일 첨부 주석, 위젯 주석 등) 및 양식 필드 (텍스트 필드, 선택 필드, 버튼 필드, 서명 필드)를 혼동하고 있습니다.

iText 5에서 주석은 PdfAnnotation이라는 클래스에서 처리됩니다. 양식 필드는 PdfFormField이라는 클래스에서 처리됩니다. PdfAnnotation 클래스를 사용하여 PdfFormField에 해당하는 작업을하려고합니다. 그건 틀렸어요.

나는 혼란의 근본을 이해 : 모든 볼 수 양식 필드는 적어도 하나의 위젯 주석에 해당합니다. 표시되는 대부분의 양식 필드는 정확히 하나의 위젯 주석과 일치합니다. 이것이 iText 5에서 디자인 선택을하여 PdfFormFieldPdfAnnotation으로 확장 한 이유입니다.

이 디자인 선택은 하나의 위젯 주석에 해당하는 필드의 필드 사전을 단일 PDF 사전으로 병합 할 수 있다는 PDF 사양과 일치합니다.

실제로는 위젯 주석 사전과 필드 사전에 일반적인 항목을 결합한 PDF 사전을 PDF로 찾을 수 있습니다. (이유는 iText에 getMerged() 메서드가 있다는 이유입니다.이 메서드는 병합 된 사전 개체를 가져옵니다.)

이 부분에서 문제의 일부가 이미 설명되기를 바랍니다. 당신도 다른 문제가있는 것 같지만, 당신이하고 싶은 것을 이해하지 못합니다. 구현하려는 기술 기능을 사람들이 이해할 수 있도록 ISO-32000-1에 대한 참조를 사용하여 명확히하십시오.

+0

안녕하세요, 명확히 해 주셔서 감사합니다. RadioCheckField를 사용하여 확인란을 만들 때 주석 사전에서 필드 이름을 찾을 수 없지만 AcroFields에서 해당 필드 이름을 찾을 수있었습니다. 나는 내가 찾고있는 것을 발견했다고 믿는다. 고맙습니다 – chitgoks

관련 문제