Forms Data Format(FDF)
Forms Data Format(FDF)
PDF 문서 안의 폼(form)을 프로그램으로 채워야 하는 상황이 있어요. 이것을 가능하게 해 주는 형태가 바로 FDF(Forms Data Format)예요. PHP의 fdf 함수로 FDF 문서를 만들고 값을 채워 넣을 수 있어요.
본문
FDF(Forms Data Format)는 PDF 문서 안에서 폼을 다루기 위한 형식이에요. FDF가 무엇이고 일반적으로 어떻게 쓰이는지에 대한 더 자세한 설명은 » http://www.adobe.com/devnet/acrobat/fdftoolkit.html 의 문서를 참고하세요.
FDF의 기본 개념은 HTML 폼과 비슷해요. 차이점은, 제출(submit) 버튼을 눌렀을 때 서버로 데이터가 전달되는 형식(이것이 바로 Form Data Format, FDF)과, 폼 자체의 형식(이것은 Portable Document Format, PDF)이 다르다는 점이에요. FDF 데이터를 처리하는 것은 fdf 함수가 제공하는 기능 중 하나예요. 여기서 끝이 아니에요. 기존 PDF 폼을 수정하지 않고 입력 필드에 데이터를 채워 넣을 수도 있어요. 이런 경우 FDF 문서를 만들고(fdf_create()) 각 입력 필드의 값을 설정한 다음(fdf_set_value()), 그것을 PDF 폼과 연결해요(fdf_set_file()). 마지막으로 application/vnd.fdf MimeType으로 브라우저에 보내면 돼요. 브라우저의 Acrobat reader 플러그인이 이 MimeType을 인식해 관련 PDF 폼을 읽고, FDF 문서의 데이터로 필드를 채워요.
FDF 문서를 텍스트 편집기로 열어 보면 FDF라는 이름의 카탈로그 객체를 발견할 수 있어요. 이런 객체는 Fields, F, Status 등의 여러 항목을 담을 수 있어요. 가장 흔히 쓰이는 항목은 입력 필드 목록을 가리키는 Fields와, 이 데이터가 속한 PDF 문서의 파일명을 담는 F예요. FDF 문서에서는 이 항목들을 /F-Key 또는 /Status-Key라고 부르기도 해요. 이 항목들을 수정하는 작업은 fdf_set_file(), fdf_set_status() 같은 함수로 해요. 필드는 fdf_set_value(), fdf_set_opt() 등으로 수정해요.
FDF 함수들
fdf_add_doc_javascript— FDF 문서에 자바스크립트 코드 추가fdf_add_template— FDF 문서에 템플릿 추가fdf_close— FDF 문서 닫기fdf_create— 새 FDF 문서 생성fdf_enum_values— 각 문서 값에 대해 사용자 정의 함수 호출fdf_errno— 마지막 fdf 작업의 오류 코드 반환fdf_error— FDF 오류 코드에 대한 오류 설명 반환fdf_get_ap— 필드의 외형(appearance) 가져오기fdf_get_attachment— FDF에 포함된 업로드 파일 추출fdf_get_encoding— /Encoding 키의 값 가져오기fdf_get_file— /F 키의 값 가져오기fdf_get_flags— 필드의 플래그 가져오기fdf_get_opt— 필드의 opt 배열에서 값 가져오기fdf_get_status— /STATUS 키의 값 가져오기fdf_get_value— 필드의 값 가져오기fdf_get_version— FDF API 또는 파일의 버전 번호 가져오기fdf_header— FDF 전용 출력 헤더 설정fdf_next_field_name— 다음 필드 이름 가져오기fdf_open— FDF 문서 열기fdf_open_string— 문자열에서 FDF 문서 읽기fdf_remove_item— 폼의 대상 프레임 설정fdf_save— FDF 문서 저장fdf_save_string— FDF 문서를 문자열로 반환fdf_set_ap— 필드의 외형 설정fdf_set_encoding— FDF 문자 인코딩 설정fdf_set_file— FDF 데이터를 표시할 PDF 문서 설정fdf_set_flags— 필드의 플래그 설정fdf_set_javascript_action— 필드의 자바스크립트 동작 설정fdf_set_on_import_javascript— Acrobat이 FDF를 열 때 실행할 자바스크립트 코드 추가fdf_set_opt— 필드의 옵션 설정fdf_set_status— /STATUS 키의 값 설정fdf_set_submit_form_action— 필드의 폼 제출 동작 설정fdf_set_target_frame— 폼 표시용 대상 프레임 설정fdf_set_value— 필드의 값 설정fdf_set_version— FDF 파일의 버전 번호 설정
더 알아보기
- FDF는 브라우저 플러그인과 함께 동작한다는 점을 기억해야 해요. 서버에서는 FDF 문서를 만들어 내려주고, 채워 넣기는 클라이언트의 Acrobat reader가 담당해요.