[제1 실시예]
이하, 본 발명의 바람직한 실시예를 첨부 도면에 따라 상세하게 기술할 것이다. 또한, 본 실시예를 Microsoft(등록상표)사에서 제조된 PC용 운영체제(OS)인 윈도우즈(등록상표)의 프린터 드라이버를 커스터마이즈하는 방법의 일례를 제공하여 설명하지만, 본 발명의 범위는 그 운영체제에 한정되는 것이 아니다. 예를 들어, 본 발명을 Microsoft(등록상표)사에서 제조된 윈도우즈(등록상표) 운영체제의 차기 OS인 롱혼(Longhorn)에 적용할 수도 있다.
도 1은, 본 발명의 일실시예에 따른 인쇄 처리 시스템의 구성을 도시하는 블록도이다. 이 인쇄 처리 시스템은, 정보 처리 장치(이하, 호스트 컴퓨터로 언급되기도 함)(3000) 및 호스트 컴퓨터(3000)로부터 인쇄 데이터를 수신하여 그 인쇄 데이터를 인쇄하기 위한 프린터(1500)를 구비하고 있다.
호스트 컴퓨터(3000)에서, CPU(1)는 RAM(2)에 저장되어 있는 프로그램에 따라서, 시스템 버스(4)에 접속된 장치들을 총괄적으로 제어한다. 또한 RAM(2)은 CPU(1)의 주 메모리, 작업 영역 등의 역할을 한다. ROM(3)은 각종 프로그램 및 데이터를 저장하고 있으며, 세 부분: 각종 폰트를 저장하는 폰트 ROM(3a), 부트 프로그램(boot program), BIOS 등을 저장하는 프로그램 ROM(3b) 및 각종 데이터를 저장하는 데이터 ROM(3c)으로 분할된다.
키보드 컨트롤러(KBC)(5)는 키보드(KB)(9) 및 도시되지 않은 포인팅 장치(마우스)로부터의 키 입력을 제어한다. CRT 컨트롤러(CRTC)(6)는 CRT 디스플레이(CRT)(10) 상의 디스플레이를 제어한다. 디스크 컨트롤러(DKC)(7)는 하드디스크와 같은 외부 메모리(11)로의 액세스를 제어한다. 프린터 컨트롤러(PRTC)(8)는 프린터(1500)와의 통신 제어 처리를 위해, 상호작용 인터페이스(21)를 통해 프린터(1500)에 접속된다.
외부 메모리(11)는, 예를 들면 하드디스크(HD), MO, 플로피(등록상표) 디스크(FD) 등을 포함하며, 운영체제 프로그램(이하, OS)(205) 뿐만 아니라 각종 어플리케이션(예컨대, 그래픽, 이미지, 텍스트, 표 등을 포함하고 있는 문서 처리를 행하는데 사용되는 문서 처리 응용 프로그램)(201), 인쇄 처리 관련 프로그램(204)을 저장하고 있다. 또한, 외부 메모리(11)는 사용자 파일, 편집 파일 등을 저장하고 있다. 인쇄 처리 관련 프로그램(204)은 페이지 기술 언어(page description language)를 이용하여 기술된 인쇄 데이터를 생성하는 프로그램이며, 동일 시리즈의 복수의 프린터에 대하여 공통으로 이용될 수 있다. 또한, 인쇄 처리 관련 프로그램(204)은, 프린터 제어 커맨드 생성 모듈(이하, 프린터 드라이버로 언급됨)(2041) 및 프린터 드라이버 사용자 인터페이스(UI) 제어 모듈(2042)도 포함하고 있다.
본 실시예에 따른 커스터마이즈 툴 프로그램(customize tool program)(이하, 간단히 커스터마이즈 툴로 언급됨)을 포함하는 어플리케이션(201)은, RAM(2) 상에서 로드되어 CPU(1)에 의해 실행된다. CPU(1)는, 예를 들어 CRT(10) 상에서의 WYSIWYG(What You See Is What You Get)를 허용하기 위해 RAM(2)에 아웃라인 폰트 데이터의 래스터라이징 처리(rasterizing process)를 실행한다. 또한, CPU(1)는 CRT(10) 상에 마우스 커서(도시되지 않음) 등에 의해 지시된 커맨드에 기초하여, 등록된 각종 윈도우들을 열어서, 각종 데이터 처리를 실행한다. 인쇄 처리 실행시에, 사용자는 인쇄 설정 화면(프린터 드라이버 UI 제어 모듈(2042)에 의해 제어됨)을 열어서, 프린터의 설정 및 인쇄 모드의 선택을 포함하는 프린터 드라이버(2041) 에 대한 인쇄 처리의 설정을 행할 수 있다.
다음에 프린터(1500)의 구성에 대하여 이하에 설명한다. CPU(12)는 프린터(1500)의 전체 동작을 제어한다. RAM(19)은 주 메모리, 작업 영역 등으로 기능하며, 또한, 출력 정보 래스터라이징 영역 및 환경 데이터 저장 영역으로서도 이용된다. 또한, RAM(19)은 NVRAM(Non-volatile RAM: 불휘발성 RAM) 영역을 포함하고 있으며, 그 메모리 사이즈는 확장 포트(도시하지 않음)에 접속된 옵션 RAM에 의해 확장될 수 있다. ROM(13)은 각종 폰트를 저장하는 폰트 ROM(13a), CPU(12)에 의해 실행되는 제어 프로그램 등을 저장하는 프로그램 ROM(13b) 및 각종 데이터를 저장하는 데이터 ROM(13c)을 구비한다. 입력부(input section)(18)는 호스트 컴퓨터(3000)와 데이터를 교환한다. 인쇄부 인터페이스(I/F)(16)는 프린터 엔진으로서 인쇄부(17)와의 인터페이싱을 제어한다.
외부 메모리(14)는 메모리 컨트롤러(MC)(20)에 의해 액세스 제어되며, 옵션으로서 접속되는 하드디스크(HD), MO, 플로피(등록상표) 디스크(FD), IC 카드 등을 구비한다. 외부 메모리(14)는 폰트 데이터, 에뮬레이션 프로그램 및 폼 데이터(form data) 등을 저장한다. 하드디스크 등과 같은 외부 메모리(14)가 접속되어 있지 않은 경우, ROM(13)의 데이터 ROM(13c)은 호스트 컴퓨터(3000)에 의해 이용되는 정보 등을 저장한다. 여기서, 외부 메모리(14)의 수는 하나로 제한되는 것이 아니라, 복수의 외부 메모리(14)가 접속될 수 있음을 이해해야 한다. 예를 들어, 내장 폰트 데이터(built-in font data) 외에도 옵션 폰트 카드 및 다른 언어 시스템의 프린터 제어 언어를 해석하는데 사용하기 위한 프로그램을 저장하고 있는 복 수의 외부 메모리가 접속될 수 있다.
조작부(operating section)(1501)에는, 사용자의 조작을 받아들이는 제어 패널이 제공되고, 조작을 위한 스위치, LED 표시기 등이 그 제어 패널에 배치된다(도시되지 않음). 프린터는 NVRAM을 가질 수 있으며, 이는 제어 패널로부터의 프린터 모드 설정 정보를 저장한다.
CPU(12)는 ROM(13)의 프로그램 ROM(13b)에 저장된 제어 프로그램 등에 기초하여, 출력 정보로서 화상 신호를 인쇄부 인터페이스(16)를 통해 인쇄부(프린터 엔진)(17)에 출력한다. CPU(12)는 입력부(18)를 통해 호스트 컴퓨터(3000)와 통신할 수 있다. CPU(12)는 호스트 컴퓨터(3000)로부터 송신되는 인쇄 데이터를 수신하고, 프린터(1500) 내의 정보 등을 호스트 컴퓨터(3000)에 통지할 수 있다.
도 2는, 소정의 어플리케이션 및 인쇄 처리 관련 프로그램이 론칭된 후, 프로그램 및 데이터가 호스트 컴퓨터(3000)의 RAM(2) 상에 로딩된 상태에서의 RAM(2)의 메모리 맵을 도시한다.
RAM(2) 상에는, BIOS(206) 및 OS(205) 뿐만 아니라 어플리케이션(201), 인쇄 처리 관련 프로그램(204) 및 관련 데이터(203)도 로드된다. 또한, 빈 메모리 영역(202)도 확보된다. 이에 의해, 어플리케이션(201) 및 인쇄 처리 관련 프로그램(204)은 실행할 준비가 된다. 또한, 인쇄 처리 관련 프로그램(204)에 있어서의 프린터 드라이버 UI 제어 모듈(2042)(도 1)은 사용자의 인쇄 설정 커맨드에 따라서 CRT(10) 상에 인쇄 설정 화면을 디스플레이하며, 사용자가 KB(9) 등을 사용하여 설정할 수 있도록 한다.
도 3은 커스터마이즈 툴 UI의 일례를 도시한다. 커스터마이즈 툴은 윈도우즈(등록상표) 2000/XP/Server 2003 상에서 동작하고, 윈도우즈(등록상표) 98/ME, 윈도즈(등록상표) NT 4.0 및 윈도우즈(등록상표) 2000/XP/Server 2003용의 프린터 드라이버들을 커스터마이즈한다. 본 발명은 이러한 OS들로 제한되도록 의도된 것이 아니라, 차기 OS인 롱혼에도 적용할 수 있다.
도 3에서, 사용자가 메뉴(301)에서 "열기(Open)"를 지정할 경우, 커스터마이즈될 드라이버 세트의 폴더를 지정하기 위한 다이얼로그(도시되지 않음)가 표시되어, 사용자가 커스터마이즈될 드라이버를 저장하기 위한 목적지를 지정할 수 있다. 지정된 폴더는 디스플레이 필드(302)에 표시되고, 그 지정된 드라이버 세트의 대응 OS가 디스플레이 필드(303)에 표시된다.
목록 보기(305)는, 커스터마이즈될 수 있는 프린터 드라이버의 대응 모델명, 프린터 드라이버가 이미 커스터마이즈되어 있는지의 여부의 표시를 디스플레이한다. 이미 커스터마이즈된 프린터 드라이버에 대해서는, 식별 "On"이 디스플레이된다. 도 3의 예에서, 프린터 모델명(360)에 대응하는 프린터 드라이버는, 이미 커스터마이즈되어 있다. 또한, 전환된 디스플레이(reversed display)는 커스터마이즈의 대상으로 선택된 프린터 모델명(370)을 나타낸다. 프린터 모델명(이하, 간단히 모델명으로 언급됨)(380, 390)은 아직 커스터마이즈되지 않은 모델명을 나타낸다.
사용자가 체크 박스(310)를 체크하면, 버튼(311)이 인에이블된다. 사용자가 버튼(311)을 누르면, 커스터마이즈용의 프린터 드라이버 UI(도 4)가 표시되어, 사 용자는 인쇄 설정(문서 속성)용 초기 값, 장치용 설정(프린터 속성) 등의 초기 값을 설정할 수 있다.
사용자 체크 박스(320)를 체크하면, 버튼(321)이 인에이블된다. 사용자가 버튼(321)을 누르면, 프린터 드라이버 UI의 디스플레이 제어 방법을 커스터마이즈하기 위한 UI(도 5)가 표시되어, 커스터마이즈용의 프린터 드라이버 UI의 디스플레이 제어 방법을 사용자가 설정할 수 있다.
버튼(330)을 누름으로써, 커스터마이즈된 드라이버를 생성하기 위한 목적지(destination)를 지정하기 위한 다이얼로그(도시되지 않음)가 표시되어, 사용자는 커스터마이즈된 드라이버를 생성하기 위한 목적지를 지정할 수 있다.
사용자가 스핀 박스(350)를 제어하거나 또는 값을 입력할 경우, 그 입력된 값, 즉 커스터마이즈된 드라이버를 일의적으로 지정하기 위한 특정 정보(커스터마이즈 코드)가 커스터마이즈 정보 파일에 보유된다.
각종 설정을 행한 후, 버튼(340)을 누르면, 설정에 따라서 선택된 프린터 드라이버에 대한 커스터마이즈가 실행된다.
도 4는 도 3에 도시된 UI 상에서 버튼(311)을 눌렀을 경우에 디스플레이되는 프린터 드라이버(이하, 간단히 드라이버로 언급됨)의 디폴트 설정 커스터마이즈용의 프린터 드라이버 UI(디폴트 설정 커스터마이즈 UI)를 도시한다.
커스터마이즈 툴은 CPU(1)의 제어하에서 정보 처리 장치의 설정부로서 기능하고, 이러한 설정부는 예를 들어, 도 4에 도시된 UI 화면과 같은 문서용 속성 설정 및 장치용 속성 설정을 행하기 위한 설정 화면을 CRT 상에 디스플레이한다.
윈도우즈(등록상표) NT 4.0 및 윈도우즈(등록상표) 2000/XP/Server 2003에 대한 프린터 드라이버에서는, 문서 설정을 위한 문서 속성 UI 및 장치 설정을 위한 프린터 속성 UI가, 통상의 인스톨시에 프린터 드라이버 설정을 위해 하나의 UI 화면 상에 동시에 디스플레이될 수 없다. 본 발명의 실시예에 따른 커스터마이즈용의 프린터 드라이버 UI는, 프린터 드라이버 모듈을 이용하여 커스터마이즈 툴에 의해 디스플레이되고, 문서 설정을 위한 문서 속성 UI 및 장치 설정을 위한 프린터 속성 UI가 하나의 UI 화면(도 4) 상에 동시에 디스플레이된다. 도 4에서, 문서 속성 UI의 다음 4가지 형태 - 페이지 설정(401), 완료(402), 급지(403), 인쇄 품질(404) - 가 디스플레이될 수 있다. 프린터 속성 UI로서 장치 설정(405)이 디스플레이될 수 있다. 이러한 UI(401 내지 405)를 통해, 문서 속성의 초기 값 및 프린터 속성의 초기 값이 설정될 수 있다.
또한, 커스터마이즈 대상이 아닌 설정은, 예를 들면, 참조번호 410으로 표시된 바와 같이 그레이 아웃(gray out)되어, 도 4에 도시된 UI에서의 사용자 설정 입력의 수용을 방지한다.
도 5는 문서 속성 디스플레이 제어 설정 UI를 도시하며, 사용자가 도 3의 버튼(321)을 눌렀을 때에, 호스트 컴퓨터(3000)의 CRT(10) 상에 디스플레이된다. 도 5에 도시된 화면의 일례에서는, 페이지 설정(501), 완료(502), 급지(503), 인쇄 품질(504), 공통 설정(505)의 디스플레이 제어가 설정될 수 있다. 페이지 설정(501), 완료(502), 급지(503), 인쇄 품질(504)은, 각각 도 4에 도시된 문서 속성의 UI에 대응하는 디스플레이 제어 설정을 가능하게 한다. 공통 설정(505)은 이 디스플레이 제어에 공통인 디스플레이 제어 설정을 가능하게 한다.
참조번호 506은 사용자가 인에이블 디스플레이(통상의 디스플레이), 디스에이블 디스플레이(디스플레이를 항상 디스에이블함), 또는 넌-디스플레이(nondisplay)를 지정할 수 있도록, 제어 설정 항목 "작업 조작(Job 0perations)"을 구체적으로 보여준다. 마찬가지로, 다른 제어 항목에 대해서도, 인에이블, 디스에이블, 또는 넌-디스플레이로 개별 설정함으로써, 문서 속성 UI의 디스플레이를 제어할 수 있다. 이 설정들을 입력한 후, 커스터마이즈 툴은 GPD 파일에 그 설정들을 기입한다.
커스터마이즈 툴은 CPU(1)의 제어 하에 정보 처리 장치의 디스플레이 제어부로서 기능하고, 디스플레이 제어부는 (제어 항목을 포함하는) 설정된 문서 속성에 기초하여, 사용자 인터페이스(UI)의 항목에 대해, 인에이블 디스플레이, 디스에이블 디스플레이 또는 넌-디스플레이로 디스플레이를 제어할 수 있다.
프린터를 제어하는 프린터 드라이버를 속성(문서 설정을 위한 문서 속성에 관한 초기 값 데이터와 장치 설정을 위한 프린터 속성에 관한 초기 값 데이터)의 설정으로 커스터마이즈하기 위한 정보 처리 장치는, 커스터마이즈 대상인 프린터 드라이버에 대응하는 디바이스 드라이버(프린터 드라이버)를 식별하기 위한 정보와, 프린터 드라이버를 커스터마이즈하기 위한 문서 속성 설정 또는 장치 속성 설정을 저장 영역(예컨대, RAM(2) 또는 외부 메모리(11))에 저장하기 위한 저장부; 문서 속성 설정 또는 장치 속성 설정에 기초하여, 커스터마이즈된 드라이버를 생성하기 위한 생성부(형성부로도 언급됨); 및 생성부에 의해 생성된 커스터마이즈된 드라이버를 식별하기 위해, 저장 영역에 저장되어 있는 디바이스 드라이버(프린터 드라이버)를 식별하기 위한 정보를, 디바이스 드라이버(프린터 드라이버)에 대한 인스톨 정보를 기술하기 위한 파일의 모델명 저장 영역(목록부)에 기입하기 위한 기입부를 구비한다. 정보 처리 장치에서, 전술한 각 부의 처리는 CPU(1)의 제어 하에서 커스터마이즈 툴을 실행함으로써 실행된다.
디바이스 드라이버(프린터 드라이버)를 식별하기 위한 정보는 디바이스 모델명 또는 프린터 드라이버 종류 또는 프린터 드라이버 버전에 관한 정보를 포함한다.
도 6에 도시된 플로우차트를 참조하면, 이하는 커스터마이즈의 실행 처리와, 커스터마이즈된 프린터 드라이버에 대응하는 디바이스 드라이버(프린터 드라이버)를 식별하기 위한 정보(정보는 디바이스 모델명, 프린터 드라이버 종류 또는 프린터 드라이버 버전을 포함하며: 이하의 설명에서는, 디바이스 모델명을 일예로서 사용함)를 프린터 드라이버에 대한 인스톨 정보를 기술하는 파일(이하, "INF 파일"로 언급됨)에 기입하는 처리를 설명한다. INF 파일은 커스터마이즈 툴로 데이터의 기입, 판독 및 삭제가 가능하다. 이 파일은 커스터마이즈된 프린터 드라이버에 대응하는 디바이스 드라이버(프린터 드라이버)를 식별하기 위한 정보를 저장하는 모델명 저장 영역(이 영역은 목록부라고도 언급됨) 및 커스터마이즈에 적응할 수 있는 프린터 드라이버를 식별하기 위한 문자열 자원(character string resource)을 기술하는 영역을 포함하는 것으로 가정된다. 또한, 프린터 드라이버를 인스톨하기 위한 프로그램(인스톨러)은, INF 파일의 모델명 저장 영역에 기입되는 커스터마이즈 된 프린터 드라이버에 대응하는 모델명에 대한 정보를 판독하여, 최종 사용자가 프린터 드라이버를 인스톨할 때에, 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 대한 판독 정보만을 CRT(10) 상에 디스플레이 할 수 있는 것이다.
도 6의 플로우차트의 처리는 호스트 컴퓨터(3000)에서 CPU(1)에 의해 구현되는 커스터마이즈 툴로 주로 실행되는 것으로 가정된다는 것을 유의해야 한다.
우선, 단계 S601에서 사용자가 커스터마이즈 툴을 시작하는 경우, 커스터마이즈 툴의 초기화 처리가 시작되며, 단계 S602에서 커스터마이즈 툴은 도 3을 참조하여 설명한 UI 화면을 CRT(10) 상에 디스플레이한다. 단계 S603에서, 사용자가 커스터마이즈될 프린터 드라이버의 인스톨 세트를 도 3의 UI 화면에서 지정하면, 단계 S604에서 지정된 인스톨 세트가 체크된다. 인스톨 세트의 체크 처리시, 커스터마이즈 툴은, 도 7에 도시된 프린터 드라이버에 대한 인스톨 정보를 기술하는 파일(INF 파일)(도 7의 700, 710, 720)의 기술 내용으로부터, 지정된 프린터 드라이버가 커스터마이즈 툴과의 커스터마이즈에 적용가능한지의 여부 및 OS가 지정된 인스톨 세트에 의해 지지되는지를 판정한다.
여기서, 도 7은 프린터 드라이버에 대한 인스톨 정보를 기술하는 INF 파일의 기술 내용을 도시한다. INF 파일은 모듈 기술 정보(도시되지 않음)를 포함한다. 이어서 모듈 기술 정보에 기초하여, 커스터마이즈 툴은 프린터 드라이버의 UI 처리를 수행하고 있는 모듈을 식별할 수 있다. 도 7에서, 참조번호 700, 710, 720은 윈도우즈(등록상표) 98/ME용의 INF 파일의 일부, 윈도우즈(등록상표) NT4.0용의 INF 파일의 일부, 및 윈도우즈(등록상표) 2000/XP/Server 2003용의 INF 파일의 일 부를 각각 설명하고 있다. CPU(1)에 의해 구현되는 커스터마이즈 툴은, INF 파일(700)의 "서명(Signature)" 설정(730)이 문자열 자원("$CHICAGO$")이면, 윈도우즈(등록상표) 98/ME용의 프린터 드라이버라고 판정한다.
또한, INF 파일(710, 720) 내의 "서명" 설정(740, 750)이 문자열 자원("$Windows(등록상표) NT$")인 경우에는, 커스터마이즈 툴이 윈도우즈(등록상표) NT4.0용 프린터 드라이버 또는 윈도우즈(등록상표) 2000/XP/Server 2003용 프린터 드라이버로서 프린터 드라이버를 판정한다. 범위를 더 좁히면, 커스터마이즈 툴은 "NT"가 INF 파일(710, 720) 내의 "DISK1"(760, 770) 설정 문자열 자원 내에 포함되어 있는 경우에는 윈도우즈(등록상표) NT4.0용 프린터 드라이버로 판정하고, "NT"가 설정 문자열 자원 내에 포함되어 있지 않는 경우에는, 윈도우즈(등록상표) 2000/XP/Server 2003용 프린터 드라이버로 판정한다.
커스터마이즈에 적응가능한 프린터 드라이버는, INF 파일 내에 그것을 나타내기 위한 문자열 자원을 포함하므로, 커스터마이즈 툴은 판정시에 그 문자열 자원이 프린터 드라이버의 INF 파일 중에 포함되어 있는 지를 판정함으로써 그 프린터 드라이버가 커스터마이즈에 적응가능한 지의 여부를 판정할 수 있다.
도 6의 설명으로 돌아가서, 커스터마이즈 툴이 단계 S605에서 프린터 드라이버가 커스터마이즈가능한 드라이버가 아니라고 판정하는 경우에는(S605: NO), 그 처리를 단계 S612에 진행시켜 에러 처리를 행하고, 다시 인스톨 세트를 지정하는 단계(S603)로 되돌아간다.
한편, 단계 S605의 판정에서 프린터 드라이버가 커스터마이즈 가능한 드라이 버라고 커스터마이즈 툴이 판정하면(S605: YES), 처리를 단계 S606으로 진행시켜, 커스터마이즈 툴이 CRTC(6)를 제어하여 도 3 내지 도 5를 참조하여 설명된 UI 화면을 CRT(10) 상에 디스플레이하여, 프린터 드라이버를 커스터마이즈하는 데이터(커스터마이즈 데이터(customization data))를 설정 또는 변경할 수 있도록 한다. 도 3 내지 도 5에 입력된 설정은 커스터마이즈 데이터이다. 커스터마이즈 데이터는 프린터 드라이버에 의해 판독될 수 있는 파일인 GPD 파일에 설정된다. 프린터 드라이버가 인스톨되어 동작 상태로 설정되면, GPD 파일 내의 설정값을 판독한다. 이어서, 프린터 드라이버는 GPD 파일 내의 커스터마이즈된 값을 반영한다. 예를 들어, 자주 사용되는 인쇄 설정값(양면, 2-in-1 등)의 프리셋(preset)을 프린터 드라이버에 미리 반영한다. 단지 커스터마이즈된 프린터 드라이버를 인스톨함으로써, 그 프린터 드라이버는, 프린터 드라이버가 처음 조건을 다시 시작하라고 지시받은 경우에 프린터 드라이버에 설정되어 있는 커스터마이즈된 인쇄 설정용 디폴트 값 또는 자주 사용되는 인쇄 설정값이 프린터 드라이버에 설정되어 있는 조건으로 놓인다.
이에 관해, 예를 들어, IT 관리자는 자신의 컴퓨터 상에서 커스터마이즈 툴을 사용함으로써, 컬러 인쇄를 디스에이블하고, 2-up 인쇄 설정을 디폴트로 변경하는 것과 같이 프린터 드라이버의 초기 값을 변경하여 문서 속성 설정 및 장치 속성 설정을 행할 수 있다. 도 3 내지 도 5에서 입력된 설정은 프린터 드라이버를 커스터마이즈하기 위한 커스터마이즈 데이터가 되어야 한다.
단계 S607에서는, 단계 S606에서 설정 또는 변경된 커스터마이즈된 데이터 및 커스터마이즈될 프린터 드라이버에 대응하는 모델명이 저장 영역(예를 들면, RAM(2) 또는 외부 메모리(11))에 저장된다. 예를 들어, 도 3의 UI 화면에서 커스터마이즈 대상으로 선택된 모델명(370) 및 도 3 내지 도 5에서 설정된 커스터마이즈데이터가 커스터마이즈 툴에 의해 저장 영역에 저장된다.
도 3 내지 도 5의 UI 화면 상에 각종 설정을 입력한 후, 도 3의 "생성" 버튼(340)을 누르면, 그 설정에 따라서 커스터마이즈된 프린터 드라이버가 생성된다(S608). 커스터마이즈 처리를 실행하는 명령을 수신할 경우, 커스터마이즈 툴은 저장 영역에 저장되어 있는 커스터마이즈 데이터에 기초하여, 선택된 프린터 드라이버의 커스터마이즈된 드라이버(이하, 커스터마이즈 드라이버라고도 언급됨)를 생성한다.
커스터마이즈 툴은 CPU(1)의 제어 하에, 정보 처리 장치의 생성부로서 기능한다. 이 생성부는 설정된 문서 속성 또는 장치 속성을 프린터 드라이버(디바이스 드라이버)의 드라이버 정보 파일에 기입하여, 디바이스 드라이버의 커스터마이즈된 드라이버(커스터마이즈된 드라이버)를 생성한다.
보다 구체적으로, 커스터마이즈된 드라이버를 생성하는 처리시, 커스터마이즈 툴은 커스터마이즈 소스로부터의 인스톨 세트를 커스터마이즈 드라이버를 생성하기 위한 목적지에 카피하고, 이어서 카피 목적지의 인스톨 세트에 포함된 드라이버 정보 파일(이 파일은 UPD 파일로도 언급됨)에 커스터마이즈 데이터를 기입함으로써, 커스터마이즈된 드라이버를 생성한다.
여기서, 도 9는 프린터 드라이버를 형성하는 파일인 드라이버 정보 파일(UPD 파일)의 데이터 포맷을 설명하는 도면을 도시한다. 도 9에 도시된 바와 같이, UPD 파일은 헤더(901), ID 정의(902) 및 데이터(903)로 형성되어 있다. ID 정의(902)는, 903에 저장되어 있는 데이터의 ID와 데이터 위치(어드레스)의 쌍을 포함한다. 그 쌍들의 세트는 ID의 수와 동등한 양만큼 저장된다. 본 실시예에 따른 커스터마이즈 툴은 커스터마이즈를 위해 정의된 ID에 대응하는 데이터 값을 변경한다. 또한, ID 정의(902)를 위해 사용되도록 요구되는 커스터마이즈 데이터의 ID가 정의되어 있지 않다면, 그 커스터마이즈 데이터에 대응하는 새로운 ID가 ID 정의(902)에 추가된다.
UPD 파일은 (각 모델에 대한) 각각의 대응하는 디바이스 드라이버(프린터 드라이버)에 대해 존재한다. 그러므로, 한 모델에서 다른 모델로 커스터마이즈를 변경할 수 있다. 예를 들어, 한 모델에 대응하는 커스터마이즈된 드라이버 설정을 사용하여, 다른 모델의 드라이버를 커스터마이즈할 수 있다. 또한, 커스터마이즈용 ID가 ID 정의(902)에 사용되기 때문에, 새로운 버전의 프린터 드라이버가 보다 이전에 커스터마이즈된 프린터 드라이버의 설정을 이어받을 수도 있다.
커스터마이즈된 프린터 드라이버는, 커스터마이즈 툴에 의해, 인스톨 또는 최초 기동시에, 커스터마이즈 데이터를 포함하는 UPD 파일을 판독하여, UPD 파일의 ID 정의(902)의 소정의 ID와 연관된 채로 저장되는 데이터(903)를 판독하도록 구현된다. 예를 들어, 커스터마이즈 툴에 의해 생성된 UPD 파일은 ID 정의(902) 내에 "CUSTOMIZED"를 나타내는 ID 및 그 데이터 위치의 어드레스 X를 포함하고 있는 것이다.
인스톨 완료 또는 최초 기동(initial startup) 시에, "CUSTOMIZED"를 나타내는 ID 정보가 ID 정의(902)에 이미 저장되어 있었다면, 커스터마이즈에 적응가능한 프린터 드라이버는 ID 정보에 대응하는 어드레스를 판독하도록 미리 구현된다. 따라서, UPD 파일의 ID 정의(902)가 "CUSTOMIZED"를 나타내는 ID를 포함하면, 이 프린터 드라이버는 인스톨 완료 또는 최초 기동 시에, 그 ID 정의로부터 대응하는 데이터의 어드레스 X를 판독한다. 다음으로, 그 프린터 드라이버는 그 어드레스 X에서 데이터(903)로부터 실제의 드라이버 설정 데이터인 장치 모드의 데이터 구조를 더 판독한다. 또한, 여기서 어드레스 X는 절대 어드레스일 수도 있고, 또는 데이터(903)의 선두 어드레스가 헤더(901)에 미리 저장될 수 있으므로, 어드레스 X에서 데이터(903)의 선두 어드레스(first address)로부터 오프셋 어드레스를 설정할 수 있음을 유의해야 한다.
본 실시예에서, 커스터마이즈 툴은 커스터마이즈 데이터로서, 문서 설정을 위한 문서 속성에 관한 초기 값 데이터(도 4에서 설정 401 내지 404로 설정된 데이터), 장치 설정을 위한 프린터 속성에 관한 초기 값 데이터(도 4에서 설정 405로 설정된 데이터), 및 문서 속성에 관한 UI 상의 컨트롤의 디스플레이 방법에 관한 데이터(도 5에 도시된 UI 화면 상에 설정된 데이터)를 UPD 파일에 기입한다. 커스터마이즈된 프린터 드라이버는 인스톨 완료 또는 최초 기동 시에, 커스터마이즈 툴에 의해 생성된 UPD 파일을 판독하고, 커스터마이즈 정보에 기초하여 동작한다. 이에 의해, 커스터마이즈된 프린터 드라이버의 동작 환경을 용이하게 구성할 수 있다.
도 6의 설명으로 돌아가서, 커스터마이즈된 드라이버가 생성된다(S608). 그 후, 단계 S609에서, 커스터마이즈 툴은 INF 파일의 모델명 저장 영역(목록부)에 등록되어 있는 데이터(이미 커스터마이즈되어 있는 프린터 드라이버에 대응하는 모델명(360)(도 3을 참조))를 삭제(초기화)한다. 이어서, 단계 S610에서, 커스터마이즈 툴은 생성된 커스터마이즈된 드라이버를 식별하기 위해, 단계 S607에서 저장된 커스터마이즈될 프린터 드라이버에 대응하는 모델명에 대한 정보만을 INF 파일의 모델명 저장 영역(목록부)에 기입한다.
보다 구체적으로, 커스터마이즈 툴은 CPU(1)의 제어하에서 정보 처리 장치의 판독부로서 기능한다. 판독부는 생성부에 의해 생성된 커스터마이즈된 드라이버를 식별하기 위해, 저장 영역에 저장되어 있는 디바이스 드라이버를 식별하기 위한 정보를 프린터 드라이버에 대한 인스톨 정보를 저장하기 위한 파일(INF 파일)의 모델명 저장 영역(목록부)에 기입한다. 또한, 디바이스 드라이버를 식별하기 위한 정보를 INF 파일에 기입할 때, 판독부는 이미 기입된 디바이스 드라이버를 식별하기 위한 정보를 삭제한다.
모델명 저장 영역에의 기입에 관해, 복수 종류의 프린터 드라이버가 커스터마이즈되면(예를 들면, 도 3의 UI 화면 상에 프린터 모델명(370, 380, 390)에 대응하는 프린터 드라이버가 커스터마이즈되면), 대응하는 프린터 모델명(370, 380, 390)에 관한 복수의 정보 조각(pieces of information)이 모델명 저장 영역에 기입된다. 프린터 드라이버명의 모든 데이터의 기입을 완료하면, 커스터마이즈 툴은 단계 S611에서 커스터마이즈된 프린터 드라이버 세트를 생성하여 처리를 종료한다.
본 실시예에서 프린터 모델명이 INF 파일의 모델명 저장 영역에 기입되고 있지만, 커스터마이즈 툴이 데이터를 파일에 기입 또는 데이터를 파일로부터 판독 및 삭제할 수 있고, 인스톨러(installer)가 그 파일 내의 데이터를 참조할 수 있는 한, 본 발명은 임의의 파일을 사용하여 동일한 방식으로 적용가능하다.
상기 처리에 따르면, 가장 최근에 커스터마이즈된 프린터 드라이버에 대응하는 프린터 모델명에 대한 정보만이 INF 파일의 모델명 저장 영역(목록부)에 기입된다. 커스터마이즈 툴은, 프린터 드라이버가 인스톨될 경우에 이미 커스터마이즈된 프린터 드라이버가 INF 파일을 참조하여 식별될 수 있도록 한다.
또한, 인스톨러는 INF 파일의 모델명 저장 영역에 이미 기입되어 있는 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 관한 정보를 판독하여, 최종 사용자가 프린터 드라이버를 인스톨할 때, CRT(10) 상에서 판독된 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 대한 정보를 디스플레이할 수 있다.
[제2 실시예]
이하는, 제2 실시예에 따른, 커스터마이즈를 실행하는 처리 및 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 대한 정보를, 프린터 드라이버에 대한 인스톨 정보를 포함하는 INF 파일에 기입하는 처리를, 도 8을 참조하여 설명한 것이다. 도 8의 플로우차트는, 도 6의 플로우차트에서의 단계 S601 내지 S608, S611 및 S612와 동일한 처리를 포함한다. 이하의 설명에서는, 도 6에 포함되지 않은 처리 단계 S801 내지 S805만을 설명할 것이다. 하드웨어 구성 등은, 특정되지 않는 한, 제1 실시예와 동일하며, 플로우차트의 처리는 호스트 컴퓨터(3000)에서의 CPU(1)에 의해 구현되는 커스터마이즈 툴에 의해 주로 실행된다고 가정된다.
커스터마이즈 툴은 CPU(1)의 제어 하에서 정보 처리 장치의 비교부로서 기능한다. 비교부는 저장 영역에 저장되어 있는 디바이스 드라이버를 식별하기 위한 정보를, INF 파일에 기입되어 있는 디바이스 드라이버를 식별하기 위한 정보와 비교한다.
그 비교 결과에 따라, 저장 영역에 저장되어 있는 디바이스 드라이버를 식별하기 위한 정보가 INF 파일에 기입되어 있는 디바이스 드라이버를 식별하기 위한 정보와 일치하는 경우, 기입부는 INF 파일에 이미 기입되어 있는 디바이스 드라이버를 식별하기 위한 정보를 직접 저장한다.
한편, 상기 드라이버들을 식별하기 위한 정보가 서로 일치하지 않으면, 기입부는 INF 파일에 이미 기입되어 있는 디바이스 드라이버를 식별하기 위한 정보를 삭제하고, 저장 영역에 저장되어 있는 디바이스 드라이버를 식별하기 위한 정보를 INF 파일의 모델명 저장 영역(목록부)에 기입한다. 구체적으로는 이하에 설명되는 단계 S801 내지 S805의 처리를 실행한다. 디바이스 드라이버를 식별하기 위한 정보로서, 프린터 모델명을 설명을 위한 예로서 사용한다.
단계 S801에서, 커스터마이즈 툴은 INF 파일의 모델명 저장 영역(목록부)에 기입되어 있는 모델명을, 단계 S607의 처리의 저장 영역에 저장되어 있는 모델명(커스터마이즈 데이터가 UI 화면(도 3 내지 도 5) 상에 설정된 프린터 드라이버에 대응하는 프린터 모델명)과 비교한다.
단계 S802에서, 상기 모델명들이 서로 일치하면(S802: 예), 처리는 단계 S803으로 진행하여, 커스터마이즈 툴은 새로운 정보를 기입하지 않고도, INF 파일의 모델명 저장 영역(목록부)의 프린터 모델명을 직접 저장한다(남겨둔다). 이어서, 단계 S611에서, 커스터마이즈 툴은 커스터마이즈된 프린터 드라이버 세트를 생성하여 처리를 종료한다.
한편, 단계 S802에서의 비교 결과로서, INF 파일의 모델명 저장 영역(목록부)에 기입되어 있는 모델명이 단계 S607의 처리의 저장 영역에 저장되어 있는 모델명과 일치하지 않으면(S802: 아니오), 처리는 단계 S804로 진행하여, 커스터마이즈 툴은 INF 파일의 모델명 저장 영역(목록부)에 등록되어 있는 데이터를 삭제(초기화)한다. 이어서, 단계 S805에서, 단계 S607에서 저장된 모델명에 대한 정보를 INF 파일의 모델명 저장 영역(목록부)에 기입하고, 처리를 단계 S611로 진행시킨다.
상기 처리에 따르면, 커스터마이즈된 프린터 드라이버에 대응하는 프린터 모델명에 대한 정보가 INF 파일의 모델명 저장 영역(목록부)에 기입된다. 커스터마이즈 툴은, 프린터 드라이버가 인스톨될 경우에, 이미 커스터마이즈된 프린터 드라이버가 INF 파일을 참조하여 식별될 수 있도록 한다.
또한, 인스톨러는 INF 파일의 모델명 저장 영역에 기입되어 있는 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 대한 정보를 판독하므로, 최종 사용자가 프린터 드라이버를 인스톨할 때, 판독된 커스터마이즈된 프린터 드라이버에 대응하는 모델명에 대한 정보가 CRT(10) 상에 디스플레이될 수 있다.
도 10은 셋업 프로그램에 의한 커스터마이즈된 드라이버의 인스톨의 일례를 도시한다. 도 11은 도 10의 단계 S1003에서 셋업 프로그램에 의해 CRT 상에 디스플레이된 화면의 일례를 도시한다. 도 10의 처리는 커스터마이즈된 인스톨 세트의 셋업 프로그램을 기동하라는 명령이 제공되었을 때 시작한다. 우선, S1001에서, 셋업 프로그램은 상기 실시예의 단계 S610에서 처리된 INF 파일을 체크한다. INF 파일이 이미 처리되었기 때문에, INF 파일이, 상기 커스터마이즈된 디바이스 드라이버만을 디스플레이 하도록 요구되는 경우에는 커스터마이즈된 디바이스 드라이버만을 디스플레이하고, 커스터마이즈되지 않은 디바이스 드라이버들을 함께 디스플레이 하도록 요구되는 경우에는 커스터마이즈된 디바이스 드라이버 및 커스터마이즈되지 않은 디바이스 드라이버 양자 모두를 디스플레이하는 방식으로 생성되어 있는 한은, 그 INF 파일에 따라 도 11에 도시된 디스플레이 화면이 디스플레이 상에 나타나게 된다. 단계 S1001에서 INF 파일에 어떤 에러도 없으면, 처리는 단계 S1002로 진행한다. 단계 S1002에서, 셋업 프로그램은 INF 파일을 판독하여, 프린터 드라이버의 목록을 체크한다. 단계 S1003에서는, 단계 S1002에서 체크된 드라이버 목록에 기초하여, 커스터마이즈 후에 획득된 디바이스 드라이버명, 모델명, 드라이버 버전, 드라이버 종류를 디스플레이한다. 단계 S1004에서는, 디스플레이된 프린터 드라이버 목록으로부터 하나 또는 복수의 드라이버의 선택을 지정하기 위한 대기 상태가 된다. 도 11에 도시된 예에서, 마우스 또는 다른 입력 장치로 옵션부(1101)가 선택되어, 흑백 반전된다. 당연히, 복수의 옵션이 선택될 수 있다. 프린터 드라이버 목록의 프린터 드라이버를 흑백 반전시킨 채로 "인스톨된 프 린터 드라이버 목록에 추가" 버튼(1103)을 누르면, 초기화 시에 공백이었던 인스톨된 프린터 드라이버 목록에, 커스터마이즈된 프린터 드라이버(1104)가 추가된다.
도 11에는, 커스터마이즈된 프린터 드라이버(1)가 인스톨 대상으로 선택된 상태를 도시한다. 여기서, 프린터 드라이버(1104)를 흑백 반전시킨 채로, 버튼(1105)을 누름으로써, 선택 상태가 리셋될 수 있다. 또한, OK 버튼을 누르면 인스톨된 프린터 목록 상의 프린터 드라이버들이 인스톨된다. 프린터 드라이버 "모델 A에 대한 커스터마이즈된 프린터 드라이버(1)"가 선택된다. 단계 S1005에서는, 도 11의 화면을 이용함으로써 단계 S1004에서 선택된 커스터마이즈된 디바이스 드라이버가 인스톨된다.
또 다른 실시예로서, 커스터마이즈되지 않은 디바이스 드라이버 및 커스터마이즈된 디바이스 드라이버 양자 모두가 INF 파일 내에 미리 남겨질 수 있고, 디바이스 드라이버가 커스터마이즈되었는지의 여부를 나타내는 플래그들이 INF 파일 내의 디바이스 드라이버에 별도로 첨부될 수 있다. 커스터마이즈된 디바이스 드라이버 및 커스터마이즈되지 않은 디바이스 드라이버는 디바이스 드라이버 및 커스터마이즈되지 않은 디바이스 드라이버의 인식 후에, 각 커스터마이즈된 드라이버에 첨부된 까만점(1109) 등과 같은 식별가능한 방식으로 프린터 드라이버 목록에 디스플레이될 수 있다. 선택적으로, 커스터마이즈되지 않은 드라이버의 디스플레이와 넌-디스플레이 간의 절환을 위해 체크 박스(1108)가 제공될 수 있다. INF 파일에 커스터마이즈되지 않은 디바이스 드라이버명이 남아 있더라도, 체크 박스(1108)의 체크가 이미 제거되어 있는 한, 커스터마이즈되지 않은 디바이스 드라이버는 디스플 레이되지 않는다.
[기타 실시예]
또한, 본 발명의 목적은 시스템 또는 장치에 상기 실시예들의 기능을 수행하기 위한 소프트웨어의 프로그램 코드를 저장하는 저장 매체(또는 기록 매체)를 공급하여, 그 시스템 또는 장치의 컴퓨터(또는 CPU 또는 MPU)가 저장 매체에 저장된 프로그램 코드를 판독 및 실행함으로써도 달성될 수 있음은 말할 필요도 없다. 이 경우, 저장 매체로부터 판독된 프로그램 코드는 상기 실시예들의 기능을 수행하므로, 그 프로그램 코드를 저장하고 있는 저장 매체는 본 발명을 구현한다. 또한, 컴퓨터에 의해 판독된 프로그램 코드를 실행함으로써 상기 실시예들의 기능이 수행되는 경우뿐만 아니라, 컴퓨터 상에서 가동되고 있는 운영체제(OS) 등이 그 프로그램 코드의 명령에 기초하여 실제 처리의 일부 또는 전부를 수행하여, 상기 실시예들의 기능을 수행하는 경우도 포함하는 것은 말할 필요도 없다.
또한, 저장 매체로부터 판독된 프로그램 코드가, 컴퓨터에 삽입된 기능 확장 카드 또는 컴퓨터에 접속된 기능 확장 유닛에 구비된 메모리에 기입되고, 이어서 그 프로그램 코드의 명령에 기초하여 그 기능 확장 카드 또는 기능 확장 유닛의 CPU 등이 실제 처리의 일부 또는 전부를 수행하여, 상기 실시예들의 기능을 수행하는 경우도 포함하는 것은 말할 필요도 없다.
본 발명이 상기 저장 매체에 적용되는 경우, 상술된 플로우차트(도 6, 도 8, 도 10)를 지지하는 프로그램 코드가 저장 매체에 저장된다.
본 발명이 예시적인 실시예들을 참조하여 기술되었지만, 그 기술된 예시적인 실시예들에 한정되는 것은 아님을 이해해야 한다. 다음의 특허청구범위는 그러한 모든 변경들 및 등가의 구조들 및 기능들을 포함하도록 가장 넓게 해석되어야 한다.