KR20060101217A - 프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템 - Google Patents

프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템 Download PDF

Info

Publication number
KR20060101217A
KR20060101217A KR1020060007308A KR20060007308A KR20060101217A KR 20060101217 A KR20060101217 A KR 20060101217A KR 1020060007308 A KR1020060007308 A KR 1020060007308A KR 20060007308 A KR20060007308 A KR 20060007308A KR 20060101217 A KR20060101217 A KR 20060101217A
Authority
KR
South Korea
Prior art keywords
print job
data
block
print
blocks
Prior art date
Application number
KR1020060007308A
Other languages
English (en)
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 KR20060101217A publication Critical patent/KR20060101217A/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
    • 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
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

각종 실시예에서 렌더링된 프린트 작업 데이터와 함께 프린트 작업 데이터의 특정 특성을 기술하는 메타데이터가 개발된다(그리고 소비된다). 이 메타데이터는 렌더링된 데이터와 함께 클라이언트 장치로부터 프린트 서버로 제공되고, 프린트 서버가 프린트 작업 데이터의 본질 또는 그 문맥을 확인하도록 한다. 일부 실시예에서, 메타데이터는 페이지 경계 및 상태 이행 데이터 같은 것들을 기술할 수 있다. 프린트 작업 데이터의 본질 또는 문맥을 확인함으로써, 프린트 서버는 이 정보에 따라 지능적으로 행동할 수 있고, 적어도 일부 실시예에서 렌더링된 데이터만 프린트 서버로 전송될 경우라면 가능하지 않을 수 있는 추가의 프린트 서버 특징을 구현할 수 있다.
프린트 작업 데이터, 메타 데이터, 인덱스 스트림, 렌더링된 데이터

Description

프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템{METHODS AND SYSTEMS FOR PROVIDING INDEX DATA FOR PRINT JOB DATA}
도 1은 한 실시예에 따라 프린트 작업 부(print job portion)와 메타데이터 부(metadata portion)를 포함하는 문서를 예시적으로 나타내는 도면.
도 2는 한 실시예에 따라 클라이언트 장치의 예시적인 컴포넌트를 도시하는 도면.
도 3은 한 실시예에 따라 프린트 서버의 예시적인 컴포넌트를 도시하는 도면.
도 4는 한 실시예에 따라 방법의 단계들을 설명하는 흐름도.
도 5는 각종 실시예를 구현하기 위해 도 2의 클라이언트 장치 및 도 3의 프린트 서버 둘 다에 채용될 수 있는 컴포넌트들을 지니는 예시적인 컴퓨팅 장치.
<도면의 주요부분에 대한 부호의 설명>
544 : 처리 장치
546 : 시스템 메모리
548 : 버스
588 : 프린트 서버
본 발명은 프린팅 방법 및 시스템에 관한 것이다.
프린트 서버는 통상적으로 프린트 작업을 수신하고, 이 작업을 프린팅하기 위해 프린터로 전송한다. 프린터는 그 장치에 대해 출력이 생성될 수 있는 방법을 기술하는 페이지 기술어(page description language:PDL)를 이해한다. 여기에는 Post Script, PDF 및 PCL의 많은 변형을 포함하여 상이한 많은 PDL이 있다.
또한, 아발론 그래픽 프리미티브(Avalon graphical primitives)의 지속적인 형태인 EMF(enhanced meta-files)와 Metro와 같은 다른 페이지 기술어도 있다. EMF 및 Metro는 중간 페이지 기술어로 알려져 있다. 이 중간 포맷은 드라이버에 의해 파싱될 수 있고, 특정 장치를 위한 PDL로 변환될 수 있다. 이 프로세스는 렌더링으로 알려져 있고, 생성되는 결과물은 렌더링된 프린트 스트림이라 지칭된다.
프린트 서버에서 렌더링하는 데에는 많은 불리함이 있다. 예를 들어, 렌더링하는 데에는 프로세서 및 메모리가 많이 소요된다. 따라서, 프린트 서버에서 렌더링을 하면 서버의 성능이 저하될 수 있다. 또한, 대부분의 프린트 장치는 장치가 페이지를 출력할 수 있는 속도에 의해 자연적으로 조절된다는 점에서 입력/출력 바운딩이라 할 수 있다.
따라서, 시간이 지남에 따라 프로세서 및 메모리가 많이 소요되는 동작들을 클라이언트 측으로 이동함으로써 프린트 서버상에서 이들 활동을 수행하는 것과 관련된 일부 성능 문제 및 이슈를 완화할 수 있다는 의견이 일어나고 있다. 따라서, 클라이언트는 서버가 렌더링하고 래스터라이징할 필요가 없도록 프린트 작업 데이터를 미리 렌더링하고 미리 래스터라이징할 수 있다.
그러나 미리 래스터라이징된 데이터를 프린트 서버로 전송하는 것은 비용이 들 수 있다. 예를 들어, 오류의 경우, 통상적으로 작업 전체가 처음부터 다시 시작되어야 한다. 이것은 서버가 통상적으로 오류 상태를 데이터 스트림의 근사 바이트 오프셋과 상호관련시킬 수는 있지만, 오류 상태를 특정 페이지와 상호관련시킬 수 없고 또한 재시작시 프린트 작업의 특정 페이지로 스킵할 수도 없기 때문이다. 또한, 데이터 스트림에서 어떤 바이트 위치로 임의로 스킵하는 것이 사실상 불가능한데, 그 이유는 스킵된 바이트에 후속 바이트를 프린트하기 위해 필요한 특정 상태에 프린터를 두게 하는 프린터 명령을 포함할 수 있기 때문이다. 따라서, 작업이 100 페이지짜리 문서의 99번째 페이지에서 실패하는 경우, 100 페이지 모두가 다시 전송되어야 할 것이다.
임의의 바이트 위치에서 작업을 중단함(abort)으로써 유사한 문제가 발생된다. 특히, 일부 제어 코드는 프린터의 상태를 변경할 수 있다. 변경된 상태로 인해, 잘 형성된 후속 작업들이 제대로 해석되지 않을 수 있다. 예를 들어, 제어 코드는 프린터가 예상할 수 없는 바이트 수에 대해 후속 데이터가 비트맵일 수 있다고 해석하는 모드에 프린터를 둘 수 있다. 이 제어 코드와 관련된 프린트 작업이 임의로 중단되는 경우, 후속 프린트 작업은 비트맵이라고 잘못 해석된 미정의 개수의 바이트를 지닐 수 있다. 이러한 상황에서, 서버는 프린터를 적절한 상태로 리턴시키는 방법을 알 방법이 없다.
따라서, 이러한 문제점으로부터 프린터 서버에 바람직한 정도의 유연성을 제공하는 방식으로 프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템을 제공하는 것과 관련된 본 발명이 비롯되었다.
각종 실시예에서 미리 래스터라이징된 작업 데이터와 함께 프린트 작업 데이터의 특정 특성을 기술하는 메타데이터가 개발된다(그리고 소비된다). 이 메타데이터는 미리 래스터라이징된 데이터와 함께 클라이언트 장치로부터 프린트 서버로 제공되고, 프린트 서버가 프린트 작업 데이터의 본질 또는 그 문맥을 확인할 수 있도록 한다. 일부 실시예에서, 메타데이터는 페이지 경계 및 상태 이행 데이터와 같은 것들을 기술할 수 있다. 프린트 작업 데이터의 본질 또는 문맥을 확인함으로써, 프린트 서버는 이 정보에 따라 지능적으로 행동할 수 있고, 적어도 일부 실시예에서 미리 래스터링된 데이터만 프린트 서버로 전송될 경우라면 가능하지 않을 수 있는 추가의 프린트 서버 특징을 구현할 수 있다.
개요
각종 실시예에서 렌더링된 프린트 작업 데이터와 함께 프린트 작업 데이터의 일부 특성을 기술하는 메타데이터가 설명된다. 본 명세서의 문맥에서, "렌더링된" 데이터는 벡터 부 또는 래스터 부 중 하나 이상을 포함하는(그러나 이에 제한되지 않음) 데이터를 포함할 수 있다. 이 메타데이터는 렌더링된 데이터와 함께 클라이언트 장치로부터 프린트 서버로 제공될 수 있고, 프린트 서버가 프린트 작업 데이 터의 본질 또는 그 문맥을 확인하도록 할 수 있다. 일부 실시예에서, 메타데이터는 페이지 경계 및 상태 이행 데이터 같은 것들을 기술할 수 있다. 프린트 작업 데이터의 본질 또는 문맥을 확인함으로써, 프린트 서버는 이 정보에 따라 지능적으로 행동할 수 있고, 적어도 일부 실시예에서 렌더링된 데이터만 프린트 서버로 전송될 경우라면 가능하지 않을 수 있는 추가의 프린트 서버 특징을 구현할 수 있다.
예를 들어, 프린트 서버는 메타데이터를 이용하여 프린트 작업 데이터의 문맥을 이해하고, 전체 페이지가 프린터로 전송되었다는 것을 확신할 수 있다. 예를 들어, 기계 휴면(machine hibernation) 동안, 시스템은 휴면 전에 모든 페이지가 출력되었다는 것을 확신할 수 있다. 또한, 프린트 서버는 프린트 서버가 작업을 종료하기 전에 적절한 상태로 리턴되었다는 것을 확신할 수 있다. 예를 들어, 사용자가 작업을 재시작하는 경우, 시스템은 프린트 스트림이 비트맵을 포함한다는 것을 기대할 수 있는 상태로부터 프린터를 리턴하기 위해 옳은 제어 코드가 전송되었다는 것을 확신할 수 있다. 또한, 프린트 서버는 서버가 셧다운될 필요가 있거나 또는 장치에 오류가 있었을 때 소정의 페이지로부터 프린트 작업을 재시작할 수 있다. 또한, 프린트 서버는 체크 프린팅과 같은 신뢰할만한 시나리오를 가능하게 하기 위해 페이지별로 출력을 생성할 수 있다.
PDL 에 관련된 몇몇 가정
이하에 설명되는 각종 실시예는 PDL에 관련된 많은 가정 하에 구축되고, 실시예는 이 가정과 함께 또는 이 가정을 채용할 수 있다.
먼저, PDL이 프린터 상태를 변경하거나 이행하는 잘 정의된 데이터 블록을 구현하지만, 아무런 출력을 생성하지 않는다고 가정한다. 일부 예시적인 이행으로는, 예제로서 폰트 다운로드, (텍스트 인코딩에서 래스터 인코딩으로의 변환, 그래픽 속성 상태 변경(예를 들어 브러시, 펜) 및 코드페이지 및 문자 집합 모드 변경과 같은) 모드 변경, (PostScript에 의해 활용되는 것과 같은) 프로시져 선언, (PostScript에 의해 사용되는 것과 같은) 문맥 스택 동작, 어파인 변환(affine transforms), 이미지 스트림 정의, 매크로 정의 등이 있지만 이에 제한되지 않는다.
다른 가정은 이들 모드 변경 중 적어도 일부는 특정 개수의 바이트에 대해 사실상 유지되다가 이후 이전 모드로 리턴되고, 다른 모드 변경은 스트림의 소정의 포인트에서 적절한 데이터를 전송함으로써 반대로 된다는 것이다.
또 다른 가정은 PDL이 프린터로 하여금 출력을 생성하도록 하는 데이터 시퀀스를 지니고 있다는 것이다. 이와 같이, 데이터가 디코딩되는 방법은 이전 상태 이행에 달려있다. 예를 들어, 문자 시퀀스의 출력은 다운로드된 폰트에 달려 있다. 또 다른 예제로서, PostScript 명령 시퀀스의 해석은 정의되었던 프로시져 선언에 달려 있을 것이다.
또한, 또 다른 가정은 프린터로 하여금 출력을 생성하도록 하는 데이터 블록 중 일부는 해석되지 않은 블록으로서 전송되어야만 한다는 것이다. 예를 들어, 비트맵이 프린터로 다운로드되는 경우, 소정의 블록에 대한 모든 데이터는 비트맵 데이터로서 해석될 것이고 시퀀스는 에스케이프될(escape) 수 없다.
또한, PDL의 생성 동안 프린터 드라이버에 관한 가정은 다음과 같다. 드라 이버는 출력을 생성하기 위해 프린터의 상태를 정확하게 추적해야 한다. 따라서, 드라이버는 이전의 상태 이행 시퀀스 중 어느 것이 현재의 출력과 관련되는가를 (적어도 제일 먼저) 알아야만 한다.
예시적인 실시예
도 1은 일반적으로 프린트 작업 부(102)와 메타데이터 부(104)를 포함하는 문서의 예시적인 표현(100)을 도시한다.
이 예제에서, 프린트 작업 부(102)는 바이트의 연속 시퀀스의 형태로 렌더링된 데이터를 포함하고, 메타데이터 부(104)는 프린트 작업 부에 인덱스를 제공하는 인덱스 스트림을 포함한다. 이 특정 예제에서, 프린트 작업 부(102)는 변경되지 않은 상태로 남아 있다. 즉, 프린트 작업 부는 미리 래스터라이징된 원시 데이터를 포함한다. 당업자들이 이해하는 바와 같이 이렇게 하는 한 가지 이유는 이것을 이용하여 미리 래스터라이징된 데이터가 아주 적절한 방식으로 처리될 수 있기 때문이다. 특히, 적어도 일부 운영 체제에서, 프린트 작업 스트림의 각 시퀀스는 데이터를 프로세스 공간으로 복사할 필요 없이 메모리로 메모리 매핑되어 커널로 기록된다.
인덱스 스트림은 이 예제에서 상태 이행, 인터럽트 불가능한 블록과 인터럽트 가능한 블록 부 및 페이지 번호를 기술한다.
메타데이터 부(104)가 독립된 스트림으로 도시되어 있지만, 반드시 그럴 필요는 없다는 것을 이해할 것이다. 예를 들어, 메타데이터 부는 프린트 작업 부에 삽입되거나 그것이 아니라면 프린트 작업 부의 일부를 구성할 수 있다.
프린트 작업 부의 구성 요소
도시되고 설명되는 실시예에서, 프린트 작업 부(102)는 획일적인 바이트 시퀀스를 포함하고 도 1의 키로 표시되는 이하의 논리 블록을 포함한다. 상태 변경 블록은 상술한 바와 같이 프린터의 상태 변경을 초래하는 바이트 시퀀스이다. 데이터 블록은 인터럽트 가능한 블록이고, 블록을 종료하는 제어 문자 세트를 수신할 수 있다. 인터럽트 불가능한 데이터 블록은 데이터 스트림으로부터 이스케이프될 수 없는 데이터 블록이다(예를 들어, PCL의 비트맵은 인터럽트 불가능한 데이터 블록을 구성한다).
프린트 작업 부가 프린트 서버로 전송되면, 그 결과 프린터로 출력되는 문서가 생성된다.
메타데이터 부 구성 요소
도시되고 설명된 실시예에서, 메타데이터 부(104)는 프린트 작업 부의 구조를 상세하게 기록하고 프린트 작업 부에 인덱스를 제공한다. 이 예제에서, 메타데이터 부(104)는 인덱스 스트림을 포함하고, 도 1의 키에 나타난 바와 같은 블록 시퀀스를 포함한다. 한 실시예에서, 인덱스 스트림은 빨리 페이지를 인덱싱하기 위한 룩업 테이블로 중단될 수 있다. 인덱스 스트림은, 적어도 일부 실시예에서, 잘 정의된 포맷이 참조하는 PDL에 상관없는 잘 정의된 포맷으로 구성된다. 도시되고 설명되는 실시예에서, 인덱스 스트림은 위치범위의 개념을 사용하는 프린트 작업 부의 블록을 참조하여 프린트 작업 부의 각종 블록을 할당한다. 따라서, 블록의 위치를 사용하여, 블록의 옳은 위치 또는 시작 포인트가 확인될 수 있다. (특정 위치에 대한 바이트 개수와 같은) 관련된 범위를 이용하여, 특정 블록의 범위를 확인할 수 있다.
도시되고 설명되는 실시예에서, 인덱스 스트림을 포함하는 블록은 다음과 같다.
페이지 번호 블록은 페이지가 프린터에 의해 해석되도록 하기 위해 올바른 상태로 진입하는 데에 필요한 블록 모두를 참조하는 블록이다. 이 블록은 페이지 데이터의 어느 섹션이 인터럽트 불가능한 블록을 참조하는지를 식별한다. 또한, 이 블록은 프린터를 그 정상 상태로 되돌리기 위해 반드시 전송되어야만 하는 블록들을 참조한다. 적어도 일부 실시예에서, 시스템은 한 페이지를 출력하고 프린터를 정상 상태로 되돌리기 위해 필요한 블록 모두를 수신하고 나서야 비로소 한 페이지 출력을 시작할 것이다.
종속 상태 블록 참조 블록은 프린트 작업 부(102)의 아마도 인접하지 않는 상태 블록의 시퀀스를 참조하는 블록이다. 각종 상태의 예제가 위에서 제공되었다. 프린트 작업 부에서 그 어떠한 것도 블록을 상태 이행 블록(또는 드물게 임의의 다른 유형의 블록)으로 식별할 필요가 없다는 것을 이해할 것이다. 프린트 작업 부의 블록의 유형이 알려지는 것은 종속 상태 블록 참조 블록에 의해 제공되는 참조에 의해서이다.
인터럽트 가능한 데이터 블록 참조 블록은 프린트 작업 부의 데이터 블록을 참조하는 블록이며 인터럽트 가능한 데이터 블록에 바로 이어지는 블록이 프린터로 전송되었는지 여부와 블록이 제대로 해석될 것이라는 것을 나타낸다. 즉, 인터럽트 가능한 데이터 블록 참조 블록에 의해 참조되는 블록은 바로 이어지는 블록에 손해없이 에스케이프될 수 있다. 인터럽트 가능한 데이터 블록 참조 블록 이후의 다음 블록은 상태 이행 블록일 수 있다.
인터럽트 불가능한 데이터 블록 참조 블록은 프린트 작업 부에서 인터럽트 불가능한 데이터 블록을 식별하는 블록이다. 즉, 인터럽트 불가능한 데이터 블록은 가능하다면 그 전체가 프린터로 전송되어야만 한다. 데이터가 중간 블록을 스킵하는 경우 출력은 후속 블록에 대해 의미가 없다. 이들 참조 블록 유형들은 데이터 블록에 에스케이프를 지닐 수 없는 (비트맵과 같은) 캡슐화된 데이터 블록을 식별하는 데에 통상적으로 사용될 수 있다. 이러한 유형의 블록은 또한 에스케이프를 식별하는 데에 사용될 수 있다.
리턴 상태 참조 블록은 프린터를 특정 상태로 되돌리기 위해 프린트 작업 부의 어느 블록 또는 어느 블록들이 전송되어야 하는가를 식별한다.
클로징 상태 시퀀스 블록은 프린트 작업 부(102)와 관련된 문서의 프린팅을 완료하자마자 프린터의 상태를 종료시키기 위해 활용되는 데이터를 포함한다. 클로징 상태 시퀀스 블록을 인덱스 스트림에 포함하는 것은 프린트 작업 부(102)와 관련된 순서화 문제를 해결하는 데에 도움을 준다. 특히, 이하를 고려해보자. 프린트 작업 부(102)의 원시 스트림이 그 도입부에 문서의 끝까지 남아 있는 상태 변 경을 포함한다고 상상해보자. 프린트 작업 부(102)의 끝에서, 이 상태를 종료시키기 위해 클로징 상태 시퀀스 블록이 제공된다. 프린트 작업 부(102)에서 이 클로징 상태 시퀀스 블록이 제공되는 유일한 위치는 프린트 작업 부의 끝부분이다. 성능 및 단순화의 이유로, 많은 시스템에서, 프린트 서버는 그것의 모든 블록 및 그 리턴 상태 블록이 수신된 후에서야 비로소 한 페이지를 프린터로 전송할 것이다. 프린트 작업 부의 끝부분을 제외하고는 프린트 작업 부에 리턴 상태 시퀀스를 삽입할 장소가 없기 때문에, 필요한 경우 클로징 상태 시퀀스를 인덱스 스트림으로 삽입하는 것이 하나의 해결책이 될 수 있고, 인덱스 스트림의 리턴 상태 블록 참조 블록은, (도 1의 인덱스 스트림의 마지막 블록이 그러하듯이) 프린트 작업 부의 한 블록 또는 더욱 일반적으로는 (페이지 0 및 1에 대한 리턴 상태 블록이 그러하듯이) 인덱스 스트림의 한 블록 중 하나를 참조할 수 있다.
프린트 작업 부(102) 및 메타데이터 부(104)를 이용하여, 프린팅 시스템의 컴포넌트는 프린트 작업 부의 임의의 페이지를 처리할 수 있고, 문서의 임의의 인터럽트된 포인트로부터 회복될 수 있고, 현재의 인터럽트 불가능한 블록이 항상 처리되어 완료된다는 것을 확신할 수 있다. 따라서, 프린팅 시스템은 일반적으로 프린터가 언제든지 새로운 작업을 수신할 수 있는 상태로 리턴된다는 것을 보증할 수 있다.
프린트 작업 부 및 메타데이터 부 생성하는 예시적인 시스템
도 2는 상술한 프린트 작업 부와 메타데이터 부를 생성하기 위해 활용될 수 있는 클라이언트 장치(200)의 한 실시예의 예시적인 컴포넌트들을 도시한다.
이 예제에서, 클라이언트 장치(200)는 다른 컴포넌트들 중에서도 프린트 작업과 관련된 중간 포맷 데이터를 수신할 수 있는 일부 유형의 컴퓨터 판독가능 매체(202)를 포함한다. 파이프라인 관리자(204)는 중간 포맷 데이터를 처리하는 컴포넌트의 파이프라인을 관리한다. 이 예제에서, 컴포넌트 파이프라인은 많은 필터 뿐만 아니라 드라이버(208)를 포함하는 필터 어셈블리(206)를 포함한다. 이 예제에서, 드라이버(208)는 중간 포맷 데이터를 렌더링된 프린트 작업 부 및 메타데이터 부로 처리하도록 구성된다. 당업자들이 이해하는 바와 같이, 드라이버는 중간 포맷을 렌더링된 상태로 변환할 수 있는 한에 있어서 중간 포맷의 구조 및 처리 요건에 대해 알 수 있기 때문에, 드라이버가 또한 메타데이터 부의 구성 요소라는 것을 알 수 있는 경우, 드라이버가 중간 포맷을 그 렌더링된 형태로 처리할 때 메타데이터 부를 적절하게 구축할 수 있다.
아웃고잉 작업 필터(210)는 프린트 작업 부 및 메타데이터 부 둘 다를 수신할 수 있고 프린트 서버로의 전송을 위해 데이터를 적합하게 패키징할 수 있다.
대안으로 및 드라이버가 메타데이터 부를 생성하도록 구성되지 않은 경우, 드라이버와 아웃고잉 작업 필터 간에 해석기 컴포넌트가 삽입될 수 있다. 이 예제에서, 드라이버는 중간 포맷을 렌더링된 데이터로 처리할 수 있고 데이터를 해석기 컴포넌트에 제공할 수 있다. 이어서 해석기 컴포넌트는 렌더링된 데이터를 처리하여 렌더링된 데이터 외에 전송될 수 있는 메타데이터 부 둘 다를 아웃고잉 작업 필터에 제공할 수 있다. 메타데이터 부를 생성하도록 구성되지 않은 기존 드라이버 의 문맥에서 이 특정 실시예를 채용할 수 있다. 또한, 이 실시예는 메타데이터 부의 생성을 지원하는 드라이버를 생성하는 것을 원하지 않을 수 있는 독립 하드웨어 벤더(independent hardware vendors:IHVs)에 유연성을 제공한다.
프린트 작업 부와 메타데이터 부를 소비하는 예시적인 시스템
도 3은 상술된 프린트 작업 부와 메타데이터 부를 소비하는 데에 활용될 수 있는 프린트 서버(300)의 한 예시적인 실시예의 예시적인 컴포넌트를 도시한다.
이 예제에서, 클라이언트 장치(300)는 다른 컴포넌트들 중에서도 수신기 컴포넌트(302), 입력 장치 어댑터(304), 프로토콜 어댑터, 파이프라인 관리자(308), 스케줄러(310) 및 하나 이상의 논리 작업 객체(312)를 포함한다.
이 특정 실시예에서, 입력 장치 어댑터(304)는 그것이 수신하는 메타데이터 부 또는 인덱스 스트림을 이해하도록 구성된다. 이러한 방식으로, 시스템의 다른 컴포넌트들은 메타데이터 부와 관련될 필요가 없다.
동작시, 수신기 컴포넌트(302)는 클라이언트 장치로부터 렌더링된 데이터 및 인덱스 스트림을 포함하는 프린트 작업을 수신하고, 그 작업의 각종 부분을 디스크에 기록한다. 여기서, 수신기 컴포넌트는 프린트 작업 부(즉 렌더링된 데이터) 및 메타데이터 부(인덱스 스트림)를 디스크에 기록한다. 클라이언트로부터 프린트 작업을 수신하는 것과 함께, 수신기 컴포넌트는 프린트 서버에 의한 그 처리 전체에 걸쳐 프린트 작업의 상태를 조직하고 유지하는 데에 활용되는 논리 작업 객체(312)를 인스턴스화한다.
입력 장치 어댑터(304)는 프린트 작업 부와 메타데이터 부 둘 다를 수신하고 상술된 바와 같이 메타데이터 부를 이해하도록 구성된다. 프린트 작업이 출력 준비되었을 때, 스케줄러(310)는 파이프라인/파이프라인 관리자(308)를 인스턴스화하고, 이것은 이어서 관련 문서의 프린팅을 관리한다.
이후 입력 장치 어댑터(304)는 프린터에 프린트 데이터를 전달하는 것을 담당하는 프로토콜 어댑터(306)에 프린트 작업 부를 전달한다. 입력 장치 어댑터(304)는 인덱스 스트림을 해석하고 그 페이지에 대한 모든 데이터가 사용가능할 때에만 페이지를 전송한다. 따라서, 이것은 관련된 페이지 데이터를 프로토콜 어댑터(306)로 전송하기 전에 특정 페이지에 대해 모든 데이터가 사용가능하다는 것을 보장하기 위해 인덱스 스트림을 모니터한다. 프로토콜 어댑터(306)는 입력 장치 어댑터(304)로부터 페이지 데이터를 수신하고 그 데이터를 적절하게 프린터로 전달하는 것을 담당한다.
실패한 경우, 프로토콜 어댑터(306)는 파이프라인 관리자(308)에게 실패를 통보하고, 파이프라인 관리자(308)는 이어서 이것을 입력 장치 어댑터(304)에게 전달한다. 이후 입력 장치 어댑터(304)는 이 정보를 논리 작업 객체(312)에 다시 기록하고 실패로부터의 회복에 착수한다. 이를 위해, 입력 장치 어댑터(304)는 인덱스 스트림을 사용하여 동일한 것을 정정하기 위해 실패 이전으로 또는 적절한 포인트로 렌더링된 데이터를 다시 검색한다. 일단 이것이 완료되면, 입력 장치 어댑터는 논리 작업 객체(312)를 업데이트할 수 있고 계속해서 프린팅할 수 있도록 적절한 데이터를 프로토콜 어댑터(306)로 전달할 수 있다.
예시적인 방법
도 4는 한 실시예에 따라 방법의 단계를 설명하는 흐름도이다. 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이것들의 조합으로 구현될 수 있다. 도시된 예제에서, 방법은 적합하게 구성된 클라이언트 장치에 의해 수행되는 액트와 적합하게 구성된 프린트 서버에 의해 수행되는 액트로 나뉘어져 있다. 클라이언트 장치 및 프린트 서버의 예제는 도 2 및 도 3에 각각 제공되어 있다. 이들 예제가 단지 예제만을 구성하고, 청구되는 내용의 적용을 제한하고자 하는 것이 아니라는 것을 이해할 것이다. 오히려, 청구되는 내용의 취지 및 범위를 벗어나지 않고 다른 상이한 유형의 클라이언트 장치 및 프린트 서버가 활용될 수 있다.
단계(400)는 프린트 작업과 관련된 데이터를 수신한다. 데이터는 몇몇만 이름을 대어 본다면, PostScript, PDF, 및/또는 PCL의 각종 변형과 같은 임의의 적합한 페이지 기술어와 같은 임의의 적합한 형태를 취할 수 있다. 또한, 이러한 데이터는 당업자들이 이해하고 있는 바와 같이 EMF 또는 Metro(이것은 아발론 그래픽 프리미티브의 지속되는 형태임)와 같은 중간 페이지 기술어의 형태를 취할 수도 있다.
단계(402)에서는 이 데이터를 처리하여 프린트 작업 부 및 메타데이터 부를 제공한다. 도시되고 설명되는 실시예에서, 프린트 작업 부는 렌더링된 데이터를 포함하고, 메타데이터 부는 프린트 작업 부의 구조를 기술하고 프린트 작업 부로 의 인덱스를 제공한다. 이 단계를 임의의 적합한 방식으로 구현될 수 있다. 예를 들어, 이 단계는 프린트 드라이버(208)(도 2 참조)와 같은 적합하게 구성된 프린트 드라이버에 의해 구현될 수 있다. 또는, 이 단계는 상술된 프린트 드라이버 및 해석기 컴포넌트에 의해 구현될 수 있다.
또한, 메타데이터 부는 임의의 적합한 형태 또는 구조를 취할 수 있다. 이러한 메타데이터 부의 한 예가 도 1에 관련하여 위에서 제공되고 설명되었다. 도 1 예제가 단 하나의 예제를 포함하고 청구되는 내용의 적용을 제한하고자 하는 것이 아니라는 것을 이해할 것이다.
단계(404)에서는 프린트 작업 부 및 메타데이터 부를 프린트 서버로 전송한다.
단계(406)는 프린트 서버에 의해 수행되고, 프린트 작업 부 및 메타데이터 부를 수신한다. 단계(408)에서는 프린트 작업 부 및 메타데이터 부를 처리하고, 이에 응하여, 프린트 관련 활동을 구현한다. 프린트 관련된 활동의 예로는 위에서 언급되었지만, 몇몇의 이름을 들자면, 처음부터 프린트 작업을 재시작해야만 하는 실패로부터의 복구, 프린터로 전송하기 위해 페이지 전체가 식별되는 것을 보장하는 것, 작업을 종료하기 전에 프린터가 적절한 상태로 리턴되는 것을 보장하는 것 및 순서에 맞지 않게 페이지를 프린팅하는 것을 포함할 수 있지만 이에 제한되지 않는다.
단계(410)에서는 프린팅을 위해 프린트 작업 부의 최소한의 부분을 프린터로 전송한다. 이 단계는 단계(408)와 함께 또는 단계(408)의 일부로서 수행될 수 있다는 것을 이해할 것이다. 이 단계는 예를 들어 실패로부터의 복구 또는 프린트를 적절한 상태에 두는 것과 같은 단계(408)에 의해 수행되는 프린트 관련 활동의 적어도 일부는 프린트 작업 부의 일부를 프린터로 전송할 필요가 없다는 것을 명확하게 하기 위해 별도로 나열되어 있다.
예시적인 클라이언트 장치/프린트 서버 컴포넌트
도 5는 상술된 실시예를 구현하기 위해 도 2의 클라이언트 장치에 그리고 도 3의 프린트 서버 둘 다에 채용될 수 있는 컴포넌트를 갖는 예시적인 컴퓨팅 장치를 도시한다.
컴퓨팅 장치(542)는 하나 이상의 프로세서 또는 처리 장치(544), 시스템 메모리(546) 및 시스템 메모리(546)를 포함하는 각종 시스템 컴포넌트를 프로세서(544)에 결합하는 버스(548)를 포함한다. 버스(548)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, AGP 및 각종 버스 아키텍처 중 임의의 것을 이용하는 프로세서 또는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 하나 이상을 나타낸다. 시스템 메모리(546)는 ROM(550) 및 RAM(552)을 포함한다. 시동 시 컴퓨팅 장치(542) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(554)은 ROM(550)에 저장되어 있다.
컴퓨팅 장치(542)는 또한 하드 디스크(도시 생략)로의 기록 또는 그로부터의 판독을 위한 하드 디스크 드라이브(556), 이동식 자기 디스크(560)로의 기록 또는 그로부터의 판독을 위한 자기 디스크 드라이브(558), CD-ROM 또는 기타 광 매체 등의 이동식 광 디스크(564)로의 기록 또는 그로부터의 판독을 위한 광 디스크 드라 이브(562)를 포함한다. 하드 디스크 드라이브(556), 자기 디스크 드라이브(558) 및 광 디스크 드라이브(562)는 SCSI 인터페이스(566) 또는 일부 기타 적절한 인터페이스에 의해 버스(548)에 접속된다. 드라이브들 및 이들과 관련된 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(542)의 다른 데이터의 불휘발성 저장을 제공한다. 본 명세서에서 설명된 예시적인 환경이 하드 디스크, 이동식 자기 디스크(560) 및 이동식 광 디스크(564)를 채용하지만, 당업자들은 자기 카세트, 플래시 메모리 카드, DVD, RAM, ROM 등과 같은 컴퓨터에 의해 액세스가능하고 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 또한 예시적인 운영 환경에서 사용될 수 있다는 것을 이해할 것이다.
운영 체제(570), (사용자 에이전트 또는 브라우저와 같은) 하나 이상의 애플리케이션 프로그램(572), 기타 프로그램 모듈(574) 및 프로그램 데이터(576)를 포함하는 많은 프로그램 모듈들이 하드 디스크(556), 자기 디스크(560), 광 디스크(564), ROM(550) 또는 RAM(552)에 저장될 수 있다. 사용자는 키보드(578) 및 포인팅 장치(580)와 같은 입력 장치를 통해 컴퓨터(542)로 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 버스(548)에 결합된 인터페이스(582)를 통해 처리 장치(544)에 접속된다. 모니터(582) 또는 다른 유형의 디스플레이 장치는 또한 비디오 어댑터(586)와 같은 인터페이스를 통해 버스(548)에 또한 접속된다. 모니터 외에, 퍼스널 컴퓨터는 통상적으로 스피커 및 프린터와 같은 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(542)는 프린터 서버(588)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있고, 이어서 하나 이상의 프린터와 접속된다. 프린터 서버(588)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 통상적으로 컴퓨터(542)와 관련하여 상술된 구성요소의 대부분 또는 그 전부를 포함한다. 도 5에 도시된 논리적 접속으로는 LAN(590) 및 WAN(592)이 있다. 이러한 네트워킹 환경은 사무실, 회사 전체에 걸친 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(542)는 네트워크 인터페이스 또는 어댑터(594)를 통해 로컬 네트워크에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(542)는 통상적으로 인터넷과 같은 WAN(592) 상에서의 통신을 설정하기 위한 모뎀(596) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(596)은 직렬 포트 인터페이스(568)를 통해 버스(548)에 접속된다. 네트워크화된 환경에서, 퍼스널 컴퓨터(542) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이의 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다.
일반적으로, 컴퓨터(542)의 데이터 프로세서는 컴퓨터의 각종 컴퓨터 판독가능 저장 매체에 다른 시간에 저장된 명령어에 의해 프로그램된다. 프로그램 및 운영 체제는 통상적으로 플로피 디스크 또는 CD-ROM에 분산된다. 여기서부터, 이것 들이 설치되거나 컴퓨터의 보조 메모리로 로딩된다. 실행 시, 이것은 적어도 일부분 컴퓨터의 주 전자 메모리로 로딩된다. 본 명세서에 설명된 시스템은 이들 및 기타 각종 유형의 컴퓨터 판독가능 저장 매체가 마이크로프로세서 또는 기타 데이터 프로세서와 함께 설명된 블록을 구현하는 명령어 또는 프로그램을 포함할 때, 이들 및 기타 각종 유형의 컴퓨터 판독가능 저장 매체를 포함한다. 설명된 시스템은 또한 본 명세서에 설명된 방법 및 기술에 따라 프로그램될 때 컴퓨터 자체를 포함할 수 있다.
도시의 목적을 위해, 운영 체제와 같은 프로그램 및 기타 실행가능한 프로그램 컴포넌트는, 그것들이 컴퓨터의 다른 저장 컴포넌트에 다른 시간에 상주하고 컴퓨터의 데이터 프로세서에 의해 실행된다는 것을 이해함에도 불구하고, 별도의 블록으로 도시되어 있다.
확장 또는 변형
상술된 예제에서, 메타데이터 부(104)(도 1 참조)는 인덱스 스트림의 문맥에서 설명되었다. 언급한 바와 같이, 이 인덱스 스트림은 독립된 스트림을 포함할 수 있고, 또는 렌더링된 프린트 작업 부에 삽입될 수 있다. 또한, 메타데이터 부는 청구되는 내용의 취지 및 범위에 벗어나지 않고 다른 형태를 취할 수 있다. 예를 들어, 프린트 작업 언어(Print Job Language:PJL)로 알려져 있는 언어에서, 메타데이터 부는 PJL 코멘트로서 구현될 수 있고, 이것은 적절하게 구성된 프린터에 의해 무시된다.
결론
각종 실시예에서 렌더링된 프린트 작업 데이터와 함께 프린트 작업 데이터의 특정 특성을 기술하는 메타데이터가 개발된다(그리고 소비된다). 이 메타데이터는 렌더링된 데이터와 함께 클라이언트 장치로부터 프린트 서버로 제공되고, 프린트 서버가 프린트 작업 데이터의 본질 또는 그 문맥을 확인하도록 한다. 일부 실시예에서, 메타데이터는 페이지 경계 및 상태 이행 데이터 같은 것들을 설명할 수 있다. 프린트 작업 데이터의 본질 또는 문맥을 확인함으로써, 프린트 서버는 이 정보에 따라 지능적으로 행동할 수 있고, 적어도 일부 실시예에서 렌더링된 데이터만 프린트 서버로 전송될 경우라면 가능하지 않을 수 있는 추가의 프린트 서버 특징을 구현할 수 있다.
본 발명이 구조적 특징 및/또는 방법론의 단계에 특정한 언어로 설명되었지만, 첨부되는 청구항에 정의된 발명이 설명된 특정 특징 또는 단계에 제한될 필요가 없다는 것을 이해할 것이다. 오히려, 특정 특징 및 단계들은 청구된 발명을 구현하는 바람직한 형태로서 개시된다.
본 발명을 통해 미리 래스터라이징된 작업 데이터와 함께 프린트 작업 데이터의 특정 특성을 기술하는 메타데이터가 개발된다(그리고 소비된다). 이 메타데이터는 미리 래스터라이징된 데이터와 함께 클라이언트 장치로부터 프린트 서버로 제공되고, 프린트 서버가 프린트 작업 데이터의 본질 또는 그 문맥을 확인할 수 있 도록 한다. 일부 실시예에서, 메타데이터는 페이지 경계 및 상태 이행 데이터와 같은 것들을 기술할 수 있다. 프린트 작업 데이터의 본질 또는 문맥을 확인함으로써, 프린트 서버는 이 정보에 따라 지능적으로 행동할 수 있고, 적어도 일부 실시예에서 미리 래스터링된 데이터만 프린트 서버로 전송될 경우라면 가능하지 않을 수 있는 추가의 프린트 서버 특징을 구현할 수 있다.

Claims (20)

  1. 프린트 작업과 관련된 데이터를 수신하는 단계; 및
    적어도 일부가 프린팅을 위해 프린터로 전송되도록 구성된 프린트 작업 부 및 상기 프린트 작업 부의 구조를 기술하는 메타데이터 부를 제공하도록 상기 수신된 데이터를 처리하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 프린트 작업 부 및 상기 메타데이터 부를 프린트 서버로 송신하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 수신 단계는 페이지 기술어 데이터를 수신하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 수신 단계는 중간 페이지 기술어 데이터를 수신하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 수신 및 처리 단계는 적어도 하나의 프린트 드라이버에 의해 수행되는 방법.
  6. 제1항에 있어서, 상기 처리 단계는,
    하나 이상의 상태 변경 블록;
    하나 이상의 인터럽트 가능한 데이터 블록; 및
    하나 이상의 인터럽트 불가능한 데이터 블록
    을 포함하는 프린트 작업 부를 제공하는 단계; 및
    상기 프린트 작업 부에 대한 참조를 제공하는 이하의 블록들 중 하나 이상을 포함하는 메타데이터 부를 제공하는 단계를 포함하며,
    상기 이하의 블록들은,
    페이지가 상기 프린터에 의해 해석되도록 하는 올바른 상태로 진입하는 데에 필요한 모든 블록을 참조하는 페이지 번호 블록;
    상기 프린트 작업 부의 상태 블록의 시퀀스를 참조하는 종속 상태 블록 참조 블록;
    인터럽트될 수 있는 데이터 블록을 참조하는 인터럽트 가능한 데이터 블록 참조 블록;
    인터럽트 불가능한 데이터 블록을 참조하는 인터럽트 불가능한 데이터 블록 참조 블록;
    상기 프린터가 특정 상태로 리턴되기 위해 상기 프린트 작업 부의 어떤 블록 또는 어떤 블록들이 상기 프린터로 송신되어야 하는가를 식별하는 리턴 상태 블록 참조 블록; 및
    상기 프린트 작업 부와 관련된 문서의 프린팅을 완료하자마자 상기 프린터의 상태를 종료시키는 데에 활용되는 데이터를 포함하는 클로징 상태 시퀀스 블록
    인 방법.
  7. 제6항에 있어서, 상기 메타데이터 부는 인덱스 스트림을 포함하고, 상기 클로징 상태 시퀀스 블록은 상기 인덱스 스트림의 앞쪽 끝부분에 배치되는 방법.
  8. 프린트될 문서와 관련된 데이터를 수신하는 단계 -상기 데이터는 적어도 일부가 프린팅을 위해 프린터로 송신되도록 구성된 프린트 작업 부 및 상기 프린트 작업 부의 구조를 기술하는 메타데이터 부를 포함함 -;
    상기 프린트 작업 부 및 상기 메타데이터 부를 처리하는 단계; 및
    상기 프린트 작업 부 및 상기 메타데이터 부를 처리하는 단계에 응하여, 하나 이상의 프린트 관련 활동을 구현하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 프린트 작업 부는,
    하나 이상의 상태 변경 블록;
    하나 이상의 인터럽트 가능한 데이터 블록; 및
    하나 이상의 인터럽트 불가능한 데이터 블록
    을 포함하고,
    상기 메타데이터 부는 상기 프린트 작업 부에 대한 참조를 제공하는 이하의 블록들 중 하나 이상을 포함하고,
    상기 이하의 블록들은,
    페이지가 상기 프린터에 의해 해석되도록 하는 올바른 상태로 진입하는 데에 필요한 모든 블록을 참조하는 페이지 번호 블록;
    상기 프린트 작업 부의 상태 블록의 시퀀스를 참조하는 종속 상태 블록 참조 블록;
    인터럽트될 수 있는 데이터 블록을 참조하는 인터럽트 가능한 데이터 블록 참조 블록;
    인터럽트 불가능한 데이터 블록을 참조하는 인터럽트 불가능한 데이터 블록 참조 블록;
    상기 프린터가 특정 상태로 리턴되기 위해 프린트 작업 부의 어떤 블록 또는 어떤 블록들이 상기 프린터로 송신되어야 하는가를 식별하는 리턴 상태 블록 참조 블록; 및
    상기 프린트 작업 부와 관련된 문서의 프린팅을 완료하자마자 상기 프린터의 상태를 종료시키는 데에 활용되는 데이터를 포함하는 클로징 상태 시퀀스 블록
    인 방법.
  10. 제9항에 있어서, 상기 프린트 관련 활동 중 적어도 하나는 상기 프린트 작업 부의 적어도 일부분을 프린트하기 위해 프린터로 송신하는 단계를 포함하는 방법.
  11. 제9항에 있어서, 상기 프린트 관련 활동 중 적어도 하나는 상기 프린트 작업 부의 적어도 일부분을 프린트하기 위해 프린터로 송신하는 단계를 포함하지 않는 방법.
  12. 제11항에 있어서, 상기 적어도 하나의 프린트 관련 활동은 프린트 작업의 처음부터 그것을 재시작할 필요 없이 프린트 장애로부터 복구되는 단계를 포함하는 방법.
  13. 제11항에 있어서, 상기 적어도 하나의 프린트 관련 활동은 페이지가 프린터로 송신되기에 앞서 페이지 전체가 식별되는 것을 보장하는 단계를 포함하는 방법.
  14. 제11항에 있어서, 상기 적어도 하나의 프린트 관련 활동은 프린트 작업을 종료하기 전에 프린터가 적절한 상태로 리턴되는 것을 보장하는 단계를 포함하는 방법.
  15. 문서를 프린트하는 데에 사용되도록 구성된 데이터 구조를 포함하는 하나 이상의 컴퓨터 판독가능 매체에 있어서,
    상기 데이터 구조는,
    렌더링된 데이터를 포함하는 프린트 작업 부; 및
    상기 프린트 작업 부의 구조를 기술하는 메타데이터 부
    를 포함하는 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 상기 메타데이터 부는 독립된 데이터 스트림을 포함하는 컴퓨터 판독가능 매체.
  17. 제15항에 있어서, 상기 프린트 작업 부는 하나 이상의 상태 변경 블록, 하나 이상의 인터럽트 가능한 데이터 블록 및 하나 이상의 인터럽트 불가능한 데이터 블록을 포함하는 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 메타데이터 부는 블록 위치 및 블록 범위를 사용하여 상기 프린트 작업 부의 블록을 참조하는 컴퓨터 판독가능 매체.
  19. 제17항에 있어서, 상기 메타데이터 부는 상기 프린트 작업 부에 대한 참조를 제공하는 이하의 블록들 중 하나 이상을 포함할 수 있고,
    상기 이하의 블록들은,
    페이지가 상기 프린터에 의해 해석되도록 하는 올바른 상태로 진입하는 데에 필요한 모든 블록을 참조하는 페이지 번호 블록;
    상기 프린트 작업 부의 상태 블록의 시퀀스를 참조하는 종속 상태 블록 참조 블록;
    인터럽트될 수 있는 데이터 블록을 참조하는 인터럽트 가능한 데이터 블록 참조 블록;
    인터럽트 불가능한 데이터 블록을 참조하는 인터럽트 불가능한 데이터 블록 참조 블록;
    상기 프린터가 특정 상태로 리턴되기 위해 프린트 작업 부의 어떤 블록 또는 어떤 블록들이 상기 프린터로 송신되어야 하는가를 식별하는 리턴 상태 블록 참조 블록; 및
    상기 프린트 작업 부와 관련된 문서의 프린팅을 완료하자마자 상기 프린터의 상태를 종료시키는 데에 활용되는 데이터를 포함하는 클로징 상태 시퀀스 블록
    인 컴퓨터 판독가능 매체.
  20. 제19항에 있어서, 상기 메타데이터 부는 인덱스 스트림을 포함하고, 상기 클로징 상태 시퀀스 블록은 상기 인덱스 스트림의 앞쪽 끝부분에 배치되는 컴퓨터 판독가능 매체.
KR1020060007308A 2005-03-15 2006-01-24 프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템 KR20060101217A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/080,371 US20060209334A1 (en) 2005-03-15 2005-03-15 Methods and systems for providing index data for print job data
US11/080,371 2005-03-15

Publications (1)

Publication Number Publication Date
KR20060101217A true KR20060101217A (ko) 2006-09-22

Family

ID=36581927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060007308A KR20060101217A (ko) 2005-03-15 2006-01-24 프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템

Country Status (5)

Country Link
US (1) US20060209334A1 (ko)
EP (1) EP1703371A3 (ko)
JP (1) JP2006260536A (ko)
KR (1) KR20060101217A (ko)
CN (1) CN1834892A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4727440B2 (ja) * 2006-02-13 2011-07-20 株式会社リコー 画像処理装置および画像処理方法
WO2007113999A1 (ja) * 2006-03-31 2007-10-11 Pioneer Corporation 表示処理装置、表示処理方法及び表示処理プログラム
JP2010157134A (ja) * 2008-12-27 2010-07-15 Canon Inc 情報処理装置、情報処理方法及び情報処理システム
JP6651929B2 (ja) * 2016-03-24 2020-02-19 富士ゼロックス株式会社 サービス提供システム、移動型機器、サーバ機器、およびサービス提供プログラム
US11372602B1 (en) 2021-04-01 2022-06-28 Ricoh Company, Ltd. Print job analysis

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5010514A (en) * 1989-04-26 1991-04-23 International Business Machines Corporation Structured fields at a data stream boundary for delimiting files
US5602974A (en) * 1994-10-05 1997-02-11 Microsoft Corporation Device independent spooling in a print architecture
EP0729090A1 (en) * 1995-01-06 1996-08-28 Océ-Nederland B.V. Printing device
US6356355B1 (en) * 1998-09-30 2002-03-12 International Business Machines Corporation Method and apparatus in a data processing system for generating metadata streams with per page data
US6903839B1 (en) * 1999-09-03 2005-06-07 Imagex, Inc. Apparatus for washing of graphic image files
US7152047B1 (en) * 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
AU2001296866A1 (en) * 2000-09-05 2002-03-22 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
WO2002033541A2 (en) * 2000-10-16 2002-04-25 Tangis Corporation Dynamically determining appropriate computer interfaces
JP2002251269A (ja) * 2000-12-22 2002-09-06 Canon Inc 印刷システム、印刷方法、情報処理装置、印刷装置、プリンタドライバおよび記憶媒体
US7117432B1 (en) * 2001-08-13 2006-10-03 Xerox Corporation Meta-document management system with transit triggered enrichment
US20030123080A1 (en) * 2001-12-27 2003-07-03 Toshiba Tec Kabushiki Kaisha Image forming device and method for controling the same
US7426051B2 (en) * 2002-12-12 2008-09-16 Seiko Epson Corporation Image processing method and image processing system using the same
US20040196470A1 (en) * 2003-04-01 2004-10-07 Christiansen Robert D. Raster image processing (RIP) manager for enhanced print shop operation
JP2004348622A (ja) * 2003-05-26 2004-12-09 Kyocera Mita Corp 電子文書印刷システム
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
WO2005017738A1 (ja) * 2003-08-13 2005-02-24 Fujitsu Limited 印刷制御方法、印刷制御装置および印刷制御プログラム
US20050259289A1 (en) * 2004-05-10 2005-11-24 Sharp Laboratories Of America, Inc. Print driver job fingerprinting
US7551299B2 (en) * 2004-07-29 2009-06-23 Sharp Laboratories Of America, Inc. Method and apparatus for handling different print data formats
US7538910B2 (en) * 2004-12-16 2009-05-26 Xerox Corporation Systems and methods for using embedded metadata in a print job

Also Published As

Publication number Publication date
JP2006260536A (ja) 2006-09-28
EP1703371A3 (en) 2008-04-09
US20060209334A1 (en) 2006-09-21
CN1834892A (zh) 2006-09-20
EP1703371A2 (en) 2006-09-20

Similar Documents

Publication Publication Date Title
US6313920B1 (en) System and method for remote printing using incremental font subsetting
US7706001B2 (en) Print control apparatus, control method thereof, and device driver for converting commands from one format to another
CN107256134B (zh) 将pos终端虚拟为计算机打印机的方法和装置、pos终端
US8823964B2 (en) Control device for causing a print execution unit to execute printing
JP2008192142A (ja) プリントストリームを変換するための方法、コンピュータ装置及びコンピュータ読取可能な媒体
JPH0934670A (ja) 画像形成装置
JP5261250B2 (ja) ページ記述言語を処理する印刷データ処理装置、方法及びコンピュータ可読媒体
US20020140958A1 (en) Page description language adapted for direct printing of multiple file formats
KR20060101217A (ko) 프린트 서버의 자원을 효율적으로 활용하는 방법 및 시스템
JP3209102B2 (ja) プリントシステム、プリンタドライバ及びプリンタ
US20030076519A1 (en) Spool file modifying device
US8379240B2 (en) Information processing apparatus, printing apparatus, information processing system, print processing method, storage medium, and program
JP2006350443A (ja) 印刷システムおよび印刷制御方法およびプログラム
US8325376B2 (en) Image-forming device having index printing function
JP4710743B2 (ja) 印刷サーバ、印刷サーバプログラム
US7352484B2 (en) Printing system and management method therefor
JP2005018494A (ja) データ処理装置および印刷データ生成方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム
US7196812B2 (en) Information processing apparatus and control code generation method
JP2007152898A (ja) 印刷処理装置
JP3962559B2 (ja) 印刷制御装置及び印刷制御方法
US8756491B2 (en) PDL data processing device
JP2001282482A (ja) データ処理装置、および、該データの処理方法
JP2010176219A (ja) 印刷システム、印刷装置およびコンピュータープログラム
JP3347520B2 (ja) 情報処理装置およびプリンタシステムおよびプリントジョブ処理方法
JP2005159764A (ja) 記録方法及び装置及びプログラム及び記憶媒体

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid