KR100859766B1 - 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법 - Google Patents

프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR100859766B1
KR100859766B1 KR1020067017535A KR20067017535A KR100859766B1 KR 100859766 B1 KR100859766 B1 KR 100859766B1 KR 1020067017535 A KR1020067017535 A KR 1020067017535A KR 20067017535 A KR20067017535 A KR 20067017535A KR 100859766 B1 KR100859766 B1 KR 100859766B1
Authority
KR
South Korea
Prior art keywords
processing
complex text
type
text
complex
Prior art date
Application number
KR1020067017535A
Other languages
English (en)
Other versions
KR20060127165A (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 KR20060127165A publication Critical patent/KR20060127165A/ko
Application granted granted Critical
Publication of KR100859766B1 publication Critical patent/KR100859766B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • G06F40/129Handling non-Latin characters, e.g. kana-to-kanji conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Record Information Processing For Printing (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

복잡한 텍스트를 식별하고 프로세싱하기 위한 시스템들 및 방법들이 제공된다. 프레젠테이션 데이터 스트림이 복잡한 텍스트 스트링을 포함한다면, 프레젠테이션 데이터 스트림의 사전 선택된 제어 시퀀스가 복잡한 텍스트 스트링 이전에 삽입된다. 제1 파라미터는 복잡한 텍스트 프로세싱을 제어하기 위한 제어 유형을 지시하는 값을 가지며, 제2 파라미터는 복잡한 텍스트 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취한다. 복잡한 텍스트 프로세싱에서, 프레젠테이션 데이터 스트림의 제1 제어 유형에 응답하여, 복잡한 텍스트 프로세싱의 제1 유형이 인에이블이라면, 프레젠테이션 데이터 스트림의 제1 제어 유형에 수반되는 복잡한 텍스트 스트링에 이 프로세싱이 적용된다. 제1 제어 유형은 복잡한 텍스트 프로세싱의 제1 유형을 제어하기 위한 대응 값으로써 표현되는 제 1 파라미터를 포함한다.
복잡한 텍스트, 프레젠테이션 데이터 스트림, 텍스트 프로세싱, 프로세싱 유형, 제어 유형

Description

프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR IDENTIFYING COMPLEX TEXT IN A PRESENTATION DATA STREAM}
본 발명은 인쇄 시스템 분야에 관한 것으로서, 좀더 구체적으로는, 반드시 코드 포인트들(code points)과 글리프들(glyphs)간의 일대일 매핑으로 렌더링하지는 않는 캐릭터 스트링들을 포함하는 복잡한 텍스트를 프로세싱하는 인쇄 시스템에 관한 것이다.
본 발명은 여기에 참조로서 포함되어 있는 다음의 미국 특허출원과 관련이 있다:
2003년 6월 20일에 "METHOD AND SYSTEM FOR RENDERING UNICODE COMPLEX TEXT DATA IN A PRINTER"라는 명칭으로 출원된 미국 특허출원 공개번호 제2004 0257591A1호(일련 번호 제10/601,025호; Attorney Docket No. BLD920030006US1).
컴퓨터 시스템들은, 비디오 출력 및 "하드 카피(hard copy)" 또는 인쇄된 출력을 포함하는 몇 가지 방법들로 출력 정보를 발생시킬 수 있다. 점점 더 많은 출력이, 사라지기 쉬운(evanescent) 비디오 스크린들로 이루어지고 있지만, 여전히 많은 데이터가 종이 및 다른 영구 매체상에 인쇄되고 있다. 따라서, 인쇄되는 데이터를 효율적으로 설명한 다음 인쇄 설명으로부터 하드 카피 페이지를 인쇄하는 것이 필요하다. 인쇄는 인코딩된 인쇄 데이터의 스트림들을 수신하고, 명령들 및 데이터를 저장할 수 있는 "지능형(intelligent)" 프린터들을 이용하는 고속, 고용량 인쇄 시스템들에 의해 주로 수행된다. 그러한 인코딩된 인쇄 스트림들은 대개, 다수의 인쇄 페이지들을 위한 데이터를 주로 포함한다.
예를 들어, 전화기 회사는, 하나의 인쇄 스트림으로, 특정된 한주간의 전화비 청구서 모두를 인쇄할 수도 있다. 인쇄 스트림의 각 페이지는 특정 고객을 위한 전화비 청구서일 수 있다.
현대의 기업 데이터 프로세싱 환경에서의 그러한 인쇄 및 프레젠테이션 시스템들은 통상적으로, 다수 언어들의 문서 렌더링을 지원한다. 유니코드(Unocode)라고 하는 인코딩 표준은, 중국어, 일본어 및 힌디어(Hindi)와 같은, 비라틴계 언어들을 포함하는, 세계의 모든 언어들을 표현할 수 있는 포괄적 캐릭터 표현을 정의한다. (유니코드 표준은 California주, Mountain View에 소재한 유니코드 컨소시엄에 의해 간행된다.) 유니코드 표준은 백만개 이상의 캐릭터들을 인코딩할 수 있다. 그러나, 세계의 모든 언어들을 렌더링하기 위한 능력은 인쇄 및 프레젠테이션 시스템에 추가적인 어려움들을 제시한다. 언어 그룹들, 예컨대 아라비아어, 인도어 및 타이어(Thai)는 통상적인 일-코드 포인트-대-일 글리프 렌더링(one-code-point-to-one-glyph rendering)이 적용될 수 없을 수 있는 소위 복잡한 텍스트를 포함할 수 있다. 복잡한 텍스트는 몇 가지 원인들로 인해 캐릭터 스트링들에서 발생할 수 있다. 언어는 양방향일 수 있고, 그에 의해, 인쇄 방향이 스트링의 중간에서 바뀐다. 예를 들어, 아라비아어 및 헤브라이어에서는, 알파벳 캐릭터들은 오른쪽에서 왼쪽으로 기재되고 숫자들은 왼쪽에서 오른쪽으로 기재된다. 복잡한 텍스트를 발생시키는 다른 언어 특징들로는 문맥 의존적인 캐릭터 형태들 또는 위치들, 합자들(ligatures), 그를 위한 유니코드 코드 포인트가 존재하지 않는(하지만, 그를 위한 글리프는 폰트에 존재할 수도 있는) 특수 형태들, 및 문맥에 따른 캐릭터들의 분할 또는 조합을 들 수 있다. 따라서, 복잡한 텍스트 프로세싱은 언어 의존적이고, 일반적으로 레이아웃 엔진(layout engine)을 이용하여, 텍스트를 분석하고 렌더링에 적합한 글리프 인덱스들 및 글리프 위치들을 생성한다.
특히, 복잡한 유니코드 텍스트의 프로세싱은 프린터의 레이아웃 엔진에 의해 수행될 수 있다. (여기에 참조로서 포함되어 있으며 앞서 언급된, "METHOD AND SYSTEM FOR RENDERING UNICODE COMPLEX TEXT DATA IN A PRINTER"라는 명칭으로 출원된 공동 소유의 미국 특허출원 공개번호 제2004 0257591A1호(일련 번호 제 10/601,025호)를 참고한다.) 이는, 유니코드 텍스트가 인쇄 스트림에 보존되어, 인쇄 스트림의 유니코드 텍스트가 정렬, 검색, 인덱싱 등이 수행될 수 있게 한다는 이점을 갖는다. 그러나, 프린터의 레이아웃 엔진을 호출하는 것은 프로세싱 집약적일 수 있으므로, 프린터 성능에 부정적인 영향을 미칠 수도 있다.
따라서, 업계에는 복잡한 유니코드 텍스트의 인쇄 및 복잡하지 않은 텍스트와 통합되어 있는 복잡한 텍스트의 인쇄 통합을 제어하기 위한 메커니즘에 대한 요구가 존재한다. 특히, 업계에는 복잡한 유니코드 텍스트를 프로세싱하기 위해 레이아웃 엔진을 선택적으로 호출하기 위한 시스템 및 방법에 대한 요구가 존재한다. 또한, 업계에는, 작업 요구 사항들이 복잡한 텍스트의 적당한 렌더링을 필요로 하 지 않는 경우 그러한 텍스트의 렌더링 비용을 감소시키기 위해, 작업 제출 레벨(job submission level)에서 복잡한 텍스트의 렌더링을 선택적으로 디스에이블하기 위한 메커니즘에 대한 요구도 존재한다.
본 발명의 일 실시예에 따르면, 복잡한 텍스트를 식별하는 방법이 제공된다. 프레젠테이션 스트림 데이터가 복잡한 텍스트 스트링을 포함하는 경우, 프레젠테이션 데이터 스트림의 사전 선택된 제어 시퀀스가 복잡한 텍스트 스트링 이전에 삽입된다. 사전 선택된 제어 시퀀스는 복잡한 텍스트 프로세싱을 제어하기 위한 복수의 파라미터들에 대응된다. 각각의 파라미터는 사전 선택된 제어 시퀀스의 대응되는 값으로 표현된다. 제 1 파라미터는 복잡한 텍스트 프로세싱을 제어하기 위한 제어 유형을 지시하는 값을 가지며, 제 2 파라미터는 복잡한 텍스트 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취한다.
다른 실시예에서는, 복잡한 텍스트를 프로세싱하기 위한 방법도 제공된다. 본 방법은, 프레젠테이션 데이터 스트림의 제 1 제어 유형에 응답하여, 복잡한 텍스트의 제 1 프로세싱 유형이 인에이블인지를 판정하는 단계를 포함한다. 복잡한 텍스트의 제 1 프로세싱 유형이 인에이블인 경우, 프레젠테이션 데이터 스트림의 제 1 제어 유형에 수반되는 복잡한 텍스트 스트링에 복잡한 텍스트의 제 1 프로세싱 유형이 적용된다. 제 1 제어 유형은 복잡한 텍스트의 제 1 프로세싱 유형을 제어하기 위한 제 1 제어 유형의 대응되는 값으로써 표현되는 제 1 파라미터를 포함한다.
상기 내용은 이하 본 발명의 상세한 설명이 보다 잘 이해될 수 있도록 하기 위해, 본 발명의 하나 이상 실시예들에 대한 특징들 및 기술적 이점들을 다소 일반적으로 서술하였다. 다음에서는, 본 발명의 청구항들에 대한 주제를 형성할 수 있는 본 발명의 추가 특징들 및 이점들이 설명될 것이다.
다음에서는 일례로서 첨부 도면들을 참조하여 본 발명의 실시예들이 좀더 상세하게 설명된다.
도 1은 본 발명의 일 실시예에 따른 인쇄 시스템을 도시한 도면.
도 2는, 본 발명의 일 실시예에 따른, 유니코드 데이터 스트림에서 복잡한 텍스트를 식별하기 위한 방법을 도시한 흐름도.
도 3은, 본 발명의 일 실시예에 따른, 복잡한 유니코드 텍스트를 프로세싱하기 위한 방법을 도시한 흐름도.
도 4는, 본 발명의 일 실시예에 따른, 양방향(bidi)의 유니코드 텍스트 프로세싱 방법을 도시한 흐름도.
도 5는, 본 발명의 일 실시예에 따른, 유니코드 글리프 프로세싱 방법을 도시한 흐름도.
도 6은, 본 발명의 일 실시예에 따른, 텍스트 위치를 판정하기 위한 방법을 도시한 흐름도.
도 7은, 도 3 내지 도 6의 프로세스들을 수행하는데 사용될 수 있는 데이터 프로세싱 시스템을 도시한 블록도.
다음 설명에서는, 본 발명에 대한 완전한 이해를 제공하기 위해 다수의 특징적인 세부 사항들이 기술된다. 예를 들어, 본 발명의 원리들을 예시하기 위해 특정한 구조적 필드 포맷들을 참조로 할 수 있다. 그러나, 당업자들은 그러한 특징적 세부 사항들 없이도, 본 발명이 실시될 수 있다는 것을 분명히 알 수 있을 것이다. 다른 예에서, 불필요한 세부 사항으로 본 발명을 불명료하게 하지 않기 위해, 주지된 회로들은 블록도 형태로 도시하였다. 대개의 경우, 타이밍 고려 사항들 등을 고려하는 세부 사항 등은 본 발명에 대한 완전한 이해를 얻는 데에 불필요하고 관련 업계의 당업자들에 대한 기술 범위 내이기 때문에 생략되었다.
도 1은 클라이언트 컴퓨터(102)상의 애플리케이션 프로그램(즉, "print document")에 의해 발생된 문서를 인쇄하기 위한 인쇄 시스템(100)의 본 발명의 실시예를 도시한다. 클라이언트(102)에 대한 보다 자세한 설명은 도 2와 관련하여 후술된다. 클라이언트(102)상에서 실행 중인 애플리케이션 프로그램(101)은 포매팅된 데이터 스트림, 플랫폼 및 인쇄 문서에 관한 장치 독립적인 논리적 설명을 발생시킨다. 인쇄에 이용되는 데이터 스트림에 대한 논리적 설명의 일 공지 사양은, I.B.M. Mixed Object Document Content Architecture 참조 번호 SC31-6802에 상세하게 설명되어 있는 MO:DCA(Mixed Object Document Content Architecture)로서 공지되어 있다.
특히, MO:DCA는 다른 애플리케이션들 및 애플리케이션 서비스들과의 교환을 위한 문서들 및 오브젝트 엔빌로프들(object envelopes)을 설명하기 위해 애플리케이션들에 의해 사용되는 데이터 스트림을 정의한다. MO:DCA 아키텍처에서, 문서는 문서 컴포넌트 계층 구조의 최고 레벨을 표현한다. 페이지들은 프레젠테이션 문서, 즉, 예컨대 프린터 또는 디스플레이상의 프레젠테이션을 위한 것으로 의도되고 포매팅된 문서를 구성하는 데이터 오브젝트들을 포함한다. 데이터 오브젝트들은 제시될 데이터 및 그것을 제시하는데 필요한 명령들(directives)을 포함한다. 예시적인 데이터 오브젝트들은 컴퓨터에 의해 발생된 픽처들을 표현하는 그래픽 오브젝트들, 스캔된 픽처들과 같은 이미지 정보를 표현하는 이미지 오브젝트들, 및 텍스트 정보를 표현하는 프레젠테이션 텍스트 오브젝트들을 포함한다. 이러한 오브젝트 표현들 각각은 대응되는 오브젝트 컨텐츠 아키텍처에 따라 MO:DCA 데이터 스트림으로 통합될 수도 있다. 특히, 이하에서는 PTOCA(Presentation Text Object Content Architecture)가 더 논의될 것이다. (PTOCA는 IBM Presentation Text Object Content Architecture 참조 번호 SC31-6308에 상세하게 설명되어 있다.) 문서는, 데이터 오브젝트들 이외에도, 문서 페이지들을 물리적 매체들상에 제시하는데 사용되는 포매팅, 레이아웃, 및 리소스-매핑 정보를 포함하는 인쇄 제어 오브젝트들을 포함할 수 있다. 이 정보는, "form map" 또는 "formdef"라고 하는 MO:DCA 데이터 스트림의 구조적 필드들의 세트에 포함될 수 있다. ("form map"은, 수신지 프린터의 설정들, 종이 유형의 설명 등과 같은, 인쇄 작업에 관한 정보를 위한 컨테이너인 데이터 구조인 "job ticket"과 유사하다.) 데이터는 "트리플렛(triplet)"이라고 하는 구조적 필드 바이트-시퀀스내에서 전달될 수도 있다. MO:DCA 트리플렛은 1-바이트 길이 필드, 1-바이트 고유 식별자, 및 (그 수가 길이 필드로부터 판정되는) 데이터 바이트들의 시퀀스를 포함하는 자체-식별 파라미터(self-identifying parameter)이다. 이하에서는, 본 발명의 발명 원리들에 따라 특정된 복잡한 유니코드 텍스트의 인쇄를 제어하기 위한 MO:DCA 트리플렛이 설명될 것이다.
인쇄 시스템(100)은 애플리케이션 프로그램(101)으로부터 인쇄 문서를 표현하는 데이터 스트림을 수신하고 스풀링하기 위한 스풀(103;spool)을 더 포함한다. 일단 스풀(103)에 의해 수신되면, 데이터 스트림은 데이터 스트림을 프린터 드라이버(105)에 의해 장치 특정 데이터 스트림으로 변환하는 인쇄 서버(104) 및, 폰트들과 같은 리소스들과 데이터 스트림을 인쇄하는데 필요한 인쇄 제어 오브젝트들을 포함하는 리소스 라이브러리(106)로 전송된다. 애플리케이션 프로그램(101)은 리소스 라이브러리(106)를 액세스하고 사용해 문서를 포매팅하도록 구성될 수도 있다. MO:DCA 포맷이 사용될 경우, 인쇄 서버(104)에 의해 발생되는 결과적 데이터 스트림을 IPDS(Intelligent Printer Data Stream)라고 한다. (IPDS는 IBM Intelligent Printer Data Stream Reference, S544-3417에 설명되어 있다.) 데이터 스트림이 포매팅되면, 그것은 인쇄 문서를 발생시키기 위해 프린터(107)로 지향된다.
프린터(107)는 프린터 서버(104)와 통신할 수 있는 제어 유닛(108) 및 내부 메모리(109)를 가질 수 있다. IPDS가 사용될 때, 인쇄 서버(104)와 프린터(107) 사이의 통신은 양방향이다. 예를 들어, 인쇄 서버(104)는 프린터(107)에, 폰트와 같은 특정 리소스가 프린터 메모리(109)에 상주하는지의 여부를 문의할 수 있다. 리소스가 존재하지 않으면, 인쇄 서버(104)는 리소스 데이터베이스(106)로부터 폰 트를 검색하고 IPDS 데이터 스트림을 사용해 그것을 프린터 메모리(109)로 다운로드할 수 있다. 다음으로, 그 리소스는 장래의 사용에 이용될 수도 있다. 그 후, 다운로드된 리소스를 참조하는 인쇄 데이터가 프린터(107)에 의해 수신될 경우, 프린터(107)는 리소스를 데이터와 조합하고 그 조합을, 데이터를 인쇄 가능한 래스터 이미지로 변환하는 (도 1에 도시되어 있지 않은) 통상적인 RIP(Rasterizing Image Processor)에 제공할 것이다. 메모리(109)에 결합되어 있는 제어 유닛(108)은 래스터라이저(rasterizer) 프로그램의 명령어들을 실행하도록 구성될 수 있다.
이제 도 2를 참조하면, 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기 위한 프로세스(200)가 흐름도 형태로 도시되어 있다. 여기에서 제공되는 흐름도들이 반드시 본 발명의 실시예에서 수행되는 동작들이 직렬로 수행됨을 나타내는 것은 아니라는 것에 주의해야 한다. 이러한 흐름도들 내에서 수행되는 단계들 중 다수는 병렬로 수행될 수 있다. 흐름도들은, 본 발명의 원리들에 따라 복잡한 텍스트를 식별하고 프로세싱하도록 수행될 수 있는 사상들을 나타내려는 것이다. 또한, 제시된 순서는 예시적인 것으로서 각 단계들이 반드시 도시된 순서로 수행되어야 함을 의미하는 것은 아님에 주의해야 한다.
단계 202에서는, 복잡한 텍스트가 프레젠테이션 데이터 스트림에 나타나는지가 판정된다. 이것은 프레젠테이션 데이터에 나타나는 유니코드 코드 포인트들의 분석에 의해 수행될 수 있다. 예를 들어, 데이터 스트림에서의 복잡한 텍스트 존재는 유니코드 코드 포인트들을 조사하는 것에 의해 판정될 수 있다. 힌디어 및 아라비아어와 같은 복잡한 텍스트를 포함하는 스크립트들에는 유니코드 표준내의 잘 정의된 코드 포인트 범위가 할당된다. 그러므로, 코드 포인트 값들의 테스트는 코드 포인트들이 복잡한 스크립트의 범위내에 해당되는지를 판정할 수 있다. 이것은, 그 전부가 여기에 참조로서 포함되어 있고 "METHOD AND SYSTEM FOR RENDERING UNICODE COMPLEX TEXT DATA IN A PRINTER"라는 명칭으로 출원되었으며, 앞서 언급된 공동 소유의 계류 중인 미국 특허출원 공개번호 제2004 0257591A1호(출원 번호 제10/601,025호)에 추가적으로 논의되어 있다.
복잡한 텍스트의 존재를 판정하기 위한 다른 방법은 데이터의 선험적(priori) 지식을 이용하는 것이다. 예를 들어, 문서들을 발생시키는 인쇄 애플리케이션은 문서를 발생시키기 위해 데이터가 풀링(pulling)되고 있는 데이터베이스가 영어만을, 다시 말해, 청구서를 채우기 위한 영어 이름들만을 포함한다는 것을 인지하는 "지능(intelligence)"을 포함할 수 있다.
반대로, 데이터베이스가 복잡한 스크립트로 특정될 수 있는 인쇄 파일에 배치되는 정보를 포함하는 경우, 데이터는 복잡한 텍스트로서 태그될 수 있고 프린터는 그에 따라 복잡한 스크립트들과 복잡하지 않은 스크립트들 모두를 프로세싱한다. 프레젠테이션 스트림에 복잡한 텍스트가 존재하지 않으면, 프로세스(200)는 단계 204에서 종료한다. 그렇지 않으면, 단계 206에서, 제어 시퀀스가 프레젠테이션 스트림에 삽입된다. 단계 206과 연관하여 사용될 수 있는 제어 시퀀스가 표 1에 예시되어 있다.
오프셋 유형 명칭 범위 의미
0 CODE PREFIX X'2B' 제어 시퀀스 프리픽스
1 CODE CLASS X'D3' 제어 시퀀스 클래스
2 UBIN LENGTH X'10' 제어 시퀀스 길이
3 CODE TYPE X'6A' 제어 시퀀스 펑크션 유형
4 CODE UCTVERS X'01' UCT 버전 레벨 X'01' 베이스 레벨 보류
5
6-7 UBIN CTLNGTH 0-32767 제어 시퀀스에 수반되는 복잡한 텍스트 데이터의 길이
8 BITS CTFLGS 후술됨 복잡한 텍스트 프로세싱 제어 플래그들
9 보류
10 CODE BIDICT X'02' X'04' X'05' X'12' X'13' X'20' X'22' X'23' 양방향 레이아웃 프로세싱 제어: X'02' 인에이블, 디폴트 문단 방향은 L->R임 X'04' 인에이블; 문단 방향 L->R로 설정하기 X'05' 인에이블; 문단 방향 R->L로 설정하기 X'12' 인에이블; 선행의 UCT 디폴트 L->R로부터 설정된 문단 방향 X'13' 인에이블; 선행의 UCT 디폴트 R->L로부터 설정된 문단 방향 X'20' 디스에이블 X'22' 디스에이블; 텍스트 방향 L->R X'23' 디스에이블; 텍스트 방향 R->L
11 CODE GLYPHCT X'01', X'20' 글리프 프로세싱 제어: X'01' 인에이블 X'20' 디스에이블
12-15 보류
16-17 SBIN ALTIPOS X'8000' X'7FFF' 교대하는 현재의 인라인 위치
제어 시퀀스는 앞서 언급된 PTOCA(Presentation Text Object Content Architecture)에 따라 프레젠테이션 텍스트 오브젝트에 통합될 수 있다. 앞서 논의된 바와 같이, 프레젠테이션 텍스트 오브젝트는 프레젠테이션을 위해 준비된 텍스트를 표현하기 위한 데이터 오브젝트이다. 그것은 일관성 있는 정보를 표현하기에 적합한 그래픽 심볼들, 숫자들 및 글자들과 같은 캐릭터들의 순차적 스트링을 포함할 수 있다. 프레젠테이션을 위해 준비된 텍스트는 캐릭터들의 명시적 사양 및 프레젠테이션 공간에서의 배치를 통해 한가지 형태로 감소되었다.
또한, 특정한 제어 기능들을 지시하는 제어 시퀀스들이 텍스트내에 내장될 수 있다. 이러한 기능들은, 텍스트가 제시될 때 텍스트에 특성들을 적용한다. 그래픽 캐릭터들 및 제어 코드들의 집합을 프레젠테이션 텍스트라고 말할 수 있고, 프레젠테이션 텍스트를 포함하는 오브젝트를 프레젠테이션 텍스트 오브젝트라고 말할 수 있다. 후속의 텍스트 스트링들을 복잡한 텍스트로서 식별하고 복잡한 텍스트 프로세싱을 기존의 프레젠테이션 환경으로 통합하기 위해, 표 1에 예시되어 있으며 이하 더 설명되는 제어 시퀀스와 같은 제어 시퀀스가 프로세스(200)의 단계 206에 삽입될 수 있다. 특히, UCT(Unicode Complex Text) 제어 시퀀스라고 언급될 수 있는 제어 시퀀스는, 도 3 내지 도 6과 관련하여 이하에서 논의되는 바와 같이 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하는데 사용될 수 있다. 또한, UCT 제어 시퀀스는, 도 3 내지 도 6과 관련하여 이하에서 논의되는 바와 같이, 양방향(bidi) 레이아웃 프로세싱 및/또는 글리프 프로세싱을 선택적으로 인에이블하는데 사용될 수 있다.
이제는, 본 발명의 일 실시예에 따라 복잡한 유니코드 텍스트를 프로세싱하기 위한 프로세스(300)를 흐름도 형태로 도시한 도 3을 참조한다.
단계 302에서, 액티브 폰트(active font)가 OpenType 폰트가 아니거나, 데이터가 유니코드-기반 캐릭터 세트로 인코딩되어 있지 않거나, 기입 모드가 수평이 아니라면, 제어 시퀀스에 수반되는 코드 포인트들은 복잡한 텍스트로서 프로세싱되지 않는다. {OpenType 폰트는 TrueType 스케일러블 폰트 기술(scalable font technology)의 확장인 크로스-플랫폼의 폰트 파일 포맷이다.} (단계 302는 유니코드-기반 캐릭터 세트들 및 OpenType 폰트와 관련하여 설명되지만, 본 발명의 원리들은 임의의 폰트 유형 및 캐릭터 인코딩과 관련하여 적용될 수 있다.) 그러므로, 단계 304에서, 코드 포인트들은 일 코드 포인트 대 일 글리프 방식으로 보통의 텍스트 프로세싱에서와 같이 렌더링된다. 다음으로, 프로세스(300)는 단계 305에서 종료한다. 그렇지 않으면, 복잡한 텍스트는, 단계들 306-314와 관련하여 후술되는 바와 같이 데이터 스트림 제어 시퀀스들의 파라미터 세트에 따라 프로세싱된다.
앞서 논의된 바와 같이, 특정 태스크는 데이터 스트림내의 복잡한 텍스트에 대한 적당한 렌더링을 요하지 않을 수 있다. 예를 들어, 작업이 시험 목적들(proofing purposes)을 위해 인쇄되고 있는 중이라면, 제공자(submitter)는 복잡한 텍스트 프로세싱을 하지 않기를(turn off) 원할 수 있다. 따라서, 본 발명에 따라 제출시에 프레젠테이션 데이터 스트림의 복잡한 텍스트의 렌더링을 디스에이블하기 위해 MO:DCA 형태 맵이 사용될 수 있다. 복잡한 텍스트의 렌더링을 디스에이블하기 위해 MO:DCA 데이터 스트림의 형태 맵에 포함될 수 있는 MO:DCA 트리플렛(UCT 프로세싱 제어 트리플렛이라고 언급될 수 있음)이 표 2에 정의되어 있다. UCT 프로세싱 제어 트리플렛의 신택스(syntax)는 상술된 MO:DCA 트리플렛들의 구조에 따른다.
오프셋 유형 명칭 범위 의미 M/O 확장
0 UBIN Tlength 5 Tlength를 포함한, 트리플렛의 길이 M X'02'
1 CODE Tid X'90' 복잡한 유니코드 텍스트 프로세싱의 제어 트리플렛 식별하기 M X'00'
2 CODE BiDiCtl X'00'-X'01' 유니코드의 양방향 레이아웃 프로세싱 제어 X'00' PTOCA 제어들에 따르기 X'01' 양방향 레이아웃 프로세싱 디스에이블하기 M X'06'
3 CODE GlyphCtl X'00'-X'01' 유니코드 글리프 프로세싱 제어 X'00' PTOCA 제어들에 따르기 X'01' 글리프 프로세싱 디스에이블하기 M X'06'
4 보류 M X'00'
표 2에 도시된 바와 같이, 표 2에서 정의된 UCT 프로세싱 제어 트리플렛은 5 바이트 길이이다. (바이트 오프셋 2 및 3의) BiDiCtl 및 GlyphCtl 파라미터들의 값들은 각각 문서를 위한 유니코드 양방향 레이아웃 프로세싱 및 유니코드 글리프 프로세싱을 제어한다. 어느 한쪽 바이트의 값이 X'01'로서 표시되는 16진수 1이라면, 양방향 프로세싱 또는 글리프 프로세싱 중 대응되는 하나는 디스에이블된다. 어느 한쪽 또는 양쪽 값이 X'00'으로서 지시되는 16진수 0이라면, 복잡한 텍스트의 레이아웃 프로세싱은, 도 3의 추가 단계들과 관련하여 후술되는 바와 같이 PTOCA UCT 제어 시퀀스에 의해 제어된다.
도 3의 단계 306으로 복귀하여, UCT 프로세싱 제어 트리플렛과 같은, 유니코드 프레젠테이션 제어 시퀀스가 형태 맵에 포함되어 있는 경우, 단계 308에서 복잡한 텍스트의 양방향 프로세싱 및 글리프 프로세싱 모두가 디스에이블인지가 판정된다. 모두가 디스에이블인 경우, 프로세스(300)는 단계 304로 복귀하고 UCT 제어 시퀀스에 수반되는 코드 포인트들은 통상적인 텍스트, 즉 일대일 코드 포인트 대 글리프 매핑으로 프로세싱된다. 단계 310에서, 양방향 프로세싱이 디스에이블 상태가 아니라면, UCT 프레젠테이션 제어는 PTOCA 제어 시퀀스를 따르고, 양방향 프로세싱은, 단계 312에서 PTOCA UCT 제어 시퀀스에 따라 수행된다. 단계 308과 관련하여 사용될 수 있는 PTOCA UCT 제어 시퀀스를 사용하는 양방향 프로세싱을 위한 방법은 후술되는 도 4에 예시되어 있다.
다음으로, 단계 314에서 글리프 프로세싱이 MO:DCA 프레젠테이션 제어에서 디스에이블 상태가 아니라면, 글리프 프로세싱 또한 단계 316에서 PTOCA UCT 제어 시퀀스를 통해 수행된다. 단계 314와 관련하여 사용될 수 있는 PTOCA UCT 제어 시퀀스를 사용하는 글리프 프로세싱을 위한 방법은 이하 설명되는 도 5에 도시되어 있다. 이와 달리, 글리프 프로세싱이 디스에이블 상태라면, 단계 316은 우회되고, 프로세스(300)는 단계 305에서 종료한다.
단계 310으로 복귀하여, MO:DCA 프레젠테이션 제어에서 양방향 프로세싱이 디스에이블 상태인 경우, 단계 308에서 양방향 및 글리프 프로세싱 모두가 디스에이블 상태는 아니었기 때문에(단계 308은 "아니오" 브랜치(branch)로 빠졌기 때문에), 글리프 프로세싱은 단계 316에서 PTOCA UCT 제어 시퀀스를 통해 진행한다. (타이어는 왼쪽에서 오른쪽으로 기입되므로, 양방향 프로세싱은 요하지 않지만 글리프 프로세싱을 필요로 하는 언어의 일례이다.) 그 다음, 프로세스(300)는 단계 305에서 종료한다.
이제 본 발명의 실시예에 따른, PTOCA UCT 제어 시퀀스 제어하의 양방향 프로세싱을 위한 프로세스(400)가 흐름도 형태로 도시되어 있는 도 4를 참조한다.
앞서 논의된 바와 같이, 유니코드 캐릭터 인코딩은 공지의 모든 문어들(written languages)을 디지털 형태로 표현하기 위한 능력을 제공한다. 호환성을 위해, 본 표준은 복합 캐릭터들(composite characters)과 같은 캐릭터들을 인코딩하기 위한 상이한 방법들을 제공할 수 있다. 동등한 텍스트가 동일한 2진 표현을 가지는 것을 보장하기 위해, 유니코드 표준은 임의의 스트링을 위해 정규화된 고유 형태를 발생시키도록 설계된 정규화 형태들을 제공한다. 따라서, 단계 402에서는, 프로세싱되는 복잡한 텍스트의 코드 포인트들이 정규화되어 있는지 판정된다. 표 1의 UCT 제어 시퀀스를 사용하는 본 발명의 일 실시예에서, 이것은 CTFLGS 파라미터를 테스트함으로써 판정될 수 있다. 이 파라미터는 복잡한 유니코드 텍스트를 프로세싱하기 위한 제어 시퀀스들을 특정하는 비트-인코딩된 파라미터(bit-encoded parameter)이다. 특히, 단계 402의 목적을 위해 비트 0는, UCT 제어 시퀀스에 수반되는 코드 포인트들이 정규화되어 있는지의 여부를 나타낸다. 본 발명의 이러한 실시예에서, (B'0'로서 표시되는) 2진수 "0"의 값은, 코드 포인트들이 정규화되어 있지 않은 것을 지시한다. 반대로, B'1'(2진수 "1")의 값은 프로세싱되는 코드 포인트들이 텍스트 오브젝트 발생기에 의해 정규화되어 있음을 나타낸다. 코드 포인트들이 정규화되어 있지 않다면, 유니코드 정규화가 단계 404에서 적용된다. 유니코드 컨소시엄에 의해 발표된 유니코드 기술 보고서, UAX-15, "Unicode Normalization Forms"에서 설명된 유니코드 정규화 형태들 중 어떤 것도 본 발명과 관련하여 사용될 수 있다.
단계 406에서는, 양방향 프로세싱이 UCT 제어 시퀀스에 수반되는 코드 포인트들에 적용될 것인지가 판정된다. 표 1의 UCT 제어 시퀀스를 사용하는 본 발명의 실시예에서, 이것은 BIDICT 파라미터를 테스트하는 것에 의해 판정될 수 있다. 그런 실시예에서는, 복잡한 텍스트 코드 포인트들의 프로세싱에서 몇가지 대안들이 특정될 수 있고, 이러한 대안들은 양방향 프로세싱이 인에이블인지의 여부에 따라 복수개 통로를 가진 판정 블록들(408 및 410;multiway decision blocks)로 표현된다. 복수개 통로를 가진 판정 블록들(408 및 410) 각각은 UCT 제어 시퀀스의 BIDICT 파라미터 값들에 대응된다. (프로그래밍 업계의 당업자들이라면 알 수 있는 바와 같이, C 또는 C++과 같은, 다수의 하이-레벨 프로그래밍 언어들은 그러한 복수개 통로를 가진 판정 블록들을 SWITCH 문장들의 형태로 제공한다. 또한, 그러한 구현들에서, 판정 블록(406)은 블록들(408 및 410)과 함께 구현될 수도 있지만, 도 4에서는 명료화를 위해 이들을 개별적으로 도시하였다.)
앞서 논의된 바와 같이, 유니코드 캐릭터들의 양방향 특성 및 텍스트 문단들의 본질적인 양방향 특성으로 인해, 복잡한 유니코드 텍스트 프로세싱과 복잡하지 않은 텍스트 프로세싱의 통합을 용이하게 하기 위해서는 유니코드 프로세싱 환경내에 방향성 제어를 제공하는 것이 바람직할 수 있다. 따라서, (16진수 값들 X'02', X'04', X'05', X'12' 및 X'13' 중 하나에 의해 표현되는) 양방향 프로세싱이 인에이블인 경우, 복수개 통로를 가진 판정 블록(408)에서 문단 방향은 BIDICT 파라미터의 값에 응답하여 설정된다. 단계 408a에서, 문단 방향(paragraph direction)은, 코드 포인트 스트림에서 마주치게 되는 제 1의 강한 방향성 캐릭터(the first strongly directional character)에 기초해 설정된다. (유니코드 표준은 유니코드 캐릭터들을, 강한 방향성 클래스를 포함하는 몇가지 클래스들 중 하나로 분리한다.) 단계 408a는 X'02'의 BIDICT 파라미터 값에 대응된다. 단계 408b에서, 문단 방향은 왼쪽에서 오른쪽(L->R)으로 설정된다. 단계 408b는 X'04'의 BIDICT 파라미터 값에 대응된다. 단계 408c에서, 문단 방향은 오른쪽에서 왼쪽((R->L)으로 설정된다. 단계 408c는 X'05'의 BIDICT 파라미터 값에 대응된다. 단계 408d에서, 문단 방향은 현재의 텍스트 오브젝트에서 마지막으로 프로세싱된 복잡한 텍스트 스트링을 사용해 설정되고, 이와 달리 현재 스트링이 텍스트 오브젝트에서 마주치게 되는 첫 번째 복잡한 텍스트 스트링이라면, 방향은 처음으로 마주치게 되는 강한 방향성 캐릭터에 기초한다. 단계 408d는 X'12' 및 X'13'의 BIDICT 파라미터 값들에 대응된다. 문단 방향이 판정될 수 없다면, 디폴트는 L->R(X'12') 및 R->L(X'13') 중 하나로 설정된다. 단계 412에서, 복잡한 텍스트 스트링의 끝에서의 텍스트 위치가 판정된다. 단계 412와 관련하여 사용될 수 있는 텍스트 위치를 판정하기 위한 프로세스가 후술되는 도 6에 도시되어 있다. 프로세스(400)는 단계 414에서 종료한다.
양방향 프로세싱이 (16진수 값들 X'20', X'22' 및 X'23' 중 하나에 의해 표현되는) 디스에이블 상태라면, 문단 방향 정보는 사용되지 않고, 복수개 통로를 가진 판정 블록(410)에서, 텍스트 방향은 BIDICT 파라미터의 3가지 값들 중 하나에 따라 설정된다. 단계 410a에서, 텍스트 방향은 현재의 인라인 방향(current inline direction)으로 설정된다. (인라인 방향은 그래픽 캐릭터들을 배치하는데 사용되는 2가지 좌표 방향들 중 하나에 대응되고, 연속적인 캐릭터들이 텍스트의 라인으로 표시되는 방향을 표현한다. 베이스라인 방향이라고 언급되는 다른 방향은 텍스트의 연속적인 라인들이 논리 페이지상에 표시되는 방향을 표현한다.) 코드 포인트들은, 그들이 마치 TRN 제어 시퀀스에 포함되어 있는 것처럼 프로세싱된다. 단계 410a는 X'20'의 BIDICT 파라미터 값에 대응된다. 단계 410b에서, 코드 포인트들은 왼쪽으로부터 오른쪽으로의 단일 실행 방향으로 프로세싱되고, 단계 410c에서, 코드 포인트들은 오른쪽으로부터 왼쪽으로의 단일 실행 방향으로 프로세싱된다. 단계들(410b 및 410c)은 각각 X'22' 및 X'23'의 BIDICT 파라미터 값들에 대응된다. 프로세스(400)는 단계 414에서 종료한다.
이제 본 발명의 실시예에 따른, 글리프 프로세싱을 위한 방법(500)을 흐름도 형태로 도시하는 도 5를 참조한다. 도 4의 단계들(402 및 404)과 관련하여 상술된 바와 같이, 프로세싱되고 있는 복잡한 유니코드 텍스트는 그것이 포매터에 의해 이미 정규화되지 않았다면 단계들(502 및 504)에서 정규화된다.
단계 506에서, 글리프 프로세싱이 UCT 제어 시퀀스에 수반되는 코드 포인트들에 적용될 것인지가 판정된다. 표 1의 UCT 제어 시퀀스를 사용하는 본 발명의 일 실시예에서, 이것은 GLYPHCT 파라미터를 테스트하는 것에 의해 판정될 수 있다. 이 파라미터를 위한 X'01'의 값은 글리프 프로세싱이 인에이블이라는 것을 나타내고, 프로세스(500)는 단계 508로 진행한다. X'20'의 값은 글리프 프로세싱을 디스에이블하고, 프로세스(500)는 단계 505에서 종료한다. 예를 들어, 헤브라이어(Hebrew)는 대개 모음 부호들없이 기입된다. 그러한 환경에서, 텍스트는 캐릭터들을 양방향 프로세스에 따라 재정렬하는 것에 의해 정확하게 렌더링될 수 있다.
단계 508에서, 글리프들은 레이아웃 엔진을 호출하는 것에 의해 레이아웃된다. 레이아웃 엔진은 스크립트-특정(script-specific) 규칙들을 유니코드 캐릭터 스트링에 적용한다. 대개 폰트내에서 제공되는 추가 테이블들을 사용하는 이러한 규칙들은 적합한 글리프를 선택하고 배치하는데 사용된다. 글리프들의 레이아웃은 최종 사용자 커뮤니티의 로케일(locale)에 의존할 수 있다. 이는 데이터 스트림의 PTOCA 텍스트 오브젝트에 결부되어 있는 MO:DCA 구조적 필드에서 특정될 수 있으며, 상기 로케일은 문서 생성자의 의도를 반영하며 생성 로케일로서 언급될 수 있다. 생성 로케일이 특정되어 있지 않으면, 작업이 형태 맵의 MO:DCA 구조적 필드로 제출될 때, 로케일을 특정하는 것이 바람직할 수 있다. 제출 로케일은 생성 로케일의 존재와 무관하게 포함될 수 있다는 것에 주의한다. 따라서, 로케일은, 생성 로케일 및 제출 로케일에 의해 2가지 방법으로 특정될 수 있다. 둘 사이에 충돌이 존재한다면, 생성 로케일은 제출 로케일을 무효화할(override) 수 있다. 따라서, 본 발명의 원리들에 따른 MO:DCA 제어 시퀀스 트리플렛은 데이터 스트림 또는 형태 맵에 포함될 수도 있고, 그에 의해 로케일은 단계 508에서 호출된 레이아웃 엔진으로 전달될 수 있다. 사용될 수 있는 MO:DCA 트리플렛(로케일 선택기 트리플렛)이 다음의 표 3에 정의되어 있다. 로케일 선택기 트리플렛의 신택스는 앞서 설명된 MO:DCA 트리플렛들의 구조에 따른다.
오프셋 유형 명칭 범위 의미
0 UBIN Tlength 36-254 Tlength를 포함한, 트리플렛의 길이
1 CODE Tid X'8C' 로케일 선택기 트리플렛 식별하기
2 보류; 0이어야 함
3 BITS LocFlgs 후술됨
4-11 CHAR LangCde ISO-639에 등록된 언어 코드; 인코딩은 UTF-16
12-19 CHAR ScrptCde ISO-15924에 등록된 스크립트 코드; 인코딩은 UTF-16
20-27 CHAR RegCde ISO-3166에 등록된 영역 코드; 인코딩은 UTF-16
28-35 보류; 0이어야 함
36-n CHAR VarCde 가변 코드; 인코딩은 UTF-16
로케일 정보는 3개 파라미터들(LangCde, ScriptCde 및 RegCde)에 포함되어 있다. 파라미터 LangCde는 ISO-639 표준의 정의에 따른 언어 코드를 특정한다. 파라미터 ScriptCde는 ISO-15924 기반 스크립트 코드를 특정하고, 파라미터 RegCde는 ISO-3166 표준에 따른 영역 코드를 특정한다. 또한, LocFlgs 파라미터는 언어, 스크립트 및 영역 코드 파라미터들을 위한 신택스 정보를 제공하는데 사용될 수 있다. 이것은, 비트들(0-3)의 값들이 언어 코드 신택스를 특정하는 비트-인코딩된 파라미터이다. 이들 비트들이 B'000' 값을 가진다면, 언어 코드는 특정되지 않으며, 언어 코드 파라미터는 무시되어야 한다. B'010'의 값은, 언어 코드가 ISO-639-1에서 정의된 2-캐릭터 언어 식별자를 사용해 특정된다는 것을 나타내고, B'O11'의 값은, 언어 코드가 ISO-639-2에서 정의된 3-캐릭터 언어 식별자를 사용해 특정된다는 것을 나타낸다. 마찬가지로, 비트 4는 스크립트 코드 신택스를 식별하며, 상기 B'0'의 값은 스크립트 코드가 특정되어 있지 않으며 스크립트 코드 파라미터가 무시되어야 한다는 것을 나타낸다. B'1'의 값은, 스크립트 코드가 ISO 15924에서 정의된 4-캐릭터 스크립트 식별자를 사용해 특정된다는 것을 나타낸다. 비트들(5-7)은 영역 코드 신택스를 특정하는데, 여기서 B'000'의 값은 이번에도 영역 코드가 특정되어 있지 않으며 영역 코드 파라미터가 무시되어야 한다는 것을 나타낸다. B'010'의 값은, ISO-3166-1에서 정의된 2-캐릭터 영역 식별자를 사용해 영역 코드가 특정된다는 것을 나타내고, B'O11'의 값은 ISO-3166-1에서 정의된 3-캐릭터 영역 식별자를 사용해 영역 코드가 특정된다는 것을 나타낸다.
도 5로 복귀하면, 단계 510에서 복잡한 텍스트의 끝에서의 텍스트 위치가 판정된다.
이제 본 발명의 원리들에 따라 복잡한 유니코드 텍스트 스트링의 끝에서 텍스트 위치를 판정하기 위한 프로세스(600)를 흐름도 형태로 도시하는 도 6을 참조한다. 프로세스(600)는 도 4의 단계 412 및 도 5의 단계 510의 실시예를 제공하는데 사용될 수 있다. 프로세스(600)는, 상기 표 1의 신택스를 사용해 구체화될 수 있는 UCT 제어 시퀀스와 관련하여 동작한다.
특히, CTFLGS 파라미터의 비트 3의 값은 복잡한 유니코드 텍스트의 완결에서의 텍스트 위치 지정을 제어하는데 사용될 수 있다. 단계 602에서, CTFLGS 파라미터의 비트 3이 테스트되고, 그 값이 B'1'이면, 현재의 인라인 위치는, 단계 604에서 복잡한 텍스트가 프로세싱될 때 진행되지 않는다. 프로세스(600)는 단계 606에서 종료된다. 반대로, CTFLGS 파라미터의 비트 3이 B'0' 값을 갖는 경우, 블록 608에서 양방향 스위치(two-way switch)가 수행된다.
단계 608a에서, 복잡한 텍스트의 프로세싱 시작에서의 현재 위치(Ic)가 복잡한 유니코드 텍스트를 배치하는데 사용되는 경우, 그 새로운 위치(Icnew)는 단계 610에서 복잡한 텍스트의 프로세싱 시작에서의 현재 위치(Ic)의 합 및 복잡한 유니코드 텍스트를 구성하는 서기소들(graphemes)을 위한 모든 증분들(increments)의 합으로서 판정된다. 단계 608a에서의 판정은 CTFLGS 파라미터의 비트 1을 테스트하는 것에 의해 영향을 받을 수 있다. 이 비트는, 다른 위치 값(ALTIPOS 파라미터)이 유효한지 여부를 나타낸다. B'0'의 값은, ALTIPOS 파라미터가 무효이므로 Ic가 복잡한 텍스트를 배치하는데 사용됨을 나타낸다.
단계 608b에서, 다른 위치(Ia)가 복잡한 텍스트 프로세싱의 시작에서 텍스트를 배치하는데 사용된 경우(CTFLGS 파라미터 비트 1에 대해 B'1'의 값), 단계 612에서, 새로운 위치(Icnew)가 Ia로 설정된다. 문단 방향이 현재의 기입 모드와 반대일 때마다 다른 인라인 위치가 사용될 수도 있다. 기입 모드는 기입 시스템에서의 텍스트 설정을 위한 모드를 정의하는데, 대개 연속적인 그래픽 캐릭터들이 형성되는 공칭 방향(nominal direction), 예컨대 왼쪽에서 오른쪽, 오른쪽에서 왼쪽, 위쪽에서 아래쪽에 대응된다. 기입 모드는, 예를 들어, 프레젠테이션 데이터 스트림의 텍스트 오브젝트들을 위한 폰트 오브젝트 아키텍처에 의해 UCT 제어 시퀀스 이전에 판정된다. 예를 들어, 왼쪽에서 오른쪽의 문단 방향을 가진 영어 또는 유사한 라틴계 알파벳 언어가 우세한 텍스트 스트림의 렌더링을 고려한다. 기입 모드는 왼쪽에서 오른쪽이다. 텍스트 문단들은 통상적으로 왼쪽 정렬형이다. 텍스트 스트림에서 오른쪽에서 왼쪽의 문단 방향을 사용하는 언어, 예컨대 아라비아어 또는 헤브라이어를 마주치게 된 경우, 오른쪽 정렬형의 텍스트를 적절하게 렌더링하기 위해 다른 인라인 위치 파라미터가 사용될 수 있다.
도 7은 주제 발명에 따른 데이터 프로세싱 시스템(700)의 예시적 하드웨어 구성을 도시한다. 본 시스템은 도 3 내지 도 6에 도시된 방법들과 관련하여, 복잡한 유니코드 텍스트의 프로세싱을 제어하고, 복잡한 유니코드 텍스트를 프로세싱하는데 사용될 수 있다. 데이터 프로세싱 시스템(700)은, 기존의 마이크로프로세서와 같은 CPU(central processing unit; 710), 및 시스템 버스(712)를 통해 상호 접속되어 있는 다수의 다른 유닛들을 포함한다. 데이터 프로세싱 시스템(700)은 RAM(random access memory; 714), ROM(read only memory; 716) 및, 비휘발성 저장 유닛들(720)과 같은 주변 장치들을 버스(712)에 접속하기 위한 I/O(input/output) 어댑터(718)도 포함한다. 시스템(700)은 데이터 프로세싱 시스템(700)을 데이터 프로세싱 네트워크에 접속하여 시스템이 다른 시스템들과 통신하는 것을 가능하게 하기 위한 통신 어댑터(734)도 포함한다. CPU(710)는 여기에 도시되지 않은 다른 회로를 포함할 수도 있는데, 이는 마이크로프로세서내에서 흔히 발견되는 회로, 예컨대 실행 유닛들, 버스 인터페이스 유닛들, ALU들(arithmetic logic units) 등을 포함할 것이다. CPU(710)가 단일한 집적 회로상에 상주할 수도 있다.
본 발명의 바람직한 구현들은 여기에서 설명되는 방법 또는 방법들을 실행하도록 프로그램된 컴퓨터 시스템 및 컴퓨터 프로그램 제품으로 구현된 것들을 포함한다. 컴퓨터 시스템 구현에 따르면, 방법 또는 방법들을 실행하기 위한 명령어들의 세트들은 상술된 바와 같이, 일반적으로 구성된 하나 이상 컴퓨터 시스템들의 RAM(714)에 상주한다. 이러한 명령어들의 세트들은, 여기에서 상술된 바와 같이 그것들을 실행하는 시스템 컴포넌트들과 관련하여 복잡한 유니코드 텍스트의 프로세싱을 제어한다. 컴퓨터 시스템에 의해 요청될 때까지, 명령어들의 세트는 다른 컴퓨터 메모리, 예컨대 {결과적으로 비휘발성 저장 유닛(720)에서의 사용을 위해, 광 디스크, 플로피 디스크, CD-ROM, 또는 플래시 메모리와 같은 분리형 메모리를 포함할 수도 있는) 비휘발성 저장 유닛(720)에 컴퓨터 프로그램 제품으로서 저장될 수 있다. 또한, 컴퓨터 프로그램 제품은 다른 컴퓨터에 저장될 수도 있고 네트워크에 의해 또는 인터넷과 같은 외부 네트워크에 의해 사용자들의 워크스테이션으로 전송될 수도 있다. 당업자는 명령어 세트들이 저장되는 매체가 컴퓨터 판독 가능 정보를 전달하기 위해 명령어 세트들의 물리적 저장이, 명령어 세트들이 저장되는 매체를 물리적으로 변화시킨다는 것을 이해할 수 있을 것이다. 그 변화는 전기적, 자기적, 화학적, 생물학적, 또는 다른 물리적 변화일 수 있다. 본 발명을 명령어들, 심볼들, 캐릭터들 등으로 설명하는 것이 편리하기는 하지만, 독자는 유사한 용어에서의 이들 모두가 적합한 물리 소자들과 연관되어야 한다는 것을 기억해야 한다.
본 발명은 비교하기, 평가하기, 선택하기, 식별하기, 또는 사람 오퍼레이터와 연관될 수 있는 다른 용어들과 같은 용어들을 설명할 수도 있다는 것에 주의한다. 그러나, 적어도 하나의 실시예의 일부를 형성하고 여기에 설명된 적어도 다수의 동작들에 있어서, 사람 오퍼레이터에 의한 동작은 바람직스럽지 않다. 기술되는 동작들은 대개 다른 전기 신호들을 발생시키기 위해 전기 신호들을 프로세싱하는 머신 동작들이다.

Claims (39)

  1. 복잡한 텍스트를 식별하는 방법으로서,
    프레젠테이션 데이터 스트림이 복잡한 텍스트 스트링을 포함하는 경우, 상기 복잡한 텍스트 스트링 이전에 사전 선택된 제어 시퀀스를 상기 프레젠테이션 데이터 스트림에 삽입하는 단계를 포함하고,
    상기 사전 선택된 제어 시퀀스는 상기 복잡한 텍스트의 프로세싱을 제어하기 위한 복수의 파라미터들에 대응되고, 각각의 파라미터는 상기 사전 선택된 제어 시퀀스의 대응되는 값에 의해 표현되며, 제1 파라미터는 상기 복잡한 텍스트의 프로세싱을 제어하기 위한 제어 유형을 나타내는 값을 가지며, 제2 파라미터는 상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하는 방법.
  2. 제1항에 있어서,
    상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들은, 상기 복잡한 텍스트의 제1 프로세싱 유형을 인에이블 및 디스에이블하기 위한 값들의 세트를 포함하는 방법.
  3. 제2항에 있어서,
    상기 복잡한 텍스트의 제1 프로세싱 유형은 양방향(bidi) 프로세싱을 포함하는 방법.
  4. 제2항에 있어서,
    상기 복수의 파라미터들은 제3 파라미터를 더 포함하고, 상기 제3 파라미터는 상기 복잡한 텍스트의 제2 프로세싱 유형을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하는 방법.
  5. 제4항에 있어서,
    상기 복잡한 텍스트의 제2 프로세싱 유형은, 글리프 프로세싱(glyph processing)을 포함하는 방법.
  6. 제1항에 있어서,
    상기 복수의 파라미터들은 다른 텍스트 위치를 포함하는 값을 취하는 제3 파라미터를 더 포함하는 방법.
  7. 복잡한 텍스트를 프로세싱하기 위한 방법으로서,
    프레젠테이션 데이터 스트림의 제1 제어 유형 - 상기 제1 제어 유형은 복잡한 텍스트 프로세싱의 제1 유형을 제어하기 위한 상기 제1 제어 유형의 대응되는 값에 의해 표현되는 제1 파라미터를 포함함 - 에 응답하여,
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인지를 판정하는 단계; 및
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인 경우, 상기 프레젠테이션 데이터 스트림의 상기 제1 제어 유형에 후속되는 복잡한 텍스트 스트링에, 상기 복잡한 텍스트의 제1 프로세싱 유형을 적용하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 복잡한 텍스트의 제1 프로세싱 유형은 양방향(bidi) 프로세싱을 포함하는 방법.
  9. 제8항에 있어서,
    상기 제1 파라미터는 상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하고,
    상기 복잡한 텍스트 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들은, 상기 복잡한 텍스트의 양방향 프로세싱을 위한 문단 방향을 판정하기 위한 하나 이상의 값들을 포함하는 방법.
  10. 제7항에 있어서,
    상기 제1 제어 유형은, 상기 복잡한 텍스트의 제2 프로세싱 유형을 제어하기 위한 제어 유형의 대응되는 값에 의해 표현되는 제2 파라미터를 포함하고,
    상기 방법은,
    상기 복잡한 텍스트의 제2 프로세싱 유형이 인에이블인지를 판정하는 단계; 및
    상기 복잡한 텍스트의 제2 프로세싱 유형이 인에이블인 경우, 상기 프레젠테이션 데이터 스트림의 상기 제1 제어 유형에 후속되는 복잡한 텍스트 스트링에 상기 복잡한 텍스트의 제2 프로세싱 유형을 적용하는 단계
    를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 복잡한 텍스트의 제2 프로세싱 유형은, 글리프 프로세싱을 포함하는 방법.
  12. 제7항에 있어서,
    상기 프레젠테이션 데이터 스트림의 제2 제어 유형 - 상기 제2 제어 유형은 상기 복잡한 텍스트의 제1 프로세싱 유형을 디스에이블하도록 동작 가능하며 상기 제2 제어 유형의 대응되는 값에 의해 표현되는 파라미터를 포함함 - 에 응답하여,
    상기 복잡한 텍스트의 제1 프로세싱 유형이 디스에이블인지를 판정하는 단계; 및
    상기 복잡한 텍스트의 제1 프로세싱 유형이 디스에이블인 경우, 상기 복잡한 텍스트 스트링에 상기 복잡한 텍스트의 제1 프로세싱 유형을 적용하는 단계를 무효화하는(overriding) 단계
    를 더 포함하는 방법.
  13. 제7항에 있어서,
    상기 제1 제어 유형은 다른 텍스트 위치를 판정하기 위한, 상기 제1 제어 유형의 대응되는 값에 의해 표현되는, 제2 파라미터를 포함하고,
    상기 방법은,
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인 경우, 상기 다른 텍스트 위치를 사용해 텍스트 위치를 설정하는 단계를 포함하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에서 수행하게 하는 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 복잡한 텍스트를 식별하기 위한 데이터 프로세싱 시스템으로서,
    프레젠테이션 데이터 스트림이 복잡한 텍스트 스트링을 포함하는 경우, 상기 복잡한 텍스트 스트링 이전에 사전 선택된 제어 시퀀스를 상기 프레젠테이션 데이터 스트림에 삽입하도록 동작 가능한 회로를 포함하고,
    상기 사전 선택된 제어 시퀀스는 상기 복잡한 텍스트의 프로세싱을 제어하기 위한 복수의 파라미터들에 대응되고, 각각의 파라미터는 상기 사전 선택된 제어 시퀀스의 대응되는 값에 의해 표현되며, 제1 파라미터는 상기 복잡한 텍스트의 프로세싱을 제어하기 위한 제어 유형을 나타내는 값을 가지며, 제2 파라미터는 상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하는 데이터 프로세싱 시스템.
  28. 제27항에 있어서,
    상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들은, 상기 복잡한 텍스트의 제1 프로세싱 유형을 인에이블 및 디스에이블하기 위한 값들의 세트를 포함하는 데이터 프로세싱 시스템.
  29. 제28항에 있어서,
    상기 복잡한 텍스트의 제1 프로세싱 유형은 양방향(bidi) 프로세싱을 포함하는 데이터 프로세싱 시스템.
  30. 제28항에 있어서,
    상기 복수의 파라미터들은 제3 파라미터를 더 포함하고, 상기 제3 파라미터는 상기 복잡한 텍스트의 제2 프로세싱 유형을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하는 데이터 프로세싱 시스템.
  31. 제30항에 있어서,
    상기 복잡한 텍스트의 제2 프로세싱 유형은, 글리프 프로세싱을 포함하는 데이터 프로세싱 시스템.
  32. 제27항에 있어서,
    상기 복수의 파라미터들은 다른 텍스트 위치를 포함하는 값을 취하는 제3 파라미터를 더 포함하는 데이터 프로세싱 시스템.
  33. 복잡한 텍스트를 프로세싱하기 위한 데이터 프로세싱 시스템으로서,
    프레젠테이션 데이터 스트림의 제1 제어 유형 - 상기 제1 제어 유형은 상기 복잡한 텍스트의 제1 프로세싱 유형을 제어하기 위한 상기 제1 제어 유형의 대응되는 값에 의해 표현되는 제1 파라미터를 포함함 - 에 응답하여 동작 가능한 회로;
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인지를 판정하도록 동작 가능한 회로; 및
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인 경우, 상기 프레젠테이션 데이터 스트림의 상기 제1 제어 유형에 후속되는 복잡한 텍스트 스트링에 상기 복잡한 텍스트의 제1 프로세싱 유형을 적용하도록 동작 가능한 회로
    를 포함하는 데이터 프로세싱 시스템.
  34. 제33항에 있어서,
    상기 복잡한 텍스트의 제1 프로세싱 유형은 양방향(bidi) 프로세싱을 포함하는 데이터 프로세싱 시스템.
  35. 제34항에 있어서,
    상기 제1 파라미터는 상기 복잡한 텍스트의 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들을 취하고,
    상기 복잡한 텍스트 프로세싱을 인에이블 및 디스에이블하기 위한 하나 이상의 값들은, 상기 복잡한 텍스트의 양방향 프로세싱을 위한 문단 방향을 판정하기 위한 하나 이상의 값들을 포함하는 데이터 프로세싱 시스템.
  36. 제33항에 있어서,
    상기 제1 제어 유형은 상기 복잡한 텍스트의 제2 프로세싱 유형을 제어하기 위한 제어 유형의 대응되는 값에 의해 표현되는 제2 파라미터를 포함하고,
    상기 시스템은,
    상기 복잡한 텍스트의 제2 프로세싱 유형이 인에이블인지를 판정하도록 동작 가능한 회로; 및
    상기 복잡한 텍스트의 제2 프로세싱 유형이 인에이블인 경우, 상기 프레젠테이션 데이터 스트림의 상기 제1 제어 유형에 후속되는 복잡한 텍스트 스트링에 상기 복잡한 텍스트의 제2 프로세싱 유형을 적용하도록 동작 가능한 회로를 더 포함하는 데이터 프로세싱 시스템.
  37. 제36항에 있어서,
    상기 복잡한 텍스트의 제2 프로세싱 유형은, 글리프 프로세싱을 포함하는 데이터 프로세싱 시스템.
  38. 제33항에 있어서,
    상기 프레젠테이션 데이터 스트림의 제2 제어 유형 - 상기 제2 제어 유형은 상기 복잡한 텍스트의 제1 프로세싱 유형을 디스에이블하도록 동작 가능하며 상기 제2 제어 유형의 대응되는 값에 의해 표현되는 파라미터를 포함함 - 에 응답하여,
    상기 복잡한 텍스트의 제1 프로세싱 유형이 디스에이블인지를 판정하고;
    상기 복잡한 텍스트의 제1 프로세싱 유형이 디스에이블인 경우, 상기 복잡한 텍스트 스트링에 상기 복잡한 텍스트의 제1 프로세싱 유형을 적용하는 단계를 무효화하도록 동작 가능한 회로를 더 포함하는 데이터 프로세싱 시스템.
  39. 제33항에 있어서,
    상기 제1 제어 유형은 다른 텍스트 위치를 판정하기 위한, 상기 제1 제어 유형의 대응되는 값에 의해 표현되는, 제2 파라미터를 포함하고,
    상기 데이터 프로세싱 시스템은,
    상기 복잡한 텍스트의 제1 프로세싱 유형이 인에이블인 경우, 상기 다른 텍스트 위치를 사용해 텍스트 위치를 설정하도록 동작 가능한 회로를 포함하는 데이터 프로세싱 시스템.
KR1020067017535A 2004-03-11 2005-03-10 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법 KR100859766B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/798,045 2004-03-11
US10/798,045 US20050200913A1 (en) 2004-03-11 2004-03-11 Systems and methods for identifying complex text in a presentation data stream

Publications (2)

Publication Number Publication Date
KR20060127165A KR20060127165A (ko) 2006-12-11
KR100859766B1 true KR100859766B1 (ko) 2008-09-24

Family

ID=34920194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067017535A KR100859766B1 (ko) 2004-03-11 2005-03-10 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법

Country Status (10)

Country Link
US (1) US20050200913A1 (ko)
EP (1) EP1730653B1 (ko)
JP (1) JP2007527810A (ko)
KR (1) KR100859766B1 (ko)
CN (1) CN1918565B (ko)
AT (1) ATE410739T1 (ko)
CA (1) CA2559198C (ko)
DE (1) DE602005010221D1 (ko)
TW (1) TWI366768B (ko)
WO (1) WO2005088470A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026518A1 (en) * 2004-07-30 2006-02-02 Samsung Electronics Co., Ltd. Apparatus and method for processing text data according to script attribute
US9122655B2 (en) * 2004-11-15 2015-09-01 International Business Machines Corporation Pre-translation testing of bi-directional language display
JP2007240848A (ja) * 2006-03-08 2007-09-20 Seiko Epson Corp 表示プログラム、データ構造及び表示装置
US20070211062A1 (en) * 2006-03-13 2007-09-13 International Business Machines Corporation Methods and systems for rendering complex text using glyph identifiers in a presentation data stream
US8077974B2 (en) 2006-07-28 2011-12-13 Hewlett-Packard Development Company, L.P. Compact stylus-based input technique for indic scripts
US7786994B2 (en) * 2006-10-26 2010-08-31 Microsoft Corporation Determination of unicode points from glyph elements
US9258455B2 (en) * 2008-05-08 2016-02-09 Ricoh Company, Ltd. Mechanism for K-only object rendering in a high-speed color controller
CN102023965B (zh) * 2009-09-17 2013-12-18 康佳集团股份有限公司 一种适用于显示设备的双向文本布局的方法和系统
US8271873B2 (en) * 2009-10-30 2012-09-18 International Business Machines Corporation Automatically detecting layout of bidirectional (BIDI) text
CA2815527A1 (en) * 2010-11-02 2012-05-10 Google Inc. Bidirectional text checker
JP6340994B2 (ja) 2014-08-22 2018-06-13 スター精密株式会社 プリンタ、印刷システムおよび印刷制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418718A (en) 1993-06-07 1995-05-23 International Business Machines Corporation Method for providing linguistic functions of English text in a mixed document of single-byte characters and double-byte characters
US20020143825A1 (en) * 2001-03-27 2002-10-03 Microsoft Corporation Ensuring proper rendering order of bidirectionally rendered text
US6583789B1 (en) 1998-12-03 2003-06-24 International Business Machines Corporation Method and system for processing glyph-based quality variability requests

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1619427A (en) * 1924-10-07 1927-03-01 Jr Thomas F Mccaffery Drawing instrument
US4404753A (en) * 1981-12-15 1983-09-20 Henri Klok Carpenter's saw guide and square
US4461092A (en) * 1982-04-26 1984-07-24 Paraflux Limited Set square
US4773163A (en) * 1985-10-04 1988-09-27 Wolford Jr Otis Marking guide for use with framing studs
US4742619A (en) * 1986-09-25 1988-05-10 Swanson Ronald C Marking tool with wear rims
US4926564A (en) * 1988-12-27 1990-05-22 Mayline Company, Inc. Triangular drafting instrument
US5170568A (en) * 1990-01-02 1992-12-15 Wright Robert A Roofing speed square and method of use
USRE38758E1 (en) * 1990-07-31 2005-07-19 Xerox Corporation Self-clocking glyph shape codes
US5566278A (en) * 1993-08-24 1996-10-15 Taligent, Inc. Object oriented printing system
US5456015A (en) * 1993-12-08 1995-10-10 Applied Concepts Engineering Construction framing square
USD369981S (en) * 1993-12-20 1996-05-21 Leichtung, Inc. Speed rip square
US5575074A (en) * 1995-02-28 1996-11-19 Cottongim; Craig Speed square
US5784071A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Context-based code convertor
US5727325A (en) * 1996-05-07 1998-03-17 Mussell; Barry D. Multipurpose square
US6230416B1 (en) * 1997-12-18 2001-05-15 Anthony J. Trigilio Laser square
US6377354B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation System and method for printing a document having merged text and graphics contained therein
US6490051B1 (en) * 1998-09-21 2002-12-03 Microsoft Corporation Printer driver and method for supporting worldwide single binary font format with built in support for double byte characters
USD422225S (en) * 1998-12-16 2000-04-04 Digangi Joseph Rafter square with level
EP1037138A3 (en) * 1999-03-18 2001-09-26 Seiko Epson Corporation Printer, information processing apparatus, methods of controlling them, and storage medium carrying computer program
US6574001B2 (en) * 1999-05-04 2003-06-03 Hewlett-Packard Development Co., L.P. Managing font data in a print job
US6393710B1 (en) * 2000-06-14 2002-05-28 Michael R. Hastings Combination tape measure and straight edge apparatus
USD445700S1 (en) * 2000-09-29 2001-07-31 Gray Mapston Triangularly shaped squaring and marking tool
US6940617B2 (en) * 2001-02-09 2005-09-06 Matsushita Electric Industrial Co., Ltd. Printing control interface system and method with handwriting discrimination capability
US7086004B2 (en) * 2001-04-19 2006-08-01 International Business Machines Corporation Generalized mechanism for unicode metadata
US7319532B2 (en) * 2001-06-28 2008-01-15 Canon Kabushiki Kaisha Printing control apparatus and printing control method capable of accurately printing embedded font
US6622394B2 (en) * 2001-10-17 2003-09-23 Certainteed Corporation Boardwalk triangle-deck square
US7586628B2 (en) * 2003-06-20 2009-09-08 Infoprint Solutions Company, Llc Method and system for rendering Unicode complex text data in a printer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418718A (en) 1993-06-07 1995-05-23 International Business Machines Corporation Method for providing linguistic functions of English text in a mixed document of single-byte characters and double-byte characters
US6583789B1 (en) 1998-12-03 2003-06-24 International Business Machines Corporation Method and system for processing glyph-based quality variability requests
US20020143825A1 (en) * 2001-03-27 2002-10-03 Microsoft Corporation Ensuring proper rendering order of bidirectionally rendered text

Also Published As

Publication number Publication date
TW200604854A (en) 2006-02-01
ATE410739T1 (de) 2008-10-15
DE602005010221D1 (de) 2008-11-20
CA2559198C (en) 2010-09-14
CA2559198A1 (en) 2005-09-22
CN1918565A (zh) 2007-02-21
WO2005088470A2 (en) 2005-09-22
WO2005088470A8 (en) 2006-09-08
TWI366768B (en) 2012-06-21
JP2007527810A (ja) 2007-10-04
EP1730653B1 (en) 2008-10-08
WO2005088470A3 (en) 2005-12-08
EP1730653A2 (en) 2006-12-13
CN1918565B (zh) 2011-02-02
KR20060127165A (ko) 2006-12-11
US20050200913A1 (en) 2005-09-15

Similar Documents

Publication Publication Date Title
KR100859766B1 (ko) 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법
US6825941B1 (en) Modular and extensible printer device driver and text based method for characterizing printer devices for use therewith
US5526477A (en) System and method for generating glyphs of unknown characters
US6426751B1 (en) Font feature file processing
US8081346B1 (en) System to create image transparency in a file generated utilising a print stream
US5784071A (en) Context-based code convertor
US7403297B2 (en) Printing system that manages font resources using system independent resource references
US7408556B2 (en) System and method for using device dependent fonts in a graphical display interface
US20070115488A1 (en) Methods and systems for multiple encodings within a code page
US5416896A (en) Command definition dictionary handling and context declaration in a document publishing page description language (PDL)
JP2534324B2 (ja) 処理システム
US7586628B2 (en) Method and system for rendering Unicode complex text data in a printer
US5446837A (en) Method and system to process resources in a document processing language
US20060271850A1 (en) Method and apparatus for transforming a printer into an XML printer
US20050094172A1 (en) Linking font resources in a printing system
JP4451908B2 (ja) ユニコード・コンバータ
JPH076168A (ja) Dbcsコード・ページを使ってsbcsフォント及びdbcsフォントを与える構造化された文書を編集する方法
Rokicki DVIPS: A TEX Driver
Olsson et al. The Ultimate CSS Reference
Kew X ETEX live
Lehman The font installation guide
JP3083748B2 (ja) グリフ・イメージの検索方法と検索装置及びグリフ・イメージ管理システム
Cho et al. Typesetting CJK languages with Ω
Unicode Electronic Edition
Wilson et al. A Fast and Intuitive Online Help System

Legal Events

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

Payment date: 20120821

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130820

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160908

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170907

Year of fee payment: 10