Blog Archive

레이블이 입력 양식인 게시물을 표시합니다. 모든 게시물 표시
레이블이 입력 양식인 게시물을 표시합니다. 모든 게시물 표시

2023-10-16

종이 PDF 양식을 온라인 양식으로 변경, 결과도 PDF 양식으로 저장 (Jotform 이용)

지난 번에 구글 설문(Google Forms)로 응답받은 내용이 개인별 PDF 파일로 생성되는 방법을 살펴보았습니다. 이번 시나리오는, 기존에 오프라인으로 쓰던 입력 양식이 이미 있다고 가정하고, 그것을 최대한 살려서, 온라인 양식을 만든 다음, 온라인 양식으로 응답을 받으면, 오프라인 양식에 값이 저장되게 하는 것입니다. 


온라인 양식(form) 생성 도구 중에 가장 세세한 기능과 옵션을 제공하는 잣폼(Jotform)이라는 서비스를 이용합니다. 잣폼에서는 온라인에서 PDF 양식을 직접 만들 수도 있고, 기존 PDF 파일을 불러와 온라인 폼과 연결시킬 수도 있습니다. 온라인 폼을 통해 받은 데이터를 잣폼 테이블(Jotform Tables)을 이용해 데이터베이스로 관리할 수 있고, 하나하나의 받은 데이터를 원래의 PDF 파일 형식으로 내보낼 수 있습니다. 

1. 종이 PDF 양식 파일 준비


출력하여 종이로 입력받는 가상의 동아리 가입 신청서를 아래와 같이 PDF 파일로 준비하였습니다. 아래 그림을 선택하면, 여기에서 사용된 PDF 파일을 다운로드 받을 수 있습니다.

종이 출력용 가입 신청서 양식 PDF
종이로 된 가입 신청서 양식 PDF


2. 잣폼에서 폼 생성하기


잣폼에 가입하고 처음 들어가면 My Forms 화면에서 [CREATE FORM] 버튼이 있습니다. 이것을 누르면, 어떤 방법으로 폼을 만들 것인지 물어봅니다. 미리 PDF 모양을 만들어놨으므로 Import Form 을 선택하고, Import PDF form 을 선택한 다음, 만들어놓은 PDF 파일을 불러옵니다.

Jotform에서 Create Form 선택
Create Form 선택

Import Form 선택
Import Form 선택

Import PDF Form 선택
Import PDF Form 선택


3. 온라인 폼과 PDF의 연결

PDF 파일 Import 완료된 모습
PDF 파일 Import 완료된 모습. 이제 Add Form Element 버튼을 눌러 온라인 양식들을 만들기 시작한다.
불러온 PDF 파일을 보면서 잣폼에서 순서대로 양식 요소(Form Element)를 만들어줍니다. [Add Form Element] 버튼을 누르고 차례대로 폼을 생성합니다. 맨 처음에 '성명'은 'Short Text'로 생성하면 되겠지요. 

Form Element중에 Short Text를 골라 성명 필드를 만든다.
Form Element중에 Short Text를 골라 성명 필드를 만든다.



왼쪽 온라인 폼 창에서는, "Type a question"이라고 뜬 폼 레이블에 "성명"을 입력합니다. 오른쪽 PDF 창에서는, 초록색 사각형 텍스트 필드가 PDF 파일 위에 나타납니다. 그것의 위치와 크기를 성명 옆에 갖다 놓습니다. 

생성된 성명 필드를 PDF 파일의 성명란에 옮겨놓는다.
생성된 성명 필드를 PDF 파일의 성명란으로 옮긴다.


이어서 성별에 쓰이는 Single Choice 를 추가하고, 레이블을 "성별"로 입력합니다. 생성된 초록색 동그라미 버튼을 남, 여, 비공개 버튼에 각각 옮깁니다.

이런 식으로 휴대전화에는 다시 Short Text를, 회원 구분에는 Single Choice를, 가입경로에는 Multiple Choice를, 신청일에는 Date Picker를 추가합니다. 마지막으로 신청자 서명에는 Signature 폼을 추가합니다.

4. PDF Preview 및 온라인 폼 테스트


오른쪽 상단의  Preview Form 버튼을 누르면, 방금 만든 양식들을 온라인으로 테스트해볼 수 있습니다. 온라인으로 변환된 동아리 신청서에 값들을 넣어봅니다.

온라인과 연결 완료된 PDF 양식. 오른쪽 위 Preview Form을 눌러 데이터 입력 테스트를 할 수 있다.
온라인과 연결 완료된 PDF 양식. 오른쪽 위 Preview Form을 눌러 데이터 입력 테스트를 할 수 있다.


양식 작성 후에는 Preview PDF를 통해, 내가 넣은 값들이 PDF 종이 신청서에 어떤 모양으로 들어갈지 미리 확인해볼 수 있습니다. 최종 제출(Submit) 버튼을 누르면 이제 테스트로 넣은 값이 들어갑니다.

입력 테스트 화면. 입력 후 Preview PDF를 누르면, PDF 종이 신청서에 값이 어떤 모양으로 들어가는지 확인 가능. Submit을 누르면 최종 제출 완료
입력 테스트 화면. 입력 후 Preview PDF를 누르면, PDF 종이 신청서에 값이 어떤 모양으로 들어가는지 확인 가능. Submit을 누르면 최종 제출 완료

데이터 입력 후 Preview PDF를 통해 확인한 PDF에 데이터가 입력된 모습
데이터 입력 후 Preview PDF를 통해 확인한 PDF에 데이터가 입력된 모습

5. 최종 만들어진 폼을 공개(Publish)


이제 온라인 폼으로 만든 것을 상단 메뉴 중에 PUBLISH 를 선택해 공개적인 링크를 만듭니다. 이 링크를 홈페이지나 소셜 미디어에 올리면, 공개적인 신청/설문을 받을 수 있습니다. 

PUBLISH를 선택하면, 공개적인 데이터 입력 링크가 만들어져 데이터 입력을 받을 수 있다.
PUBLISH를 선택하면, 공개적인 데이터 입력 링크가 만들어져 데이터 입력을 받을 수 있다.

여러분도 데이터 입력을 직접 테스트할 수 있습니다. 최종 제출 전에 Preview PDF를 선택하면, 내가 입력한 데이터가 PDF 양식에 어떻게 들어가는지 확인할 수 있고, 다운로드도 받을 수 있습니다. 입력 양식 안에 이메일 필드가 있는 경우, 응답자의 이메일로 입력된 PDF를 보내게 할 수 있습니다.



6. 데이터 수집


여러 사람이 온라인 폼으로 제출한 데이터는 Jotform Tables에서 확인하고 관리가 가능합니다. Jotform 메인 메뉴에서 Tables를 선택합니다. 지금까지 수집한 데이터들이 깔끔하게 테이블에 들어가 있습니다. Jotform Tables는 Airtable과 매우 비슷하게, 관계형 데이터베이스를 기반으로 데이터 관리를 쉽게 해주는 도구입니다.

메인 메뉴에서 Tables를 선택하면, 수집된 데이터를 테이블에서 확인할 수 있다.
메인 메뉴에서 Tables를 선택하면, 수집된 데이터를 테이블에서 확인할 수 있다.

7. 결과를 다시 PDF 양식으로 출력


이제 입력받은 결과를 다시 PDF 양식으로 출력도 가능합니다. 출력을 원하는 데이터 레코드의 추가 메뉴(⋮)를 누르고, Download as PDF 를 누르면 아래와 같이 값이 채워진 PDF 파일을 얻을 수 있습니다.

테이블에서 입력된 데이터를 개별 데이터, 또는 전체 데이터 모두에 대해 종이 PDF 양식에 값이 채워진 모습으로 다운로드받을 수 있다.
테이블에서 입력된 데이터를 개별 데이터, 또는 전체 데이터 모두에 대해 종이 PDF 양식에 값이 채워진 모습으로 다운로드받을 수 있다.

입력된 값이 종이 PDF 양식에 맞게 들어간 PDF 샘플을 여기에서 확인해보십시오.


잣폼은 현재 나와있는 온라인 양식, 설문조사 도구 중 가장 세세한 설정이 가능하고, 기능이 많아서, 구글 설문과 같이 널리 쓰이는 도구 외에 하나 더 알아둘 만 합니다. 그 중에 오늘은 온라인 폼과 PDF 폼을 연동하는 방법을 알아보았습니다. 다음에는 제가 일상적으로 사용하는 Airtable을 이용햐여 비슷한 작업을 한 번 해보겠습니다.

2023-09-21

온라인 설문 결과를 원하는 양식의 PDF로 변환하기

사용자가 편하게 입력할 수 있는 양식(form)이 있는 파일을 만들기 위해 ①(아래아) 한/글을 이용하는 방법, ②무료 리브레오피스를 이용하는 법과 ③무료 온라인 PDF 편집기를 이용하는 방법을 살펴보았습니다.


이 글의 목차


들어가며

이번에는 PDF에 입력 가능한 양식을 넣는 대신에, 온라인 설문을 통해 응답을 수집하되, 수집된 결과물이 개인별 PDF 응답지로 저장되도록 해보겠습니다.  예를 들어, 동아리 가입 신청서는 온라인으로 아래와 같이 받고, 그 결과는 실제 가입신청서를 작성한 것처럼, PDF 파일로 생성되는 방식입니다.

온라인 설문 응답
응답을 기반으로 생성된 PDF

제가 교육 운영 업무를 할 때 이런 경우가 있었습니다. 교육을 시작하기 전에 열심히 참여하겠다는 동의서를 개인적으로 다 받아야 했습니다. 주로 관공서 교육에서 많이 요구하죠.  교육 참여자 전원에게 설문을 실시해야 합니다. 현장에서 하는 교육은 참여자 10명에게 종이 10장을 나누어주고, 걷어야 합니다. 비대면 실시간 화상 교육을 한다면, 어떤 식으로든 설문지 파일을 전해주고, 개별 응답을 받고, 사진이나 첨부 파일로 받은 10개의 응답지를 다시 정리해야 합니다. 그 어느 경우도, 매우 귀찮은 일입니다. 그냥 온라인 설문으로 하면 되는데 말이죠.

이런 경우, 설문은 온라인 전자 설문으로 받고, 10개의 응답지는 알아서 PDF 파일로 개별 생성해준다면 편리하겠죠. 이렇게 하기 위한 몇 가지 방법을 앞으로 소개할 예정입니다. 오늘은 가장 널리 쓰이는 무료 온라인 설문 도구인 구글 설문지(Google Forms)를 이용하도록 하겠습니다. 

구글 설문지 만들기

여기에서 자세하게 구글 설문지를 만드는 방법은 설명하지 않겠습니다. 그렇게 어렵지 않으니 시도해보시면 금방 할 수 있습니다. 아래와 같이 동아리 가입 신청서 양식을 온라인 설문으로 만듭니다. 
Google Forms 동아리 가입 신청서 편집 화면
설문지 편집 화면

참고로 구글 설문에서 제공하는 문항 종류에 따라 다음과 같은 질문 형식을 사용했습니다.
  • 성명, 휴대전화 - 단답형 (텍스트 필드)
  • 성별 - 객관식 질문 (라디오 버튼)
  • 회원 구분 - 드롭다운 
  • 가입 경로 - 체크박스

부가 기능 설치하기

구글 설문을 포함한 워크스페이스 제품들은 마켓플레이스를 통해 여러 가지 부가 기능(add-ons)을 제공합니다. 그 중에 구글 설문과 구글 시트용 부가기능인 Form Publisher를 설치합니다. 마켓플레이스에서 [설치] 버튼을 누르면 됩니다. 

폼 퍼블리셔는 구글 설문으로 수집한 데이터를 기반으로, 원하는 문서를 생성해주는 부가 기능입니다. 이것을 응용하면, 설문을 기반으로 개인 응답지를 만들 수 있고, 회사에서는 간단한 신청 및 결재 프로세스를 태울 수도 있으며, 메일 머지, 상장 만들기, 심리 검사에 대한 개인별 자동해석 리포트 만들기도 할 수 있습니다. 

응답지 템플릿 만들기

개인별 응답지가 어떤 형식으로 생성될 지 미리 템플릿을 정의해놔야 합니다. 템플릿은 구글 독스(워드프로세서), 구글 스프레드시트, 구글 슬라이드(프리젠테이션 툴)로 만들 수 있는데, 동아리 가입신청서는 간단히 구글 독스로 만들겠습니다. 구글 독스를 열고 아래 예시와 같이 템플릿을 만듭니다.  (구글독스로 만들어진 실제 템플릿)

구글 독스로 만든 가입 신청서 템플릿
구글 독스로 만든 응답지 템플릿

템플릿 안에서, 설문지에 사용된 질문 문항을 그대로 변수로 사용합니다. Form Publisher에서는 이런 변수를 마커(Marker)라고 합니다. 마커 이름에는 <<마커명>>과 같이 양쪽을 꺾인 괄호로 묶어줍니다. 바로 이 마커 부분에 사용자가 실제 응답한 내용이 대체되어 개인별 응답지가 만들어집니다. 예를 들어, 성명을 사용자가 "홍길동"이라고 답한다면, <<성명>>이라는 마커 자리에 홍길동이 들어간 응답지가 생성됩니다. 

오늘 날짜, 응답자 이메일, 자동 증가하는 응답자 일련 번호 등과 같이 미리 정의된 변수, Standard Markers를 사용할 수도 있습니다. 동아리 신청서 예시에서는 신청한 날짜를 자동으로 불러오기 위해 <<Today>>라는 미리 정의된 마커를 사용합니다. 

저장 폴더 만들기

설문 응답이 쌓여가면, 자동으로 생성된 응답지 파일(PDF 포함)을 저장할 폴더를 지정해야 합니다. 저는 현재 설문지가 있는 폴더의 하위 폴더를 하나 만들고, "가입신청서_저장"이라는 이름을 붙였습니다. 아래와 같이, 현재 폴더에 가입신청서_설문, 가입신청서_설문(응답), 가입신청서_템플릿 파일이 놓이게 되고, 가입신청서_저장이라는 하위 폴더가 생성된 것을 알 수 있습니다. 

구글 드라이브 폴더 구조. 설문지, 응답 스프레드시트, 템플릿이 한 폴더에 있고, 저장 폴더가 하위 폴더로 있다.
설문이 있는 폴더 밑에 저장 폴더를 만들었습니다.


Form Publisher 설정하기

이제 구글 설문 편집 화면으로 돌아가서 아래 화면에서처럼 부가 기능에서 Form Publisher를 선택하고, 실행합니다.
구글 설문 편집 화면에서 부가 기능 > Form Publisher > Launch Form Publisher를 선택하여 시작합니다.
Form Publisher 실행

Form Publisher를 실행하면 화면 오른쪽 아래에 팝업 실행창이 뜹니다. 첫 화면은 Template and markers 화면이고, 좌측 위에 있는 햄버거 메뉴(☰)를 통해 다음과 같은 항목들을 차례대로 설정해주면 됩니다.
Form Publisher 팝업창에서는 왼쪽 위에 있는 햄버거 메뉴에서 여러 기능들을 설정할 수 있습니다.
Form publisher의 메뉴 선택


Template and markers (템플릿 파일 선택 및 변수(마커) 확인)

템플릿 파일과, 템플릿 안에 사용된 마커가 정상적인지 확인합니다.
Template and markers


  • Select template: 기본값으로 Form Publisher가 만들어준 템플릿이 있을 것입니다. 이것을 위에서 구글 독스로 만든 응답지 템플릿 파일로 바꿉니다.  
  • Markers: 템플릿 파일을 읽어서 템플릿 파일 안에 변수(마커)가 설문지와 제대로 매칭되는지 확인합니다. 정상적이라면 초록색으로 1개의 표준 마커(<<Today>>)와, 5개의 설문지 문항이 마커로 쓰였다는 것을 확인할 수 있습니다. 

Destination folders & routing rules (저장 폴더 지정)

응답자 개인별로 생성되는 응답지가 저장될 폴더 위치를 지정하는 것입니다. 위에서 미리 만들어놓은 "가입신청서_저장"이라는 폴더로 지정합니다.
응답한 내용을 PDF로 만들어 보관할 저장 폴더의 위치를 설정합니다.
Destination folders



File generation options (개별 응답 시트 파일 생성 옵션)

응답자 개인별로 생성되는 파일 관련 옵션입니다. 그 중에 제일 중요한 것은, Keep PDF copy in Drive 옵션을 선택해서, PDF 파일이 차곡차곡 저장되도록 하는 것입니다. 
응답지 파일 생성시 몇 가지 옵션을 지정합니다. 구글 독스에 추가로 PDF를 반드시 생성하도록 해주었습니다.
File generation options


Naming convention (개별 응답 시트 파일 이름 설정)

응답자가 여러 명이 되면, 개별 응답지 생성 파일이 서로 구분될 수 있는 파일 이름을 부여해야 합니다. 저는 응답한 시간과 응답자의 성명을 변수로 넣어서 파일 이름을 "<<Timestamp>>_가입신청서_<<성명>>" 과 같이 지정했습니다. 그러면 실제로는 "2023-09-20_가입신청서_홍길동", "2023-09-21_가입신청서_김철수"와 같이 응답한 시간과 응답자 성명을 조합하여 응답자별로 PDF 파일이 생성됩니다.
생성되는 응답지 파일 이름 규칙을 지정하였습니다.
Naming convention


Sharing options and notifications (파일을 받아볼 사람 지정)

설문을 받고, 설문 결과 개인별로 생성된 PDF를 응답자 개인에게 자동으로 보낼 수도 있고, 아니면 관리자에게 보낼 수도 있습니다. 메일의 제목과 메시지의 세부 내용도 조정할 수 있습니다. 물론 메일을 보내지 않아도, 관리자 입장에서는 구글 드라이브의 저장 폴더에 응답지가 쌓이므로, 꼭 메일로 통보를 받는 것이 필수는 아닙니다.
생성된 응답지 파일을 누구한테 이메일로 보낼 것인지 지정합니다. 여기에도 그냥 이메일 주소 외에 마커를 사용할 수 있습니다.
Sharing options and notifications


마치며

이제 동아리 가입 신청서를 PDF로 배포하지 않고, 그냥 구글 설문으로 가입 신청을 받게 됩니다. 그리고, 신청이 한 번씩 이루어질 때마다, 자동으로 신청서 PDF 파일이 생성되어 쌓입니다. 물론, 구글 설문의 원래 기능대로 모든 응답 내용은 구글 스프레드시트에 저장되어, 쉽게 데이터 관리를 하고 통계 분석도 가능합니다. 아래 설문지 링크에서 테스트해보시기 바랍니다.


이 글에서는 전자 서명(싸인)과, 워크플로우(workflow)를 태워서 다른 사람이 승인하는 것까지는 넣지 않았습니다. 다음 기회에는 PDF에 전자 서명 넣는 것과 워크플로우를 태우는 것도 다뤄보겠습니다. 

2023-09-12

입력 가능한 양식이 있는 PDF 만들기 2: 무료 온라인 서비스

입력 가능한 양식이 있는 문서, 특히 PDF 문서를 만들기 위한 여정을 가고 있습니다.



이 글의 목차

  1. PDF 양식을 만들어주는 온라인 서비스
  2. 최종 목적물과 작업용 파일
  3. PDFescape란
  4. 작업용 파일 업로드
  5. 폼 필드(form field) 추가
  6. 성명, 휴대전화, 신청일, 신청자 성명을 위한 텍스트 필드
  7. 성별 입력을 위한 라디오 버튼
  8. 회원구분 입력을 위한 드롭다운 필드
  9. 가입경로 입력을 위한 체크상자
  10. 저장 및 다운로드
  11. PDFescape의 특징과 한계

PDF 양식을 만들어주는 온라인 서비스

이번에는 별도의 프로그램 없이 그냥 온라인에서 입력 가능한 양식이 있는 PDF 문서를 쉽게 만들어주는 서비스를 살펴봅니다. 검색해보면 몇 가지 서비스들이 나옵니다. 예를 들면 DocFly, Sejda 등이 나오는데, 사실상 무료로는 제약이 너무 많아서 사용이 힘들게 되어 있습니다. 그래서 2023년 9월 12일 현재, 실제 무료로, 쓸만하게 양식을 만들 수 있는 온라인 서비스로 PDFescape를 이용합니다. 이후에 온라인 양식(form) 제작 툴을 이용한 좀 더 복잡한 방법들을 소개할 예정인데, 그걸 제외하면, 무료로, 가장 빠르고 간단하게 PDF 양식을 만드는 방법입니다. 

최종 목적물과 작업용 파일

최종 목적물은 지금까지 해왔던 동아리 가입신청서입니다. PDFescape로 만들어진 실제 결과물을 참조하십시오. 작업용 파일은 아직 입력 양식이 없는 PDF 파일입니다. 이 파일을 PDFescape 에 업로드하여 양식을 추가할 예정입니다.
최종적으로 PDFescape를 이용해 만들어질 결과물. 입력 가능한 양식이 있는 PDF 문서
PDFescape로 만들 최종 결과물
PDFescape에 업로드할 PDF 문서. 아직은 입력 양식이 없는 PDF 문서
PDFescape에 업로드할 작업용 문서

PDFescape란

기본적으로 온라인 PDF 에디터라고 보시면 됩니다. 구글링 해보면 온라인 PDF 에디터의 종류는 엄청나게 많습니다만, 그 중에서 PDFescape는 무료로, 입력 가능한 양식을 넣을 수 있다는 점에서 상당히 소중한 서비스입니다. 데스크톱용 에디터도 있는데, 시험판이어서 별로 추천하고 싶진 않습니다.

PDFescape은 온라인 또는 데스크톱 소프트웨어를 이용해 PDF 편집을 할 수 있게 합니다.
PDFescape: 온라인 PDF 에디터와 데스크톱용 PDF 에디터

작업용 파일 업로드

PDFescape에 아직은 양식이 없는 일반 PDF 파일을 업로드합니다. 

PDFescape 첫 화면에서 작업용 파일을 업로드합니다.
PDFescape에 작업용 PDF 업로드하기

폼 필드(form field) 추가

Insert(추가) 버튼과 Form Field(양식 필드) 버튼을 눌러 양식 추가를 시작합니다. 이어서 Form Field Creation Tool(양식 필드 만들기 도구)가 나타납니다. Text, Checkbox, Radio button, Dropdown, Listbox 양식을 선택할 수 있습니다.

Insert, Form Field를 선택하여 양식 추가를 시작합니다.
양식 추가 시작하기
Form Field Creation Tool에서 Text, Checkbox, Radio button, Dropdown, Listbox를 선택할 수 있습니다.
Form Field Creation Tool

성명, 휴대전화, 신청일, 신청자 성명을 위한 텍스트 필드

Form Field Creation Tool에서 Text 유형을 선택합니다. 한 번 유형이 선택되면, 별도로 중단시키기(disable) 전까지 계속 동일한 Text 양식을 추가할 수 있습니다. 성명, 휴대전화, 신청일, 신청자 성명 등에 모두 동일한 유형의 양식을 추가합니다. 마지막으로 이제 텍스트 필드 입력을 그만두기 위해 화면 상단에 Click here to disable. 부분을 누릅니다.

텍스트 필드를 원하는 만큼 생성한 다음, 이제 그만 생성하려면, 맨 위에 회색 영역을 클릭합니다.
텍스트 필드 반복 입력 및 중단

이제 각 텍스트 필드의 속성을 정합니다. 텍스트 필드 하나를 선택하고, 편집(🖉)을 누르고, 다시 속성(🔧)을 선택하면, 현재 선택한 필드의 속성창이 나옵니다. 사실상 아무 것도 안 하고, 다 기본값으로 놔도 상관은 없는데, 다른 필드와 알기 쉬운 이름으로 구분하기 위해, Name 속성에 적절한 이름을 넣어줍니다. 성명 필드에는 성명, 휴대전화 필드에는 휴대전화 이런 식으로 넣으면 됩니다.

성명 텍스트 필드 속성창에서 Name 의 값으로 성명이라고 넣어줍니다.
성명 필드 속성값 입력

성별 입력을 위한 라디오 버튼

Form Field Creation Tool(양식 필드 만들기 도구)에서 이제 Radio button 유형을 선택합니다. 작업용 파일에 남, 여, 기타 세 개의 선택 옵션이 있으므로, 연달아 세 개의 단추를 만들고, 화면 상단의 Click here to disable.을 눌러서 중단합니다. 이제 옵션 하나하나에 속성값을 넣어줍니다. 먼저 "남" 버튼을 선택하고, 속성창을 열어, Name에는 "성별"이라고 넣고, Export Value에는 "남"이라고 넣습니다. 세 개의 라디오 버튼 모두 공통으로 "성별"이라는 Name 값을 공유하고, 대신 Export Value만 각각 다른 값, "남", "여", "기타"를 넣어줍니다.

모든 라디오 버튼에 동일한 Name 값을 넣고, 버튼마다 다른 Export Value 값을 넣어줍니다.
성별 라디오 버튼 속성값 입력

회원구분 입력을 위한 드롭다운 필드

성인 회원, 청년 회원, 청소년 회원 중에 하나만을 선택한다는 점에서 라디오 버튼과 비슷하지만, 드롭다운(Dropdown) 필드는 시각적으로 공간을 절약하고, 최종적으로는 선택된 것만 보이도록 한다는 점에서 차이가 있습니다. Name에는 적당히 구분되는 "회원구분"이라는 값을 넣어주었고, 중요한 것은 Field Options에 선택 가능한 목록값을 넣어주는 것입니다. 성인, 청년, 청소년이라는 입력값을 한 줄씩 넣어줍니다.

드롭다운 필드의 속성창에서는 Field Options에 선택 가능한 값들을 한 줄씩 넣어줍니다.
드롭다운 필드의 속성값 입력

가입경로 입력을 위한 체크상자

가입경로는 여러 개의 경로를 복수로 선택 가능하므로, 체크상자로 구현합니다. Form Field Creation Tool에서 Checkbox를 선택합니다. 인터넷 검색, 지인 추천, 홍보 전단지 앞에 체크상자를 하나씩 넣어주고, 마지막으로 Click here to disable.을 눌러서 중단합니다. 체크상자는 각각의 상자마다 서로 다른 Name과 Export Value를 넣어주면 됩니다. 예를 들면, 인터넷 검색 상자에는 Name과 Export Value에 모두 "인터넷 검색"을 넣고, 나머지 상자도 각 상자에 맞는 값을 넣어줍니다.

인터넷 검색 체크상자의 속성으로는 Name가 Export Value에 모두 인터넷 검색이라고 넣어줍니다.
체크상자 필드의 속성값 입력

저장 및 다운로드

입력 양식을 다 넣고, 속성도 다 맞줘주었다면, 마지막으로 왼쪽에 있는 디스크 모양의 저장 버튼(💾)을 눌러 저장하고, 마지막으로 다운로드 버튼(⭳)을 눌러 내 컴퓨터로 내려받습니다. 완성된 양식은 여기에서 볼 수 있습니다. 그리고 이제 가지고 있는 PDF 뷰어로 열어보면, PDF 양식에 입력이 가능한 것을 알 수 있습니다.

PDFescape의 특징과 한계

PDFescape는 매우 간편하게 입력 가능한 PDF 양식을 생성할 수 있습니다. 하지만, 몇 가지 제약이 있습니다.

  • 필드의 종류는 텍스트, 체크상자, 라디오 버튼, 드롭다운, 목록상자(Listbox)까지 있습니다. 텍스트의 종류에 따라, 정교하게 날짜, 숫자 등을 지정하지는 못합니다. 또 목록상자는 한글 입력이 안 되더군요.
  • 각 필드의 모양(글꼴 크기, 종류 등)을 다듬을 수는 없습니다.
  • 양식의 접근성(accessibility) 측면에서 각 양식 컨트롤은 레이블(label)과 짝짓기가 되어야 하는데, 그런 기능은 전혀 없습니다.

그럼에도 불구하고, PDFescape는 무료로, 온라인으로, 바로 PDF 입력 양식 문서를 만들 수 있다는 점에서 상당히 유용한 서비스입니다. 다음에는 온라인 양식 입력 툴, 즉 설문조사 툴을 이용해서 PDF 입력 양식을 생성하는 방법을 알아보겠습니다. 감사합니다.

2023-09-04

입력 가능한 양식이 있는 PDF 만들기 1: 무료 LibreOffice Writer 사용

리브레오피스(LibreOffice)는 대표적인 오픈 소스 무료 오피스 스윗입니다. 오늘은 그 중에 워드프로세서인 라이터(Writer)를 이용하여, 입력 가능한 양식(fillable forms)이 있는 ODT(OpenDocument Text)파일을 만들어 보겠습니다. ODT 파일은 라이터 뿐만 아니라, 마이크로소프트 워드, 구글 문서(Google Docs), 한/글에서 열고, 편집할 수 있습니다. 

라이터에는 앞서 살펴보았던 한/글보다 입력 가능한 양식 컨트롤(form controls)의 가짓수가 훨씬 많고, 속성도 더 상세하게 지정할 수 있습니다. 그 중에 자주 쓰이는 컨트롤만 가지고, 아래와 같은 동아리 가입 신청서 양식을 만들어보겠습니다.

동아리 가입 신청서 양식: 성명, 성별, 휴대전화, 회원 구분, 가입 경로, 신청일, 신청자 성명 등을 입력할 수 있다.
만들고자 하는 동아리 가입 신청서 양식. 클릭하면 원본 ODT 파일을 다운로드합니다.

 

 

양식 컨트롤 도구모음 보이기

먼저, 양식 컨트롤을 계속 사용해야 하니, 툴바를 보이도록 하고 고정시켜 놓습니다. 메뉴에서 View > Toolbars > Form Controls 를 선택하면 툴바가 보입니다. 

양식 컨트롤 도구모음(툴바) 보이기: 메뉴에서 View, Toolbars, Form Controls를 선택한다.
양식 컨트롤 도구모음(툴바) 보이기

툴바가 보였다 안 보였다 하면 불편하니 툴바에서 마우스 오른쪽 버튼을 누르고, Lock Toolbar Position을 선택해서 위치를 고정합니다. 

양식 컨트롤 도구모음(툴바) 고정시키기
양식 컨트롤 도구모음(툴바) 고정시키기

양식 컨트롤의 종류

리브레오피스에는 매우 많은 양식 컨트롤이 있습니다. 그 중에 현실적으로 자주 쓰이는 것들은, 텍스트 박스, 체크 박스, 옵션 버튼, 리스트 박스, 콤보 박스, 날짜 필드, 숫자 필드 정도입니다. 중요 컨트롤은 아래 예제에서 자세하게 설명합니다.

양식 컨트롤 툴바 버튼: 디자인 모드 온/오프(토글), 레이블(모든 폼의 레이블), 텍스트 박스, 체크 박스(다중 선택), 옵션 버튼(단일 선택), 리스트 박스, 콤보 박스, 날짜 필드, 숫자 필드
양식 컨트롤 툴바의 버튼 안내

성명 입력란 (Text Box)

성명 입력란은 일반 텍스트 박스로 넣습니다. 폼 컨트롤 툴바에서 텍스트 박스 아이콘을 선택하고 입력란을 넣고 싶은 위치에서 마우스로 박스를 그려주면 됩니다. 
텍스트 박스 그려넣기
텍스트 박스 그려넣기
 
다시 박스 위에서 마우스 오른쪽 버튼을 눌러 폼 컨트롤 속성(Control Properties...)를 선택하여 나타나는 대화 상자에서 몇 가지 속성을 지정해줍니다. 
텍스트 박스 속성 설정하기
텍스트 박스 속성 설정하기
  • Name: 시스템에서 다른 컨트롤과 구분해서 붙이는 고유한 이름입니다. Text Box 1이 자동으로 생성되는데, 그대로 두어도 되지만, 나중에 Name으로 컨트롤들을 구분하기 위해, "성명"이라는 값을 주었습니다.
  • Tab order: 나중에 탭키를 눌러 키보드로 폼 컨트롤 사이를 이동할 때, 이동 순서입니다. 제일 위에 있는 것이니 순서 1번을 부여합니다. 
  • Font: 입력란에 데이터를 넣을 때, 표시되는 글자 모양, 크기 등을 지정합니다. 

성별 (Option Button)

성별의 선택은 남, 여가 동시에 될 수 없으므로, 라디오 버튼(옵션 버튼)으로 만듭니다. 옵션 버튼을 두 개 연속으로 만듭니다. 먼저 만든 옵션 버튼 위에서 마우스 오른쪽 버튼을 누르고, Control Properties... 메뉴를 선택하여, 대화 상자에 다음과 같은 속성을 넣어줍니다. 
 
옵션 버튼(라디오 버튼) 속성 설정하기
라디오 버튼 속성 설정하기
  • Name: 시스템에서 구분하는 명칭입니다. "남"이라고 넣어줍니다. 기본값을 그대로 놔두어도 상관은 없습니다.
  • Label: 실제 라디오 버튼 옆에 무슨 값이 보이는지 지정하는 것으로 반드시 넣어주어야 합니다. "남"이라고 넣습니다.
  • Group name: 여러 개의 옵션 버튼이 하나의 그룹으로 묶이도록 하기 위해 같은 그룹 이름을 넣어주어야 합니다. 이 경우 "성별"이라고 넣습니다.
  • Tab order: 탭키 순서는 2번을 부여합니다.
  • Font: 글꼴 모양, 크기 등을 지정합니다.
이어서 두 번째 옵션 버튼에는 Name과 Label을 "여"라고 입력하고, Group name은 똑같이 "성별"이라고 입력합니다.

회원 구분 (List Box)

청소년, 청년, 성인 회원으로 구분하기 위해 목록 상자(List Box)로 만듭니다. 목록 상자는 옵션 버튼처럼 여러 개 중에 하나만 선택하게 되어 있지만, 화면에 모든 옵션이 나타나지 않고, 오른쪽에 있는 목록 보이기 버튼(▼)이 눌러져야 목록이 나타납니다. Control Properties... 대화상자에 다음과 같은 값들을 입력합니다.
목록 상자 속성 설정하기
목록 상자 속성 설정하기
  • Name: "회원 구분"이라고 넣습니다. 
  • Tab order: 탭키 순서는 5번을 부여합니다.
  • List entries: 여기가 제일 중요하죠! 목록에서 선택 가능한 옵션을 아래 그림처럼 한 줄씩 입력해줍니다.
  • Font: 원하는 글꼴과 크기를 지정합니다. 

가입 경로 (Check Box)

가입경로는 회원구분과 달리 여러 개의 옵션을 복수로 선택할 수 있으므로, 체크 상자(Check Box)로 만듭니다. 그룹으로 묶어줄 필요는 없고, 옵션 하나하나의 속성을 독립적으로 지정해줍니다.
첫 번째 체크 상자인 "인터넷 검색"이라는 옵션의 Control Properties...는 다음과 같습니다. 나머지 체크 상자도 같은 방식으로 속성을 지정하면 됩니다.
체크 상자 속성 설정하기
체크 상자 속성 설정하기
  • Name: 다른 양식 컨트롤이나 체크 상자와 구분하기 위한 이름으로 "인터넷 검색"을 지정했습니다. 
  • Label: 여기서 레이블은 체크 상자 옆에 실제 표시되는 이름이기도 하고, 선택했을 때 전해지는 값이기도 합니다. "인터넷 검색"이라고 넣으면 됩니다.
  • Tab order: 탭키 순서 6번을 주었습니다.
  • Font: 원하는 글꼴과 크기를 선택합니다. 

신청일 (Date Field)

한/글과 달리 리브레오피스 라이터에는 날짜만 받을 수 있는 양식 컨트롤 날짜 필드(Date Field)가 있고, 달력을 통해 날짜를 선택하게 할 수도 있습니다. 신청일의 속성은 다음과 같이 지정해줍니다.

날짜 필드 속성 설정하기
날짜 필드 속성 설정하기
  • Name: 이름은 다른 곳과 구분되게 "신청일"이라고 지정합니다.
  • Tab order: 탭키 순서 9번을 부여했습니다.
  • Date format: 연월일을 어떤 형식으로 표시할 지 선택합니다. 연월일 순으로 표시하려면 YYYY-MM-DD 를 선택하면 됩니다.
  • Dropdown: 날짜를 직접 입력하는 대신에 드롭다운 버튼(▼)을 눌러서 달력이 나오게 하려면, "Yes"를 선택합니다. 
  • 그 밖에, 입력 가능한 날짜의 최소값( Date min), 최대값(Date max ), 기본값(Default date) 등을 지정할 수 있습니다. 

양식 파일 배포

파일을 받아 사용하는 사람은 양식을 수정하면 안 되니, 저장하기 전에 툴바에서 '디자인 모드'를 끈(Off) 다음, 리브레오피스 라이터 파일(ODT)로 저장하고 배포합니다.  이 글에서 사용된 양식 파일(ODT)을 다운로드해서 확인해보세요.
 

PDF 파일 배포

리브레오피스가 한/글보다 좋은 점은, PDF로 저장해도, 양식 입력이 가능하다는 점입니다. PDF 파일로 배포하려면, 메뉴에서 File > Export As > Export Directly as PDF 를 선택하여 PDF 파일로 저장합니다. 

PDF 파일로 최종 저장된 입력 가능한 양식(동아리 신청서)을 확인해보십시오.
(주의) PDF 뷰어에 따라서 약간씩 다르게 나올 수 있습니다. 저는 PDF24 Reader, Microsoft Edge, Chrome, Firefox, Adobe Acrobat Reader DC 에서 확인해보았습니다. 

2023-06-14

입력 가능한 양식이 있는 ᄒᆞᆫ글(한/글) 문서 만들기

관공서와 학교에서는 한/글을 주 문서작성 프로그램으로 사용합니다. 저도 관공서 업무를 용역 받아서 하는 일들을 할 때에는 한/글을 정말 많이 썼습니다. 그런데 정작 관공서에서 한/글을 제대로(?) 쓰는 사람은 단 한 사람도 보지 못했습니다. 제가 "제대로"라고 말하는 기준은, 일단 단락(문단)과 스타일을 사용해서 나중에, 누구라도 쉽게 "수정 가능한" 문서인가를 1차 기준으로 봅니다. 그런데 관공서 문서들을 보면 죄다 "문단"의 개념 없이 수동으로 줄바꿈을 한 것은 물론이고, 불릿(bullet)을 수동으로 붙이고, 스타일은 거의 쓰지 않고, 제목이 제목으로 구조적으로 드러나지 않게 작성되어 있었습니다. 

여기에 전자 문서를 간단히 사용하는 사용자/소비자 입장에서 한 가지 아쉬운 점이 더 있습니다. 뭔가를 채워야 하는 양식(form)이 들어있는 문서의 경우, 쉽게 채울 수 있게 친절하게 좀 만들어주면 좋겠습니다. 제일 흔하게 쓰는 체크상자(checkbox)와 라디오 버튼(radio button)만 넣어줘도 훨씬 쉽게 양식을 제출할 수 있는데 말이죠. 그래서 오늘은 한/글에서 채울 수 있는 양식(fillable forms)을 만드는 법을 정리해봅니다.

한/글에서 제공되는 양식 개체

 
한글에서 제공하는 입력 양식 5종: 텍스트 입력 상자, 라디오 버튼, 선택 목록, 체크 상자, 명령 단추
한글에서 제공하는 5가지 양식
 

한/글에는 꼭 필요한 양식 다섯 가지 종류만 제공됩니다.

  • 텍스트 입력 상자: 텍스트를 자유롭게 입력하는 상자로 한 줄 입력 또는 여러 줄 입력 방식이 가능합니다. 여러 줄 입력의 경우, 굳이 만들 필요가 없고, 그냥 표에 빈 공간을 제공해도 되기 때문에, 실질적으로는 거의 한 줄 입력만 쓰게 됩니다. 입력값이 숫자인지, 일반 텍스트인지, 날짜인지 등은 따지지 않습니다. 
  • 체크상자: 가장 많이 쓰는 양식입니다. "☑ 동의합니다."와 같이 하나만 있어도 되고, 좋아하는 것을 다 고르는 상황처럼 여러 개를 복수로 선택하는 경우에 사용합니다. 
  • 라디오 버튼: 여러 개 중에 한 개만 고를 때에 사용합니다. 예를 들어, 성별 🔘남  ○ 여 와 같이 하나만 선택해야 하는 경우에는 두 개의 버튼이 사실상 한 개의 그룹으로 묶인다는 것을 지정해주어야 합니다. 
  • 선택 목록(dropdown list): 한/글에서는 콤보 상자라고 되어 있는데, 콤보상자는 키보드로 타이핑해서 텍스트를 직접 입력도 가능하고, 목록에서 선택도 가능해야 하므로, 엄밀히 따지면 그냥 선택 목록, 정확히는 드롭다운 목록입니다. 양식이 있는 문서를 종이로 인쇄하는 경우, 여러 목록이 다 나타나지 않고, 한/글에서는 스크립트를 써야 하므로, 일반적인 상황이라면 '라디오 버튼'으로 대체하는 것이 좋습니다.
  • 명령 단추: HTML 양식에서는 "제출" 버튼이 명령 단추입니다. 그러나 한/글에서는 데이터베이스에 연결해서 양식의 값을 전송하는 기능이 없습니다. 미리 만들어놓은 매크로와 연결해야 하는데, 별로 현실성이 없어서 쓸 일이 거의 없습니다. 
 
자, 양식이 들어간 한/글 문서를 만들어보겠습니다. 제가 예시로 만든 동아리 가입 신청서 양식(한/글 문서 다운로드)에는 텍스트 입력 상자, 라디오 버튼, 체크상자, 선택 상자를 다 넣었습니다. 
한/글로 만든 동아리 가입 신청 양식
한/글로 만든 동아리 가입 신청 양식 예제

성명란 (텍스트 입력 상자)

 
텍스트 입력 양식을 처음 만들기 위해서는 메뉴에서 입력 > 개체(O) > 양식 개체(J) > 입력 상자(T)를 선택합니다. 
메뉴에서 입력 > 개체(O) > 양식 개체(J)를 선택합니다. 한글의 양식 개체 선택 메뉴

 

현재 커서 위치에 [Edit1]이라는 텍스트 입력 상자가 만들어집니다. 입력 상자에서 마우스 오른쪽 버튼을 눌러 [양식 개체 속성] 보기를 선택합니다. 이 중에 몇 가지만 값을 설정해주면 됩니다.
양식 개체 속성
한글의 양식 개체의 속성 대화창
 
  • (Name): 이 양식을 지칭하는 고유 이름이며, 입력값이 없을 때에는 이 이름이 양식의 빈 칸에 빨간색 이탤리체로 나타납니다. 이런 것을 자리표시자(placeholder)라고도 합니다. 저는 이 양식의 이름을 "성명"이라고 붙였습니다.
  • Autosize: 양식의 크기가 텍스트의 양에 따라 자동으로 변하지 않도록 False 를 주었습니다.
  • CharShape: 양식에 들어가는 텍스트의 크기와 속성을 지정합니다. 여기서는 맑은 고딕, 18포인트, 굵게 속성을 주었습니다. 
  • TabOrder: 양식 개체와 개체 사이를 탭 키로 건너뛸 때, 탭 키의 포커스가 이동하는 순서입니다. 위 그림과 같은 양식에서는 1번 성명, 2번 남, 3번 여, 4번 기타, 5번 휴대전화 순서로 번호를 매겨놓으면 됩니다. 
  • Text: 이 양식의 기본 입력값(default value)입니다. 보통은 공란으로 남겨놓으면 됩니다.
  • Width: 양식의 가로 폭을 50mm으로 주었습니다.
 

    성별란 (라디오 버튼)

     
    성별의 종류, 남, 여, 기타를 만들기 위해 다시 입력 > 개체(O) > 양식 개체(J) > 라디오 단추(R)을 선택하여 3개를 만듭니다. 이 때 주의할 점이 이 세 개의 버튼이 하나의 그룹으로 묶여야 한다는 점입니다.
     
    아래 그림에서 Caption은 해당 버튼의 고유한 값인 "남"을 넣어주고, RadioGroupName에는 모든 라디오 버튼의 공통값인 "성별"을 넣어줍니다. "여"와 "기타" 버튼에도 RadioGroupName에는 "성별"이라는 값을 똑같이 넣어줍니다. 
    라디오 버튼의 속성 (Caption과 RadioGroupName 주의)
    라디오 버튼의 속성에서는 Caption과 RadioGroupName을 잘 구분해 넣습니다.

    회원 구분 (드롭다운 목록)

     
    라디오 버튼과 동일하게 여러 개 중에 하나만 선택할 수 있는데, 다만 겉으로 드러나는 인터페이스가 숨겨져 있고, 버튼을 누르면 목록을 열람할 수 있게 되어 있는 것이 드롭다운 목록입니다. 한/글 메뉴에서는 입력 > 개체(O) > 양식 개체(J) > 콤보 상자(L)을 선택합니다. 
     
    드롭다운 목록의 양식 개체 속성에서는 Text에 아무 것도 선택하지 않았을 때 보여지는 지시문을 적어놓습니다. 저는 "회원 유형을 선택하세요."라는 값을 넣었습니다. 하지만, 더 중요한 것은 코드입니다. 즉, 드롭다운 목록에 들어갈 선택사항들을 직접 코드(스크립트)로 입력해주어야 합니다.)
     
    드롭다운 리스트의 경우 코드 보이기를 통해 코드를 직접 입력해주어야 합니다.
    드롭다운 리스트의 코드(스크립트) 입력하기

    드롭다운 목록을 선택하고, 메뉴에서 [코드 보이기/숨기기]를 눌러 위와 같은 [스크립트] 작업 창이 보이게 합니다. 예제 양식에서는 다음과 같이 코드를 넣었습니다. 여러분의 양식에서도 이 코드를 복사해다가 목록 내용만 적절히 바꾸시면 됩니다.
      {
        ComboBox1.Enabled=1;
        ComboBox1.ResetContent();
        ComboBox1.Text="회원 유형을 선택하세요.";
        ComboBox1.InsertString("성인 회원(40세 이상)",0);
        ComboBox1.InsertString("청년 회원(18세~39세)",1);
        ComboBox1.InsertString("청소년 회원(18세 미만)",2);
      }
    
    [스크립트] 작업 창에서 첫 번째 [항목]을 'Document'로 변경한 다음 [매크로 실행] 아이콘을 눌러 이 스크립트가 실행되도록 합니다. 

    가입경로 (체크 상자)

     
    체크상자는 목록에서 복수로 여러 개를 선택할 수 있는 양식이어서 아주 많이 쓰입니다. 메뉴에서 입력 > 개체(O) > 양식 개체(J) > 선택 상자(C)를 골라서, 필요한 개수만큼 체크 상자를 만들어줍니다. 체크 상자의 양식 개체 속성에서는 Caption을 잘 넣어줍니다. 즉 선택한 체크 상자의 기본 텍스트값이 뭐가 보일지 정의합니다. 저의 예시에서는 첫 번째 체크 상자에 "인터넷 검색"이라는 Caption을 넣어주었습니다. 추가로, 체크가 된 상태로 만들고 싶으면, Value에 1을 넣어줍니다. 보통은 기본값 0을 그대로 두어도 됩니다.
    체크 상자 옆에 표시되는 텍스트를 Caption에 넣어주고, Value에는 0을 넣어서, 기본적으로 선택되지 않은 상태가 나오게 한다.
    Caption 속성값에 체크상자에 들어갈 텍스트 넣기

     

    마지막 - 양식 편집 상태 해제

     
    양식 편집을 다 하고, 모양도 예쁘게 다듬었다면, 이제 메뉴에서 입력 > 개체(O) > 양식 개체(J) > 양식 편집 상태(S)를 선택하거나, 도구 모음에서 [양식 편집 상태] 버튼을 눌러서 양식 편집 상태를 해제합니다. (한 번 선택할 때마다, 온/오프 상태가 바뀌는 토글 버튼입니다.)
    도구모음에서 양식 편집 상태 해제하기
    도구모음에서 양식 편집 상태 토글 버튼
     
    이렇게 양식 편집 상태를 해제한 상태에서 문서를 최종 사용자에게 배포하면, 사용자는 양식 자체를 건드리지 않고, 양식에 값만 입력할 수 있습니다. 
     

    한/글 양식의 제약사항

     
    한/글 양식에는 몇 가지 제약사항이 있습니다. 
    • 양식 개체의 종류가 단순하게 딱 다섯 가지만 있어서 사용이 비교적 쉽습니다. 한편으로 좀 더 정밀한 양식을 만들기는 어렵습니다. 
    • 텍스트의 형식(날짜, 문자, 숫자, 전화번호 등)을 제한할 수 없습니다.
    • 드롭다운 목록을 만들기 위해 스크립트(매크로)를 써야 하는 문제점이 있습니다. 
    • 최종 사용자가 양식 편집 상태로 다시 들어가는 것을 막을 방법이 없습니다. 비밀번호를 지정하는 다른 프로그램에 비해 단순한 방법입니다. 
    • 한/글에서 작성한 양식을 PDF로 변환했을 때에는 입력 양식이 유지되지 않습니다. PDF 양식을 만들기 위해서는 다른 프로그램을 써야 합니다. 
    관공서에서 나오는 수많은 양식(신청서, 신고서, 보고서, 동의서 등)에 적어도 체크 상자와 라디오 버튼만이라도 입력 가능한 양식으로 나오면 좋겠습니다.