Forms

Forms

이 페이지에서는 대화형 AcroForm 필드의 생성 및 관리를 다룹니다. Form는 doc.Form을 통해 접근할 수 있으며, 모든 필드 유형에 대한 파사드 역할을 합니다; 각 Add*() 메서드는 페이지와 위젯 사각형에 연결된 필드를 생성하고, (TextField, CheckboxField, ChoiceField, ButtonField 또는 RadioField) 중 하나인 타입 핸들을 반환하며, 이는 공통 Field 속성인 Value, ReadOnly, Required을 공유합니다.


필드 생성

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() 및 그 형제들은 각각 대상 page(0 기반)을 지정하는 옵션 객체, 위젯 rect, 필드 name, 그리고 borderColor 및 backgroundColor과 같은 스타일링을 받습니다.

const form = doc.Form;
const pageNum = page.Number;

form.AddTextField({
  page: pageNum, rect: [200, 670, 450, 690], name: 'FullName', value: 'Alice Sample',
  borderColor: [0.05, 0.1, 0.3], backgroundColor: [0.9, 0.93, 1], borderWidth: 1,
  font: 'Helvetica', fontSize: 12,
});

form.AddCheckbox({
  page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe',
  checked: true, borderColor: [0.05, 0.1, 0.3], borderWidth: 1,
});

form.AddComboBox({
  page: pageNum, rect: [200, 550, 350, 570], name: 'Country', value: 'US',
  options: [
    { export: 'US', display: 'United States' },
    { export: 'UK', display: 'United Kingdom' },
    { export: 'DE', display: 'Germany' },
  ],
});

Page.AddTextField()와 Page.AddCheckbox()은 옵션 객체에 doc.Form나 page 번호를 지정하지 않고 페이지에 직접 동일한 필드 유형을 생성합니다.


필드 읽기 및 수정

Form.Fields는 문서에 있는 모든 Field의 배열이며; Form.Get()는 완전한 이름으로 하나를 찾아냅니다. 모든 필드의 Value는 읽거나 재할당할 수 있으며, ReadOnly / Required는 단순한 불리언 속성입니다.

const nameField = doc.Form.Get('FullName');
if (nameField) {
  console.log(nameField.Value);
  nameField.Value = 'Bob Sample';
}

필드 평탄화

각 필드 유형의 Flatten() 메서드는 현재 모습을 페이지의 정적 콘텐츠에 고정하고 AcroForm에서 제거합니다 — Annotation.Flatten()이 주석에 대해 갖는 것과 동일한 영구적이고 비대화형 효과입니다.

const tb = form.AddTextField({
  page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();

팁 및 모범 사례

  • Add*() 호출에서 직접 반환된 필드 핸들을 수정하거나 Form.Get()으로 새로 조회한 핸들을 수정하십시오 — 오래된 참조는 다른 곳에서 이루어진 변경 사항을 보지 못합니다.
  • Form.RemoveField()은 Field 핸들이나 필드 이름 문자열 중 하나를 허용합니다.
  • 필드 값을 일괄 변경한 후 Form.GenerateAppearances()을 호출하여 각 필드의 화면상의 표시가 해당 Value과 동기화된 상태를 유지하도록 합니다.
  • 콤보 박스와 리스트 박스는 선택된 export 값을 /V에 저장합니다; display 텍스트가 생성된 외관에 표시됩니다.

일반적인 문제

문제원인수정
Form.AddTextField()로 추가된 필드가 페이지에 표시되지 않음rect 좌표가 대상 페이지 크기를 벗어남사각형이 페이지 경계 내에 있는지 확인하십시오
Flatten() 이후에도 필드가 여전히 인터랙티브하게 표시됨Flatten()이(가) 핸들 Add*()/Form.Get() 대신 복사본에 호출되었습니다양식에서 직접 얻은 객체에 Flatten()를 호출합니다
필드 값 변경이 화면에 표시되지 않습니다값이 변경된 후 필드의 외관이 다시 생성되지 않았습니다Form.GenerateAppearances()를 호출하거나, 필드 자체의 GenerateAppearance()를 호출합니다

FAQ

필드를 만든 후 값을 읽거나 변경하려면 어떻게 해야 하나요?

Form.Get('fieldName') 로 찾아보세요(또는 Add*() 호출이 반환한 핸들을 사용하세요) 그리고 해당 Value 속성을 직접 읽거나 할당하세요.

Form facade가 지원하는 필드 유형은 무엇입니까?

텍스트 필드, 체크박스, 라디오 그룹, 콤보 박스, 리스트 박스, 그리고 푸시 버튼은 각각 Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox(), Form.AddPushButton()를 통해 지원됩니다.

필드를 제거하려면 어떻게 해야 하나요?

Form.RemoveField()를 필드 핸들이나 이름 중 하나를 사용해 호출하세요.

폼 필드를 영구적이고 편집 불가능하게 만들려면 어떻게 해야 하나요?

Flatten()를 필드 핸들에 호출합니다 — 주석에 사용되는 동일한 패턴 — 현재 외형을 페이지에 반영하고 AcroForm에서 제거합니다.


API Reference 요약

클래스/메서드설명
FormAcroForm 파사드, doc.Form를 통해 접근
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()해당 유형의 필드를 생성합니다
Form.Fields문서에 있는 모든 Field를 배열로
Form.Get()전체 자격 이름으로 필드를 조회합니다
Form.RemoveField()핸들이나 이름으로 필드를 제거합니다
Form.GenerateAppearances()모든 필드의 화면 표시를 다시 생성합니다
TextField / CheckboxField / ChoiceField / ButtonField / RadioField입력된 필드는 Value, ReadOnly, Required 공유를 처리합니다
Page.AddTextField() / Page.AddCheckbox()페이지에 직접 필드를 생성합니다

참조

 한국어