Adobe Acrobat에서 조건부 수식을 만드는 방법

복잡한 계산을 PDF 파일 내에서 구현하는 방법은 다양합니다. 이 글에서는 PDF 문서에 조건부 수식을 적용하는 방법을 상세히 설명합니다.

Acrobat에서의 조건부 수식 활용

이전 글에서 Adobe Acrobat을 사용한 자동 계산의 기초를 다룬 적이 있습니다. 조건부 수식을 사용하면 더욱 복잡한 계산을 PDF 문서에 적용할 수 있습니다.

만약 여러분이 엑셀이나 구글 스프레드시트에서 수식을 사용해 본 경험이 있다면, 조건부 수식이 무엇인지 이미 이해하고 있을 겁니다. 이는 논리식이라고도 불리며, 숫자가 음수인지, 점수가 합격 기준을 초과하는지 등의 특정 조건이 충족될 때 특정 값을 표시하거나 계산을 실행하는 기능을 합니다. 엑셀에서 흔히 사용되는 조건부 수식에는 ‘IF’, ‘SUMIF’, 그리고 ‘COUNTIF’가 있으며, 셀의 조건 충족 여부에 따라 서식이 변경되는 조건부 서식도 있습니다.

계산 필드를 사용하면 이러한 종류의 수식을 Adobe PDF 문서에도 적용할 수 있습니다. 이를 통해 숫자, 텍스트를 표시하거나, 다른 입력 상자의 결과를 기반으로 계산을 실행할 수 있으며, 다른 계산 필드와 함께 사용할 수도 있습니다. 조건부 수식은 다양한 종류의 PDF 양식에서 유용하게 활용됩니다.

예를 들어, 재무 문서에서는 대출 금액에 따라 이자율을 계산하거나, 시험 및 평가에서는 응시자의 총점에 따라 합격 또는 불합격 여부를 자동으로 표시할 수 있습니다. 또한, 판매 양식에서는 특정 질문에 대한 잠재 구매자의 답변에 따라 제품을 추천하는 기능을 구현할 수 있습니다.

계산 필드는 Adobe Acrobat에서만 생성할 수 있지만, 실제 계산 결과는 모든 PDF 리더에서 표시됩니다.

간단한 조건문 생성 방법

Adobe Acrobat의 사용자 정의 계산 필드는 JavaScript 프로그래밍 언어를 기반으로 합니다. 다행히도 간단한 조건부 필드를 생성하기 위해 JavaScript 프로그래밍에 대한 깊은 지식이 필요하지 않습니다. 기본적인 패턴만 따라 하면 됩니다.

다음은 회사 주문 양식 예시입니다. 여기에는 5개 제품의 수량, 총 수량, 총 가격 등 총 7개의 필드가 있습니다.

Adobe JavaScript의 조건문은 다음과 같은 기본 구문을 따릅니다.

var 변수명 = this.getField("필드명").value;
if(변수명 조건) event.value = 참 결과
else event.value = 거짓 결과

첫 번째 줄은 조건부 수식에 사용될 값을 정의합니다. 여기서 “this.getField”는 문서의 다른 필드 값을 가져오는 데 사용됩니다. 두 번째 줄에서는 조건을 정의합니다. 엑셀과 유사하게 특정 값보다 크거나 작거나 같은 조건을 설정할 수 있습니다.

마지막으로, 조건이 충족될 때 표시될 참 결과 값을 정의하고, “else” 문을 사용하여 조건이 충족되지 않을 때 표시될 거짓 결과 값을 정의합니다.

실습을 위해 “대량 주문”이라는 계산 필드를 생성했습니다. 사용자 정의 계산 스크립트를 입력하려면, Acrobat에서 해당 필드를 마우스 오른쪽 버튼으로 클릭하고 “속성”을 선택합니다. 속성 창에서 “계산 > 사용자 지정 계산 스크립트 > 편집”으로 이동합니다.

이 필드는 주문이 대량 주문으로 간주되는지 여부를 판단합니다. 총 수량이 20개를 초과하면 상자에 “예”를 표시하고, 20개 미만이면 “아니오”를 표시합니다. 이러한 조건을 고려한 공식은 다음과 같습니다.

var TQ = this.getField("총 수량").value;
if( TQ > 20) event.value = "예";
else event.value = "아니오";

위 이미지에서 변수 이름을 “TQ”로 설정하고 “총 수량” 필드에서 해당 값을 가져오는 것을 확인할 수 있습니다. 필드 이름은 대소문자를 구분해야 합니다. 그런 다음 TQ가 20보다 커야 한다는 조건을 설정하고, 조건이 충족되면 “예”를, 그렇지 않으면 “아니오”를 출력하도록 했습니다.

예를 들어, 라이트닝 케이블 11개와 배터리 뱅크 10개를 주문하면 총 21개 품목이 됩니다. 이는 대량 주문으로 간주되어 다음과 같은 결과를 출력합니다.

여러 조건 설정

때로는 하나가 아닌 여러 조건을 충족해야 하는 경우가 있습니다. 다행히 여러 조건을 기반으로 값을 생성하는 조건부 필드를 만드는 것도 가능합니다.

예를 들어, 상점에서 최소 20개 이상의 제품을 구매하고 총 가격이 150 이상인 모든 주문에 대해 10% 할인을 제공한다고 가정해 보겠습니다. 최종 금액은 “할인 후 총액” 필드에 표시됩니다. 이 경우 두 개의 변수와 두 개의 조건을 지정해야 합니다. 코드는 다음과 같습니다.

var 가격 = this.getField("초기 가격").value;
var TQ = this.getField("총 수량").value;
if( 가격 > 150 && TQ > 20 ) event.value = 가격*0.9;
else event.value = 가격;

보시다시피, 두 개의 변수를 각각의 줄에 정의했습니다. 또한 두 개의 조건을 결합하기 위해 “&&” 연산자를 사용했습니다. 최종 값은 할인율이 적용된 계산 결과입니다.

위의 예와 동일한 값으로 계산하면 다음 결과가 생성됩니다.

계산 순서의 중요성

중요한 고려 사항 중 하나는 계산 순서입니다. Excel과는 달리, Acrobat은 어떤 수식이 먼저 계산될지를 사용자에 따라 결정합니다.

계산 순서를 설정하려면 “양식 편집” 사이드바로 이동하여 자세히 > 필드 계산 순서 설정을 선택합니다. 위의 예에서는 “대량 주문” 및 “할인 후 총액” 수식이 모두 총 수량 및 총 가격에 의존하므로 TQ 및 TP가 먼저 계산되는지 확인해야 합니다.

양식을 게시하기 전에 계산 순서를 반드시 확인해야 합니다. 모든 것이 올바르게 작동하는지 확인하기 위해 샘플 데이터를 입력하여 테스트하는 것이 좋습니다.