고지서에서 납기내 금액을 찾는 것은 매우 중요하다. 이를 추출하여 납부자에게 정확한 금액을 전달해야 하기 때문이다.
본 프로그램에서 '납기내 금액'을 찾는 로직을 알아보자. 일단 납기내 금액 표시에 대한 기본세팅을 해야 한다. 납기내금액은 숫자이기도 하지만, 금액이기 때문이다. 따라서 1200인 경우에는 1,200으로 나타나도록 해야 한다.
무수히 많은 숫자, 글자, 기호가 가득한 고지서 안에서 컴퓨터가 납기전 금액을 추출하기 위해서는 먼저, 금액에 해당할만한 패턴을 미리 정해야 한다. 이는 가령 "1,200원"처럼 1에서 3자리의 숫자와 그 다음 콤마, 그리고 3자리 숫자, 다음 한글 "원" 이런 규칙의 패턴을 정할 수 있을 것이다. 본 프로그램에는 이러한 몇가지 '금액 패턴'이 들어 있다.
한편, 위에서 찾은 모든 금액이 납기내 금액인지는 알 수 없다. 납기후 금액일 수도 있고, 단순한 숫자이거나 날짜일수도 있는 것이다. 심지어 계좌번호나 납부번호의 일부일 수도 있는 것이다. 따라서, 위 금액패턴 중에서 진정 납기내 금액이 되기 위해서는 그에 맞는 한글문구가 같은 줄에 있어야 한다. 가령, "납부금액", "과태료금액", "미납요금" 등이 이에 해당할 수 있을 것이다. 본 프로그램에서는 이러한 납기내 추정 문구들을 모아놓고 있다.
이후 기본적으로 추출된 텍스트에서 한줄한줄 찾아나간다. 각 줄마다 위 금액 패턴을 찾고, 납기내 문구들이 있는지 찾아 나간다. 이후 찾아낸 금액들과 납기전 문구를 가지고 선정작업을 한다. 금액 자료가 하나라면 고민할 필요없이 그 금액을 납기내 금액으로 기재한다. 다만, 자료가 하나면 오류가 있을 수 있으므로 파란색으로 표시한다.
금액 자료가 여러 개라면 복잡한 과정을 거친다. 같은 금액이 여러번 등장할 수도 있고, 다른 금액이 여러번 등장할 수도 있다.
따라서, 특정 금액과 그 등장 갯수를 계산해야 한다. 해당 고지서에 특정금액만 여러번 등장한다면, 그건 매우 정확할 수 있다.
예를들면, 5,000원이 4번 등장하면 정확한 납기내 금액이라고 할 수 있을 것이다. 따라서, 이는 검은색으로 표시해도 무방할 것이다.
금액 종류가 2건일 때는 특정 조건하에서 하나는 납기내 금액, 다른 하나는 납기후 금액으로 기재 한다. 3건일때는, 납부금액이 감역금액과 감경후 금액을 합한 금액과 같다면, 감경금액, 감경후 금액, 납부금액으로 기재한다.
위 조건으로도 납기내금액을 못찾은 경우에는 좀더 복잡한 과정을 거친다(이는 후술). 이와 같이 본 프로그램은 매우 정교한 납기전 금액 찾는 로직을 가지고 있다.