KR20120124040A - 정보 처리 장치, 정보 처리 방법 및 저장 매체 - Google Patents

정보 처리 장치, 정보 처리 방법 및 저장 매체 Download PDF

Info

Publication number
KR20120124040A
KR20120124040A KR1020120045208A KR20120045208A KR20120124040A KR 20120124040 A KR20120124040 A KR 20120124040A KR 1020120045208 A KR1020120045208 A KR 1020120045208A KR 20120045208 A KR20120045208 A KR 20120045208A KR 20120124040 A KR20120124040 A KR 20120124040A
Authority
KR
South Korea
Prior art keywords
application
user interface
printer driver
identifier
printer
Prior art date
Application number
KR1020120045208A
Other languages
English (en)
Other versions
KR101452572B1 (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 KR20120124040A publication Critical patent/KR20120124040A/ko
Application granted granted Critical
Publication of KR101452572B1 publication Critical patent/KR101452572B1/ko

Links

Images

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
    • G06F3/1201Dedicated interfaces to print systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/1211Improving printing performance
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • 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/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

프린터 드라이버와 진보된 UI 어플리케이션이 설치시에 서로 연관되고, 프린터 드라이버가 호출되는 경우에, COM을 이용해서 진보된 UI 어플리케이션이 다른 프로세스로 기동된다.

Description

정보 처리 장치, 정보 처리 방법 및 저장 매체 {INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND STORAGE MEDIUM}
본 발명은, 어플리케이션에 의해 실행되는 프로세스와는 다른 프로세스에서, 프린터 드라이버의 유저 인터페이스가 기동되는 정보 처리 장치, 정보 처리 방법 및 저장 매체에 관한 것이다.
프린터 드라이버는 상세한 인쇄 설정을 행하기 위해 전용의 유저 인터페이스를 갖는다. 어플리케이션은 운영 체제를 통해 프린터 드라이버의 유저 인터페이스를 표시하지만, 프린터 드라이버는 어플리케이션에 의해 실행되는 프로세스 내에서 로드된다.
유저 인터페이스는 어플리케이션에 의해 실행되는 프로세스와 동일한 프로세스에서 표시된다. 따라서, 인쇄 설정 데이터의 상호 통신이 용이하다. 어플리케이션의 조작을 중지시키기 위한 모달 다이얼로그(modal dialog)가 유저 인터페이스의 조작 중에 행해진다.
어플리케이션과 프린터 드라이버가 일체화되어 취급될 수 있다는 것이 동일 프로세스 실행의 이점이다. 프린터 드라이버의 유저 인터페이스가 결함을 가져 크래쉬되면, 어플리케이션에 의해 실행된 프로세스와 동일한 프로세스가 실행되므로, 어플리케이션도 유저 인터페이스 크래쉬에 포함된다.
샌드박스(sandbox)라 칭해지는, 프린터 드라이버와 어플리케이션을 다른 프로세스에서 동작시키기 위한 시스템이 동일 프로세스의 문제점에 대처하기 위해 존재한다. 복수의 웹페이지를 동시에 브라우징할 수 있는 탭을 갖고 탭들을 다른 프로세스에서 동작시키는 브라우저와, 파일이 열릴 때마다 다른 프로세스에서 기동되는 어플리케이션이 알려져 있다.
일본 특허 제4661939호는, 다른 프로세스에서 어플리케이션의 묘화 데이터를 프린터 언어로 변환하도록 구성된 렌더링 유닛을 설정하고, 디바이스와 양방향 통신을 수행하여 다른 프로세스에서 상태를 연속적으로 감시하기 위한 어플리케이션을 기동시키는 프린터 드라이버를 개시한다.
그러나, 프린터 드라이버의 유저 인터페이스를 다른 프로세스에서 기동하는 대책은, 운영 체제가 베이스로서 유저 인터페이스를 구축하고 프린터 드라이버를 그 베이스에 추가하기 때문에 곤란하다.
일본 특허 출원 공개 제11-143664호는, 어플리케이션이 프린터 드라이버의 유저 인터페이스를 호출할 때에 다른 서비스를 기동하고, 다른 서비스에 의해 프린터 드라이버의 유저 인터페이스를 표시하기 위한 방법을 개시한다. 또한, 프린터 드라이버의 유저 인터페이스를 더미(dummy)로서의 유저 인터페이스를 연 직후에 닫고, 그 후에 다른 프로세스를 기동하기 위한 방법이 알려져 있다.
하지만, 어플리케이션에 의해 다른 서비스를 기동하기 위한 방법에서는, 모든 어플리케이션이 이러한 호출 방법에 대처하도록 변경을 가하는 것이 요구된다. 또한, 더미 유저 인터페이스를 열기 위한 방법은, 유저 인터페이스를 한번 닫기 위한 추가적인 동작을 포함하므로, 유저에게 번거롭다.
또한, 운영 체제가 유저 인터페이스를 제공하고, 그 후에 프린터 드라이버가 유저 인터페이스를 시트로서 추가하면, 그 운영 체제는 올바르게 동작하지 않는다.
본 발명의 양태에 따르면, 유저 인터페이스 어플리케이션이 설치되는 경우에, 유저 인터페이스 어플리케이션의 패스와 식별자를 저장하도록 구성된 데이터베이스를 이용하는 정보 처리 장치이며, 프린터 드라이버가 설치되는 경우에, 프린터 드라이버의 셋업 파일로부터 유저 인터페이스 어플리케이션의 식별자를 취득하도록 구성된 취득 수단, 데이터베이스에서, 설치될 프린터 드라이버의 모델과 연관된 드라이버 정보에 상기 취득 수단에 의해 취득된 식별자를 추가하도록 구성된 추가 수단, 어플리케이션이 프린터 드라이버의 유저 인터페이스를 표시하라는 지시를 수행한 경우에, 데이터베이스에서, 어느 프린터 드라이버가 사용될 것인지를 지정하기 위한 모델 정보와 연관된 드라이버 정보에 식별자가 등록되었는지 여부를 판정하도록 구성된 판정 수단, 상기 판정 수단이, 식별자가 데이터베이스에 등록된 것으로 판정한 경우에, 식별자를 이용하여 유저 인터페이스 어플리케이션의 패스를 취득하도록 구성된 취득 수단, 및 유저 인터페이스 어플리케이션을 어플리케이션 프로세스와는 다른 프로세스로 기동하도록 구성된 기동 수단을 포함하는, 정보 처리 장치가 제공된다.
본 발명의 추가적인 특징 및 양태는 첨부 도면을 참조하여 후술하는 실시예의 상세한 설명으로부터 명백해질 것이다.
본 명세서의 일부를 구성하고 이에 통합되는 첨부 도면은 본 발명의 실시예, 특징 및 양태를 예시하고, 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템의 하드웨어와 소프트웨어의 블록 구성도.
도 2는 본 발명의 실시예에 따른 클라이언트, 서버 및 프린터가 접속된 네트워크의 구성도.
도 3은 본 발명의 실시예에 따른 일반적인 컴퓨터를 이용한 인쇄 처리 시스템의 블록 구성도.
도 4는 본 발명의 실시예에 따른 XPS 인쇄 처리 시스템의 블록 구성도.
도 5는 본 발명의 실시예에 따른 인쇄 설정으로서의 디바이스 모듈(DEVMODE) 구조체의 데이터 구조를 나타낸 블록 구성도.
도 6은 본 발명의 실시예에 따른 XPS 인쇄 처리 시스템에서 사용되는 인쇄 설정으로서의 XML 포맷을 갖는 인쇄 티켓의 예를 나타내는 도면.
도 7은 본 발명의 실시예에 따른 프린터 드라이버의 유저 인터페이스를 나타내는 도면.
도 8은 본 발명의 실시예에 따른, 어플리케이션에 의해 실행되는 프로세스와는 다른 진보된 UI 어플리케이션에 의해 실행되는 프로세스에서 유저 인터페이스가 동작할 때의 블록 구성도.
도 9는 본 발명의 실시예에 따른, 진보된 UI 어플리케이션의 CLSID가 프린터 드라이버에 추가된 셋업 정보 파일의 예를 나타내는 도면.
도 10은 본 발명의 실시예에 따른 운영 체제가 프린터 드라이버를 설치할 때의 흐름도.
도 11은 본 발명의 실시예에 따른 진보된 UI 어플리케이션의 설치자가 진보된 UI 어플리케이션을 설치할 때의 흐름도.
도 12는 본 발명의 실시예에 따른 운영 체제가 프린터 드라이버의 유저 인터페이스를 열 때의 흐름도.
도 13은 본 발명의 실시예에 따른 COM 프록시(proxy)가 COM 스터브(stub)를 호출해서 프로세스간 통신을 행할 때의 흐름도.
도 14는 본 발명의 실시예에 따른 COM 프록시가 COM 스터브를 호출하여 프로세스간 통신을 행할 때의 흐름도.
도 15는 본 발명의 실시예에 따른 진보된 UI 어플리케이션이 동작할 때의 흐름도.
도 16은 본 발명의 실시예에 따른, 인쇄 매니저가 진보된 UI 어플리케이션을 호출할 때의 API 호출의 예와, 진보된 UI 어플리케이션이 인쇄 매니저에게 인터페이스를 전달할 때의 API 호출의 예를 나타내는 도면.
도 17은 본 발명의 실시예에 따른, XPS 인쇄 시스템에서 진보된 UI 어플리케이션이 필터 파이프라인 매니저에게 데이터를 전달할 때의 블록 구성도.
도 18은 본 발명의 실시예에 따른, XPS 인쇄 시스템에서 진보된 UI 어플리케이션이 필터 파이프라인 매니저에게 데이터를 전달할 때의 흐름도.
도 19는 본 발명의 실시예에 따른 프린터 드라이버에 있어서, 공유 프린터를 이용하기 위한 운영 체제의 유저 인터페이스를 나타내는 도면.
도 20은 본 발명의 실시예에 따른 진보된 UI 어플리케이션을 포함하는 프린터 드라이버에 있어서, 공유 프린터를 금지하기 위한 운영 체제의 유저 인터페이스를 나타내는 도면.
도 21은 본 발명의 실시예에 따른 운영 체제가 프린터 드라이버 중에서 공유 탭을 표시할 때의 흐름도.
도 22는 본 발명의 실시예에 따른 진보된 UI 어플리케이션을 포함하는 프린터 드라이버에 있어서 잡 설정이 확인될 때의 운영 체제의 유저 인터페이스를 나타내는 도면.
도 23은 본 발명의 실시예에 따른 진보된 UI 어플리케이션을 포함하는 프린터 드라이버에 있어서 디바이스 설정이 이루어질 때의 운영 체제의 유저 인터페이스를 나타내는 도면.
도 24는 본 발명의 실시예에 따른 운영 체제가 프린터 드라이버의 유저 인터페이스를 표시할 때의 흐름도.
도 25는 본 발명의 실시예에 따른 운영 체제가 진보된 UI 어플리케이션을 포함하는 프린터 드라이버를 설치할 때의 흐름도.
도 26은 본 발명의 실시예에 따른 프린터 드라이버에 진보된 UI 어플리케이션이 포함된 셋업 정보 파일의 예를 나타내는 도면.
이하, 본 발명의 다양한 실시예, 특징 및 양태들을 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 일반적인 컴퓨터를 이용한 시스템의 블록 구성도이다. 달리 언급하지 않는 한, 본 발명의 기능이 구현된다면, 본 발명은 단일 디바이스, 복수의 디바이스를 포함하는 시스템, 및 복수의 디바이스가 네트워크를 통해 처리를 수행하도록 접속되는 시스템에 적용가능하다.
CPU(central processing unit)(101)는 주 저장 디바이스(102)의 ROM(read-only memory)(1021) 또는 RAM(random access memory)(1022) 또는 보조 저장 디바이스(105)에 저장된 프로그램에 따라 전체 시스템을 제어한다. RAM(1022)은, CPU(101)가 각종 처리를 행할 때의 작업 영역으로서 사용된다. 보조 저장 디바이스(105)는 OS(operating system)(1053), 어플리케이션 소프트웨어(1051) 등을 기록한다.
키보드(1031)와, 마우스와 터치 패널로 대표되는 포인팅 디바이스(1032)와 같은 입력 디바이스는 입력 I/F(interface)(103)을 통하여 유저가 컴퓨터에게 각종 지시를 부여하기 위한 디바이스이다.
출력I/F(104)는 데이터를 외부에 출력하기 위한 인터페이스이며, 예를 들어 모니터(1041)와 프린터(1042)와 같은 출력 디바이스로 데이터를 출력한다. 프린터에 직접 접속되는 로컬 입력/출력(I/O) 뿐만 아니라, 통신 I/F(106)를 통해서도 프린터에 접속되는 네트워크(1061)를 통해 출력 I/F(104)가 프린터(1042)에 접속될 수도 있다. 공통 데이터 시스템 버스(107)는 모듈로/로부터 데이터를 교환한다.
도 2는 본 발명의 실시예에 따른 네트워크(1061)의 환경을 나타내는 단순화된 도면이다. 인쇄될 문서와 화상을 생성하는 클라이언트 컴퓨터(201/202)는 단일 네트워크 또는 복수의 네트워크에 접속된다.
클라이언트 컴퓨터(201/202)의 유저와 프린터(204/205)를 관리하는 서버 컴퓨터(203)가 네트워크 또는 네트워크들에 접속될 수도 있다. 예를 들면, 프린터(205)는, 프린터(204/205)가 단일 네트워크 또는 복수의 네트워크게 물리적으로 접속될 수 있어도 실제로 사용될 수 없는 오프라인 상태에 있을 수 있다.
네트워크는 PAN(personal area network), LAN(local area network), MAN(metropolitan area network) 및 WAN(wide area network)과 같은 소규모로부터 대규모 네트워크를 포함한다. 디바이스들은 모든 네트워크에 접속된다. 클라우드 컴퓨팅이라 칭해지는 서버와 프린터가 인터넷을 통해 접속될 수도 있다.
도 3은 일반적인 컴퓨터를 이용한 인쇄 처리 시스템을 나타낸다. 어플리케이션(1051), 프린터 드라이버(1052) 및 운영 체제(1053)는 도 1에 나타낸 보조 저장 디바이스(105)에 저장된다.
그래픽스 엔진(302) 및 인쇄 매니저(306)는 운영 체제(1053)에 포함되는 모듈이다. 유저는 키보드(1031)와 마우스(1032)와 같은 입력 디바이스를 사용하여, 출력 디바이스의 모니터(1041)에 표시되는 어플리케이션(1051)을 사용해서 생성된 문서(301)에 대한 인쇄 처리를 수행한다. 인쇄 처리는 즉, 프린터(1042)의 선택, 인쇄 설정(3012)의 생성 및 묘화 데이터(3011)의 변환이라는 3개 유형의 처리를 이 순서로 행함으로써 수행된다.
우선, 프린터의 선택으로서, 인쇄를 행하는 프린터(1042)에 대응하는 프린터 드라이버(1052)가 선택된다. 그 후에, 문서(301)에서 인쇄 설정(3012)이 생성된다. 프린터 드라이버(1052)의 구성 모듈(304)은 인쇄 설정(3012)의 초기값을 생성한다.
생성된 인쇄 설정(3012)은, 어플리케이션(1051) 또는 프린터 드라이버(1052)의 유저 인터페이스를 사용해서 유저가 원하는 최종 인쇄 결과가 얻어지도록 변경 및 설정된다. 예를 들면, 출력되는 시트의 사이즈가 변경되고, 양면 인쇄 또는 흑백 인쇄가 행해진다.
구성 모듈(304)과 진보된 유저 인터페이스(UI) 어플리케이션(311) 중 어느 하나가 프린터 드라이버(1052)의 유저 인터페이스를 제공한다.
인쇄 설정(3012)은 RAM(1022) 상에서 유지되지만, 저장 포맷은 바이너리 데이터 구조체 또는 XML(extensible markup language)과 같은 마크업(markup) 언어이다. 이 포맷은 프린터 드라이버(1052)와 운영 체제(1053)의 사양에 따라 다르다.
인쇄 설정(3012)은 각 문서 인쇄에 대해 생성된다. 그러나, 프린터 드라이버(1052)는 프린터(1042)의 옵션 디바이스의 구성과 보유하기를 원하는 각 유저에 대한 환경 설정을 운영 체제(1053)의 레지스트리 데이터베이스(308)에 저장한다.
운영 체제(1053)의 인쇄 매니저(306)는 인쇄 설정(3012)의 각 유저에 대한 디폴트 값을 레지스트리 데이터베이스(308)에 저장한다. 마지막으로, 묘화 데이터(3011)가 변환된다.
인쇄 설정(3012)의 생성이 종료되면, 유저가 운영 체제(1053)에 인쇄 처리를 통지하여 인쇄 처리가 수행한다. 운영 체제(1053)는 그래픽스 엔진(302)을 통해 지정된 프린터 드라이버(1052)에서 묘화를 행한다.
레이아웃 처리가 인쇄 설정(3012)에 의해 지정된 경우에는, 프린터 드라이버(1052)의 렌더링 모듈(303)에 도달하기 전에 스풀 파일(307)이 일시적으로 생성되고, 레이아웃 모듈(309)이 기동된다.
"레이아웃 처리"는 시트의 순서를 교체하고, 하나의 시트 상에 복수의 페이지를 배치하기 위한 처리를 의미한다. 레이아웃 모듈(309)은 레이아웃을 변경한 후, 프린터 드라이버(1052)에서 묘화를 다시 행한다.
묘화 데이터가 송신된 프린터 드라이버(1052)의 렌더링 모듈(303)은 묘화 데이터를 데이터 언어, 즉 프린터(1042)에 의해 이해될 수 있는 프린터 제어 언어로 변환한다. 이 때, 인쇄 설정(3012)도 프린터 제어 언어로 변환된다.
렌더링 모듈(303)과 구성 모듈(304) 양자는 복수의 유형의 프린터(1042)에 대한 공통 모듈일 수 있다. 각 모델에 대한 차이는 모델 의존 데이터 파일(305)에 기술된다. 렌더링 모듈(303)과 구성 모듈(304)은 필요에 따라 모델 의존 데이터 파일(305)을 참조한다.
변환된 데이터는 스풀 파일(307)로서 연속적으로 저장된다. 인쇄 매니저(306)는 스풀 파일(307)을 취득하여 인쇄 잡 파일로서 인쇄 처리에 대한 스케줄 관리를 행한다.
프린터(1042)가 인쇄 가능 상태로 진입하면, 인쇄 매니저(306)는 I/O 모듈(310)을 통해서 프린터(1042)로 인쇄 잡 데이터를 송신한다. 따라서, 어플리케이션(1051)으로부터의 인쇄 데이터가 프린터 언어로 변환되어 인쇄를 행한다.
문서(301)의 인쇄 설정(3012)을 생성하기 위해서는, 어플리케이션(1051)이 인쇄 설정(3012)을 직접 재기입하거나, 프린터 드라이버(1052)의 구성 모듈(304) 또는 진보된 UI 어플리케이션(311)에 의해 제공되는, 도 7에 나타낸 유저 인터페이스를 사용한다. 인쇄 설정(3012)은 Microsoft(등록 상표) Windows(등록 상표) 운영 체제에서는, DEVMODE 구조체라 칭해지는, 도 5에 나타낸 구조체를 갖는다.
DEVMODE 구조체는 운영 체제(1053)에 의해 공개 및 정의된 표준 인쇄 설정 영역(501)과, 프린터 드라이버(1052)에 의해 확장된 인쇄 설정 영역(502)으로 나누어진다. 표준 인쇄 설정 영역(501)은 시트 사이즈와 급지단의 절환과, 컬러/흑백 절환과 같은 기본 인쇄 설정의 값을 포함한다.
확장된 인쇄 설정 영역(502)은 프린터 옵션에 대응하는 배지 기능과 미세 색조 조절 기능의 값을 포함한다. 어플리케이션(1051)은 각 프린터 드라이버(1052)의 확장 설정을 알 수 없다. 따라서, 어플리케이션(1051)은 시스템에서 정의된 표준 인쇄 설정 영역(501)에만 직접 인쇄 설정(3012)을 재기입할 수 있다.
따라서, 어플리케이션(1051)은 일반적으로 프린터 드라이버(1052)의 유저 인터페이스를 표시하여, 유저가 확장된 인쇄 설정 영역(502)에서 인쇄 설정(3012)을 행하게 한다.
구성 모듈(304)은 유저 인터페이스뿐만 아니라, 어플리케이션 프로그래밍 인터페이스(API)도 제공한다. 따라서, 확장된 인쇄 설정 영역(502)은 유저 인터페이스를 표시하지 않고도 외부로부터 설정될 수도 있다.
구성 모듈(304)에 의해 제공된 API가 사용되는 경우, 어플리케이션(1051)이 각 프린터 드라이버(1052)에 대해 대응되는 것이 요구된다. 따라서, 일반적인 어플리케이션(1051)은 표준 인쇄 설정 영역(501)만을 변경한다.
본 발명의 실시예에 따른 다른 인쇄 시스템에 대해 설명한다. 도 3에 나타낸 인쇄 처리 시스템은 GDI(graphic device interface) 인쇄 시스템이라 칭해지고, 도 4는 XPS(XML paper specification) 인쇄 시스템의 블록 구성도이다.
XPS 인쇄 시스템은 XML Paper Specification이라 칭해지는 문서 파일 포맷을 스풀 데이터로서 사용하여 인쇄를 행하기 위한 시스템이다. XPS 인쇄 시스템도 GDI 인쇄 시스템과 마찬가지로, 운영 체제(1053)에서 동작하고 있다.
인쇄 매니저(306), GDI-to-XPS 변환 모듈(405) 및 필터 파이프라인 매니저(409)는 운영 체제(1053)에 포함되는 모듈이다.
프린터 드라이버(1052)와 필터 파이프라인 매니저(409)의 필터들은 도 1에 나타낸 보조 저장 디바이스(105)의 프린터 드라이버(1052)로서 저장된다. 필터 파이프라인 매니저(409)는 운영 체제(1053)에 포함되지만, 각 필터는 프린터 드라이버(1052) 내의 모듈이다.
GDI 인쇄 어플리케이션 프로그램(이하, "GDI 어플리케이션"이라 약칭됨)(401)과 XPS 인쇄 어플리케이션 프로그램(이하, "XPS 어플리케이션"이라 약칭됨)(402)은 도 1에 나타낸 보조 저장 디바이스(105)에 어플리케이션(1051)으로서 저장된다.
유저는 키보드(1031)와 마우스(1032)와 같은 입력 디바이스를 사용하여, 출력 디바이스로서의 역할을 하는 모니터(1041)에 투영된 GDI 어플리케이션(401)과 XPS 어플리케이션(402)으로부터 인쇄 처리를 행한다. 인쇄 처리는 3개 유형의 처리, 즉, 프린터(1042)의 선택, 인쇄 설정(3012)의 생성 및 묘화 데이터(3011)를 이 순서로 행함으로써 수행된다.
우선, 인쇄를 수행할 프린터(1042)가 선택된다. 이것은, 인쇄를 수행하는 프린터(1042)에 대응하는 프린터 드라이버(1052)를 선택하는 것과 동일한 의미이다. 다음으로, 인쇄 설정(3012)이 생성된다.
인쇄 설정(3012)은, 어플리케이션(1051)이 인쇄 설정(3012)을 위한 메모리를 확보하고, 어플리케이션(1051) 또는 프린터 드라이버(1052)의 구성 모듈(304)이 모델 의존 파일(305)을 이용해서 설정 데이터를 채우는 방식으로 행해진다.
바이너리 DEVMODE 구조체(403)가 GDI 어플리케이션(401)에서 인쇄 설정 데이터로서 이용되고, XML로 기술된 인쇄 티켓(404)이 XPS 어플리케이션(402)에서 이용된다. 각 DEVMODE 구조체(403)와 인쇄 티켓(404)은 도 5에 나타낸 구조와 같이, 운영 체제(1053)에 의해 정의되는 표준 영역과 프린터 드라이버(1052)에 의해 고유하게 정의되는 확장 영역을 갖는다.
인쇄 티켓(404)은 도 6에 나타낸 XML 포맷으로 기술된 인쇄 설정 정보이다. 따라서, 표준 영역과 확장 영역은 이름 공간에 의해 별도로 기술된다. DEVMODE 구조체(403) 또는 인쇄 티켓(404)이 인쇄 설정(3012)을 유지하고 있고, 어플리케이션(1051)이 직접 인쇄 설정(3012)을 재기입하여 인쇄 설정(3012)을 변경한다.
프린터(1042)에 의존하는 전용 설정은, 프린터 드라이버(1052)의 구성 모듈(304) 또는 진보된 UI 어플리케이션(311)의 유저 인터페이스(도 7 참조)를 표시함으로써 행해진다.
프린터 드라이버(1052)는 유저 인터페이스의 설정에 따라, DEVMODE 구조체(403) 또는 인쇄 티켓(404)의 프린터(1042)에 의존하는 설정을 변경한다. "인쇄 설정"은 구체적으로 예를 들어, 출력되는 시트 사이즈를 "A4"로 설정하고, 양면 인쇄를 행하고, 컬러/흑백 절환을 행하고, 급지단을 지정하는, 인쇄를 수행하는 데 요구되는 데이터를 의미한다.
인쇄 티켓(404)에서, 인쇄 설정(3012)이 XML 포맷으로 기술되어 있으므로, XPS 어플리케이션(402)이 모든 설정값을 용이하게 직접 변경하고 재기입할 수 있다. 하지만, 종래와 같이, 인쇄 설정(3012)이 프린터 드라이버(1052)의 유저 인터페이스를 사용해서 변경될 수도 있다.
인쇄 설정(3012)은 문서 인쇄가 행해지는 때마다 생성된다. 유저 인터페이스는 프린터(1042)의 옵션 디바이스와, 유지될 각 유저에 대한 환경 설정을 운영 체제(1053)의 레지스트리 데이터베이스(308)에 저장한다. 운영 체제(1053)의 인쇄 매니저(306)는 인쇄 설정(3012)의 각 유저에 대한 디폴트 값을 레지스트리 데이터베이스(308)에 저장한다. 마지막으로 묘화 데이터(3011)가 변환된다.
인쇄 설정(3012)이 완결되면, 유저는 어플리케이션(1051)으로부터 인쇄 처리를 행한다. 인쇄가 GDI 어플리케이션(401)으로부터 인쇄되는 경우에, 묘화 데이터(3011)가 프린터 드라이버(1052)의 형태를 취하는 GDI-to-XPS 변환 모듈(405)로 송신되어, XPS 스풀 파일(407)이 생성된다.
이 때, GDI-to-XPS 변환 모듈(405)은 구성 모듈(304)을 호출하고, 인쇄 설정(3012)을 DEVMODE 구조체(403)로부터 인쇄 티켓(404)으로 변환한다. 인쇄가 XPS 어플리케이션(402)으로부터 행해지는 경우에, 2개 유형의 방법이 있다. 보다 구체적으로, XPS 어플리케이션(402) 자신이 XPS 파일을 생성하고, 운영 체제(1053)가 XPS 어플리케이션(402)으로부터의 묘화 지시에 따라서 XPS 파일을 생성한다.
어느 방법이 사용되어도 인쇄 중에 XPS 스풀 파일(407)이 생성된다. 이렇게 XPS 인쇄 시스템은 인쇄 중에 언제나 XPS 스풀 파일(407)을 생성한다.
XPS 스풀 파일(407)이 생성되면, 처리는 프린터 필터 파이프라인 프로세스로 전달된다. 프린터 필터 파이프라인 프로세스는 복수의 필터를 이용하여 인쇄를 행하는 메커니즘이다. 필터 구성 파일(413)은 필터의 수와 순서를 제어한다.
프린터 필터 파이프라인 프로세스에서 동작하는 필터 파이프라인 매니저(409)는 필터 구성 파일(413)에 따라, 본 실시예에서는 설정 필터(410), 레이아웃 필터(411) 및 렌더러 필터(412)를 이 순서대로 이용한 처리를 행한다.
필터는 프린터 드라이버(1052)의 구성에 따라, 수와 유형이 다르다. 인쇄 처리는 XPS 스풀 파일(407)을 필터로 전달시킴으로써 행해지고, 각 필터가 XPS 스풀 파일(407)을 처리하여 처리된 XPS 스풀 파일(407)을 후속 필터로 전달시킬 때 처리한다. 마지막으로, XPS 스풀 파일(407)은 프린터에 의해 이해될 수 있는 데이터 언어로서의 역할을 하는 프린터 제어 언어(이하, PDL(page description language)이라 약칭함)로 출력된다.
프린터(1042)가 XPS 스풀 파일(407)을 직접 판독하고 인쇄할 수 있는 XPS 다이렉트 프린터이면, XPS 스풀 파일(407)이 모든 필터를 통과하지 않고도 인쇄될 수 있다.
설정 필터(410)는 인쇄 티켓(404)을 판독하고 인쇄에 필요한 데이터를 인쇄 티켓(404)에 기입하기 위한 처리를 행한다. 레이아웃 필터(411)는 예를 들어, 배율의 변경과 제본을 위한 임포지션(imposition) 레이아웃 및 스탬프와 같은 레이아웃에 관한 처리를 행한다. 레이아웃 필터(411)는 XPS 스풀 파일(407)에 포함되는 인쇄 설정 데이터로서의 역할을 하는 인쇄 티켓(404)에 따라서 동작한다.
예를 들면, 임포지션 설정이 인쇄 티켓(404)에 존재하지 않는 경우에, 레이아웃 필터(411)는 동작하지 않아, XPS 스풀 파일(407)이 통과하지 않고 후속 필터에 직접 전달된다.
최후의 렌더러 필터(412)는 XPS 스풀 파일(407)을 렌더링하고, 렌더링된 XPS 스풀 파일(407)을 PDL 데이터로 변환한다. 인쇄 처리에 대한 스케줄을 관리하는 인쇄 매니저(306)가 PDL 데이터를 관리한다. PDL 데이터는 큐에 차례로 인쇄 잡으로서 등록된다.
프린터(1042)가 인쇄가능 상태로 진입하면, 큐에 등록된 순서로 PDL 데이터가 I/O 모듈(310)을 통해 송신된다. 프린터 드라이버(1052)의 중심 역할은 어플리케이션(1051)으로부터의 인쇄 데이터를 프린터 언어로 변환하는 것이다. 따라서, 인쇄 처리가 행해진다.
이하, 프린터 드라이버(1052)와 진보된 UI 어플리케이션(311) 사이의 연관에 대해 설명한다. 우선, 프린터 드라이버(1052)의 설치가 도 10의 흐름도에 따라 설명될 것이다.
프린터 드라이버(1052)는 도 9에 나타낸 셋업 정보 파일(이하, INF 파일이라 칭함)에 따라 운영 체제(1053)에 설치된다. INF 파일은 예를 들어 프린터(1042)의 모델명, 프린터 드라이버(1052)를 동작시키는 파일, 및 프린터(1042)의 버전과 같은 프린터 드라이버(1052)를 설치하는 데 필요한 정보를 포함한다.
INF 파일과 프린터 드라이버(1052)를 구성하는 각종 파일 프린터 드라이버(1052)에 대한 하나의 설치 셋으로 수집된다.
스텝 S1001에서, 운영 체제(1053)는, 프린터 드라이버(1052)의 설치가 개시되면, 지정된 모델의 프린터 드라이버(1052)에 대한 설치 세트를 검색한다. 설치 세트는 운영 체제(1053)에 내장되어 있는 것을 포함하지만, 유저에 의해 지정될 수도 있고, 미리 식별된 배신(distribution) 서버 등으로부터 제공될 수도 있다.
스텝 S1002에서, 운영 체제(1053)는 설치 세트에 포함되는 INF 파일을 기초로 파일을 복사하고, 레지스트리 데이터베이스(308)로 필요한 드라이버 정보를 기입하여, 통상적인 프린터 드라이버(1052)의 설치를 완료한다.
스텝 S1003에서, 운영 체제(1053)는, INF 파일이 진보된 UI 어플리케이션(311)의 CLSID(class identifier)를 포함하는지 여부를 확인한다. "CLSID"는 UUID(universally unique identifier)의 일종이며, 16 바이트의 수치로서 나타내어지며, 세계에서 고유하다. CLSID로서, 사용될 진보된 UI 어플리케이션(311)에 할당된 CLSID가 진보된 UI 어플리케이션(311)을 식별하기 위해서 INF 파일에 기술된다.
도 9에서, AdvancedUICLSID 키는 진보된 UI 어플리케이션(311)의 CLSID에 대응한다. 진보된 UI 어플리케이션(311)의 CLSID가 존재하면(스텝 S1003의 예), 처리는 스텝 S1004로 진행한다. 스텝 S1004에서, 운영 체제(1053)는 INF 파일로부터 CLSID를 취득한다.
스텝 S1005에서, 운영 체제(1053)는 진보된 UI 어플리케이션(311)의 CLSID를 레지스트리 데이터베이스(308) 내의 프린터 모델에 대응하는 드라이버 정보에 추가한다. 이렇게 프린터 드라이버(1052)의 설치가 완료된다.
이하, 진보된 UI 어플리케이션(311)의 설치를, 도 11의 흐름도와 도 15의 흐름도의 일부를 참조해서 설명할 것이다.
설치자와 진보된 UI 어플리케이션(311)을 구성하는 파일을 포함하는 진보된 UI 어플리케이션(311)에 대한 설치 세트가 프린터 드라이버(1052)에 대한 설치 세트와는 별도로 존재한다.
유저가 설치자를 개시하면, 처리는 스텝 S1101로 진행한다. 스텝 S1101에서, 우선 설치자는 진보된 UI 어플리케이션(311)을 구성하는 파일을 유저에 의해 지정된 어플리케이션(1051)을 저장하는 폴더에 복사한다. 그 후에 스텝 S1102에서, 설치자는 인수로서 /RegSvr 옵션을 추가시킴으로써 진보된 UI 어플리케이션(311)을 기동한다.
스텝 S1501에서, 기동된 진보된 UI 어플리케이션(311)은, /RegSvr 옵션이 추가되었는지 여부를 판정한다. /RegSvr 옵션이 진보된 UI 어플리케이션(311)에 추가되었으면(스텝 S1501의 예), 처리는 스텝 S1052로 진행한다. 스텝 S1052에서, 진보된 UI 어플리케이션(311)은 COM(component object model)의 아웃 프로세스 서버로서 레지스트리 데이터베이스(308)에 정보를 기입한다.
"COM"은 Microsoft사에 의해 제안된 소프트웨어 요소들 사이의 통신 기술이다. 그 사이에서 통신이 수행되는 각 소프트웨어 요소 각각은 고유한 CLSID에 의해 식별된다. "아웃 프로세스 서버"는 호출된 프로세스와 다른 프로세스에서 동작하는 요소이다. 진보된 UI 어플리케이션(311)이 아웃 프로세스 서버라는 것이 명확하게 지정된다.
레지스트리 데이터베이스(308)에 기입되는 정보는 어플리케이션 이름을 포함하는 풀 패스와, 진보된 UI 어플리케이션(311)의 CLSID, 및 진보된 UI 어플리케이션(311)이 아웃 프로세스 서버인 것을 나타내는 문자열 "LocalServer32"를 포함한다. CLSID는 도 9에 나타낸 INF 파일에 의해 지정된 CLSID와 동일하게 되는 것이 요구된다. 이렇게 진보된 UI 어플리케이션(311)의 설치가 완료된다.
프린터 드라이버(1052)의 설치에 의해 취득된 CLSID와, 진보된 UI 어플리케이션(311)의 설치에 의해 기술된 CLSID가 동일하므로, 운영 체제(1053)는 CLSID 양자를 서로 연관지을 수 있다.
이하, 어플리케이션(1051)으로부터 프린터 드라이버(1052)의 유저 인터페이스의 표시의 흐름을 도 8의 블록 구성도와, 도 12 및 도 15의 흐름도를 참조하여 설명한다.
스텝 S1201에서, 운영 체제(1053)의 모듈로서의 역할을 하는 인쇄 매니저(306)는 어플리케이션(1051)으로부터 프린터 드라이버(1052)의 유저 인터페이스를 표시하기 위한 API의(로부터의) 호출을 수신한다. 이 때, 인쇄 매니저(306)는 어플리케이션(1051)으로부터 인수로서 인쇄 설정 데이터로서의 역할을 하는 DEVMODE 구조체(403)도 수신한다.
현재의 인쇄 설정(3012)은 인쇄 설정 데이터로서의 역할을 하는 수신된 DEVMODE 구조체에 따라 유저 인터페이스를 구축함으로써 유저에 의해 보여질 수 있다.
또한, 인쇄 매니저(306)는 어플리케이션(1051)으로부터 어느 프린터 드라이버(1052)가 사용될 것인지를 지정하기 위한 모델 정보를 수신한다. 이것은, 복수의 프린터 드라이버(1052)가 운영 체제(1053)에 설치되어 있는 경우에, 어느 프린터 드라이버(1052)가 사용될 것인지를 명확히 하기 위한 것이다.
인쇄 매니저(306)는 어플리케이션(1051)으로부터 수신된 모델 정보를 기초로 레지스트리 데이터베이스(308)를 검색한다. 프린터 드라이버(1052)의 설치 동안 기술된 드라이버 정보가 레지스트리 데이터베이스(308)에 기입된다. 스텝 S1202에서, 인쇄 매니저(306)는 수신된 모델 정보에 대응하는 드라이버 정보를 취득한다.
스텝 S1203에서, 인쇄 매니저(306)는, 취득된 드라이버 정보가 진보된 UI 어플리케이션(311)의 CLSID를 포함하는지 여부를 판정한다. 진보된 UI 어플리케이션(311)의 CLSID가 존재하지 않으면(스텝 S1203의 아니오), 처리는 스텝 S1212로 진행한다. 스텝 S1212에서, 인쇄 매니저(306)는 프린터 드라이버(1052)의 구성 모듈(304)의 유저 인터페이스를 열기 위해서, CPSUI(801)를 호출한다.
CPSUI(common property sheet user interface)(801)는 속성 시트의 베이스를 생성하고, 구성 모듈(304)에 유저 인터페이스를 생성할 것을 요구한다.
구성 모듈(304)은 모델 의존 데이터 파일(305)을 사용하고, 프린터 모델에 대응하는 유저 인터페이스를 표시한다. 보다 구체적으로, 구성 모듈(304)은 어플리케이션(1051)에 의해 실행된 프로세스와 동일 프로세스에서 유저 인터페이스 모듈을 기동한다.
진보된 UI 어플리케이션(311)의 CLSID가 존재하는 경우(스텝 S1203의 예), 처리는 스텝 S1204로 진행한다. 스텝 S1204에서, 인쇄 매니저(306)는 CLSID와 아웃 프로세스 서버에 의한 기동을 인수로서 지정해서, 운영 체제(1053)의 API를 호출한다(도 16의 (1) 참조).
인쇄 매니저(306)는 운영 체제(1053)의 API 중에서, 지정된 CLSID를 검색 키로서 이용해서 레지스트리 데이터베이스(308)를 검색한다.
진보된 UI 어플리케이션(311)이 이미 설치되어 있으면(스텝 S1203의 예), 처리는 스텝 S1204로 진행한다. 스텝 S1204에서, 인쇄 매니저(306)는 운영 체제(1053)의 API 중에서 레지스트리 데이터베이스(308)로부터 진보된 UI 어플리케이션(311)의 파일 이름을 포함하는 풀 패스를 취득할 수 있다.
진보된 UI 어플리케이션(311)이 설치되지 않은 경우에는(스텝 S1203의 아니오), 처리는 스텝 S1212로 진행한다. 스텝 S1212에서, 인쇄 매니저(306)는, CLSID가 존재하지 않는 때와 마찬가지로 프린터 드라이버(1052)의 유저 인터페이스를 표시한다. 이것은, INF 파일이 CLSID를 포함하여도 진보된 UI 어플리케이션(311)이 설치되지 않은 환경에서 발생한다.
스텝 S1205에서, 풀 패스를 취득하면, 인쇄 매니저(306)는 운영 체제(1053)의 API 내에서 진보된 UI 어플리케이션(311)을 어플리케이션(1051)에 의해 실행된 프로세스와 다른 프로세스에서 기동한다. /RegSvr 옵션이 기동되는 진보된 UI 어플리케이션(311)에 추가되지 않았다면(S1501의 아니오), 처리는 스텝 S1503으로 진행한다. 스텝 S1503에서, 진보된 UI 어플리케이션(311)이 윈도우를 생성한다.
이 시점에서 생성된 윈도우는 아직 표시되지 않았고, 메시지 루프로 인쇄 매니저(306)로부터의 응답을 대기하기 위해서 생성되었을 뿐이다.
스텝 S1504에서, 진보된 UI 어플리케이션(311)은, 진보된 UI 어플리케이션(311)의 인터페이스 객체를 생성하고, 인터페이스 객체를 인수로서 지정해서, 운영 체제(1053)의 API를 호출한다(도 16의 (2) 참조).
스텝 S1206에서, 인쇄 매니저(306)는 진보된 UI 어플리케이션(311)의 인터페이스를 수신할 수 있다. 스텝 S1207에서, 인터페이스를 수신한 인쇄 매니저(306)는 DEVMODE 구조체(403)를 인쇄 티켓(404)으로 변환한다.
인쇄 매니저(306)는 구성 모듈(304)을 호출하여, 구성 모듈(304)을 인쇄 티켓(404)으로 변환한다. DEVMODE 구조체(403)와 같은 바이너리 데이터에서, 다른 프로세스 간의 데이터를 송수신하는 것이 불리하여, 텍스트 포맷의 XML로 기입된 인쇄 티켓(404)으로 변환된다.
스텝 S1208에서, 인쇄 매니저(306)는 프린터 모델, CLSID에 기초하여 취득된 드라이버 정보, 인쇄 티켓(404) 및 이벤트 정보를 수신된 인터페이스의 인수로서 이용하여 수신된 인터페이스에 대한 메소드를 호출한다. "이벤트 정보"는, 어플리케이션(1051)에 의해 프린터 드라이버(1052)에 대하여 어떤 유저 인터페이스를 표시되는지를 나타내는 정보이다.
프린터 드라이버(1052)의 유저 인터페이스의 수는 1개가 아니다(따라서, 프린터 드라이버(1052)는 복수의 유저 인터페이스를 가질 수도 있다). 인쇄 설정을 행하기 위한 유저 인터페이스, 디바이스 설정을 행하기 위한 유저 인터페이스, 및 잡 인쇄 설정을 확인하기 위한 유저 인터페이스가 존재한다. 어느 유저 인터페이스가 표시되는 것인지가 이벤트 정보로서 진보된 UI 어플리케이션(311)에 통지될 필요가 있다.
스텝 S1505에서, 진보된 UI 어플리케이션(311)은 인터페이스의 호출을 수신하고, UI 이벤트인지 여부를 판정한다. UI 이벤트인 것으로 판정되면(S1505의 예), 처리는 스텝 S1506으로 진행한다. 스텝 S1506에서, 진보된 UI 어플리케이션(311)은 호출된 인터페이스로부터, 프린터 모델, 드라이버 정보 및 인쇄 티켓(404)을 취득한다.
그 후에, 진보된 UI 어플리케이션(311)은 UI 이벤트의 유형을 판정하고, 표시될 유저 인터페이스를 결정한다. 스텝 S1507에서, 진보된 UI 어플리케이션(311)은, 인쇄 설정에 대한 유저 인터페이스가 어플리케이션(1051)으로부터 호출되었는지 여부를 판정한다. 인쇄 설정에 대한 유저 인터페이스가 어플리케이션(1051)으로부터 호출되었다면(스텝 S1507의 예), 처리는 스텝 S1508로 진행한다. 스텝 S1508에서, 진보된 UI 어플리케이션(311)은 인쇄 설정에 대한 유저 인터페이스를 표시한다.
스텝 S1509에서, 진보된 UI 어플리케이션(311)은, 디바이스 설정에 대한 유저 인터페이스가 호출되었는지 여부를 판정한다. 디바이스 설정에 대한 유저 인터페이스가 호출되었다면(스텝 S1509의 예), 처리는 스텝 S1510으로 진행한다. 스텝 S1510에서, 진보된 UI 어플리케이션(311)은 디바이스 설정에 대한 유저 인터페이스를 표시한다.
스텝 S1511에서, 진보된 UI 어플리케이션(311)은 잡 설정에 대한 유저 인터페이스를 호출한다. 잡 설정에 대한 유저 인터페이스가 호출되면(스텝 S1511의 예), 처리는 스텝 S1512로 진행한다. 스텝 S1512에서, 진보된 UI 어플리케이션(311)은 잡 설정에 대한 유저 인터페이스를 표시한다.
또한, 진보된 UI 어플리케이션(311)은 취득된 프린터 모델, 드라이버 정보 및 인쇄 티켓(404)에 기초해서 유저 인터페이스를 표시한다. 진보된 UI 어플리케이션(311)은 프린터 드라이버(1052)를 호출해서, 표시에 사용되는 인쇄 설정 항목과, 설정 항목 간의 금칙과 같은 로직에 대한 데이터를 취득하고 제어한다.
진보된 UI 어플리케이션(311)은 프린터 드라이버(1052)의 구성 모듈(304)의 유저 인터페이스를 표시할 수도 있다. 그러나, 진보된 UI 어플리케이션(311) 자체가 유저 인터페이스를 표시하여 구성 모듈(304)로부터 유저 인터페이스를 제거할 수 있다.
이렇게, 프린터 드라이버(1052)의 구성 모듈(304)은 인쇄 설정(3012)만일 수 있다. 유저 인터페이스는 프린터 드라이버(1052)를 갱신하지 않고, 자유롭게 변경될 수 있다.
진보된 UI 어플리케이션(311)은 직접 프린터 드라이버(1052)를 호출하는 대신, 프린터 드라이버(1052)가 이를 통해 호출되는 드라이버 인터페이스를 수신할 수 있다.
진보된 UI 어플리케이션(311)은 드라이버 인터페이스를 통해서 인쇄 설정 항목과, 설정 항목들 간의 금칙을 설정할 수도 있다.
스텝 S1513에서, 유저가 유저 인터페이스를 이용해서 인쇄 설정(3012)의 수행을 끝내면, 진보된 UI 어플리케이션(311)은 유저 인터페이스를 닫아서 윈도우를 폐기한다. 스텝 S1514에서, 진보된 UI 어플리케이션(311)은 유저 인터페이스의 설정을, 인터페이스로부터 전달된 인쇄 티켓(404)에 반영한다. 스텝 S1515에서, 진보된 UI 어플리케이션(311)은, 인쇄 티켓(404)에 반영될 수 없는 데이터를 레지스트리 데이터베이스(308)에 저장한다.
인쇄 티켓(404)에 반영될 수 없는 데이터는, 프린터의 피니셔와 같은 옵션 디바이스의 구성, 유저 이름 및 패스워드와 같은 개인 정보, 및 예를 들어 즐겨찾기와 스탬프와 같은 유저에 의해 생성된 기능을 포함한다.
모든 데이터가 저장되면, 진보된 UI 어플리케이션(311)이 종료되어, 호출원(calling source)으로서의 역할을 하는 인쇄 매니저(306)에 제어를 반환한다.
스텝 S1209에서, 인쇄 매니저(306)는, 진보된 UI 어플리케이션(311)이 유저 인터페이스를 표시하는 동안 종료될 때까지 기다린다. 진보된 UI 어플리케이션(311)이 종료된 것으로 확인될 수 있으면(스텝 S1209의 예), 인쇄 매니저(306)는, 진보된 UI 어플리케이션(311)에 의해 변경된 인쇄 티켓(404)을 수신하고, 처리는 스텝 S1210으로 진행한다.
스텝 S1210에서, 인쇄 매니저(306)는 프린터 드라이버(1052)의 구성 모듈(304)을 호출하여, 인쇄 티켓(404)을 DEVMODE 구조체(403)로 변환한다. 스텝 S1211에서, 인쇄 매니저(306)는 어플리케이션(1051)에 대하여 변환함으로써 얻어진 DEVMODE 구조체(403)를 반환하고 API를 종료한다. 이렇게, 어플리케이션(1051)에 의해 실행된 프로세스와는 다른 프로세스로 인쇄 설정(3012)과 연관된 유저 인터페이스가 행해진다.
인터페이스에 대한 메소드가 어플리케이션(1051)에 의해 실행되는 프로세스와 진보된 UI 어플리케이션(311)에 의해 실행되는 프로세스 사이에 호출되지만, 도 8의 블록 구성도와 도 13 및 도 14의 흐름도를 참조해서 그 내용을 설명할 것이다.
인터페이스에 대한 메소드가 호출되면, 운영 체제(1053)는 COM 프록시(802)를 호출한다. 스텝 S1301에서, COM 프록시(802)는 인터페이스에 대한 메소드에 입력된 인수 데이터의 마샬링을 행한다.
"마샬링"은 다른 2개의 시스템 사이에서 데이터를 송수신될 수 있도록, 객체 데이터를 스트림에 저장하는 것을 의미한다. 스텝 S1302에서, COM 프록시(802)는 RPC(remote procedure call)를 사용하여 진보된 UI 어플리케이션(311)의 프로세스에 있는 COM 스터브(803)를 호출한다.
"RPC"는 별개의 시스템 사이의 절차를 호출하는 기능을 의미한다. COM 프록시(802)는 호출된 COM 스터브(803)에 마샬링된 스트림 데이터를 송신한다. 스텝 S1401에서, COM 스터브(803)는 COM 프록시(802)로부터 수신된 스트림 데이터의 언마샬링(unmarshaling)을 행하여, 원래의 객체 데이터로서의 역할을 하는 메소드의 인수 데이터에 언마샬링된 스트림 데이터를 반환한다.
"언마샬링"은 스트림 데이터를 원래의 객체 데이터에 반환하는 것을 의미한다. 스텝 S1402에서, COM 스터브(803)는 메소드의 인수 데이터를 프로세스의 메인 스레드(main thread)로서의 역할을 하는 진보된 UI 어플리케이션(311)에 전달한다.
이렇게, 인쇄 매니저(306)는 다른 프로세스로 진보된 UI 어플리케이션(311)을 기동하여, 데이터를 송신한다. 한편, 데이터가 진보된 UI 어플리케이션(311)으로부터 인쇄 매니저(306)로 송신될 때, COM 프록시(802)가 COM 스터브로서의 역할을 하고, COM 스터브(803)가 COM 프록시로서의 역할을 한다. 따라서, COM 프록시와 COM 스터브는 각각 동일한 기능을 갖는 동일한 모듈이다.
진보된 UI 어플리케이션(311)은 어플리케이션(1051)에 의해 실행되는 프로세스와 다른 프로세스로 동작한다. 따라서, 정보는 인쇄 설정 데이터로서의 역할을 하는 인쇄 티켓(404)을 이용하여 인터페이스를 통해서만 송신될 수 있다.
인쇄 티켓(404)에 포함되지 않은, 레지스트리 데이터베이스(308)에 저장된 데이터는 인쇄 동안 참조될 수 없다. 따라서, 모든 데이터가 프린터(1042)에 송신될 수는 없다.
레지스트리 데이터베이스(308)에 저장된 데이터도 XPS 인쇄 시스템의 속성 백(property bag)(414)을 사용함으로써 참조될 수 있다. 도 17의 블록 구성도와 도 18의 흐름도를 참조하여 송신 방법을 설명한다.
스텝 S1801에서, 필터 파이프라인 매니저(409)는, 인쇄가 어플리케이션(1051)으로부터 개시되면, 인쇄 잡으로서의 역할을 하는 XPS 스풀 파일(407)을 수신한다. 필터 파이프라인 매니저(409)는 어플리케이션(1051)으로부터 어느 프린터 드라이버(1052)가 사용될지를 지정하기 위한 모델 정보도 수신한다. 필터 파이프라인 매니저(409)는 어플리케이션(1051)으로부터 수신된 모델 정보에 기초하여 레지스트리 데이터베이스(308)를 검색한다.
프린터 드라이버(1052)의 설치 동안 기술된 드라이버 정보가 레지스트리 데이터베이스(308)에 기입된다. 필터 파이프라인 매니저(409)는 수신된 모델 정보에 대응하는 드라이버 정보를 취득한다.
스텝 S1802에서, 필터 파이프라인 매니저(409)는, 취득된 드라이버 정보가 진보된 UI 어플리케이션(311)의 CLSID를 포함하는지 여부를 판정한다. 진보된 UI 어플리케이션(311)의 CLSID가 존재하지 않으면(스텝 S1802의 아니오), 처리는 스텝 S1808로 진행한다. 스텝 S1808에서, 필터 파이프라인 매니저(409)는 필터를 호출해서 인쇄 처리를 행한다.
진보된 UI 어플리케이션(311)의 CLSID가 존재하는 경우에는(스텝 S1802의 예), 처리는 스텝 S1803으로 진행한다. 스텝 S1803에서, 필터 파이프라인 매니저(409)는 CLSID와 아웃 프로세스 서버에 의한 기동을 인수로서 지정해서 운영 체제(1053)의 API를 호출한다(도 16의 (1) 참조).
필터 파이프라인 매니저(409)는 운영 체제(1053)의 API 중에서, 지정된 CLSID를 검색 키로서 이용해서 레지스트리 데이터베이스(308)를 검색한다. 진보된 UI 어플리케이션(311)이 설치되었으면(스텝 S1802의 예), 처리는 스텝 S1803으로 진행한다. 스텝 S1803에서, 필터 파이프라인 매니저(409)는 운영 체제(1053)의 API 중에서, 레지스트리 데이터베이스(308)로부터 진보된 UI 어플리케이션(311)의 파일 이름을 포함하는 풀 패스를 취득할 수 있다.
진보된 UI 어플리케이션(311)이 설치되지 않은 경우에는(스텝 S1802의 아니오), 처리는 스텝 S1808로 진행한다. 스텝 S1808에서, 필터 파이프라인 매니저(409)는, CLSID가 존재하지 않는 경우에서와 마찬가지로, 필터를 호출해서 인쇄 처리를 행한다. 스텝 S1804에서, 풀 패스를 취득하면, 필터 파이프라인 매니저(409)는 운영 체제(1053)의 API 내에서 진보된 UI 어플리케이션(311)을 기동한다.
/RegSvr 옵션이 기동되는 진보된 UI 어플리케이션(311)에 추가되지 않은 경우에는(스텝 S1501의 아니오), 처리는 스텝 S1503으로 진행한다. 스텝 S1503에서, 진보된 UI 어플리케이션(311)은 윈도우를 생성한다. 이 시점에서 생성되는 윈도우는 표시를 위해 생성되는 것이 아니라 메시지 루프로 필터 파이프라인 매니저(409)로부터의 응답을 대기하기 위해 생성되는 것이다.
스텝 S1504에서, 진보된 UI 어플리케이션(311)은, 진보된 UI 어플리케이션(311)의 인터페이스 객체를 생성하고, 인터페이스 객체를 인수로서 지정하고, 운영 체제(1053)의 API를 호출한다(도 16의 (2) 참조).
스텝 S1805에서, 필터 파이프라인 매니저(409)는 진보된 UI 어플리케이션(311)의 인터페이스를 수신할 수 있다. 인터페이스를 수신한 필터 파이프라인 매니저(409)는 속성 백(414)의 객체를 생성한다.
스텝 S1806에서, 필터 파이프라인 매니저(409)는 생성된 속성 백(414)을 인터페이스의 인수로서 이용하여 인터페이스에 대한 메소드를 호출한다. 스텝 S1505에서, 진보된 UI 어플리케이션(311)은 인터페이스의 호출을 수신하고, 이것이 UI 이벤트인지 여부를 판정한다.
이 때에는 메소드가 속성 백(414)을 인수로서 이용하여 호출되므로, 호출된 인터페이스가 UI 이벤트가 아닌 경우(스텝 S1505의 아니오), 처리는 스텝 S1516으로 진행한다. 스텝 S1516에서, 진보된 UI 어플리케이션(311)은 레지스트리 데이터베이스(308)로부터 이전에 저장된 정보를 취득한다. 스텝 S1517에서, 진보된 UI 어플리케이션(311)은 인터페이스로부터 인수로서의 역할을 하는 속성 백(414)을 취득한다. 스텝 S1518에서, 진보된 UI 어플리케이션(311)은 속성 백(414)에 값을 추가한다.
속성 백(414)은 이름과 값의 조합으로, 자유롭게 데이터를 추가, 삭제 및 참조하는 메커니즘이다. 진보된 UI 어플리케이션(311)은, 프린터의 피니셔(finisher)와 같은 옵션 디바이스의 구성, 유저 이름과 패스워드와 같은 개인 정보, 예를 들어 즐겨찾기와 스탬프와 같은 유저에 의해 생성된 기능을 속성 백(414)에 추가한다.
진보된 UI 어플리케이션(311)은, 속성 백(414)에의 값의 추가가 종료되면 종료된다. 스텝 S1807에서, 필터 파이프라인 매니저(409)는, 유저 인터페이스를 표시하고 있는 동안 진보된 UI 어플리케이션(311)이 종료될 때까지 기다린다.
진보된 UI 어플리케이션(311)이 종료된 것으로 확인되면(스텝 S1807의 예), 처리는 스텝 S1808로 진행한다. 그 후에, 필터 파이프라인 매니저(409)는 진보된 UI 어플리케이션(311)에 의해 변경된 속성 백(414)을 수신한다. 스텝 S1808에서, 필터 파이프라인 매니저(409)는 종래와 같이 필터를 호출해서 인쇄 처리를 행한다.
각 필터는 필요에 따라 속성 백(414)으로부터 정보를 취득한다. 필터 파이프라인 매니저(409)는, 최후의 필터가 PDL을 출력하는 것을 완료하면 속성 백(414)의 객체를 폐기하므로, 인쇄가 1회 수행되는 동안에만 속성 백(414)의 객체가 유효하다. 이렇게, 진보된 UI 어플리케이션(311)에 대한 정보가 필터에 송신된다.
진보된 UI 어플리케이션(311)은 사용될 때 서버(203)로부터 클라이언트(201, 202)에 프린터 드라이버(1052)를 다운로드해서 다운로드된 프린터 드라이버(1052), 소위 공유 프린터를 동작시키기 위한 포인트 앤드 프린트(Point and Print)를 이용하여 동작할 수 없다.
도 2에 나타낸 네트워크 환경에서, 클라이언트(201, 202)가 공유 프린터에 대응하는 프린터 드라이버(1052)를 서버(203)로부터 다운로드할 수 있다. 따라서, 구성 모듈(304)이 유저 인터페이스를 포함하면, 클라이언트(201, 202)가 유저 인터페이스를 표시할 수 있다.
그러나, 진보된 UI 어플리케이션(311)은, 프린터 드라이버(1052)와는 다르므로, 클라이언트(201, 202)에 다운로드될 수 없다. RPC(remote procedure call)는 서버(203)와 클라이언트(201, 202) 사이에서 통신을 수행할 수 있고, 변경되지 않은 채로 진보된 UI 어플리케이션(311)은 서버(203)로 기동된다. 따라서, 유저가 클라이언트(201, 202) 상에서 유저 인터페이스를 동작시킬 수 없다.
진보된 UI 어플리케이션(311)이 설치되어 있는 환경에서는, 공유 프린터가 이용되는 것이 금지된다. 도 19 및 도 20과 도 21의 흐름도를 참조하여 공유 프린터가 사용되는 것을 금지하는 메커니즘을 설명한다.
스텝 S2101에서, 운영 체제(1053)는 유저로부터 프린터 드라이버(1052) 중의 공유 탭을 표시하도록 호출된다. 또한, 운영 체제(1053)는 어느 프린터 드라이버(1052)가 사용되는지를 지정하기 위한 모델 정보를 수신한다.
운영 체제(1053)는 수신된 모델 정보에 기초하여, 레지스트리 데이터베이스(308)를 검색한다. 프린터 드라이버(1052)의 설치 동안 기술된 드라이버 정보가 레지스트리 데이터베이스(308)에 기입된다. 운영 체제(1053)는 지정된 모델 정보에 대응하는 드라이버 정보를 취득한다.
스텝 S2102에서, 운영 체제(1053)는, 취득한 드라이버 정보가 진보된 UI 어플리케이션(311)의 CLSID를 포함하는지 여부를 판정한다. CLSID가 존재하면(스텝 S2102의 예), 운영 체제(1053)가 진보된 UI 어플리케이션(311)을 사용해서 유저 인터페이스를 표시하므로, 처리는 스텝 S2103으로 진행한다. 스텝 S2103에서, 운영 체제(1053)는 "공유가 지원되지 않습니다"라는 메시지가 배치된, 공유 설정을 지정할 수 없는 공유 탭을 표시한다(도 20).
도 19에 나타낸 프린터의 공유를 위한 체크박스가 그레이 아웃( gray out)될 수도 있다. CLSID가 존재하지 않는다면(스텝 S2102의 아니오), 처리는 스텝 S2104로 진행한다. 스텝 S2104에서, 운영 체제(1053)는 공유를 위한 체크박스가 배치되는 공유 탭을 표시한다(도 19 참조).
진보된 UI 어플리케이션(311)이 사용될 때, CPSUI(801)는 속성 시트의 베이스를 생성하지 않는다. 따라서, 운영 체제(1053)는 자유롭게 유저 인터페이스를 생성할 수 있다.
그러나, 운영 체제(1053)가 속성 시트의 베이스와 몇 개의 탭을 추가한 후, 프린터 드라이버(1052)의 구성 모듈(304)이 탭을 더욱 추가하는 유저 인터페이스는 생성될 수 없다. 유저 인터페이스의 예들은 디바이스 설정을 확인하기 위한 유저 인터페이스와 잡 설정을 확인하기 위한 유저 인터페이스를 포함한다.
이 경우에, 진보된 UI 어플리케이션(311)은 이러한 유저 인터페이스를 생성할 수 없다. 따라서, 도 22 및 도 23과 도 24에 나타낸 흐름도를 참조하여 유저 인터페이스에 버튼을 표시하기 위한 방법을 설명한다.
스텝 S2401에서, 운영 체제(1053)는 유저로부터 디바이스 설정과 잡 설정을 확인하기 위한 유저 인터페이스를 표시하도록 호출된다. 또한, 운영 체제(1053)는 어느 프린터 드라이버(1052)가 사용될 것인지를 지정하기 위한 모델 정보를 수신한다.
운영 체제(1053)는 수신된 모델 정보에 기초하여 레지스트리 데이터베이스(308)를 검색한다. 프린터 드라이버(1052)의 설치 동안 기술된 드라이버 정보가 레지스트리 데이터베이스(308)에 기입된다. 운영 체제(1053)는 수신된 모델 정보에 대응하는 드라이버 정보를 취득한다.
스텝 S2402에서, 운영 체제(1053)는, 취득된 드라이버 정보가 진보된 UI 어플리케이션(311)의 CLSID를 포함하는지 여부를 판정한다. CLSID가 존재하면(스텝 S2402의 예), 처리는 스텝 S2403으로 진행한다. 스텝 S2403에서, 운영 체제(1053)는, 진보된 UI 어플리케이션(311)의 유저 인터페이스를 열기 위한 버튼이 배치되는 탭을 표시한다.
CLSID가 존재하지 않으면(스텝 S2402의 아니오), 처리는 스텝 S2404로 진행한다. 스텝 S2404에서, 운영 체제(1053)는 프린터 드라이버(1052)의 구성 모듈(304)을 호출하여 탭을 추가한다.
도 22에서, 잡의 설정을 확인하기 위한 유저 인터페이스에 기본 설정을 위한 버튼이 표시되고, 진보된 UI 어플리케이션(311)의 잡 설정을 확인하기 위한 유저 인터페이스를 호출하다. 도 23에서, 디바이스 설정을 확인하기 위한 버튼이 디바이스 설정에 대한 유저 인터페이스에 표시되고, 진보된 UI 어플리케이션(311)의 디바이스 설정에 대한 유저 인터페이스를 호출한다.
이상과 같이 하는 것으로, 유저 인터페이스가 크래쉬되어도 어플리케이션(1051)이 연루되는 것이 방지될 수 있도록, 유저 인터페이스는 진보된 UI 어플리케이션(311)의 형태로 프린터 드라이버(1052)로부터 분리된다.
속성 시트가 아닌 유저 인터페이스가 자유롭게 생성될 수 있도록, 시스템은 CPSUI(801)에 의존하지 않는다. 다른 프로세스 사이의 통신이 이름이 붙여진 파이프와 공유 메모리를 사용하지 않고 COM을 사용하여 수행되어, 운영 체제(1053)에 의존하는 코드의 수가 진보된 UI 어플리케이션(311)에서 감소될 수 있다.
진보된 UI 어플리케이션(311)은 제1 실시예에서 프린터 드라이버(1052)의 설치 세트와 별도로 설치를 수행하지만, 제2 실시예에서는 진보된 UI 어플리케이션(311)이 프린터 드라이버(1052)에 대한 설치 세트에 포함될 수도 있다. 진보된 UI 어플리케이션(311)이 프린터 드라이버(1052)에 대한 설치 세트에 포함될 때의 프린터 드라이버(1052)의 설치를 도 25의 흐름도와 도 26을 참조하여 설명한다.
프린터 드라이버(1052)는 도 26에 나타낸 셋업 정보 파일(이하, INF 파일이라 칭함)에 따라서 운영 체제(1053)에 설치된다. INF 파일은, 제1 실시예에서 설명한 진보된 UI 어플리케이션(311)의 CLSID에 추가하여, 진보된 UI 어플리케이션(311)의 어플리케이션 파일 이름을 포함한다.
스텝 S2501에서, 운영 체제(1053)는 프린터 드라이버(1052)를 설치하는 것을 개시한다. 운영 체제(1053)는 지정된 모델에서 프린터 드라이버(1052)에 대한 설치 세트를 검색한다. 설치 세트는 운영 체제(1053)에 통합된 하나를 포함하지만, 유저에 의해 지정될 수 있거나, 이전에 식별된 배신 서버 등으로부터 제공될 수도 있다.
스텝 S2502에서, 운영 체제(1053)는 설치 세트에 포함된 INF 파일에 기초하여 파일을 복사하고, 레지스트리 데이터베이스(308)에 필요한 드라이버 정보를 기입하여 프린터 드라이버(1052)의 통상적인 설치를 완료한다.
스텝 S2503에서, 운영 체제(1053)는, 프린터 드라이버(1052)에 대한 INF 파일이 진보된 UI 어플리케이션(311)의 파일 이름을 포함하는지 여부를 판정한다. 도 26에서, 키 AdvancedUI는 진보된 UI 어플리케이션(311)의 파일 이름에 대응한다.
진보된 UI 어플리케이션(311)의 파일 이름이 존재한다면(스텝 S2503의 예), 처리는 스텝 S2504로 진행한다. 스텝 S2504에서, 운영 체제(1053)는 /RegSvr 옵션을 인수로서 추가함으로써 진보된 UI 어플리케이션(311)을 기동한다.
스텝 S2505에서, 운영 체제(1053)는, INF 파일이 진보된 UI 어플리케이션(311)의 CLSID를 포함하는지 여부를 확인한다. 진보된 UI 어플리케이션(311)의 CLSID가 존재하면(스텝 S2505의 예), 처리는 스텝 S2506으로 진행한다. 스텝 S2506에서, 운영 체제(1053)는 INF 파일로부터 CLSID를 취득한다.
스텝 S2507에서, 운영 체제(1053)는 진보된 UI 어플리케이션(311)의 CLSID를 레지스트리 데이터베이스(308)의 드라이버 정보에 추가한다. 프린터 드라이버(1052)의 설치뿐만 아니라 진보된 UI 어플리케이션(311)의 설치도 완료된다.
상술한 바와 같이, 진보된 UI 어플리케이션(311)이 프린터 드라이버(1052)에 대한 설치 세트에 추가되면, 유저는 다른 프로세스에서 기동되는 유저 인터페이스를, 진보된 UI 어플리케이션(311)을 별도로 후에 추가하지 않고 프린터 드라이버(1052)만을 설치함으로써 이용할 수 있다.
상술한 바와 같이, 본 실시예에 따르면, 프린터 드라이버(1052)의 유저 인터페이스는 어플리케이션(1051)에 의해 실행되는 프로세스와는 다른 프로세스로 기동된다. 따라서, 유저 인터페이스가 어플리케이션(1051)까지 연루시키지 않고 크래쉬되는 것이 방지된다.
운영 체제(1053)는 베이스를 준비할 필요가 없다. 따라서, 프린터 드라이버(1052)의 유저 인터페이스는 자유롭게 설계되고 배치될 수 있다.
진보된 UI 어플리케이션(311)은 프린터 드라이버(1052)와는 별도로 설치될 수 있다. 따라서, 유저 페이스만 프린터 드라이버(1052)를 갱신하지 않고도 변경될 수 있다.
메모리 영역은 각 프로세스에 대해 다르다. 따라서, 보다 많은 메모리 영역이 사용될 수 있다. 동영상 및 3차원(3D)을 이용하는 풍요한 유저 인터페이스도 생성될 수 있다.
본 발명의 양태는 상술한 실시예(들)의 기능을 수행하도록 메모리 디바이스 상에 기록된 프로그램을 판독 및 실행하는 컴퓨터 시스템 또는 장치(또는 CPU 또는 MPU와 같은 디바이스), 예를 들어, 상술한 실시예(들)의 기능을 수행하도록 메모리 디바이스 상에 기록된 프로그램을 판독 및 실행하여 컴퓨터 시스템 또는 장치에 의해 단계들이 수행되는 방법에 의해 구현될 수도 있다. 이를 위해서, 프로그램은 예를 들어, 네트워크를 통해 또는 메모리 디바이스로서의 역할을 하는 각종 기록 매체(예를 들어, 컴퓨터 판독가능 매체)를 통해 컴퓨터에 제공된다.
실시예들을 참조하여 본 발명을 설명하였지만, 본 발명은 개시된 실시예에 한정되지 않는다는 것이 이해되어야 한다. 이하의 청구항의 범위는 모든 변형, 동등한 구성 및 기능을 포함하도록 최광의의 해석에 따라야 한다.

Claims (10)

  1. 유저 인터페이스 어플리케이션이 설치되는 경우에, 유저 인터페이스 어플리케이션의 패스와 식별자를 저장하도록 구성된 데이터베이스를 이용하는 정보 처리 장치이며,
    프린터 드라이버가 설치되는 경우에, 프린터 드라이버의 셋업 파일로부터 유저 인터페이스 어플리케이션의 식별자를 취득하도록 구성된 제1 취득 수단;
    데이터베이스에서, 설치될 프린터 드라이버의 모델과 연관된 드라이버 정보에 상기 제1 취득 수단에 의해 취득된 식별자를 추가하도록 구성된 추가 수단;
    어플리케이션이 프린터 드라이버의 유저 인터페이스를 표시하라는 지시를 수행한 경우에, 데이터베이스에서, 어느 프린터 드라이버가 사용될 것인지를 지정하기 위한 모델 정보와 연관된 드라이버 정보에 식별자가 등록되었는지 여부를 판정하도록 구성된 판정 수단;
    상기 판정 수단이, 식별자가 데이터베이스에 등록된 것으로 판정한 경우에, 식별자를 이용하여 유저 인터페이스 어플리케이션의 패스를 취득하도록 구성된 제2 취득 수단; 및
    유저 인터페이스 어플리케이션을 어플리케이션 프로세스와는 다른 프로세스로 기동하도록 구성된 기동 수단
    을 포함하는, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 기동 수단은, 상기 판정 수단이 식별자가 데이터베이스에 등록되지 않은 것으로 판정한 경우에, 유저 인터페이스 어플리케이션을 어플리케이션 프로세스와 동일한 프로세스로 기동하도록 구성되는, 정보 처리 장치.
  3. 제1항에 있어서,
    프린터 드라이버가 프린터 드라이버들 중의 공유 탭을 표시하도록 호출되는 경우에, 프린터 드라이버의 모델과 연관된 드라이버 정보에 식별자가 등록되었는지 여부를 판정하도록 구성된 추가적인 판정 수단을 더 포함하고,
    상기 정보 처리 장치는, 프린터의 공유가 설정될 수 없는 화면을 표시하도록 구성된 표시 수단을 더 포함하는, 정보 처리 장치.
  4. 유저 인터페이스 어플리케이션이 어플리케이션 프로세스와 다른 프로세스로 기동되는 정보 처리 장치이며,
    유저 인터페이스의 설정을 인쇄 티켓에 반영하도록 구성된 반영 수단;
    인쇄 티켓에 포함되지 않은 설정을 레지스트리에 저장하도록 구성된 저장 수단;
    레지스트리로부터 설정을 판독하도록 구성된 판독 수단; 및
    유저 인터페이스 어플리케이션이 필터 파이프라인 프로세스로부터 기동되는 경우에, 판독된 설정을 속성 백(property bag)에 추가하도록 구성된 추가 수단
    을 포함하고,
    필터가 속성 백에 추가된 설정을 수신하고, 인쇄 처리를 수행하는, 정보 처리 장치.
  5. 유저 인터페이스 어플리케이션이 설치되는 경우에, 유저 인터페이스 어플리케이션의 패스와 식별자를 저장하도록 구성된 데이터베이스를 이용하는 정보 처리 방법이며,
    프린터 드라이버가 설치되는 경우에, 프린터 드라이버의 셋업 파일로부터 유저 인터페이스 어플리케이션의 식별자를 취득하는 단계;
    데이터베이스에서, 설치될 프린터 드라이버의 모델과 연관된 드라이버 정보에 취득된 식별자를 추가하는 단계;
    어플리케이션이 프린터 드라이버의 유저 인터페이스를 표시하라는 지시를 수행한 경우에, 데이터베이스에서, 어느 프린터 드라이버가 사용될 것인지를 지정하기 위한 모델 정보와 연관된 드라이버 정보에 식별자가 등록되었는지 여부를 판정하는 단계; 및
    식별자가 데이터베이스에 등록된 것으로 판정된 경우에, 식별자를 이용하여 유저 인터페이스 어플리케이션의 패스를 취득하고, 유저 인터페이스 어플리케이션을 어플리케이션 프로세스와는 다른 프로세스로 기동하는 단계
    를 포함하는, 정보 처리 방법.
  6. 제5항에 있어서,
    식별자가 데이터베이스에 등록되지 않은 것으로 판정된 경우에는, 유저 인터페이스 어플리케이션이 어플리케이션 프로세스와 동일한 프로세스로 기동되는, 정보 처리 방법.
  7. 제6항에 있어서,
    프린터 드라이버가 프린터 드라이버들 중의 공유 탭을 표시하도록 호출되는 경우에, 프린터 드라이버의 모델과 연관된 드라이버 정보에 식별자가 등록되었는지 여부를 판정하고, 프린터의 공유가 설정될 수 없는 화면을 표시하는 단계를 더 포함하는, 정보 처리 방법.
  8. 컴퓨터에 의해 실행됨으로써 컴퓨터가 제5항 내지 제7항 중 어느 한 항에 따른 방법을 수행하게 하는 프로그램을 저장한 저장 매체(carrier medium).
  9. 유저 인터페이스 어플리케이션이 어플리케이션 프로세스와는 다른 프로세스로 기동되는 정보 처리 방법이며,
    유저 인터페이스의 설정을 인쇄 티켓에 반영하는 단계;
    인쇄 티켓에 포함되지 않은 설정을 레지스트리에 저장하는 단계;
    레지스트리로부터 설정을 판독하는 단계; 및
    유저 인터페이스 어플리케이션이 필터 파이프라인 프로세스로부터 기동되는 경우에, 판독된 설정을 속성 백에 추가하는 단계
    를 포함하고,
    필터가 속성 백에 추가된 설정을 수신하고, 인쇄 처리를 수행하는, 정보 처리 방법.
  10. 컴퓨터에 의해 실행됨으로써 컴퓨터가 제9항에 따른 방법을 구현하게 하는 프로그램을 저장한 저장 매체.
KR1020120045208A 2011-05-02 2012-04-30 정보 처리 장치, 정보 처리 방법 및 저장 매체 KR101452572B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011103005A JP5787606B2 (ja) 2011-05-02 2011-05-02 情報処理装置、情報処理方法、及びプログラム
JPJP-P-2011-103005 2011-05-02

Publications (2)

Publication Number Publication Date
KR20120124040A true KR20120124040A (ko) 2012-11-12
KR101452572B1 KR101452572B1 (ko) 2014-10-22

Family

ID=46087476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120045208A KR101452572B1 (ko) 2011-05-02 2012-04-30 정보 처리 장치, 정보 처리 방법 및 저장 매체

Country Status (5)

Country Link
US (3) US9785445B2 (ko)
EP (1) EP2521027B1 (ko)
JP (1) JP5787606B2 (ko)
KR (1) KR101452572B1 (ko)
CN (1) CN102768619B (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5787606B2 (ja) 2011-05-02 2015-09-30 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP6102220B2 (ja) * 2012-11-28 2017-03-29 株式会社リコー 画像処理システム及びその情報処理方法
JP2014104703A (ja) * 2012-11-29 2014-06-09 Seiko Epson Corp 印刷装置、印刷装置の制御方法、及び、プログラム
JP6330361B2 (ja) * 2013-03-27 2018-05-30 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷システム
JP6127695B2 (ja) * 2013-05-01 2017-05-17 株式会社リコー 印刷処理装置及びプログラム
JP6184212B2 (ja) * 2013-07-12 2017-08-23 キヤノン株式会社 情報処理装置および制御方法およびプログラム
KR20150040669A (ko) 2013-10-07 2015-04-15 삼성전자주식회사 인쇄 어플리케이션 구성을 커스터마이즈하는 방법 및 그 장치
JP5910603B2 (ja) * 2013-10-17 2016-04-27 コニカミノルタ株式会社 設定用オブジェクト表示制御装置、設定用オブジェクト表示方法、およびコンピュータプログラム
US10810222B2 (en) 2014-11-24 2020-10-20 Asana, Inc. Continuously scrollable calendar user interface
CN105843644B (zh) * 2016-03-24 2020-01-10 珠海豹趣科技有限公司 一种应用程序安装方法、装置及电子设备
JP6885251B2 (ja) * 2016-09-15 2021-06-09 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6926809B2 (ja) * 2016-11-24 2021-08-25 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
JP6983614B2 (ja) * 2017-10-16 2021-12-17 キヤノン株式会社 プログラム
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US10684870B1 (en) * 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
JPWO2020148978A1 (ja) * 2019-01-15 2021-12-02 ソニーグループ株式会社 情報処理装置及び情報処理方法
JP7350525B2 (ja) * 2019-06-12 2023-09-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802061B1 (en) * 1996-12-12 2004-10-05 Microsoft Corporation Automatic software downloading from a computer network
US6184998B1 (en) 1997-09-15 2001-02-06 Canon Kabushiki Kaisha Adding printing to the windows registry
JP3408124B2 (ja) 1997-11-06 2003-05-19 シャープ株式会社 コンピュータシステムを利用した印刷処理装置
US6501491B1 (en) 1998-09-21 2002-12-31 Microsoft Corporation Extensible user interface for viewing objects over a network
US7523191B1 (en) * 2000-06-02 2009-04-21 Yahoo! Inc. System and method for monitoring user interaction with web pages
JP2002132472A (ja) * 2000-10-24 2002-05-10 Canon Inc プリント補助制御装置、プリント制御装置および方法
JP4686854B2 (ja) 2000-12-08 2011-05-25 株式会社ニコン 画像符号化装置、電子カメラ、および画像符号化プログラムの記録媒体
US20030043396A1 (en) * 2001-08-29 2003-03-06 Klosterman Elliot L. Printer driver access interface
US7917855B1 (en) * 2002-04-01 2011-03-29 Symantec Operating Corporation Method and apparatus for configuring a user interface
US7284246B2 (en) * 2002-04-23 2007-10-16 Canon Kabushiki Kaisha Extensible device driver
US7600234B2 (en) * 2002-12-10 2009-10-06 Fisher-Rosemount Systems, Inc. Method for launching applications
US7853946B2 (en) * 2003-02-28 2010-12-14 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and control program
US7869068B2 (en) * 2003-06-27 2011-01-11 Zoran Corporation Printer driver extension and related method
US20050157321A1 (en) * 2004-01-20 2005-07-21 Alacar Arthur E. Printer driver plug-in module management system
US20050257226A1 (en) * 2004-05-14 2005-11-17 Microsoft Corporation PnP functionality for unsupported devices
US20060031755A1 (en) * 2004-06-24 2006-02-09 Avaya Technology Corp. Sharing inking during multi-modal communication
JP4207864B2 (ja) * 2004-08-10 2009-01-14 ブラザー工業株式会社 状態情報処理装置、および状態情報処理装置用データ処理プログラム
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
JP2006109296A (ja) * 2004-10-08 2006-04-20 Canon Inc デジタルカメラ及びデジタルカメラの制御方法
JP4413124B2 (ja) * 2004-10-25 2010-02-10 コニカミノルタビジネステクノロジーズ株式会社 印刷指示方法および装置およびプログラム
US20070179883A1 (en) * 2006-01-18 2007-08-02 Verdicash Inc. System and method and computer readable code for visualizing and managing digital cash
JP4667280B2 (ja) 2006-03-17 2011-04-06 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
JP4785577B2 (ja) 2006-03-17 2011-10-05 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US20070260577A1 (en) * 2006-03-30 2007-11-08 Microsoft Corporation Providing COM access to an isolated system
JP4828296B2 (ja) * 2006-04-27 2011-11-30 京セラミタ株式会社 印刷装置制御システム及びプリンタドライバ
KR20080052357A (ko) * 2006-12-07 2008-06-11 삼성전자주식회사 프린터 드라이버의 제어방법 및 이를 포함하는 네트워크인쇄시스템
US9239666B2 (en) * 2007-09-12 2016-01-19 Citrix Systems, Inc. Methods and systems for maintaining desktop environments providing integrated access to remote and local resources
JP4963663B2 (ja) 2007-10-25 2012-06-27 キヤノン株式会社 情報処理装置、情報処理方法、記憶媒体、プログラム
JP5031514B2 (ja) 2007-10-31 2012-09-19 キヤノン株式会社 データ処理装置およびデータ処理方法
JP5078686B2 (ja) 2008-03-18 2012-11-21 キヤノン株式会社 印刷設定処理装置及び印刷設定処理方法
JP5070101B2 (ja) 2008-03-25 2012-11-07 キヤノン株式会社 情報処理装置及びその制御方法、プリンタドライバプログラム
KR101425439B1 (ko) * 2008-04-23 2014-07-31 삼성전자주식회사 프린터 드라이버 팩키지를 생성하기 위한 단말장치 및드라이버 팩키지 생성방법
US8850052B2 (en) * 2008-09-30 2014-09-30 Apple Inc. System and method for simplified resource sharing
JP4661939B2 (ja) * 2008-10-31 2011-03-30 ブラザー工業株式会社 情報処理装置
JP5332771B2 (ja) * 2009-03-17 2013-11-06 株式会社リコー 印刷処理システム、印刷処理方法、印刷処理プログラムおよび記録媒体
JP5597943B2 (ja) * 2009-06-10 2014-10-01 株式会社リコー システム及び方法
US8928899B2 (en) * 2011-02-24 2015-01-06 Ricoh Company, Ltd. Web services printer driver
JP5787606B2 (ja) 2011-05-02 2015-09-30 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP5979893B2 (ja) * 2012-02-01 2016-08-31 キヤノン株式会社 情報処理装置、制御方法、及びプログラム

Also Published As

Publication number Publication date
KR101452572B1 (ko) 2014-10-22
US11016782B2 (en) 2021-05-25
US20190065215A1 (en) 2019-02-28
US20120281245A1 (en) 2012-11-08
US20170371682A1 (en) 2017-12-28
EP2521027B1 (en) 2018-08-08
CN102768619A (zh) 2012-11-07
JP5787606B2 (ja) 2015-09-30
US10152332B2 (en) 2018-12-11
CN102768619B (zh) 2016-08-10
JP2012234399A (ja) 2012-11-29
EP2521027A1 (en) 2012-11-07
US9785445B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
KR101452572B1 (ko) 정보 처리 장치, 정보 처리 방법 및 저장 매체
US8537438B2 (en) Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program
JP5857611B2 (ja) 情報処理装置、システム、プログラム
EP1865409B1 (en) Information processing apparatus, print controlling method, and computer-readable storage medium
US9442678B2 (en) Information processing apparatus, information processing system and non-transitory computer-readable information recording medium
US8850459B2 (en) Information processing apparatus, information processing method, and program
RU2560793C2 (ru) Аппарат обработки информации, способ управления и носитель информации
JP2006048535A (ja) 画像処理装置及びその制御方法
US20110299126A1 (en) Print system, client, control method, and storage medium
KR20100124666A (ko) 정보 처리 장치, 제어 방법 및 기억 매체
JP6184212B2 (ja) 情報処理装置および制御方法およびプログラム
JP2014109854A (ja) 情報処理装置および制御方法およびプログラム
US20150355871A1 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
JP5972436B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7242203B2 (ja) 情報処理装置、アプリケーションおよび制御方法
JP2013054778A (ja) 情報処理装置、方法、制御プログラム
JP5159974B2 (ja) 情報処理装置、方法、制御プログラム
JP7171227B2 (ja) 情報処理装置、その制御方法およびアプリケーション
JP2013131109A (ja) 印刷管理装置、印刷管理方法、及びコンピュータプログラム
JP2020071693A (ja) 情報処理装置、及びその制御方法並びにプログラム
JP2018185826A (ja) アプリケーションプログラム及び制御方法
JP2019049825A (ja) ポイントアンドプリント環境におけるドライバーの更新方法、プログラム、及び、情報処理装置
JP2019032598A (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: 20170925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5