KR20050053323A - 정보처리장치, 인쇄제어방법 및 프로그램 - Google Patents

정보처리장치, 인쇄제어방법 및 프로그램 Download PDF

Info

Publication number
KR20050053323A
KR20050053323A KR1020040099131A KR20040099131A KR20050053323A KR 20050053323 A KR20050053323 A KR 20050053323A KR 1020040099131 A KR1020040099131 A KR 1020040099131A KR 20040099131 A KR20040099131 A KR 20040099131A KR 20050053323 A KR20050053323 A KR 20050053323A
Authority
KR
South Korea
Prior art keywords
processing
law
setting
function
conflict
Prior art date
Application number
KR1020040099131A
Other languages
English (en)
Other versions
KR100704811B1 (ko
Inventor
가또히사시
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20050053323A publication Critical patent/KR20050053323A/ko
Application granted granted Critical
Publication of KR100704811B1 publication Critical patent/KR100704811B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts

Abstract

둘 이상의 값 사이에 성립하는 의존관계에 따라 설정된 제1 충돌처리법칙을 저장하는 제1 법칙저장수단; 인쇄처리관련 프로그램의 기능 및 추가기능에 입력되는 값 사이에서 성립하는 의존관계에 따라 정해진 제2 충돌처리법칙을 저장하는 제2 법칙저장수단; 및 상기 제1 법칙저장수단 및 상기 제2 법칙저장수단으로부터 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하여, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여, 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 두 개의 설정간에 부정합이 발생하지 않도록 설정의 조정처리를 수행하는 설정조정수단을 구비하는 것을 특징으로 하는 정보처리장치 등이 개시된다.

Description

정보처리장치, 인쇄제어방법 및 프로그램{INFORMATION PROCESSING SYSTEM, PRINT CONTROL METHOD AND PROGRAM}
본 발명은 인쇄시스템의 기능을 확장시키기 위한, 정보처리장치, 인쇄제어 방법 및 프로그램에 관한 것이다.
주로, 프린터 제조사에 의해, 프린터의 출력을 제어하기 위한 프린터 드라이버가 최종사용자에 의한 설치를 위해 제공된다. 그러나, 설치후에, 프린터 드라이버에 추가의 기능을 추가하거나 개선할 필요성이 있을 수 있다.
이는 주로 소프트웨어 콤포넌트에 기능을 변경 또는 추가하는데 일반적으로 사용되는 소프트웨어 모듈인, 플러그-인에 의해 달성된다. 그러므로, 플러그-인을 사용함으로써 특정 기능의 추가를 달성하는 프린터 드라이버가 점점 많이 사용되고 있다.
예컨대, 정보처리장치의 인쇄속도의 개선 및 인쇄처리의 간편화를 달성하기 위한 기술이 개시되어 있다(예컨대, 일본특허공개 제2002-108580호 참조).
플러그-인에 의해 추가 기능이 추가되는 경우, (예컨대, 프린터 드라이버의 기존 인쇄설정 시트에 일반적으로 추가되는 인쇄설정시트의 사용자 인터페이스를 사용하여) 사용자는 원하는 바에 따라 플러그-인 설정을 변경하도록 될 수 있다. 그러나, 변경된 설정은 원래의 설정 또는 다른 설정들과 충돌할 수 있다. 때로는, 추가 기능이 추가되기 전에 사용자 인터페이스(이하, UI)가 사용자에게 제공되어 인쇄설정 시트를 변경시키는 경우에는, 설정치 사이의 부정합을 일으키지 않도록 설정치가 조정된다. 부정합이란, 예컨대, 사용자는 설정으로서 "스테이플(staple)" 기능과 "양면인쇄(Collate)" 기능을 동시에 모두 설정할 수 없다는 것을 의미한다. 따라서, 사용자가 설정가능하도록 허용된 항목만이 선택가능한 반면, 다른 비선택가능 항목들은 선택 불가능하도록 어둡게 처리된다. 즉, 부정합이 일어날 수 있는 항목들은 사용자에 의한 설정시에 금지된다. 설정치들간의 부정합을 방지하기 위한 처리는 충돌(conflict) 처리로 공지되어 있다.
그러나, 추가되어야 하는 플러그-인이 프린터 드라이버에 알려지지는 않기 때문에, 부정합을 판단하는 것이 때로는 어렵다. 따라서, 정확한 충돌처리의 수행이 여전히 어려운 작업으로 남아 있다.
본 발명은 상기한 문제점들중 적어도 하나를 해결하기 위해 안출된 것이다. 본 발명의 일 태양에 따르면, 인쇄처리관련 프로그램의기능에 추가기능이 더 추가될 수 있는, 정보처리장치로서, 둘 이상의 값 사이에서 성립하는 의존관계에 따라 정해지는 제1 충돌처리법칙을 저장하는 제1 법칙 저장수단; 상기 인쇄처리관련 프로그램의 기능과, 상기 추가기능에 입력된 값의 사이에서 성립하는 의존관계에 따라 정해지는 제2 충돌처리법칙을 저장하는 제2 법칙 저장수단; 및 상기 제1 법칙 저장수단 및 상기 제2 법칙 저장수단에서부터, 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여, 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정간에 서로 충돌하지 않도록 설정조정처리를 수행하는 설정조정수단을 구비하는 것을 특징으로 하는 정보처리장치가 제공된다.
본 발명의 다른 태양에 따르면, 인쇄처리관련 프로그램에 의해 실현가능한 기능에 더 추가기능을 부여할 수 있는 정보처리장치를 이용한 인쇄제어방법으로서, 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정에 관한 설정정보를 취득하는 제1 단계; 및 둘 이상의 값 사이에서 성립하는 의존관계에 따라 정해진 제1 충돌처리법칙을 저장하는 제1 법칙저장수단, 및 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능에 입력되는 값 사이에 성립하는 의존관계에 따라 정해진 제2 충돌처리법칙을 저장하는 제2 법칙저장수단으로부터, 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여, 상기 제1 단계에서 취득된 상기 설정정보를 참조함으로써 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정이 서로 충돌하지 않도록 설정의 조정처리를 수행하는 제2 단계를 포함하는 것을 특징으로 하는 인쇄제어방법이 제공된다.
본 발명의 기타의 장점들 및 특징들은 본 명세서 전체에서 동일 또는 유사한 부분에 대하여 동일한 참조문자를 지정한 첨부도면과 연계하여 주어지는 이하의 상세한 설명으로부터 분명해 질 것이다.
본 발명에 따른 정보처리장치, 인쇄제어방법, 및 그 프로그램은, 새로운 기능이 플러그-인 형식으로 인쇄처리 관련 프로그램(프린터 드라이버)에 추가되는 환경에서도 충돌 처리를 달성한다.
이하, 본 발명의 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 도 1은 본 발명의 일실시예에 따른 호스트 컴퓨터(정보처리장치)를 포함하는 인쇄처리시스템의 개략적인 형태를 나타낸 블록도이다. 이와 관련하여, 인쇄처리시스템이 일실시예로서 도시되어 있지만, 본 발명은 이에 한하지 않는다. 본 발명은 단독의(standalone) 시스템, 또는 복수의 장치들을 포함하는 시스템에 적용될 수 있으며, 프린터 드라이버가 실행될 수 있는 환경이라면, LAN(Local Area Network), WAN(Wide Area Network) 등의 네트워크를 통해 접속함으로써 처리가 수행되는 시스템에도 적용될 수 있다.
도 1에 있어서, 참조번호 3000은 호스트 컴퓨터(정보처리장치)를 나타내며, ROM(3)의 프로그램 ROM 또는 외부 메모리(11)에 저장되는 문서처리 프로그램 등에 기초하여, 그래픽, 이미지, 문자, 테이블(스프레드시트를 포함함)을 포함하는 문서상의 처리를 수행하는 CPU(1)를 포함한다. CPU(1)는 시스템 버스(4)에 접속된 각각의 장치들을 내부적으로 제어한다. 또한, ROM(3)의 프로그램 ROM 또는 외부 메모리(11)는 CPU(1) 등의 제어 프로그램인 운영체제(OS)를 저장하며, ROM(3)의 폰트 ROM 또는 외부 메모리(11)는 전술한 문서 처리에 사용될 폰트 데이터 등을 저장하며, ROM(3)의 데이터 ROM 또는 외부 메모리(11)는 전술한 문서처리 등에 사용되는 다앙한 데이터를 저장한다. 참조번호 2는 RAM으로서, CPU(1)의 메인 메모리, 작업영역 등으로 사용된다.
참조번호 5는 키보드 제어기(KBC; Keyboard Controller)이며, 키보드(9) 및 포인팅 장치(도시 생략)로부터의 입력을 제어한다. 참조번호 6은 CRT 콘트롤러(CRTC)이며, CRT 디스플레이(10)의 표시를 제어한다. 참조번호 7은 디스크 콘트롤러(DKC)로서, 부트 프로그램, 각종 어플리케이션, 폰트 데이터, 사용자 파일, 편집 파일, 프린터 제어 명령 생성 프로그램 (이하, 프린터 드라이버라 함) 등을 저장하는, 하드디스크(HD), 플렉시블디스크(FD) 등의 외부 메모리로의 액세스를 제어한다.
참조번호 8은 프린터 콘트롤러(PRTC)로서, 소정의 양방향 인터페이스(21)를 통해 프린터에 접속되며, 프린터(1500)와의 통신제어처리를 실행한다. 이와 관련하여, CPU(1)는 예컨대 RAM(2) 에 설정된 표시정보 RAM내에 아웃라인-폰트(outline-font)의 확장(rasterization) 처리를 실행하고, CRT(10)상에 WYSIWYG(WhatYouSeeIsWhatYouGet)을 제공한다. 또한, CPU(1)는 CRT(10) 상의 마우스 커서(도시 생략)에 의해 지시되는 명령들에 기초하여 각종 데이터 처리를 실행한다. 인쇄 실행시에, 사용자는 인쇄 설정에 관한 윈도우를 열어, 후술하는 프린터(1500)에 대하여 설정을 수행하고, 프린터 모드의 선택을 포함하는 프린터 드라이버의 인쇄처리 방법의 설정을 수행한다.
프린터(1500)에 있어서, 참조번호 12는 프린터 CPU이다. 프린터 CPU(12)는 ROM(13)의 프로그램용 ROM 혹은 외부 메모리(14)에 저장된 제어 프로그램 등에 근거하여, 시스템 버스(15)에 접속되는 인쇄부(프린터 엔진)(17)에 출력정보로서의 화상신호를 출력한다. 또한, ROM(13)의 프로그램용 ROM은 CPU(12)의 제어 프로그램 등을 저장한다. ROM(13)의 폰트용 ROM에는 전술한 출력정보가 생성될 때 사용되는 폰트 데이터 등을 저장한다. ROM(13)의 데이터용 RAM에는 하드 디스크 등의 외부 메모리(14)를 가지지 않는 프린터(1500) 경우에 호스트 컴퓨터(3000)에서 이용되는 정보 등을 저장한다.
CPU(12)는 입력부를 통해 호스트 컴퓨터(300)와의 통신처리를 수행할 수 있으며, 프린터(1500)의 통지 정보 등을 호스트 컴퓨터(3000)에 통지할 수 있다. 참조번호 19는 CPU(12)의 메인 메모리, 작업 영역 등으로 기능하는 RAM으로서, 그 메모리 용량은 도시되지 않은 확장포트에 연결된 옵션(optional) RAM에 의해 확장될 수 있다. 이와 관련하여, RAM(19)은 출력정보 확장영역, 환경데이터 저장영역, NVRAM(Non-Volatile RAM) 등에 사용된다.
하드 디스크(HD), IC 카드 등인 외부 메모리(14)는 메모리 콘트롤러(MC)(20)에 의해 액세스 제어된다. 외부 메모리(14)는 옵션으로 연결되어, 폰트 데이터, 에뮬레이션 프로그램, 폼 데이터(form data) 등을 저장한다. 또한, 참조번호 1501은 조작 패널로서, 조작 스위치 및 LED 디스플레이 등이 그 위에 배치된다. 또한, 전술한 외부 메모리(14)는 단일 디바이스로 제한되지 않는다. 적어도 하나 이상의 외부 메모리(14)들이 포함될 수 있으며, 언어체계가 다른 프린터 제어언어들을 해석하는 프로그램들을 저장하는 외부 메모리들 및 다수의 옵션 폰트 카드들이 내부 폰트에 더하여 연결될 수 있다. 또한, NVRAM(도시 생략)이 포함될 수 있으며, 조작 패널(1501)로부터의 프린터 모드 설정정보가 이에 저장될 수도 있다.
다음, 본 발명의 일실시예에 따라 프린터 드라이버(204)의 기능을 확장하는 시스템에 대하여 설명한다. 도 10은 프린터 드라이버(204)의 확장 시스템을 나타내는 도면이다. 도 10은 프린터 드라이버(204)에 플러그-인 모듈이 추가되는 경우의 UI의 구조를 나타낸다. 도 10에 있어서, 플러그-인 모듈은 UI 드라이버(1403)의 추가 기능을 갖는 UI 플러그-인(1404) 및 그래픽스 드라이버(1405)의 추가 기능을 갖는 그래픽스 플러그-인(1406)를 포함한다. 도 10을 참조하여, 각각의 플러그-인 모듈을 설명한다.
UI 플러그-인(1404)은, 프린터 드라이버(204)가 사용자에게 제공된 인쇄설정 시트 (UI)에 새로운 시트를 추가하는 경우 및 UI 드라이버(1403)에 의해 수행되는 처리와 같은 UI 드라이버(1403)에 인스톨 된 각종의 이벤트 처리가 커스터마이즈(customize) 되는 경우에 사용된다. UI 드라이버(1403)는 시스템에 대하여 익스포트(export) 되는 DDI(DeviceDriverInterface)가 호출될 때, UI 플러그-인(1404)에 의해 공개되는 인터페이스를 취득한다. UI 드라이버(1403)에 의해 취득된 UI 플러그-인(1404)의 인터페이스를 사용하여 UI 플러그-인(1404)과 통신함으로써, UI 드라이버(1403)에 인스톨된 커스터마이즈의 처리(customization processing)가 실행된다.
동시에, 그래픽스 플러그-인(1406)은, GDI(Graphics Device Interface) (1402)와 그래픽스 드라이버(1405)간의 인터페이스인 DDI 처리가 인터셉트되는 경우, 또는 특정 타이밍에 처리가 추가되거나, 인쇄 데이터의 스풀링 처리가 인터셉트 되는 경우에 사용된다. 그래픽스 드라이버(1405)에 의해 익스포트(export)되는 DDI는 작업 생성을 위해 GDI(1402)로부터 적절하게 호출된다. 그 초기화의 타이밍에서, 그래픽스 드라이버(1405)는 그래픽스 플러그-인(1406)에 의해 발행된 인터페이스를 취득하고, 이를 RAM(2) 에 유지한다. DDI가 호출되는 타이밍에서, DDI에 대응하는 그래픽스 플러그-인(1406)의 처리가 획득된 인터페이스를 사용하여 호출된다. 호출된 그래픽스 플러그-인(1406)은 플러그-인에 인스톨된 처리를 실행하며, 처리를 다시 그래픽스 드라이버(1405)에 반환한다.
여기서, 그래픽스 플러그-인(1406)에 의해 처리가 인터셉트되는 경우, DDI는 거기서 처리를 종료하고, 추가의 처리가 인스톨되어 있다면, 그 후속하는 처리를 그대로 계속한다. 그래픽스 드라이버(1405)의 인쇄 데이터 스풀링 처리가 그래픽스 플러그-인(1406)에 의해 인터셉트되는 경우, 그래픽스 드라이버(1405)내에서 인쇄 데이터가 스풀링 되기 직전에 그래픽스 플러그-인(1406)의 인터페이스가 호출된다. 호출된 그래픽스 플러그-인(1406)은 스풀링 되는 데이터를 획득하여, 특정 처리를 수행한 후, 다시 그래픽스 드라이버(1405)의 스풀링 처리기능을 호출하여, 특정 처리된 데이터를 그래픽스 드라이버(1405)로 전달한다. 데이터를 수신한 그래픽스 드라이버(1405)는 실제로 시스템 스풀러(1407)로 데이터를 스풀링하기 위한 처리를 실행한다. 이러한 방법으로, 플러그-인 모듈내에 추가 기능을 탑재함으로써, 프린터 드라이버(204)의 확장 시스템이 달성된다.
다음, 인쇄처리 관련 프로그램(프린터 드라이버)가 호스트 컴퓨터(3000)의 RAM(2)에 로드되어 실행가능하게 된 상태에서의 메모리 맵에 대하여 설명한다. 도 2는 인쇄처리 관련 프로그램(프린터 드라이버)가 호스트 컴퓨터(3000)의 RAM(2)에 로드되어, 실행가능하게 된 상태에서의 메모리 맵의 일례를 나타낸 도면이다. 도 2에 도시된 바와 같이, 어플리케이션(201), 빈 메모리(202), 관련 데이터(203), 인쇄처리 관련 프로그램(이하, 프린터 드라이버라 함)(204), OS(205), 및 BIOS(206)을 포함하는 메모리 맵이 RAM(2)에 형성된다.
또한, 도 3은 추가 기능의 플러그-인 모듈 세트(310)가 프린터 드라이버(204)에 인스톨된 상태의 각각의 모듈의 구성을 나타낸 도면이다. 도 3에 도시된 바와 같이, 플러그-인 세트(310)에, 플러그-인 모듈(309) 및 플러그-인 모듈(309) 독자의 충돌처리 법칙(308)이 공급된다. 또한, 플러그-인이 추가되기 전에는, 프린터 드라이버(204)는 충돌처리 법칙(301), 추론 엔진(inference engine)(302), 충돌 관리자(303), 상태변수 리스트(304), 내부 구조체(305), 및 드라이버 관리부(306)를 포함한다. 덧붙여, 본 일실시예에 있어서, 프린터 드라이버(204)에 추가되는 추가 기능은, 도 8a 및 8b를 참조하여 후술되는 제본 인쇄기능이다. 이는 플러그-인 모듈(309)을 프린터 드라이버(204)와 통합함으로써 달성된다.
참조번호 301은 충돌처리법칙으로서, 플러그-인이 추가되기 전의 프린터 드라이버(204)의 설정값 사이의 부정합을 방지하기 위한 법칙들에 대한 정의를 포함한다. 이와 관련하여, 도 7을 참조하여 충돌처리법칙의 특정예에 대하여 설명한다. 참조번호 303은 충돌 관리자로서, 상태변수 리스트(304)의 데이터와 내부 구조체(305) 양자를 일치시키기 위한 관리를 수행한다. 상태변수 리스트(304)는 인쇄기능들을 정의하는 Group, Staple, 및 Collate 과 같은 상태변수들을 포함한다. 이러한 기능들 (또한 설정항목이라고도 함)은 프린터 드라이버(204)를 통하여 선택되어 기능을 개시하도록 될 수 있다. 또한, 상태변수 리스트(304)는 이러한 프린터 기능들이 온 또는 오프인지를 표시하는 온(ON) 또는 오프(OFF) 값을 갖는다. 또한, 내부 구조체(305)내의 데이터는 프린터 드라이버(204)에 의해 설정될 수 있는 설정항목들(예컨대, group, staple, 및 sort)에 대응하는 변수들인, 멤버(예컨대, cGroup, cStaple, 및 cCollate)와 그 값들(ON=1, OFF=0)이다.
참조번호 302는 추론엔진으로서, 충돌 관리자(303)를 통해 플러그-인의 충돌처리법칙 308 및 충돌처리법칙 301을 판독하여, 충돌체크(설정값이 법칙을 준수하는지 체크)를 수행하고, 그 결과를 충돌 관리자(303)에 반송한다. 종래 기술과는 다르게, 추론 엔진(302)은, 원래의 프린터 드라이버와 호환될 수 있으며 플러그-인 모듈에 제공되는 법칙(예컨대, 충돌처리법칙(308))의 가용성으로 인하여, 충돌 체크를 정확하게 수행할 수 있다. 참조번호 306은 드라이버 관리부로서, 어플리케이션(201)로부터의 인쇄설정요청 등에 응답하여, 초기화 처리 및 인쇄설정을 수행하기 위한 UI의 표시제어 및 프린터 드라이버(204)내의 동작제어를 수행한다. 또한, 드라이버 관리부(306)는 각각의 설정간의 부정합이 발생하지 않도록 충돌관리자(303)에게 충돌처리를 수행하도록 요청한다. 또한, 드라이버 관리부(306)는 플러그-인 모듈(309)과의 데이터 교환을 수행한다.
여기서, 도 3에 도시된 추론엔진(302) 및 충돌 관리자(303)가 상태변수 리스트(304), 내부 구조체(305), 및 충돌처리법칙(301)을 사용하여 어떻게 충돌처리를 수행하는가를 간단한 실례를 이용하여 설명한다. 도 4는 충돌 관리자(303) 및 추론엔진(302)내의 충돌처리의 특정예를 나타내는 도면이다. 이와 관련하여, 도 4에 있어서, 충돌 관리자(303)가 변수 리스트(304) 및 내부 구조체(305)를 이용하고, 추론 엔진(302)이 충돌처리법칙(301)을 이용하고 있는 것을 나타내기 위해서, 충돌 관리자(303)의 프레임 내에 변수 리스트(304) 및 내부 구조체(305)를 기재하고, 추론 엔진(302)의 프레임 내에 충돌처리법칙(301)을 기재하고 있다.
도 4의 구체적인 예에 있어서, 프린터 기능명 A, B, C, ...의 설정에 따른 충돌처리의 일례를 나타내고 있다. 도 4에 도시된 바와 같이, 내부 구조체(305)에는, 프린터 기능명 A, B, C, ...에 대응하는 멤버 int cA, cB, cC, ...와 그 값 0, 1, 0, ...가 저장되어 있다. 충돌 관리자(303)는 그 내부 구조체(305)의 멤버와 그 값을 참조하여, 상태변수 A=OFF, 상태변수 B=ON, 상태변수 C=OFF, ... 를 포함하는 상태변수 리스트(304)를 생성한다. 추론엔진(302)은 이 상태변수 리스트(304)를 참조하며, 따라서 추론엔진(302)내의 프린터 기능명 A, B, C, ... 의 상태값의 초기값은 각각 OFF, ON, OFF, ....로 각각 된다.
또한, 충돌처리법칙(301)이 이하의 법칙을 포함한다고 가정한다.
A(ON) <- B(ON), C(OFF)
이것은, 기능 B가 ON 이고, 기능 C가 OFF 일 때, 기능 A가 ON이 되는 법칙을 정의하는 것이다. 추론엔진(302)은 충돌 관리자(303)를 통하여 충돌처리법칙(301)을 판독한다. 여기서, 추론엔진(302)이 충돌처리법칙(301)을 판독하였다고 가정한다. 초기치가 프린터 기능명 B=ON, 프린터 기능명 C=OFF 이므로, 충돌처리법칙(301)에서 정의된 법칙 A(ON) <- B(ON), C(OFF)가 성립하며, A가 ON이 될 것을 요한다. 따라서, 추론엔진(302)은 좌측의 프린터 기능명 A의 상태변수를 ON으로 변경시킨다. 즉, 추론엔진(302)은 상태변수 리스트(304)의 상태변수를 갱신하여 A=ON 이 되도록 한다.
추론엔진(302)이 충돌 체크의 추론을 완료한 후, 충돌 관리자(303)는 상태변수 A의 변경된 값을 프린터 드라이버(204)의 내부 구조체(305)내의 대응하는 멤버 int cA 상에 반영한다. 즉, 전술한 법칙을 만족시키도록, int cA의 값은 0에서 1로 변경된다. 이상과 같은 처리에 의해, 충돌 관리자(303) 및 추론엔진(302)은 설정간의 부정합이 발생하지 않도록 상태변수 리스트(304)를 갱신한다. 충돌로 인해, 프린터 설정으로서, 예컨대, "Staple" 기능과 예컨대 "Collate" 기능 모두를 동시에 사용할 수 없음을 의미한다. 드라이버 관리부(306)는 이 결과를, UI에 사용하는 내부 구조체(305)의 설정정보(int cA, cB, ...)상에 반영한다.
이와 관련하여, 전술한 충돌처리법칙(301)에서 정의된 법칙은, 간단한 일례이다. 논의되지는 않았지만, 이 법칙들은 전술한 일례와 비교하여 더욱 간단하거나, 더욱 복잡할 수 있다. 충돌처리법칙(301)의 다른 예는 다음과 같다.
(충돌처리법칙 301)
Collate(OFF) <- Group(ON) ... (2)
Collate(OFF) <- Staple (ON) ... (3)
Collate(ON) <- Group(OFF) ... (4)
플러그-인 모듈 셋트(310)의 충돌처리법칙(308)도 마찬가지로 특정의 정의된 법칙을 포함한다. 예컨대, 이하의 법칙이 정의되어 있다.
(충돌처리법칙 308)
Group(OFF) <- Booklet(ON) ...(1)
여기서, Collate는 문서들이 적절한 순서로 소팅되고 순서화되는 소트(sort)기능을 나타내며, Group은 문서들이 단위들로 함께 수집 또는 집합되는 기능을 나타내며, Staple은 문서들이 스테이플링 핀에 의해 함께 체결되는 기능을 나타내며, Booklet은 문서들이 하나의 책으로 함께 묶여지는 제본인쇄기능을 나타낸다.
다음, 본 발명에 따른 호스트 컴퓨터(3000)내의 프린터 드라이버(204)의 UI상에서의 처리에 대하여 설명한다. 프린터 드라이버(204)에 포함된 초기화 처리가 OS(205)의 제어하에서 실행되는 어플리케이션(201)에 의해 호출되는 경우, OS(205)의 제어하에서 RAM(2)으로 프린터 드라이버(204)가 로드된다. RAM(2)에 프린터 드라이버(20)가 로드되는 때, 드라이버 관리부(306)에 포함되는 프린터 드라이버(204)의 초기화 처리부가 호출되고, 초기화 처리가 수행된다.
도 5는 도 3에 도시된 어플리케이션(201)이 프린터 드라이버(204)의 UI를 여는 경우 초기화 처리의 흐름을 나타낸 도면이다. 이와 관련하여, 도 5에 도시된 플러그-인 모듈(309)은 도 3에 도시된 플러그-인에 의해 프린터 드라이버(04)에 통합된다.
먼저, 어플리케이션(201)이 프린터 드라이버(204)에 대하여 프린터 드라이버(204)의 내부 구조체를 저장하기 위한 메모리 영역의 사이즈에 대하여 문의한다(단계 S501). 이에 의해, 프린터 드라이버(204)는 플러그-인 모듈(309)에 대하여 플러그-인 모듈(309)이 필요로 하는 내부 구조체의 데이터 영역의 사이즈을 문의한다(단계 S502). 플러그-인 모듈(309)은 필요한 내부 구조체의 영역의 사이즈(독자 데이터 영역의 사이즈)를 계산하고(단계 S503), 계산된 독자 데이터영역의 사이즈를 프린터 드라이버(204)에 반환한다(단계 S504). 플러그-인 모듈(309)로부터 독자 데이터영역의 사이즈를 취득한 후(단계 S505), 프린터 드라이버(204)는 전술한 단계 S505에서 취득된 플러그-인 모듈(309)의 독자 데이터의 사이즈와 프린터 드라이버(204)에 대한 내부 구조체(305)내의 데이터 영역의 사이즈와의 합을 어플리케이션(201)에 반환한다(단계 S506).
어플리케이션(201)은 프린터 드라이버(204)로부터 반환되는 값을 수신하고(단계 S507), 취득된 사이즈에 대한 메모리 영역을 빈 메모리(202)내에서 확보한다 (단계 S508). 어플리케이션(201)은 전술한 단계 S508에서 확보된 메모리 영역을 프린터 드라이버(204)에 전달하고, 프린터 드라이버(204)의 UI를 열도록 프린터 드라이버(204)에 지시한다(단계 S509). 이 때, 내부 구조체(305)는, 예컨대, 도 6에 도시된 바와 같은, 메모리 맵을 갖는다. 도 6은 프린터 드라이버(204)에 의해 사용되는 내부 구조체(305)의 메모리 맵의 일례를 나타낸 도면이다. 도6에 도시된 바와 같이, 내부 구조체(305)는 퍼블릭 영역(601), 프린터 드라이버(204)에 대한 데이터 영역의 사이즈에 대응하는 드라이버 프라이비트(private) 영역(602), 및 플러그-인 모듈(309)의 독자 데이터 영역의 사이즈에 대응하는 플러그-인 프라이비트 영역(603)을 포함한다. 다음, 단계 S509의 지시에 기초하여, 프린터 드라이버(204)의 인터페이스가 호출된다 (단계 S510).
프린터 드라이버(204)는 플러그-인 모듈(309)에 대하여 플러그-인 모듈(309)에 주어지는 충돌처리법칙(308)의 저장위치를 문의한다 (단계 S511). 이에 의해, 플러그-인 모듈(309)은 플러그-인 모듈(309)의 설정값에 관련된 충돌처리법칙(308)이 기재된 파일의 저장위치를 프린터 드라이버(204)에 반환한다 (단계 S512).
추론엔진(302)은, 플러그-인 모듈(309)에 주어지는 충돌처리법칙(308)을 충돌관리자(303)를 통해 RAM(2)으로 읽어온 후, 충돌처리법칙(301)을 판독한다 (단계 S513).
도 4에 관하여 설명한 바와 같이, 충돌처리법칙들(301 및 308)에 정의된 모든 프린터 기능명에 대하여, 독자 프린터 기능명에 대응하는 상태 변수들 및 그 값들이 상태변수 리스트(304)에 유지된다. 도 4에 도시된 바와 같이, 상태변수 리스트(304)내의 상태변수들의 값들은 프린터 드라이버(204)에 사용되는 내부 구조체(305)의 대응하는 멤버들과 연결된다. 상태변수 리스트(304)내의 모든 상태변수들의 초기값들은 내부 구조체(305)의 멤버들의 값들로 설정된다.
단계 S514에 있어서, 충돌 관리자(303)를 통해 상태변수들의 초기화 처리가 수행된다. 초기화 처리에서는, 내부 구조체(305)를 참조하여, 프린터 드라이버(204)의 상태변수 리스트(304)가 생성된 후, 플러그-인 모듈(309)에 의해 원래 유지되는 상태변수들의 초기화 명령이 플러그-인 모듈(309)로 주어진다(단계 S515). 이에 따라, 플러그-인 모듈(309)이 (본 실시예에서의) 초기화된 상태변수들을 프린터 드라이버(204)로 반환한다 (단계 S516). 프린터 드라이버(204)는 플러그-인 모듈(309)의 상태변수들을 수신하여, 충돌 관리자(303)를 통해서 상태변수 리스트(304)에 변수들을 추가한다 (단계 S517).
다음, 프린터 드라이버(204)는, 도 8a 및 8b에 도시된 바와 같이, 플러그-인 모듈(309)의 독자 설정시트인 설정시트를 표시하기 위하여 플러그-인 독자 설정 시트에 대한 정보를 문의한다(단계 S518). 플러그-인 모듈(309)은 독자 설정 시트를 생성하고 (단계 S519), 생성된 독자 설정 시트 정보를 프린터 드라이버(204)에 반환한다 (단계 S520). 플러그-인 모듈(309)은 독자 설정시트를 생성하고(단계 S519), 생성된 독자 설정시트 정보를 프린터 드라이버(204)에 반환한다 (단계 S520). 이에 따라, 프린터 드라이버(204)는 플러그-인 모듈(309)의 독자 설정시트 정보를 취득한다(단계 S521). 다음, 프린터 드라이버(204)에서, 추론엔진(302)이 충돌 체크를 수행하고, 상태변수 리스트(304)를 갱신하며, 충돌 관리자(303)가 내부 구조체(305)의 갱신과 같은 충돌처리를 수행한다. 설정간의 부정합이 있는 경우에는, 상태변수 리스트(304) 및 내부 구조체(305)를 갱신함으로써 정정이 이루어진다 (단계 S522). 다음, 프린터 드라이버(204)의 설정시트에 더하여, 전술한 단계 S521에서 취득된 플러그-인 모듈(309)의 설정시트가 추가되고, 도 8a에 도시된 바와 같이, UI가 표시된다(단계 S522).
도 8a는 플러그-인이 추가된 후 프린터 드라이버(204)에 의해 사용자에게 제공되는 UI인, 인쇄 설정시트의 일례를 나타낸 도면이다. 도 8a에 도시된 바와 같이, "플러그-인 설정"인 플러그-인 모듈(309)의 설정 시트(80)(탭이 된 시트)가 프린터 드라이버(204)의 원래의 설정시트(페이지 설정, 마무리 처리, 급지, 및 용지품질)에 추가된다. 또한, 설정 시트(80)는 사용자에 의해 제본인쇄기능을 ON/OFF 설정하기 위한 체크 박스(81)을 갖는다. 이와 관련하여, 도 8a의 설정시트(80)에서는, 체크 박스(81)가 체크되지 않기 때문에, 제본인쇄기능이 OFF 상태(상태변수들이 초기값인 상태)이다.
여기서, 사용자는 도 8a의 박스를 체크하여, 도 8b에 도시된 바와 같은 제본기능을 선택한다. 도 8b는 제본인쇄기능이 선택된 것을 표시하기 위해 체크된 박스(81)를 나타낸다. 다음, 제본인쇄기능이 선택되는 경우의 충돌처리를 설명한다. 도 7은 제본인쇄기능이 선택된 경우의 충돌처리를 나타내는 흐름도이다.
먼저, 단계 S701에서, 도 8a의 상태로부터 도 8b의 상태로 체크박스(81)에 대한 사용자의 체크동작에 따라, 내부 구조체(305) 및 상태변수 리스트(304)의 갱신이 수행된다. 다음, 단계 S701에서 UI 조작을 수신함에 따라, 도 5의 단계 S513에서 판독된 플러그-인 모듈(309)의 충돌처리법칙(308)이 적용된다 (단계 S702). 이어서, 프린터 드라이버(204) 본체에 의해 유지되는 충돌처리법칙(301)을 적용하기 위한 처리가 수행된다(단계 S703). 상태변수 리스트(304)의 상태변수들이 충돌처리법칙에 대응하여 갱신된다 (단계 S704).
이와 관련하여, 본 발명에 있어서는, 단계 S513에서 판독된 법칙들의 순서에 따라서, 단계 S702 내지 S703의 처리법칙들의 적용이 수행된다. 또한, 복수의 처리법칙들의 적용순서에 따라 처리법칙들의 우선순위가 결정된다. 본 실시예에 있어서, 충돌처리법칙 308은 충돌처리법칙 301 보다 더 높은 우선순위를 갖는다. 이와 관련하여, 충돌처리법칙 301이 더 높은 우선순위를 가질 필요가 있다면, 충돌처리법칙 301을 적용하는 처리가 먼저 수행된다.
이하, 특정예를 나타내어, 단계 S701 내지 S704에 대하여 설명한다. 예컨대, 내부 구조체(305)가 cCollate, cGroup, cStaple, 및 cBooklet을 프린터 기능들에 대응하는 멤버로서 포함한다고 가정한다. 또한, 단계 S701을 수행하기 바로전 충돌처리법칙들을 적용하기 전의 독자 멤버들의 값들은 이하와 같다.
cCoolate = 0
cGroup = 1
cStapel = 0
cBooklet = 0
상태변수 리스트(304)에 있어서, 독자 멤버들에 대응하는 상태변수들 cCollate, cGroup, cStaple, 및 cBooket는 이하와 같다.
Collate = OFF
Group = ON
Staple = OFF
Booklet = OFF
여기서, 도 9a에 도시된 바와 같이, 소트 기능 무선버튼(91)이 선택되지 않는 반면, 프린터 드라이버(204)에 의해 제공되는 UI인 마무리-터치 설정시트(90)의 그룹기능 무선버튼(92)이 선택된다. 이와 관련하여, 도 8b로 변경되는, 사용자의 조작이 아직 수행되지 않았기 때문에 (단계 S701 이전), 제본기능(Booklet)은 OFF 상태 그대로이다.
다음, 프린터 드라이버(204)는, 단계 S701에 응답하여, 제본인쇄기능을 ON으로 설정하도록 변경하는 요청을 어플리케이션(201)으로부터 수신한다. 이로 인해, 내부 구조체(305)의 멤버(cBooklet)가 0에서 1로 이하에 도시된 바와 같이 갱신된다.
cCollate = 0
cGroup = 1
cStaple = 0
cBooklet = 1
다음, 드라이버 관리부(306)는 충돌관리자(303)를 호출하여, 상태변수 리스트내의 제본(Booklet) 상태변수를 OFF에서 ON으로 갱신한다. 이로 인하여, 상태변수 리스트(304)는 이하와 같이 된다.
Collate = OFF
Group = ON
Staple = OFF
Booklet = ON
이어서, 단계 S702에서, 추론엔진(302)이 호출되어, 충돌처리법칙의 적용이 시작된다. 이하, 다시 앞서 정의된 일실시예의 법칙들 (1), (2), (3), 및 (4)를 참조한다. 간단하게, 이러한 법칙들을 적용함으로써, Booklet이 ON으로 되면, Group이 OFF로 되고, 이는 Collate이 ON인 것을 의미한다. 자세하게는, 먼저, 추론엔진(302)의 각 프린터 기능명이 상태변수 리스트(304)의 각 상태변수에 의해 유지되는 값으로 초기화된다. 이어서, 단계 S513에서 판독된 충돌처리법칙(308)의 법칙중, 예컨대, (1)이 앞서 적용되고, 상태 변수 Group의 상태값이 ON에서 OFF로 변경된다. 이와 관련하여, 법칙들중 예컨대 (1)은, 전술한 바와 같이, Group(OFF) <- Booklet(ON)으로 정의되는 법칙이다.
이로써, 상태변수 리스트(304)의 상태값들은 이하와 같이 갱신된다.
Collate = OFF
Group = OFF
Staple = OFF
Booklet = ON
다음, 단계 S703에서, 충돌처리법칙(301)의 법칙들중 예컨대 (4)가 적용되고, 상태변수 Collate의 상태값이 OFF에서 ON으로 변경된다. 이와 관련하여, 법칙들중 예컨대 (4)는 전술한 바와 같이, Collate(ON) <- Group(OFF)로 정의되는 법칙이다. 충돌처리법칙 301에 적용되어야할 다른 법칙이 없으므로, 추론엔진(302)의 충돌처리법칙의 적용이 완료된다.
이로써, 상태변수 리스트(304)의 상태값들이 이하와 같이 갱신된다 (단계 S704).
Collate = ON
Group = OFF
Staple = OFF
Booklet = ON
전술한 바와 같이, 단계 S701 내지 S703의 처리에 의해 설정시트 UI내의 변경에 기초하여 충돌처리가 수행된다.
도 7의 흐름도로 돌아가서, 단계 S704에서, 충돌처리법칙 301 및 308에 따라 상태변수 리스트(304)가 갱신된 후, 충돌 관리자(303)가 갱신된 상태변수 리스트(304)에 따라 내부 구조체(305)를 갱신한다 (단계 S705). 자세하게는, 멤버들의 값들이 이하와 같이 된다.
cCollate = 1
cGroup = 0
cStaple = 0
cBooklet = 1
다음, 프린터 드라이버(204)가 플러그-인 모듈(309)의 상태변수가 단계 S704에서 갱신되었는지 판정한다 (단계 S706). 여기서, 상태변수가 갱신된 것으로 판정된다면 (단계 S706에서 예), 프린터 드라이버(204)는 플러그-인 모듈(309)을 호출하고, 상태변수들의 변화에 따라 플러그-인 모듈(309)의 독자 설정시트내의 "콘트롤"을 제어한다 (단계 S707). 프린터 드라이버(204)가 플러그-인 모듈(309)의 독자 설정시트내의 "콘트롤"을 갱신하는 경우(단계 S708), 프린터 드라이버(204)로 처리가 되돌아간다. 이로써, 프린터 드라이버(204)는 이하의 단계 S709에서의 처리를 수행한다.
또한, 플러그-인 모듈(309)의 상태변수들이 단계 S706에서 갱신되지 않는 경우 (단계 S706에서 아니오), 단계 S709에서, 프린터 드라이버(204)는 단계 S704에서 갱신된 상태변수들에 따라 프린터 드라이버(204)의 본체내의 설정시트의 "콘트롤"을 제어한다. 다음, 단계 S710에서, 프린터 드라이버(204)는 프린터 드라이버(204) 본체의 설정시트들내의 제어를 수행하는 "콘트롤"을 갱신하고, 충돌처리 및 UI 처리를 완료한다.
이러한 방법으로, 단계 S701 내지 S710의 설정의 변화에 따른 충돌처리의 예에 의해, 충돌처리전의 도 9a로부터 충돌처리법칙들이 적용된 후의 도 9b로, 도시된 바와 같이, 마무리 설정시트(90)가 변경된다. 즉, Group 기능 (내부 구조체의 멤버명이 "Group")의 무선버튼(92)이 "마무리" 설정 시트(90)내에서 원래 선택되고, 그 후, 충돌처리법칙의 적용에 의해, 소트 기능(내부 구조체(305)의 멤버명이 "Collate")의 무선버튼(91)이 ON 상태로 변경되도록 선택된다.
프린터 관리부(306)내에 제공되는 종료처리가 어플리케이션(201)에 의해 호출될 때까지, 전술한 바와 같은 처리가 반복적으로 실행된다. 프린터 드라이버(204)의 종료처리가 어플리케이션(201)에 의해 호출되는 경우, 빈 메모리(202)내에서 생성되는 충돌처리법칙 301 및 308 등의 정보가 삭제되고, 다른 종료처리가 수행된다. 이로써, 모든 처리가 완료되고, 본 발명의 프린터 드라이버(204)의 처리가 완료되고, OS(205)의 기능에 의해 RAM(2)으로부터의 삭제가 수행된다.
전술한 바와 같이, 본 발명에 따른 호스트 컴퓨터(3000)에서는, 플러그-인 모듈(309)이 프린터 드라이버(204)에 통합되는 경우라도, 플러그-인 모듈(309)의 충돌처리법칙(308)을 참조함으로써, 플러그-인이 추가된 후 프린터 드라이버(204)의 설정간에 발생하는 부정합을 방지할 수 있다. 즉, 본 발명에 따른 호스트 컴퓨터(3000)에서는, 플러그-인 형식의 프린터 드라이버에 새로운 기능이 추가되는 환경에서도 정확한 충돌처리를 수행할 수 있다.
이와 관련하여, 본 발명에서는, 프린터 드라이버(204)를 저장하기 위한 매체로 외부 메모리가 사용된다. 그러나, 외부 메모리(11) 대신, FD(flexible disk), HD 드라이브, CD-PROM, IC 메모리 카드, 등이 사용될 수 있다. 또한, 이러한 프린터 드라이버(204) 단독 또는 호스트 컴퓨터(3000)상에서 실행되는 OS(205) 및 기타 프로그램들은 ROM(3)에 저장된 후, 메모리 맵의 일부로서 구성되어, CPU(1)에 의해 직접 실행될 수도 있다.
또한, 전술한 실시예에 있어서, 호스트 컴퓨터(3000)내의 기능들을 달성하기 위한 프로그램들을 메모리(RAM) 및 이러한 기능들을 수행하는 CPU로 로드하기 위한 프로그램들을 읽어 옴으로써 다양한 기능들이 달성될 수 있다. 그러나, 본 발명은 이에 제한되지 않으며, 일부 기능들 또는 모든 처리들이 전용 하드웨어에 의해 달성될 수도 있다. 또한, 전술한 메모리는 자기광학 디스크장치, 플래시 메모리 등과 같은 비휘발성 메모리, CD-ROM 등과 같은 읽기전용 기록매체, RAM 이외의 휘발성 메모리, 또는 이들을 결합한 컴퓨터 읽기/쓰기 가능 기록매체에 의해 구성될 수도 있다.
또한, 호스트 컴퓨터(3000)에서 다양한 처리기능들을 달성하기 위한 프로그램들은 컴퓨터 판독가능 기록매체에 기록될 수 있으며, 이 기록매체에 기록된 프로그램이 컴퓨터 시스템으로 판독되어, 이 프로그램을 실행함으로써 각 처리가 수행될 수도 있다. 이와 관련하여, 여기서 언급되는 "컴퓨터 시스템"은 주변장치 등의 하드웨어, OS를 포함한다.
또한, "컴퓨터 판독가능 기록매체"는 FD, 자기광학 디스크, ROM, CD-ROM, 등의 휴대용 매체, 및 컴퓨터 시스템에 포함되는 하드 디스크와 같은 저장장치를 포함한다. 또한, "컴퓨터 판독가능 기록매체"는 인터넷 등의 네트워크 및 전화선 등의 통신선을 통해 프로그램이 전송되는 경우, 서버 또는 클라이언트가 되는 컴퓨터 시스템의 내부 휘발성 메모리(RAM)과 같이 일정기간동안 프로그램을 유지하기 위한 장치를 포함한다.
또한, 전술한 프로그램은, 전송매체를 통해 저장장치 등에 프로그램을 저장하는 컴퓨터 시스템에서 전송되거나, 전송매체중의 전송파에 의해 다른 컴퓨터 시스템으로 전송될 수도 있다. 여기서, 프로그램을 전송하기 위한 "전송매체"는 예컨대 인터넷 등의 네트워크(통신망), 전화회선 등의 통신회선과 같은 정보전송기능을 갖는 매체를 의미한다. 또한, 전술한 프로그램은 전술한 기능들의 일부를 달성하기 위한 것이도 된다. 또한, 프로그램은 이미 컴퓨터 시스템에 기록된 프로그램과 결합하여 전술한 기능들을 달성할 수도 있다. 즉, 프로그램은 차분(differential) 파일 (차분 프로그램)일 수도 있다.
또한, 전술한 프로그램을 기록하는 컴퓨터 판독가능 기록매체 등의 프로그램 제품이 본 발명의 일실시예에 적용될 수 있다. 전술한 프로그램, 기록매체, 전송매체, 및 프로그램 제품은 본 발명의 범주에 포함된다. 전술한 바와 같이, 도면을 참조하여 본 발명의 실시예들에 대하여 상세하게 설명하였다. 그러나, 본 실시예는 특정구조로 제한되지 않으며, 본 발명의 개념과 범주를 면탈하지 않는 범위의 설계 등도 포함된다.
본 발명이 실시예로 간주되는 것들을 참조하여 설명되었지만, 본 발명은 개시된 실시예들에 제한되지 않는다. 반면, 본 발명은, 첨부된 청구범위의 개념과 범주내에 포함되는 균등한 구성들과 다양한 개조예들을 포함하는 것으로 여겨져야 한다. 이하의 청구범위의 범주는, 그러한 변경예, 균등한 구조 및 기능들 모두를 포괄하도록 최광의의 해석으로 이루어져야 한다.
제2 실시예에서는, 플러그-인 형식으로 바탕무늬(tint-block) 인쇄기능이 확장되는 시스템에 대하여 설명한다. 제2 실시예에 따른 플러그-인의 충돌처리법칙(308)은, 예컨대, 이하에 나타낸 바와 같이, 법칙 (1)의 일례에 대한 정의를 포함한다.
RESOLUTION(600) <- SECUREMARK(ON) ....(1)
여기서, RESOLUTION은 해상도 설정을 표시하며, SECUREMARK는 바탕무늬 인쇄기능을 표시한다. 법칙 (1)은 바탕무늬 인쇄기능이 유효한 경우, 해상도 설정이 600dpi로 제한되는 것을 나타내는 충돌처리법칙이다.
다음, 본 발명에 따른 호스트 컴퓨터(3000)의 프린터 드라이버(204)의 UI상에서의 처리에 대하여 설명한다. 프린터 드라이버(204)에 포함된 초기화 처리가 OS(205)의 제어하에서 실행되는 어플리케이션(201)에 의해 호출되는 경우, OS(205)의 제어하에서 RAM(2)으로 프린터 드라이버(201)가 로드된다. RAM(2)으로 프린터 드라이버(204)가 로드되는 경우, 드라이버 관리부(306)내에 포함되는 프린터 드라이버(204)의 초기화 처리부가 호출되고, 초기화처리가 수행된다. 도 5는,도 3에 도시된 어플리케이션(201)이 프린터 드라이버(204)의 UI를 여는 경우 초기화 처리의 흐름을 나타내는 도면이다. 이와 관련하여, 도 5에 도시된 플러그-인 모듈(309)이, 도 3에 도시된 바와 같이, 플러그-인에 의해 프린터 드라이버(204)에 통합된다.
먼저, 어플리케이션(201)이 프린터 드라이버(204)에 대하여 프린터 드라이버(204)의 내부 구조체를 저장하기 위한 메모리 영역의 사이즈를 문의한다 (단계 S501). 이에 따라, 프린터 드라이버(204)는 플러그-인 모듈(309)에 필요한 내부 구조체의 데이터 영역의 사이즈를 플러그-인 모듈(309)에 문의한다 (단계 S502). 플러그-인 모듈(309)은 필요한 내부 구조체의 영역의 사이즈(독자 데이터 영역의 사이즈)를 계산하고 (단계 S503), 계산된 독자 데이터 영역의 사이즈를 프린터 드라이버(204)에 반환한다 (단계 S504). 플러그-인 모듈(309)로부터 독자 데이터 영역의 사이즈를 취득한 후 (단계 S505), 프린터 드라이버(204)는 어플리케이션(201)에 프린터 드라이버(204)에 필요한 내부 구조체(305)의 데이터 영역의 사이즈와 전술한 단계 S505에서 취득된 플러그-인 모듈의 독자 데이터의 사이즈와의 합을 반환한다 (단계 S506).
어플리케이션(201)은 프린터 드라이버(204)로부터 반환되는 값을 수신하고(단계 S507), 빈 메모리(202)내의 취득된 사이즈를 위한 메모리 영역을 확보한다 (단계 S508). 어플리케이션(201)은 전술한 단계 S508에서 확보된 메모리 영역을 전달하고, 프린터 드라이버(204)에 프린터 드라이버(204)의 UI를 열 것을 지시한다 (단계 S509). 여기서, 내부 구조체(305)는, 예컨대 도 6에 도시된 메모리 맵을 갖는다. 도 6은 프린터 드라이버(204)에 필요한 내부 구조체(305)의 메모리 맵의 일례를 나타낸 도면이다. 도 6에 도시된 바와 같이, 내부 구조체(305)는 퍼블릭 영역(601), 프린터 드라이버(204)에 필요한 데이터 영역의 사이즈에 대응하는 드라이버 프라이비트 영역(602), 및 플러그-인 모듈(309)의 독자 데이터 영역의 사이즈에 대응하는 플러그-인 프라이비트 영역(603)을 포함한다. 다음, 단계 S509의 지시에 기초하여 프린터 드라이버(204)의 인터페이스가 호출된다 (단계 S510).
프린터 드라이버(204)는 플러그-인 모듈(309)에 주어지는 충돌처리법칙(308)의 저장위치를 플러그-인 모듈(309)에 문의한다 (단계 S511). 따라서, 플러그-인 모듈(309)은 프린터 드라이버(204)에 플러그-인 모듈(309)의 설정값에 관련된 충돌처리법칙(308)이 기재되어 있는 파일의 저장위치를 반환한다 (단계 S512).
추론엔진(302)은, 플러그-인 모듈(309)에 주어지는 충돌처리법칙(308)을 충돌 관리자(303)를 통해 RAM(2)으로 읽어 온 후, 충돌처리법칙(301)을 판독한다 (단계 S513).
도 4에 대하여 설명한 바와 같이, 충돌처리법칙 301 및 308에 정의된 프린터 기능명들 모두에 대하여, 독자 프린터 기능명들에 대응하는 상태변수 및 그 값들이 상태변수 리스트(304)로 유지된다. 도 4에 도시된 바와 같이, 상태변수 리스트(304)의 상태변수의 값들은, 프린터 드라이버(204)에서 사용되는 내부 구조체(305)의 대응하는 멤버들과 연관된다. 상태변수 리스트(304)의 모든 상태변수들의 초기값들은 내부 구조체(305)의 멤버들의 값들로 설정된다.
단계 S514에서는, 충돌 관리자(303)를 통해서 상태변수들의 초기화 처리가 수행된다. 초기화 처리에 있어서, 내부 구조체(305)를 참조하여 프린터 드라이버(204)의 상태변수 리스트(304)가 생성되고, 이어서 플러그-인 모듈에 의해 원래 유지되던 상태변수들의 초기화의 지시가 플러그-인 모듈(309)에 주어진다(단계 S515). 따라서, 플러그-인 모듈(309)은 프린터 드라이버(204)에 초기화된 상태변수들(본 실시예에서)을 반환한다. 프린터 드라이버(204)는 플러그-인 모듈(309)의 상태변수들을 수신하고, 충돌 관리자(303)를 통해 상태변수 리스트(304)에 변수들을 추가한다 (단계 S517).
다음, 도 11a 및 11b에 도시된 바와 같이, 플러그-인 모듈(309)의 독자 설정시트인, 설정 시트를 표시하기 위하여, 프린터 드라이버(204)는 플러그-인 독자 설정시트에 대한 정보를 문의한다 (단계 S518). 플러그-인 모듈(309)은 독자 설정시트를 생성하고 (단계 S519), 생성된 독자 설정시트 정보를 프린터 드라이버(204)에 반환한다 (단계 S520). 이에 따라, 프린터 드라이버(204)는 플러그-인 모듈(309)의 독자 설정시트 정보를 취득한다 (단계 S521). 다음, 프린터 드라이버(204)에서, 추론엔진(302)이 충돌체크를 수행하고 상태변수 리스트(304)를 갱신하며, 충돌 관리자(303)는 내부 구조체(305)의 갱신과 같은 충돌처리를 수행한다. 설정간에 부정합이 있다면, 정정이 이루어진다 (단계 S522). 다음, 프린터 드라이버(204)의 설정시트에 더하여, 전술한 단계 S521에서 취득된 플러그-인 모듈(309)의 설정시트가 추가되고, 도 11a에 도시된 바와 같은 UI가 표시된다 (단계 S522).
도 11a는 플러그-인이 추가된 후 프린터 드라이버(204)에 의해 사용자에게 제공되는 UI인, 인쇄설정시트의 일례를 나타낸 도면이다. 도 11a에 도시된 바와 같이, "바탕무늬 인쇄설정"인, 플러그-인 모듈(309)의 설정시트(110)가 프린터 드라이버(204)의 원래의 설정시트들(페이지 설정, 마무리, 급지, 및 용지품질)에 추가된다. 또한, 설정시트(110)는 사용자가 바탕무늬 인쇄기능의 ON/OFF를 설정할 수 있도로 하기 위한 체크박스(111)을 갖는다. 이와 관련하여, 도 11a의, 설정시트(110)에 있어서, 체크박스(111)는 체크되지 않으므로, 바탕무늬 인쇄기능은 OFF 상태에 있다 (상태변수들이 초기값인 상태).
여기서, 도 11a의 설정시트(110)에 있어서, 사용자는 도 11b에 도시된 바와 같이 체크박스(111)에 체크하므로, 바탕무늬 인쇄기능이 ON 된다. 도 11b는 도 11a의 인쇄설정시트의 예에서 바탕무늬 인쇄기능이 ON되는 상태를 나타낸 도면이다. 다음, 플러그-인 기능인 바탕무늬 인쇄기능이 도 11b에 도시된 바와 같이, ON되는 경우의 충돌처리에 대하여 설명한다. 도 7은, 도 11b에 도시된 바와 같이, 플러그-인 기능인 바탕무늬 인쇄기능이 ON으로 변경되는 경우의 충돌처리를 나타낸 흐름도이다.
먼저, 단계 S701에서, 체크박스(111)의 사용자에 의한 체크조작에 따라 내부 구조체(305) 및 상태변수 리스트(304)의 갱신이 도 11a의 상태에서 도 11b의 상태로 이루어진다. 다음, 단계 S701에서 UI 조작을 수신함에 따라, 도 5의 단계 S513에서 판독된 플러그-인 모듈(309)의 충돌처리법칙 308이 적용된다 (단계 S702). 이어서, 프린터 드라이버(204) 본체에 의해 유지되는 충돌처리법칙 301을 적용하는 처리가 수행된다 (단계 S703). 충돌처리에 대응하여 상태변수 리스트(304)의 상태변수들이 갱신된다 (단계 S704).
이와 관련하여, 본 실시예에서는, 단계 S513에서 판독된 법칙들의 순서에 따라서, 단계 S702 내지 S703의 처리법칙들의 적용이 수행된다. 또한, 상기 복수의 처리법칙들의 적용 순서에 따라서 처리법칙들의 우선순위가 결정된다. 본 실시예에 있어서, 충돌처리법칙 308이 충돌처리법칙 301 보다 높은 우선순위를 갖는다. 이와 관련하여, 충돌처리법칙(301)이 더 높은 우선순위를 가질 필요가 있는 경우, 충돌처리법칙 301을 적용하기 위한 처리가 먼저 수행된다.
이하, 특정예들을 나타내어 단계 S701 내지 S704에 대하여 설명한다. 예컨대, 내부 구조체(305)는 프린터 기능에 대응하는 멤버들로서 cResolution 및 cSecureMark를 포함한다. 또한, 단계 S701 바로 전의 충돌처리법칙들을 적용하기 전의 독자 멤버들의 값들은 이하와 같다.
cResolution = 300
cSecureMark = 0
이러한 동작에 의해, 상태변수 리스트(304)에서, 독자 멤버들에 대응하는 상태변수들 Resultion 및 SecureMark, 및 상태값들은 이하와 같이 된다.
Resolution = 300
SecureMark = OFF
이 때, 프린터 드라이버(204)에 의해 제공되는 UI인, 용지품질 설정시트(120)의 상태는, 도 12a에 도시된 바와 같이, 300dpi의 해상도설정 무선버튼이 선택되는 상태에 있다. 이와 관련하여, 도 12b로 변경되는 사용자의 조작이 아직 수행되지 않았으므로 (단계 S701 전), 바탕무늬 인쇄기능은 OFF 상태 그대로이다.
이 상태에서, 프린터 드라이버(204)는 단계 S701에 응답하여 바탕무늬 인쇄기능의 설정을 ON으로 변경하기 위하여 사용자로부터의 변경요청을 수신한다. 이로써, 내부 구조체(305)의 멤버 cSecureMark가 이하에 나타낸 바와 같이 0에서 1로 갱신된다.
cResolution = 300
cSecureMark = 1
다음, 드라이버 관리부(306)는 충돌 관리자(303)를 호출하고, 상태변수 리스트의 Secure 상태변수를 OFF에서 ON으로 갱신한다. 이로써, 상태변수 리스트(304)는 이하와 같이 된다.
Resolution = 300
SecureMark = ON
이어서, 단계 S702에서, 추론엔진이 호출되고, 충돌처리법칙의 적용이 시작된다. 먼저, 추론엔진(302)의 각각의 프린터 기능명들이, 상태변수 리스트(304)의 상태변수들 각각에 의해 유지되는 값으로 초기화된다. 이어서, 단계 S513에서 판독된 충돌처리법칙 308의 법칙들중 예컨대 (1)이 먼저 적용되고, 상태변수 Resulution의 상태변수가 300에서 600으로 변경된다. 이와 관련하여, 법칙들중 예컨대 (1)은 전술한 바와 같이 RESOLUTION(600) <- SECUREMARK(ON)으로 설정된 법칙이다.
이로써, 상태변수 리스트(304)의 상태변수들은 이하와 같이 갱신된다.
Resolution = 600
SecureMark = ON
다음, 단계 S703에서, 충돌처리법칙 301에서 적용되어야 할 법칙이 없으므로, 추론엔진(302)에서 충돌처리법칙의 적용이 완료된다 (단계 S704).
전술한 바와 같이, 단계 S701 내지 S703의 처리에 의해, UI 상에서 수행된 설정의 변화에 따라 충돌처리가 수행된다.
도 7의 흐름도로 돌아가서, 단계 S704에서, 충돌처리법칙 301 및 308에 따라 상태변수 리스트(304)가 갱신된 후, 충돌 관리자(303)는 갱신된 상태변수 리스트(304)에 따라 내부 구조체(305)를 갱신한다 (단계 S705). 자세하게는, 멤버들의 값들은 이하와 같이 된다.
cResolution = 600
cSecureMark = 1
다음, 프린터 드라이버(204)는 단계 S704에서 플러그-인 모듈(309)의 상태변수가 갱신되었는지 판정한다 (단계 S706). 여기서, 상태변수가 갱신된 것으로 판정된다면(단계 S706에서 예), 프린터 드라이버(204)는 플러그-인 모듈(309)을 호출하고, 상태변수들의 변화에 따라 플러그-인 모듈(309)의 독자 설정시트내의 "콘트롤"의 제어를 수행한다 (단계 S707). 프린터 드라이버(204)가 플러그-인 모듈(309)의 독자 설정시트내의 "콘트롤"을 갱신하는 경우(단계 S708), 프린터 드라이버(204)로 처리가 되돌아간다. 이로써, 프린터 드라이버(204)는 이하에 나타낸 단계 S709의 처리를 수행한다.
또한, 플러그-인 모듈(309)의 상태변수들이 단계 S706에서 갱신되지 않는 경우 (단계 S706에서 아니오), 단계 S709에서, 프린터 드라이버(204)는 단계 S704에서 갱신된 상태변수들에 따라 프린터 드라이버(204)의 본체내의 설정시트들의 "콘트롤"의 제어를 수행한다. 다음, 단계 S710에서, 프린터 드라이버(204)는 프린터 드라이버(204) 본체내의 설정시트들의 제어를 수행하는 "콘트롤"을 갱신하고, 충돌처리 및 UI 처리를 수행한다.
전술한 바와 같이, 단계 S701 및 S710에 도시된 설정 변화에 따른 충돌처리의 일례에 의해, 충돌처리법칙을 적용하기 전의 도 12a에 도시된 상태로부터 충돌처리법칙을 적용한 후의 도 12b에 도시된 상태로 인쇄품질 설정시트(120)가 변화된다. 즉, 해상도(내부 구조체의 멤버명은 "Resolution")의 무선버튼(121)에 의해 원래 300dpi가 선택되고, 그 후, 충돌처리법칙의 적용에 의해, 무선버튼(121)에 의해 600dpi가 선택되는 상태로 변화가 이루어진다.
전술한 처리는 프린터 드라이버 관리부(306)에 제공되는 종료처리가 어플리케이션(201)에 의해 호출될 때까지 반복적으로 실행된다. 프린터 드라이버(204)의 종료처리가 어플리케이션(201)에 의해 호출되는 경우, 빈 메모리(202)내에 생성된 충돌처리법칙 301 및 308 등의 정보가 삭제되고, 다른 종료처리가 수행된다. 이로써, 모든 처리가 완료되며, 본 발명의 프린터 드라이버(204)의 처리가 완료되고, OS(205)의 기능에 의해 RAM(2)으로부터의 삭제가 수행된다.
전술한 바와 같이, 본 발명에 따른 호스트 컴퓨터(3000)에서는, 플러그-인 모듈(309)이 프린터 드라이버(204)에 통합되는 경우라도, 플러그-인 모듈(309)의 충돌처리법칙(308)을 참조함으로써, 플러그-인이 추가된 후 프린터 드라이버(204)의 설정간에 부정합이 발생하는 것을 방지할 수 있다. 즉, 본 발명에 따른 호스트 컴퓨터(3000)에서는, 플러그-인 형식으로 프린터에 새로운 기능이 추가되는 환경일지라도 정확한 충돌처리를 수행할 수 있다.
이와 관련하여, 본 실시예에서는, 프린터 드라이버(204)를 저장하기 위한 매체로서 외부 메모리가 사용된다. 그러나, 외부 메모리(11) 대신, FD(flexible disk), HD 드라이브, CD-ROM, IC 메모리 카드, 등이 사용될 수 있다. 또한, 이러한 프린터 드라이버(204)는 그 자체 또는 호스트 컴퓨터(3000)상에서 수행되는 OS(205) 및 기타 프로그램과 함께 ROM(3)에 기록된 후, 메모리 맵의 일부로 구성될 수 있으며, CPU(1)에 의해 바로 실행될 수도 있다.
또한, 전술한 실시예에서, 호스트 컴퓨터(3000)내의 기능을 실현하는 프로그램들을 메모리(RAM)으로 읽어 와, CPU가 이 기능들을 실행함으로써, 각종 기능들이 달성될 수 있다. 그러나, 본 발명은 이에 한하지 않으며, 이 기능들 일부 또는 전부의 처리가 전용 하드웨어에 의해 달성될 수도 있다. 또한, 전술한 메모리는 자기광학 디스크장치, 플래시 메모리, 등의 비휘발성 메모리, CD-ROM 등의 읽기전용 기록매체, RAM 이외의 휘발성 메모리, 또는 이들을 결합한 컴퓨터 판독/기입 가능 기록매체로 구성될 수 있다.
또한, 호스트 컴퓨터(3000)에서 각종 처리기능들을 달성하기 위한 프로그램이 컴퓨터 판독가능 기록매체로 기록될 수 있으며, 이 기록매체에 기록된 프로그램이 컴퓨터 시스템으로 읽어 올 수도 있으며, 이 프로그램을 실행함으로써 각각의 처리가 수행될 수도 있다. 이와 관련하여, 본 명세서에서 언급되는 "컴퓨터 시스템"은 OS, 주변기기와 같은 하드웨어, 등을 포함한다.
또한, "컴퓨터 판독가능 기록매체"는 FD(flexible disk), 자기광학 디스크, ROM, CD-ROM, 등의 휴대용 매체, 및 컴퓨터 시스템에 포함되는 하드디스크와 같은 저장장치를 포함한다. 또한, "컴퓨터 판독가능 기록매체"는, 인터넷 등의 네트워크 및 전화선 등의 통신선을 통해 프로그램이 전송되는 경우, 서버 또는 클라이언트가 되는 컴퓨터 시스템의 내부 휘발성 메모리(RAM)와 같이 일정기간 동안 프로그램을 유지하기 위한 장치를 포함한다.
또한, 전술한 프로그램은, 전송매체를 통해 저장장치 등에 프로그램을 저장하는 컴퓨터 시스템에서 전송되거나, 전송매체중의 전송파에 의해 다른 컴퓨터 시스템으로 전송될 수도 있다. 여기서, 프로그램을 전송하기 위한 "전송매체"는 인터넷 등의 네트워크(통신망), 전화회선 등의 통신회선과 같은 정보전송기능을 갖는 매체를 의미한다. 또한, 전술한 프로그램은 전술한 기능들의 일부를 달성하기 위한 것이도 된다. 또한, 프로그램은 이미 컴퓨터 시스템에 기록된 프로그램과 결합하여 전술한 기능들을 달성할 수도 있다. 즉, 프로그램은 차분 파일 (차분 프로그램)일 수도 있다.
또한, 전술한 프로그램을 기록하는 컴퓨터 판독가능 기록매체 등의 프로그램 제품이 본 발명의 일실시예에 적용될 수 있다. 전술한 프로그램, 기록매체, 전송매체, 및 프로그램 제품은 본 발명의 범주에 포함된다. 전술한 바와 같이, 도면을 참조하여 본 발명의 실시예들에 대하여 상세하게 설명하였다. 그러나, 본 실시예는 특정구조로 제한되지 않으며, 본 발명의 개념과 범주를 면탈하지 않는 범위의 설계 등도 포함된다.
본 발명이 실시예로 간주되는 것들을 참조하여 설명되었지만, 본 발명은 개시된 실시예들에 제한되지 않는다. 반면, 본 발명은, 첨부된 청구범위의 개념과 범주내에 포함되는 균등한 구성들과 다양한 개조예들을 포함하는 것으로 여겨져야 한다. 이하의 청구범위의 범주는, 그러한 변경예, 균등한 구조 및 기능들 모두를 포괄하도록 최광의의 해석으로 이루어져야 한다.
이상과 같이, 본 발명에 따른 정보처리장치, 인쇄제어방법, 및 그 프로그램은, 인쇄처리관련 프로그램(프린터 드라이버)에 플러그-인 형식으로 새로운 기능을 추가한 환경하에서도 정확한 충돌처리를 실행한다.
도 1은 본 발명의 일실시예에 따른 호스트 컴퓨터(정보처리장치)를 포함하는 인쇄처리 시스템의 개략구성을 나타낸 블록도.
도 2는 인쇄처리 관련 프로그램(프린터 드라이버)이 호스트 컴퓨터(3000)상의 RAM(2)에 로드되어 실행가능하게 된 상태의 메모리 맵의 일례를 나타낸 도면.
도 3은 추가의 플러그-인 모듈 세트(310)가 장착되는 경우의 다양한 프린터 드라이버(204)의 모듈들간의 관계를 나타낸 도면.
도 4는 충돌 관리자(303) 및 추론엔진(302)에서의 충돌 처리의 특정예를 나타낸 도면.
도 5는 도 3에 도시된 어플리케이션(201)이 프린터 드라이버(204)의 UI를 개방시키는 경우의 초기화 처리의 흐름을 나타낸 도면.
도 6은 프린터 드라이버(204)에 의해 사용될 수 있는 내부 구조(305)의 메모리 맵의 일례를 나타낸 도면.
도 7은 제본 인쇄기능이 선택되는 경우의 충돌처리를 나타낸 흐름도.
도 8a 및 8b는 본 발명의 일실시예에 따른 플러그-인 모듈의 제본 인쇄기능과 같은 기능의 추가를 보여주는 설정시트를 나타낸 도면.
도 9a 및 9b는 프린터 드라이버(204)의 UI인 마무리 터치 설정시트의 일례를 나타낸 도면.
도 10은 프린터 드라이버(204)의 확장시스템의 일례를 나타낸 도면.
도 11a는 프린터 드라이버(204)의 확장시스템의 일례를 나타내는 다이얼로그의 일례를 나타낸 도면.
도 11b는 프린터 드라이버(204)의 확장시스템의 일례를 나타내는 다이얼로그의 일례를 나타낸 도면.
도 12a는 프린터 드라이버(204)의 확장시스템의 일례를 나타내는 다이얼로그의 일례를 나타낸 도면.
도 12b는 프린터 드라이버(204)의 확장시스템의 일례를 나타내는 다이얼로그의 일례를 나타낸 도면.

Claims (13)

  1. 인쇄처리관련 프로그램의 기능에 추가기능이 더 추가될 수 있는 정보처리장치이며,
    상기 인쇄처리관련 프로그램의 둘 이상의 기능의 설정들간에 성립하는 의존관계에 따라 정해지는 제1 충돌처리법칙을 저장하는 제1 법칙 저장수단;
    상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정들간에 성립하는 의존관계에 따라 정해지는 제2 충돌처리법칙을 저장하는 제2 법칙 저장수단; 및
    상기 제1 법칙 저장수단 및 상기 제2 법칙 저장수단에서부터 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정들이 서로 충돌하지 않도록 설정조정처리를 수행하는 설정조정수단
    을 구비하는 것을 특징으로 하는 정보처리장치.
  2. 제1항에 있어서,
    상기 추가기능이 추가되는 경우에, 상기 제2 충돌처리법칙이 상기 제2 법칙 저장수단에 저장되어 있는지 여부를 확인하는 확인수단을 더 구비하는 것을 특징으로 하는 정보처리장치.
  3. 제1항에 있어서,
    상기 설정조정수단은 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 우선순위가 높은 것부터 순서대로 적용하여, 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정들간에 충돌이 발생하지 않도록 설정의 조정처리를 수행하는 것을 특징으로 하는 정보처리장치.
  4. 제1항에 있어서,
    각종 정보를 표시하는 표시수단; 및
    사용자가 시각적으로 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정상태를 확인할 수 있도록 설정상태화면을 상기 표시수단에 표시하는 화면표시수단을 더 구비하며,
    상기 화면표시수단에 의해 상기 표시수단에 표시되는 상기 설정상태화면은, 상기 설정조정수단에 의해 설정의 조정처리후의 설정상태를 나타내는 것을 특징으로 하는 정보처리장치.
  5. 제4항에 있어서,
    상기 화면표시수단에 의해 상기 표시수단에 표시되는 상기 설정상태화면에 있어서, 상기 인쇄처리관련 프로그램의 기능 또는 상기 추가기능 각각의 설정은 사용자의 조작에 의해 변경가능하며, 사용자가 하나 또는 복수의 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정을 변경한 경우, 상기 설정조정수단은, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여, 변경후의 인쇄처리관련 프로그램의 기능과 추가기능의 설정이 충돌하지 않도록 설정의 조정처리를 수행하는 것을 특징으로 하는 정보처리장치.
  6. 인쇄처리관련 프로그램에 의해 실현가능한 기능에 추가기능을 더 부여할 수 있는 정보처리장치를 이용한 인쇄제어방법이며,
    상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정에 관한 설정정보를 취득하는 제1 단계; 및
    상기 인쇄처리관련 프로그램의 둘 이상의 기능의 설정들간에 성립하는 의존관계에 따라 정해진 제1 충돌처리법칙을 저장하는 제1 법칙저장수단 및 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정들간에 성립하는 의존관계에 따라 정해진 제2 충돌처리법칙을 저장하는 제2 법칙저장수단으로부터 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여 상기 제1 단계에서 취득된 상기 설정정보를 참조함으로써 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정들이 서로 충돌하지 않도록 설정의 조정처리를 수행하는 제2 단계
    를 포함하는 것을 특징으로 하는 인쇄제어방법.
  7. 제6항에 있어서,
    상기 추가기능이 추가되는 경우, 상기 제2 충돌처리법칙이 상기 제2 법칙저장수단에 저장되어 있는지 여부를 확인하는 확인 단계를 더 구비하는 것을 특징으로 하는 인쇄제어방법.
  8. 제6항에 있어서,
    상기 제2 단계는, 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 상기 제1 단계에서 취득된 상기 설정정보를 참조하여, 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 우선순위가 높은 것으로부터 순서대로 적용하여, 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 두 개의 설정들간에 부정합이 생기지 않도록 설정의 조정처리를 수행하는 것을 특징으로 하는 인쇄제어방법.
  9. 제6항에 있어서,
    상기 정보처리장치가 표시수단을 구비하는 경우, 사용자가 시각적으로 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정상태를 확인할 수 있도록 하는 설정상태화면을 상기 표시수단에 표시하는 화면표시단계를 더 포함하며,
    상기 화면표시단계에서 상기 표시수단에 표시되는 상기 설정상태화면은, 상기 제2 단계에 의해 설정의 조정처리후의 설정상태를 나타내는 것을 특징으로 하는 인쇄제어방법.
  10. 제9항에 있어서,
    상기 화면표시단계에서 상기 표시수단에 표시되는 상기 설정상태화면에 있어서, 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능 각각의 설정은 사용자의 조작에 의해 변경될 수 있으며,
    이용자가 하나 또는 복수의 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정을 변경한 경우, 상기 제1 법칙저장수단 및 상기 제2 법칙저장수단으로부터 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여 변경후의 인쇄처리관련 프로그램의 기능 및 추가기능의 두 개의 설정들간에 부정합이 발생하지 않도록 설정의 조정처리를 수행하는 변경후 조정단계를 더 포함하는 것을 특징으로 하는 인쇄제어방법.
  11. 인쇄처리관련 프로그램에 의해 실행가능한 기능에 추가기능이 더 추가될 수 있는 정보처리장치를 사용하여 인쇄제어방법을 제어하는 제어 프로그램이며,
    상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 설정에 관한 설정정보를 취득하는 제1 단계; 및
    상기 인쇄처리관련 프로그램의 둘 이상의 기능의 설정들간에 성립하는 의존관계에 따라 설정된 제1 충돌처리법칙을 저장하는 제1 법칙저장수단 및 상기 인쇄처리관련 프로그램의 기능과 상기 추가기능의 설정들간에 성립하는 의존관계에 따라 정해진 제2 충돌처리법칙을 저장하는 제2 법칙저장수단으로부터 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 판독하고, 판독된 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여 상기 제1 단계에서 취득된 상기 설정정보를 참조함으로써 상기 인쇄처리관련 프로그램의 기능 및 상기 추가기능의 두 개의 설정간에 부정합이 일어나지 않도록 설정의 조정처리를 수행하는 제2 단계
    를 포함하는 것을 특징으로 하는 인쇄제어방법을 컴퓨터에서 실행하는 제어 프로그램.
  12. 컴퓨터 시스템내의 인쇄에 사용되는 프린터 드라이버의 기능에 추가기능을 추가하여 인쇄하는 방법이며,
    상기 프린터 드라이버 기능 및 상기 추가기능의 설정을 취득하는 단계;
    상기 인쇄처리관련 프로그램의 둘 이상의 기능의 설정들간에 성립하는 관계에 따라 결정되는 제1 충돌처리법칙을 제공하는 단계;
    상기 인쇄처리관련 프로그램과 상기 추가기능의 설정들간에 성립하는 의존관계에 따라 결정되는 제2 충돌처리법칙을 제공하는 단계;
    상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙에 기초하여, 상기 프린터 드라이버 기능 및 추가기능의 설정이 충돌하는지 판정하는 단계; 및
    상기 판정결과 상기 프린터 드라이버의 기능과 상기 추가기능의 설정이 충돌한다면, 상기 제1 충돌처리법칙 및 상기 제2 충돌처리법칙을 적용하여, 서로 충돌하지 않도록 상기 프린터 드라이버의 기능과 상기 추가기능의 설정을 조정하는 단계를 포함하는 것을 특징으로 하는 인쇄방법.
  13. 제12항에 있어서,
    상기 설정을 조정하는 단계는,
    상기 조정된 설정이 서로 충돌하지 않도록, 우선순위가 높은 순서로, 상기 제1 충돌처리법칙과 상기 제2 충돌처리법칙을 적용하는 단계를 포함하는 것을 특징으로 하는 인쇄방법.
KR1020040099131A 2003-12-02 2004-11-30 정보처리장치 및 인쇄제어방법 KR100704811B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003403558 2003-12-02
JPJP-P-2003-00403558 2003-12-02
JP2004336381A JP4481800B2 (ja) 2003-12-02 2004-11-19 情報処理装置、情報処理方法及びプログラム
JPJP-P-2004-00336381 2004-11-19

Publications (2)

Publication Number Publication Date
KR20050053323A true KR20050053323A (ko) 2005-06-08
KR100704811B1 KR100704811B1 (ko) 2007-04-10

Family

ID=34467840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040099131A KR100704811B1 (ko) 2003-12-02 2004-11-30 정보처리장치 및 인쇄제어방법

Country Status (5)

Country Link
US (1) US8243297B2 (ko)
EP (1) EP1538522A3 (ko)
JP (1) JP4481800B2 (ko)
KR (1) KR100704811B1 (ko)
CN (1) CN1323349C (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4574344B2 (ja) 2004-01-20 2010-11-04 キヤノン株式会社 情報処理装置及び方法
JP4438064B2 (ja) * 2004-11-15 2010-03-24 キヤノン株式会社 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP4661465B2 (ja) * 2005-09-06 2011-03-30 富士ゼロックス株式会社 制御装置
JP4754373B2 (ja) * 2006-03-15 2011-08-24 株式会社リコー 画像形成装置、画像形成方法、その方法をコンピュータに実行させるプログラム
US20080158585A1 (en) * 2006-12-27 2008-07-03 Seiko Epson Corporation Apparatus, method, program for supporting printing, system, method, and program for printing, and recording medium
JP4974767B2 (ja) * 2007-06-01 2012-07-11 キヤノン株式会社 印刷システム及び印刷制限方法、並びにプログラム
JP5089464B2 (ja) 2008-04-02 2012-12-05 キヤノン株式会社 管理装置、管理方法、及びプログラム
JP5063504B2 (ja) * 2008-06-20 2012-10-31 キヤノン株式会社 情報処理装置、情報処理方法、制御プログラム
JP5094627B2 (ja) 2008-08-08 2012-12-12 キヤノン株式会社 情報処理装置、方法、制御プログラム
JP5446625B2 (ja) 2009-09-07 2014-03-19 株式会社リコー プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
US8891111B2 (en) 2010-12-13 2014-11-18 Microsoft Corporation Adaptable printer driver
US8904048B2 (en) 2011-09-08 2014-12-02 Microsoft Corporation Bidi extension for connected devices
JP5900146B2 (ja) * 2012-05-16 2016-04-06 コニカミノルタ株式会社 制御装置、プリンタードライバープログラム、および設定方法
JP6330361B2 (ja) * 2013-03-27 2018-05-30 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷システム
JP6385265B2 (ja) * 2014-12-09 2018-09-05 キヤノン株式会社 情報処理装置、制御方法及びプログラム
US9760316B2 (en) * 2015-03-27 2017-09-12 Konica Minolta Laboratory U.S.A., Inc. Method and system for managing software version compatibility amongst devices in a multi-device network environment
JP6604834B2 (ja) * 2015-12-04 2019-11-13 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
JP7006301B2 (ja) * 2018-01-23 2022-01-24 ブラザー工業株式会社 制御プログラム及びプログラム群
JP6598946B2 (ja) * 2018-08-08 2019-10-30 キヤノン株式会社 情報処理装置、制御方法及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500715A (en) * 1994-06-03 1996-03-19 Xerox Corporation Print job handling menu selection apparatus and method
JP2000242597A (ja) * 1999-02-18 2000-09-08 Canon Inc デバイス装置に対する出力設定を行う情報処理装置、情報処理方法及びプログラムを格納した記憶媒体
JP2001075758A (ja) * 1999-09-02 2001-03-23 Ricoh Co Ltd プリンタドライバを備えたホスト装置及びプリンタシステム
JP2002108580A (ja) 2000-09-26 2002-04-12 Canon Inc 情報処理装置、印刷システム、及びモジュール決定方法
EP1211594A3 (en) * 2000-11-30 2006-05-24 Canon Kabushiki Kaisha Apparatus and method for controlling user interface
JP3833067B2 (ja) * 2000-12-28 2006-10-11 キヤノン株式会社 ユーザインタフェース制御装置および方法ならびに記憶媒体
JP3814479B2 (ja) * 2000-12-22 2006-08-30 キヤノン株式会社 情報処理装置及び情報処理方法、画像形成装置、記憶媒体
JP3733290B2 (ja) * 2000-12-28 2006-01-11 キヤノン株式会社 印刷制御装置および印刷制御方法および記憶媒体
JP4458219B2 (ja) * 2001-03-28 2010-04-28 セイコーエプソン株式会社 印刷システムおよび印刷制御プログラム
US7218976B2 (en) 2001-04-27 2007-05-15 Canon Kabushiki Kaisha User interface control apparatus and method
JP3747175B2 (ja) * 2001-11-30 2006-02-22 キヤノン株式会社 印刷制御装置及び方法
US7284246B2 (en) * 2002-04-23 2007-10-16 Canon Kabushiki Kaisha Extensible device driver
JP2004102618A (ja) * 2002-09-09 2004-04-02 Canon Inc 印刷制御装置及び方法、コンピュータプログラム、コンピュータ読み取り可能な記憶媒体、プレビュー装置及び方法、プリンタドライバ及びそのプレビュー方法
US7296235B2 (en) * 2002-10-10 2007-11-13 Sun Microsystems, Inc. Plugin architecture for extending polices

Also Published As

Publication number Publication date
KR100704811B1 (ko) 2007-04-10
US8243297B2 (en) 2012-08-14
US20050117180A1 (en) 2005-06-02
JP4481800B2 (ja) 2010-06-16
EP1538522A2 (en) 2005-06-08
CN1624648A (zh) 2005-06-08
CN1323349C (zh) 2007-06-27
JP2005190467A (ja) 2005-07-14
EP1538522A3 (en) 2009-04-01

Similar Documents

Publication Publication Date Title
KR100704811B1 (ko) 정보처리장치 및 인쇄제어방법
US11042336B2 (en) Information processing apparatus and method
US8947688B2 (en) Print control with interfaces provided in correspondence with printing methods to show status of member printers
US7218976B2 (en) User interface control apparatus and method
US7903272B2 (en) Data processing apparatus, print setting adjusting method, recording medium storing computer-readable program therein, and program
US7808666B2 (en) Data processing device, print setting processing method, storage device for storing computer-readable program and program
US7287253B2 (en) Installation of device software and formulation of unique identification information based on time information
US20050165979A1 (en) Peripheral device control method, control program, and apparatus therefor
US8605316B2 (en) Information processing apparatus and control method thereof, and storage medium
US7920803B2 (en) Information processing apparatus and control method thereof, computer program and image forming system
JP4590341B2 (ja) データ処理装置および設定処理方法および情報処理装置および制御プログラム
US20130258377A1 (en) Printer control system, printing method, and storage medium
JP2001038978A (ja) 印刷制御装置及び印刷制御方法
JP2002014797A (ja) 情報処理装置、印刷制御装置、およびその制御方法、および記憶媒体、およびその制御プログラム
JP3833067B2 (ja) ユーザインタフェース制御装置および方法ならびに記憶媒体
JP3780109B2 (ja) 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラムを格納したコンピュータ読取可能な記憶媒体
JP4154415B2 (ja) 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラムを格納したコンピュータ読取可能な記憶媒体
JP4054544B2 (ja) 情報処理装置、情報処理方法、印刷制御プログラム、印刷処理装置、印刷処理方法及び印刷処理プログラム
JPH10305631A (ja) 印刷制御装置および方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130320

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170324

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180326

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190403

Year of fee payment: 13