property FormFieldAt[X, Y: Single]: WString; // read / write
FormFieldAt는 페이지 공간의 점 (X, Y)를 포함하는 AcroForm 위젯 주석을 찾아 그 값을 Unicode 문자열로 노출합니다. 좌표는 PDF 사용자 공간이며 원점은 페이지 왼쪽 아래, 단위는
포인트(1/72 inch)입니다. 프로퍼티를 읽으면 현재 필드 값
(/V)이 WString으로 디코딩되어 돌아오고, 쓰면 필드가 갱신되고
appearance stream이 재생성되어 다음 그리기 때 새 값이 렌더링됩니다
Active가 False이거나, 문서에 AcroForm이 없거나, 그 좌표를 덮는 위젯이 없으면 빈 문자열을 반환합니다. 매칭 정책은
FormFieldInfoAt과 같습니다. 위젯 사각형만 대상으로 하고(appearance에 묶인 히트
테스트 없음), 겹칠 때는 가장 위의 위젯이 이깁니다. 좌표가 위젯 하나에도 걸리지 않으면 쓰기는 아무 일도 하지 않습니다
체크박스와 라디오 버튼 위젯의 값 의미는 PDF 스펙을 따릅니다
— 'Off'를 대입하면 필드가 지워지고, 위젯의 /AP /N on-state 이름(보통 'Yes'나
export value)에 맞는 값을 대입하면 체크됩니다. 텍스트 필드에는 대입한 무엇이든 새로운
/V 내용이 됩니다. 리스트 / 콤보 박스는 옵션 항목 중 하나에 묶인 export value를 받습니다. 필드 타입이 불확실하면 먼저
FormFieldInfoAt로 FieldType을 확인하세요
SaveToFile / SaveToStream 호출 때 비로소 저장됩니다FormFieldAt /
FormField 대입을 통한 동시 쓰기는 순차적으로는 안전하지만 백그라운드 스레드에서
호출하지 마세요 — PDFium 폼 필드는 스레드에 안전하지 않습니다
// Toggle a checkbox located at (120, 300) on the current page.
if Pdf1.FormFieldAt[120.0, 300.0] = 'Off' then
Pdf1.FormFieldAt[120.0, 300.0] := 'Yes'
else
Pdf1.FormFieldAt[120.0, 300.0] := 'Off';