이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 다음 실시예들은 본 발명의 이해를 돕기 위한 것이며 본 발명이 하기의 실시예에 한정되는 것은 아니다.
도 1은 본 실시예에 따른 문서식별자 삽입장치의 사용환경을 나타내는 도면이다.
도 1을 참조하면, 호스트(100)에는 한글, MS 워드 및 훈민정음 등 다양한 응용프로그램(400)이 저장된다. 사용자는 응용프로그램(400)을 이용하여 인쇄할 문서(text) 데이터를 작성하거나 편집할 수 있다.
호스트(100)에는 본 실시예에 따른 문서식별자 삽입장치(300)가 배치된다. 문서식별자 삽입장치(300)는 문서내에서 본 실시예에 따라 추출된 문자에 문서식별자를 삽입한 후, 문서식별자가 삽입된 문서 데이터를 출력한다. 도시되지는 않았지만, 문서식별자 삽입장치(300)는 인쇄장치에 배치될 수도 있다.
도 2는 본 실시예에 따른 문서식별자 삽입장치의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 문서식별자 삽입장치(300)는 설정부(301), 입력부(302), 문서식별자 생성부(303), 문서식별정보 생성부(304), 메모리부(305), 문자열정보 추출부(306), 문자 추출부(307), 문서식별정보 삽입부(308), 제어부(309) 및 출력부(310)를 포함한다.
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터,데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
설정부(301)는 문서에 삽입하기 위한 문서식별자의 유형, 문서식별자가 적용되는 페이지수 등을 선택하여 입력하는데 이용된다. 여기서, 문서식별자는 문서를 식별할 수 있도록 나타내는 정보를 말한다. 문서식별자는 한 종류일 수 있거나 두 개 이상 종류일 수 있다. 예를 들어, 문서식별자가 한 종류일 때는 문서번호, 문서 를 출력하는 사람, 문서를 작성한 응용프로그램이 저장된 호스트, 문서의 출력 시간 등을 나타내는 정보 중 하나일 수 있다. 문서식별자가 두 개 이상의 종류일 때는 문서번호, 문서를 출력하는 사람, 문서를 작성한 응용프로그램이 저장된 호스트, 문서의 출력 시간 등을 나타내는 정보 중 선택된 두 개 이상일 수 있다. 이러한, 설정부(301)는 생략될 수 있으며, 설정부(301)가 생략된 경우 문서식별자는 고정된 종류의 문서식별자가 적용될 수 있다.
입력부(302)는 인쇄명령 신호를 입력받아 호스트의 응용프로그램으로부터 문서 데이터를 후킹하여 문서 데이터를 입력 받는다. 문서식별자 생성부(303)는 입력부(302)에 입력된 인쇄명령 신호에 따라 설정부(301)에서 선택에 따른 문자식별자를 생성한다. 예를 들어, 설정부(301)에서 문서식별자로 문서번호가 선택된 경우는 문서식별자는 문서번호인 '320115'일 수 있다. 이하, 문서식별자로서 문서번호 '320115'인 경우를 예로 후술하기로 한다.
문자식별정보 생성부(304)는 생성된 문서식별자를 입력받아 연산을 통해 얻은 문서식별정보를 출력한다. 여기서, '문서식별정보'는 연산과정을 거쳐서 문서식별자를 출력할 수 있는 정보를 말한다. 예를 들어, 문서식별정보를 삽입할 문자의 수가 n개이고 문서식별정보를 나타내는 정보의 종류가 x개라면, 문서식별자는 x진 n자리수로 변환될 수 있다. 즉, 문서식별자는 하위진수변환 연산을 거쳐서 문서식별정보로 변환될 수 있다. 여기서, 하위진수변환 연산은 예를 들어, 10진수에서 4진수변환 연산을 말한다. 예를 들어, 문서식별자가 '320115'이고 문서식별정보를 삽입할 문자의 수가 10개, 문서식별정보를 나타내는 정보의 종류가 '0, 1, 2, 3'으 로 4개인 경우, 문서식별자인 '320115'는 4진 10자리수인 문서식별정보로 변환될 수 있다. 이는 다음 수학식 1을 통해 산출된다.
상기 수학식 1에서 문서식별정보는 '1032021303'가 된다. 여기서, 문서식별정보를 나타내는 정보의 종류의 수는 상기와 같이 '0, 1, 2, 3'인 4개 외에 두개, 세개, 다섯개, 여섯개 등 다양할 수 있다. 문서식별자가 문서를 출력하는 사람, 문서를 작성한 응용프로그램이 저장된 호스트 등과 같이 숫자이외의 문자로 구성되는 경우에는 문서식별자를 구성하는 문자 'A'는 문자식별정보 '01'로 나타내고, 문서식별자를 구성하는 문자 'B'는 문자식별정보 '11'로 나타낼 수 있다. 상기와 같은 방식으로 한글인 문자식별자를 문자식별정보로 나타낼 수도 있다. 이하에서는 문서식별정보를 나타내는 정보의 종류가 '0, 1, 2, 3'로 4개인 경우에 대하여 후술하기로 한다.
메모리부(305)는 입력부(302)로부터 후킹된 문서(text) 데이터를 입력받아 저장하고 제어부(309)의 제어를 받으며 문자열(text string)정보 추출부, 문자 추출부(307), 문서식별정보 삽입부(308)에 의해 변환된 데이터를 갱신하여 저장한다. 여기서, 메모리부(305)는 문서식별자 삽입장치(100) 내에 있지 않고 문서식별자 삽입장치(100) 외부에 있는 메모리를 이용할 수도 있다.
제어부(309), 문자열정보 추출부(306), 문자 추출부(307), 문서식별정보 삽 입부(308)에 대해서는 이하 후술한다.
문자열정보 추출부(306)는 메모리부(305)에 저장된 문서(text) 데이터로부터 문자열정보를 추출하여 문자 추출부(307)에 보낸다. 여기서, '문자열정보'는 문서내에서 일련의 연결된 문자에 대한 정보를 말하며, 알파벳, 숫자, 한글의 문자들과 특수문자(즉, -,_, (,),<,>,÷), 문장부호(즉, ', " ,?,.,!) 및 빈공간(즉, 띄어쓰기) 등의 문장과 관련된 모든 정보를 포함한다. 문자열정보 추출부(306)는 문자열정보를 추출하기 위하여 문자인식 프로그램을 이용할 수도 있다.
문자 추출부(307)는 추출된 문자열정보에서 본 실시예에 의해 미리 설정된 방식에 의해서 문서식별자를 나타내는 문서식별정보를 삽입할 문자를 추출한다. 여기서, 본 실시예에 의해서 문서식별정보를 삽입할 문자를 추출하는 미리 설정된 방식은 이하 상세히 후술하기로 한다.
문서식별정보 삽입부(308)는 문자 추출부(307)를 통해 추출된 문자들에 문서식별정보 예를 들어 '1032021303'를 나타내는 정보를 차례로 삽입한다. 추출된 문자들에 문서식별정보를 나타내는 정보인 '0','1','2' 및'3'를 삽입하는 방법은 선택된 문자의 폰트에 기하학적인 변형을 가한다. 예를 들어, 선택된 문자의 폰트에 패턴을 가한다. 패턴은 세로선, 가로선 및 사선일 수 있다. 여기서, 사선은 세로선을 기준으로 시계방향 또는 반시계방향으로 20도, 40도, 45도 등 다양할 수 있다.
도 3은 본 실시예에 따라 문자의 폰트에 정보를 삽입하는 방법의 일 예를 나타내는 도면이다.
도 3을 참조하면, 문서식별정보를 나타내는 정보가 '0'인 경우는 문자의 폰 트에 두 개의 세로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '1'인 경우는 문자의 폰트에 두 개의 가로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '2'인 경우는 세로선에서 시계반대방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '3'인 경우는 세로선에서 시계방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 문자의 폰트에 정보를 삽입하는 방법은 문서식별정보를 나타내는 정보의 종류에 따라 상기 외에도 다양한 패턴의 수, 다양한 각도 및 다양한 기하학적인 방법으로 이루어질 수 있다.
도 4는 본 실시예에 따라 '가'의 문자 폰트에 정보를 삽입하는 방법의 일 예를 나타내는 도면이다.
도 4를 참조하면, 문서식별정보를 나타내는 정보가 '0'인 경우는 '가'의 문자 폰트에 두 개의 세로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '1'인 경우는 '가'의 문자 폰트에 두 개의 가로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '2'인 경우는 '가'의 문자 폰트에 세로선에서 시계반대방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '3'인 경우는 '가'의 문자 폰트에 세로선에서 시계방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다.
다시 계속해서 도 2를 참조하면, 제어부(309)는 하나 이상의 페이지인 문서 데이터에 본 실시예에 따라 문서식별자를 나타내는 문서식별정보를 삽입하도록 문자열정보 추출부(306), 문자 추출부(307), 문서식별정보 삽입부(308)의 전반적인 동작을 제어한다. 예를 들어, 문자 추출부(307)를 통해 추출된 첫번째 문자에 문서식별정보를 나타내는 정보인 '1'를 삽입하고나서 변환된 문서 데이터를 메모리부(305)에 저장하고 다시 변환된 문서 데이터를 꺼내어 문자 추출부(307)를 통해 추출된 다음 문자에 그 다음 문서식별정보를 나타내는 정보인 '0'을 삽입하고 나서 변환된 문서 데이터를 메모리부(305)에 저장할 수 있다. 이러한 단계를 통해 문서식별정보인 '1032021303'를 문서내 지정된 페이지에 삽입할 수 있다. 문서식별정보는 문서의 하나의 페이지 또는 그 이상의 페이지 단위로 삽입할 수 있다. 이하에서는 문서식별정보를 문서의 하나의 페이지 단위로 삽입하는 경우를 예로 설명하기로 한다.
출력부(310)는 문서 데이터의 지정된 페이지에 문서식별자를 나타내는 문서식별정보가 삽입된 문서 데이터를 출력한다. 출력부(310)는 문서식별정보가 삽입된 문서 데이터를 인쇄장치에 보낼 수 있거나 직접 인쇄할 수도 있다.
도 2의 일 예는 상술한 모듈(301, 302, 303, 304, 305, 306, 307, 308, 309, 310)들을 각각 분리된 모듈로 구현한 일 예이나, 상술한 모듈 중 어느 일부는 여러 모듈로 분리하여 구현할 수도 있고, 하나의 모듈로 통합하여 구현할 수도 있다. 예를 들어, 상기 제어부(309)는 도시된 바와 같이 하나의 통합된 모듈로 구현될 수도 있고, 상술한 각각의 모듈(301, 302, 303, 304, 305, 306, 307, 308, 310)들에 분리된 형태로 구현될 수 있다.
도 5는 본 실시예에 따른 문서식별자 삽입방법의 일 예를 나타내는 순서도이다. 본 실시예에서 S101과 같은 단계의 수는 단계의 순서를 의미하는 것이 아니다.
도 5를 참조하면, 먼저 설정부(301)를 통해 문서에 삽입하기 위한 문서식별자의 유형, 문서식별자가 적용되는 페이지수 등을 선택하여 입력한다(S101). 문서식별자는 한 종류일 수 있거나 두 개 이상 종류일 수 있다. 이러한 S101는 생략될 수도 있으며, S101가 생략되는 경우는 고정된 종류의 문서식별자가 적용될 수 있다.
그런 다음, 입력부(302)를 통해 인쇄명령 신호를 입력 받아 호스트의 응용프로그램으로부터 문서 데이터를 후킹하여 문서 데이터를 입력 받는다(S102). 그런 다음, 문서식별자 생성부(303)에서 문서식별자를 생성한다(S103). 설정부(301)에서 선택된 문서식별자의 유형에 따른 문서식별자를 생성한다. 예를 들어, 문서식별자로서 문서번호만을 선택한 경우는 문서번호인 '320115'가 문서식별자이다.
그런 다음, 문서식별정보 생성부(304)에서 생성된 문서식별자를 입력받아 연산을 통해 문서식별정보를 생성한다(S104). 문서식별자는 하위진수변환 연산을 통해 문서식별정보로 변환될 수 있다. 예를 들어, 문서식별정보를 삽입할 문자의 수가 10개, 문서식별정보를 나타내는 정보의 종류가 '0, 1, 2, 3'으로 4개인 경우는 문서식별자는 4진 10자리수인 문서식별정보로 변환될 수 있다. 문서식별자가 문서번호인 '320115'이라면 문서식별정보는 상기 수학식 1을 통해 산출될 수 있으며, 문서식별정보는 '1032021303'가 된다. 문서식별자가 문서를 출력하는 사람, 문서를 작성한 응용프로그램이 저장된 호스트 등과 같이 숫자이외에 문자로 구성되는 경우에는 문서식별자를 구성하는 문자 'A'는 문자식별정보 '01'로 나타내고, 문서식별자를 구성하는 문자 'B'는 문자식별정보 '11'로 나타낼 수 있다. 상기와 같은 방식 으로 한글인 문자식별자를 문자식별정보로 나타낼 수도 있다.
이하, 문서 데이터의 첫 페이지에 문자식별자를 나타내는 문자식별정보를 삽입하는 방법에서 대하여 설명한다(S105 내지 S110).
문자열정보 추출부(306)에서 문서 데이터 중 첫 페이지의 문자열정보를 추출한다(S105). 여기서는 가장 먼저 첫페이지의 문자열정보를 추출하지만, 마지막 페이지의 문자열정보를 추출할 수도 있다. 문자열정보의 추출은 페이지 단위로 추출할 수도 있고, 문서의 다른 단위로 추출할 수도 있다.
그런 다음, 문자 추출부(307)에서 추출된 문자열정보로부터 첫번째 문장의 마지막 문자를 추출한다(S106). 여기서, '문장의 마지막 문자'는 문장을 끝맺을 때 쓰는 기호인 마침표(.), 고리점(°), 물음표(?) 및 느낌표(!)까지를 하나의 문장 단위로 할 때 문장을 끝맺을 때 쓰는 기호의 바로 앞에 위치한 문자를 말한다.
그런 다음, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없는지 판단한다(S107). 여기서, 문자장식은 문자의 확대, 축소, 기울림과 같은 각도 변경, 언더라인, 굵은 표시 등을 말한다.
만약, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없으면 문자 추출부(307)에서 추출된 문자를 문서식별정보 삽입부(308)에 넘겨주며, 문서식별정보 삽입부(308)에서 추출된 문자의 폰트에 패턴을 가하는 방식으로 문서식별정보를 나타내는 정보 중 일부를 삽입한다(S108). 문서식별정보를 나타내는 정보가 '0'인 경우는 문자의 폰트에 두 개의 세로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '1'인 경우는 문자의 폰트에 두 개의 가로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '2'인 경우는 세로선에서 시계반대방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '3'인 경우는 세로선에서 시계방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 따라서, 문서식별정보가 '1032021303'인 경우는 문서식별정보를 나타내는 정보 중 첫번째 정보인 '1'에 따라서 추출된 문자의 폰트에 두 개의 가로선으로 패턴을 가한다.
만약, 상기 S107에서 추출된 문자가 알파벳, 숫자 및 한글중 하나가 아니거나 추출된 문자에 문자장식이 있으면 첫번째 문장의 다음 문장의 마지막 문자를 추출한다(S109). 그런 다음, 상기 S107 내지 S108을 통해 추출된 문자에 문서식별정보를 나타내는 정보 중 일부를 삽입한다.
그런 다음, 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입했는지 판단한다(S110). 만약, 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입하지 않았다면, 다음 문장의 마지막 문자를 추출한다(S109). 그런 다음, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없는지 판단한다(S107). 만약, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없으면 문자 추출부(307)에서 추출된 문자를 문서식별정보 삽입부(308)에 넘겨주며, 문서식별정보 삽입부(308)에서 추출된 문자의 폰트에 패턴을 가하는 방식으로 문서식별정보를 나타내는 정보 중 다른 일부를 순차적으로 삽입한다(S108). 예를 들어, '1032021303'인 문서식별정보에서 문서식별정보를 나타내는 정보 중 두 번째 정보인 '0'에 따라서 추출된 문자의 폰트에 두 개의 세로선으로 패턴을 가한다. 그런 다음, 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입했는지 판단한다(S110).
S107 내지 S110을 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입할 때까지 순환하면 첫번째 페이지에 문서식별자를 삽입할 수 있다.
이하, 문서 데이터의 첫 페이지 이외의 페이지에 문자식별자를 나타내는 문자식별정보를 삽입하는 방법에서 대하여 설명한다.
문서식별정보 전부를 삽입했다면, 해당 페이지가 문서의 마지막 페이지인지 판단한다(S111). 해당 페이지가 문서의 마지막 페이지가 아니라면, 다음 페이지의 문자열정보를 추출한다(S112). 그런 다음, 첫번째 문장의 마지막 문자를 추출한다(S106). 그런 다음, 상기 S107 내지 S110을 통해 다음 페이지에 문서식별정보를 나타내는 정보의 전부를 삽입한다.
해당 페이지가 문서의 마지막 페이지라면, 문서식별자가 삽입된 문서를 출력부(310)를 통해 출력한다(S113). 문서식별자 삽입장치가 호스트에 배치된 경우는 출력부(310)를 통해 문서식별자를 나타내는 문서식별정보가 삽입된 문서 데이터를 인쇄장치에 보낸다. 문서식별자 삽입장치가 인쇄장치에 배치된 경우는 출력부(310)를 통해 문서 데이터를 직접 인쇄할 수 있다.
도 6은 도 5에 따라 추출된 문자에 삽입한 문서식별정보를 나타내는 도면이다.
도 6을 참조하면, 도 5에 따라 추출된 문자의 각각의 폰트에 삽입한 문서식별정보인 '1032021303'를 보여준다.
도 7은 본 실시예에 따른 문서식별자 삽입방법의 다른 예를 나타내는 순서도이다.
도 7을 참조하면, 먼저 입력부(302)를 통해 인쇄명령 신호를 입력 받아 호스트의 응용프로그램으로부터 문서 데이터를 후킹하여 문서 데이터를 입력 받는다(S201). 그런 다음, 문서식별자 생성부(303)에서 문서식별자를 생성한다(S202). 이하에서는 문서번호인 '320115'가 문서식별자인 경우에 대하여 후술한다.
그런 다음, 문서식별정보 생성부(304)에서 생성된 문서식별자를 입력받아 연산을 통한 문서식별정보를 생성한다(S203). 문서식별자가 문서번호인 '320115'이라면 문서식별정보는 상기 수학식 1을 통해 산출될 수 있으며, 문서식별정보는 '1032021303'가 된다.
이하, 문서 데이터의 첫 페이지에 문자식별자를 나타내는 문자식별정보를 삽입하는 방법에서 대하여 설명한다(S204 내지 S210).
문자열정보 추출부(306)에서 문서 데이터 중 첫 페이지의 문자열정보를 추출한다(S204). 여기서는 가장 먼저 첫페이지의 문자열정보를 추출하지만, 마지막 페이지의 문자열정보를 추출할 수도 있다.
그런 다음, 문자 추출부(307)에서 추출된 문자열정보로부터 첫번째 문장의 첫번째 문자를 추출한다(S205). 여기서, '문장의 첫번째 문자'는 문장을 끝맺을 때 쓰는 기호인 마침표(.), 고리점(°), 물음표(?) 및 느낌표(!)까지를 하나의 문장 단위로 할 때 가장 앞에 위치한 문자를 말한다.
그런 다음, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없는지 판단한다(S206). 여기서, 문자장식은 문자의 확대, 축소, 기울림과 같은 각도 변경, 언더라인, 굵은 표시 등을 말한다.
만약, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나가 아니거나 추출된 문자에 문자장식이 있으면 문자 추출부(307)에서는 다음 문장의 첫번째 문자를 추출한다(S207). 그런 다음, 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없는지 다시 판단한다(S206).
만약, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없으면 문자 추출부(307)에서는 추출된 문자의 크기가 18포인트 이상이거나 8포인트 이하인지 판단한다(S208).
추출된 문자의 크기가 18포인트 이상이거나 8포인트 이하이면 다음 문장의 첫번째 문자를 추출한다(S207). 그런 다음, 상기 S206을 반복한다.
문자 추출부(307)에서는 추출된 문자의 크기가 18포인트 이상이거나 8포인트 이하가 아니라면 추출된 문자를 문서식별정보 삽입부(308)에 넘겨주며, 문서식별정보 삽입부(308)에서 추출된 문자의 폰트에 패턴을 가하는 방식으로 문서식별정보를 나타내는 정보 중 일부를 삽입한다(S209). 문서식별정보를 나타내는 정보가 '0'인 경우는 문자의 폰트에 두 개의 세로선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '1'인 경우는 문자의 폰트에 두 개의 가로선으로 패턴을 가한다. 문서식 별정보를 나타내는 정보가 '2'인 경우는 세로선에서 시계반대방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 문서식별정보를 나타내는 정보가 '3'인 경우는 세로선에서 시계방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴을 가한다. 따라서, 문서식별정보가 '1032021303'인 경우는 문서식별정보를 나타내는 정보 중 첫번째 정보인 '1'에 따라서 추출된 문자의 폰트에 두 개의 가로선으로 패턴을 가한다.
그런 다음, 문서식별정보를 나타내는 정보 '1032021303' 전부를 삽입했는지 판단한다(S210). 만약, 문서식별정보를 나타내는 정보 '1032021303' 전부를 삽입하지 않았다면, 다음 문장의 첫번째 문자를 추출한다(S207). 그런 다음, S206 내지 S208을 반복하여 추출된 문자의 크기가 18포인트 이상이거나 8포인트 이하인지 판단한 후(S208), 문자 추출부(307)에서는 추출된 문자의 크기가 18포인트 이상이거나 8포인트 이하가 아니라면 추출된 문자를 문서식별정보 삽입부(308)에 넘겨주며, 문서식별정보 삽입부(308)에서 추출된 문자의 폰트에 패턴을 가하는 방식으로 문서식별정보를 나타내는 정보 중 다른 일부를 순차적으로 삽입한다(S210). 예를 들어, '1032021303'인 문서식별정보에서 문서식별정보를 나타내는 정보 중 두번째 정보인 '0'에 따라서 추출된 문자의 폰트에 두 개의 세로선으로 패턴을 가한다. 그런 다음, 문서식별정보를 나타내는 정보 '1032021303' 전부를 삽입했는지 판단한다(S210).
S206 내지 S210을 문서식별자를 나타내는 문서식별정보를 나타내는 정보 '1032021303' 전부를 삽입할 때까지 순환하면 첫번째 페이지에 문서식별자를 삽입 할 수 있다.
이하, 문서 데이터의 첫 페이지 이외의 페이지에 문자식별자를 나타내는 문자식별정보를 삽입하는 방법에서 대하여 설명한다.
문서식별정보 전부를 삽입했다면, 해당 페이지가 문서의 마지막 페이지인지 판단한다(S211). 해당 페이지가 문서의 마지막 페이지가 아니라면, 다음 페이지의 문자열정보를 추출한다(S213). 그런 다음, 첫번째 문장의 첫번째 문자를 추출한다(S205). 그런 다음, 상기 S206 내지 S210을 통해 다음 페이지에 문서식별자를 나타내는 문서식별정보의 전부를 삽입한다.
해당 페이지가 문서의 마지막 페이지라면, 문서식별자가 삽입된 문서를 출력부(310)를 통해 출력한다(S212).
도 8은 본 실시예에 따른 문서식별자 삽입방법의 또 다른 예를 나타내는 순서도이다.
도 8을 참조하면, S301 내지 S304는 도 5의 S101 내지 S104와 동일하므로 이하 설명을 생략하기로 한다.
문자열정보 추출부(306)에서 문서 데이터 중 첫 페이지의 문자열정보를 추출한다(S305). 여기서는 가장 먼저 첫페이지의 문자열정보를 추출하지만, 마지막 페이지의 문자열정보를 추출할 수도 있다.
그런 다음, 문자 추출부(307)에서 추출된 문자열정보로부터 첫번째 문장의 마지막 문자를 추출한다(S306). 그런 다음, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없는지 판단한 다(S307).
만약, 추출된 문자가 알파벳, 숫자 및 한글중 하나가 아니거나 추출된 문자에 문자장식이 있으면 문자 추출부(307)에서는 다음 문장이 홀수번째 문장인지 판단한다(S308). 다음 문장이 홀수번째 문장이면 문자 추출부(307)에서 다음 문장의 마지막 문자를 추출한다(S309). 다음 문장이 홀수번째 문장이 아니라면 문자 추출부(307)에서 다음 문장의 첫번째 문자를 추출한다(S310). 그런 다음, S307를 반복한다.
만약, 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없으면 추출된 문자에 문서식별정보 중 일부를 삽입한다(S311). S311은 도 5의 S108 과 동일하므로 이하 설명을 생략하기로 한다.
그런 다음, 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입했는지 판단한다(S312). 만약, 문서식별정보 '1032021303' 중 문서식별정보를 나타내는 정보의 전부를 삽입하지 않았다면, S308 내지 S310 및 S307를 반복한다. 그런 다음, 문자 추출부(307)에서 추출된 문자가 알파벳, 숫자 및 한글중 하나이고 추출된 문자에 문자장식이 없으면 문자 추출부(307)에서 추출된 문자를 문서식별정보 삽입부(308)에 넘겨주며, 문서식별정보 삽입부(308)에서 추출된 문자의 폰트에 패턴을 가하는 방식으로 문서식별정보를 나타내는 정보 중 다른 일부를 순차적으로 삽입한다(S311). 예를 들어, '1032021303'인 문서식별정보에서 문서식별정보를 나타내는 정보 중 두번째 정보인 '0'에 따라서 추출된 문자의 폰트에 두 개의 세로선으로 패턴을 가한다. 그런 다음, 문서식별정보를 나타내는 정보 '1032021303' 전부를 삽입했는지 판단한다(S312).
S313 내지 S315는 도 5의 S111 내지 S113과 동일하므로 이하 설명을 생략하기로 한다.
도 9는 본 실시예에 따른 문서식별자 해독장치의 일 예를 나타내는 블록도이다.
도 9를 참조하면, 문서식별자 해독장치(600)는 설정부(601), 문자화상 입력부(602), 메모리부(603), 문자열정보 추출부(604), 문자 선정부(605), 문서식별정보 추출부(606), 제어부(607) 및 연산부(608)를 포함한다. 여기서, 문서식별자 해독장치(600)는 문서식별자 삽입장치(300)를 통해 문서식별자가 삽입된 경우 문서식별자를 해독한다.
본 실시예에서는 문서식별자 삽입장치(300)와 문서식별자 해독장치(600)를 개개의 장치로서 취급하지만, 이것에 한정되는 것이 아니라 이들 각각의 장치를 하나의 장치 내에서의 문서식별자 삽입부와 문서식별자 추출부로서 이용할 수 있다.
설정부(601)는 삽입된 문자식별자를 해독하기 위한 유형을 선택하여 입력하는데 이용된다. 이러한, 설정부(601)는 생략될 수 있으며, 설정부(601)가 생략된 경우 고정된 종류의 문서식별자를 해독하도록 적용될 수 있다.
문자화상 입력부(602)는 해독명령 신호를 입력받아 문서로부터 문자화상을 입력받을 수 있는 장치를 통하여 문자식별자를 해독할 문서로부터 문자화상 데이터를 입력받는다. 여기서, 문서로부터 문자화상을 입력받을 수 있는 장치로서는 스캐너, 스캐닝 기능이 탑재된 복합기 등이 이용될 수 있다.
메모리부(603)는 문자화상 입력부(602)로부터 입력받은 문자화상 데이터를 입력받아 저장하고 제어부(607)의 제어를 받으며 문자열(text string)정보 추출부, 문자 선정부(605), 문서식별정보 추출부(606)에 의해 변환되고 추출된 데이터를 갱신하여 저장한다. 여기서, 메모리부(603)는 문서식별자 해독장치(600) 내에 있지 않고 문서식별자 해독장치(600) 외부에 있는 메모리를 이용할 수도 있다.
문자열정보 추출부(604)는 메모리부(603)에 저장된 문자화상 데이터로부터 문자열정보를 추출하여 문자 선정부(605)에 보낸다. 문자열정보 추출부(604)는 문자열정보를 추출하기 위하여 문자인식 프로그램을 이용할 수 있다.
문자 선정부(605)는 추출된 문자열정보에서 본 실시예에 의해 미리 설정된 방식에 의해서 문서식별자를 나타내는 문서식별정보가 삽입되도록 설정된 문자를 순차적으로 선정한다. 여기서, 본 실시예에 의해 문서식별정보를 삽입하도록 문자를 설정하는 방법은 상기에서 설명한 바와 같다.
문서식별정보 추출부(606)는 문자 선정부(605)를 통해 순차적으로 추출된 문자들로부터 문서식별정보 예를 들어 '1032021303'를 나타내는 정보를 차례로 추출한다. 문자의 폰트에 두 개의 세로선으로 패턴이 가해진 경우는 문서식별정보를 나타내는 정보로 '0'을 추출한다. 문자의 폰트에 두 개의 가로선으로 패턴이 가해진 경우는 문서식별정보를 나타내는 정보로 '1'을 추출한다. 문자의 폰트에 세로선에서 시계반대방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴이 가해진 경우는 문서식별정보를 나타내는 정보로 '2'를 추출한다. 문자의 폰트에 세로선에서 시계방향으로 45°만큼 각도를 가진 두 개의 사선으로 패턴이 가해진 경우는 문서식 별정보를 나타내는 정보로 '3'을 추출한다.
제어부(607)는 하나 이상의 페이지인 문서 데이터에서 본 실시예에 따라 문서식별자를 나타내는 문서식별정보를 추출하도록 문자열정보 추출부(604), 문자 선정부(605), 문서식별정보 추출부(606)의 전반적인 동작을 제어한다.
연산부(608)는 문서식별정보 추출부(606)에서 추출된 문서식별정보를 입력받아 일련의 연산을 통해 문서식별자를 출력한다. 문서식별정보는 상위진수변환 연산을 거쳐서 문서식별자로 변환될 수 있다. 여기서, 상위진수변환 연산은 예를 들어, 4진수에서 10진수변환 연산을 말한다. 예를 들어, 문서식별정보 추출부(606)에서 차례로 추출된 문서식별정보가 '1032021303'인 경우, 문서식별정보를 추출한 문자의 수가 10개이고 문서식별정보를 나타내는 정보의 종류가 '0, 1, 2, 3'으로 4개이므로 문서식별자는 추출된 문서식별정보의 4진 10자리수인 연산을 통해 얻을 수 있다. 연산부(608)에서 상기 문서식별정보 '1032021303'는 4진 10자리수인 연산을 통해 문서식별자 '320115'로 출력된다.
문서식별자가 문서를 출력하는 사람, 문서를 작성한 응용프로그램이 저장된 호스트 등과 같이 숫자이외에 문자로 구성되는 경우에는 문자식별정보 '01'는 문서식별자를 구성하는 문자 'A'를 나타내고, 문자식별정보 '11'는 문서식별자를 구성하는 문자 'B'를 나타낼 수 있다. 상기와 같은 방식으로 문자식별정보로 한글인 문자식별자를 나타낼 수도 있다.
도 9의 일 예는 상술한 모듈(601, 602, 603, 604, 605, 607, 608)들을 각각 분리된 모듈로 구현한 일 예이나, 상술한 모듈 중 어느 일부는 여러 모듈로 분리하 여 구현할 수도 있고, 하나의 모듈로 통합하여 구현할 수도 있다. 예를 들어, 상기 제어부(607)는 도시된 바와 같이 하나의 통합된 모듈로 구현될 수도 있고, 상술한 각각의 모듈(601, 602, 603, 604, 605, 608)들에 분리된 형태로 구현될 수 있다.
도 10은 본 실시예에 따른 문서식별자 해독방법의 일 예를 나타내는 순서도이다.
도 10을 참조하면, 먼저 문자화상 입력부(602)를 통해 문서식별자가 삽입된 문서로부터 문자화상 데이터를 입력받는다(S401). 그런 다음, 문자열정보 추출부(604)에서 문자화상 데이터 중 해당 페이지의 문자열정보를 추출한다(S402). 문자열정보의 추출은 페이지 단위로 추출할 수도 있고, 문서의 다른 단위로 추출할 수도 있다.
그런 다음, 문자 선정부(605)에서 추출된 문자열정보로부터 첫번째 문장의 마지막 문자를 선정한다(S403) 그런 다음, 문자 선정부(605)에서 선정된 문자가 알파벳, 숫자 및 한글중 하나이고 선정된 문자에 문자장식이 없는지 판단한다(S404).
만약, 문자 선정부(605)에서 선정된 문자가 알파벳, 숫자 및 한글중 하나이고 선정된 문자에 문자장식이 없으면 문자 선정부(605)에서 선정된 문자를 문서식별정보 추출부(606)에 넘겨주며, 문서식별정보 추출부(606)에서 선정된 문자에 문자식별정보를 나타내는 정보가 있는지 판단한다(S405). 예를 들어, 선정된 문자의 폰트에 패턴이 있는지 판단한다. 만약, 선정된 문자의 폰트에 패턴이 있다면, 문서식별정보 추출부(606)에서 선정된 문자의 폰트에 있는 패턴을 인식하는 방식으로 문서식별정보를 나타내는 정보를 추출한다(S407).
만약, 상기 S405에서 선정된 문자의 폰트에 패턴이 없다면 더이상 추출할 문서식별정보를 나타내는 정보가 없는 것이므로 절차를 종료한다.
다시 S407에서 문서식별정보를 나타내는 정보를 추출한 후, 문서식별정보 전부를 추출했는지 판단한다(S408). 예를 들어, 10개의 문자에서 문서식별정보를 추출했는지 판단한다. 만약, 문서식별정보 전부를 추출하지 않았다면, 다시 다음 문장의 마지막 문자를 추출한다(S406). 그런 다음, S404 내지 S408을 통해 문서식별정보 전부를 추출할 수 있다. 예를 들어, 10개의 문자에서 문서식별정보를 추출할 수 있다.
만약, 상기 S404에서 선정된 문자가 알파벳, 숫자 및 한글중 하나가 아니거나 선정된 문자에 문자장식이 있으면 첫번째 문장의 다음 문장의 마지막 문자를 추출한다(S406). 그런 다음, 다시 다음 문장의 마지막 문자가 알파벳, 숫자 및 한글중 하나이고 선정된 문자에 문자장식이 없는지 판단한다(S404). 그런 다음, S404 내지 S408을 통해 문서식별정보 전부를 추출할 수 있다.
상기 S408에서 문서식별정보 전부를 추출했다면 연산부(608)에서는 문서식별정보 추출부(606)에서 추출된 문서식별정보를 입력받아 일련의 연산을 통해 문서식별자를 출력한다(S409). 문서식별정보는 상위진수변환 연산을 거쳐서 문서식별자로 변환될 수 있다.
상술한 모든 기능은 상기 기능을 수행하도록 코딩된 소프트웨어나 프로그램 코드 등에 따른 마이크로프로세서, 제어기, 마이크로제어기, ASIC(Application Specific Integrated Circuit) 등과 같은 프로세서에 의해 수행될 수 있다. 상기 코드의 설계, 개발 및 구현은 본 발명의 설명에 기초하여 당업자에게 자명하다고 할 것이다.
이상 본 발명에 대하여 실시예를 참조하여 설명하였지만, 해당 기술 분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서 상술한 실시예에 한정되지 않고, 본 발명은 이하의 특허청구범위의 범위 내의 모든 실시예들을 포함한다고 할 것이다.