KR20120001750A - 폰트 글리프들을 제공 - Google Patents

폰트 글리프들을 제공 Download PDF

Info

Publication number
KR20120001750A
KR20120001750A KR1020117023723A KR20117023723A KR20120001750A KR 20120001750 A KR20120001750 A KR 20120001750A KR 1020117023723 A KR1020117023723 A KR 1020117023723A KR 20117023723 A KR20117023723 A KR 20117023723A KR 20120001750 A KR20120001750 A KR 20120001750A
Authority
KR
South Korea
Prior art keywords
font
electronic document
glyphs
information
request
Prior art date
Application number
KR1020117023723A
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 KR20120001750A publication Critical patent/KR20120001750A/ko

Links

Images

Classifications

    • 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)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Character Discrimination (AREA)

Abstract

문서를 위한 폰트를 얻기 위한 컴퓨터 구현 방법은, 전자 문서의 콘텐츠들 내에서 특정된 폰트의 글리프 각각을 판단하는 단계를 포함하고, 상기 판단은 폰트에 포함된 복수 글리프의 서브셋을 식별하고, 상기 서브셋은 내부에 폰트가 저장되지 않은 제1 디바이스에서 판단된다. 본 방법은 제1 디바이스 상에서 상기 판단에 기초하여 제2 디바이스에 대한 요청을 생성하는 단계를 포함하고, 상기 요청은 제2 디바이스에 대한 서브셋을 식별한다. 본 방법은 제1 디바이스에서 상기 요청에 응답하여 제2 디바이스로부터 송신된 정보를 수신하고 상기 복수 글리프의 서브셋을 정의하는 단계를 포함하고, 상기 정보는 서브셋에 속하지 않은 복수 글리프의 나머지를 정의하지는 않는다. 본 발명은 수신된 정보를 사용하여 전자 문서의 프리젠테이션을 제1 디바이스 상에 생성하는 단계를 포함하고, 상기 프리젠테이션은 복수 글리프의 서브셋을 포함한다.

Description

폰트 글리프들을 제공{SERVING FONT GLYPHS}
본 출원은 발명의 명칭이 "폰트 글리프들을 제공"으로서, 2009년 3월 11일 출원된 미국 특허 출원 번호 12/401,217호에 대한 우선권을 주장하며, 이 미국 특허 출원의 모든 내용은 참조로서 본 명세서에 포함된다.
본 명세서는 정보 프로세싱에 관한 것이다.
다양한 종류의 콘텐츠들을 배포하기 위하여 컴퓨터 시스템들이 사용된다. 콘텐츠의 일 예는 광고하는 것이고, 광고물은 컴퓨터 스크린, 텔레비전 스크린 또는 옥외 광고판 등에 보여질 수 있다. 광고물과 같은 콘텐츠는 보통의 의도된 청중의 모든 구성원들에게 디스플레이하기 위해 제작될 수 있고, 또는 콘텐츠 프리젠테이션(presentation)은 예를 들어, 사용자별로(user-by-user basis) 결정될 수 있다.
콘텐츠에 포함되는 텍스트는 하나 이상의 폰트(font)를 사용하여 생성된다. 폰트는 완전한 활자체(complete typeface)를 형성하는 문자들을 포함할 수 있고, 흔한 예들로는 타임(Time), 커리어(Courier), 및 헬베티카(Helvetica)가 있다. 영어 이외의 다른 언어로 된 콘텐츠는 메시지를 랜더링하기 위하여 비-라틴 스크립트(no-Latin scripte)들을 사용할 수 있다. 폰트들은 종종 특정 전자 문서(예컨대, 광고물)에 함께 패키지된다. 파일에서 수집될 때, 일부 비-라틴 스트립트들이 저장 공간의 상당한 양(예를 들어, 20MB 정도)을 점유할 수 있다.
제1 관점에서, 문서를 위한 폰트를 얻기 위한 컴퓨터 구현 방법은 전자 문서의 콘텐츠들에서 특정된 폰트의 글리프 각각을 판단하는 단계를 포함하고, 상기 판단은 폰트에 포함된 복수 글리프의 서브셋을 식별하고, 상기 서브셋은 내부에 상기 폰트가 저장되지 않은 제1 디바이스에서 판단된다.
본 방법은 제1 디바이스 상에서 상기 판단에 기초하여 제2 디바이스에 대한 요청을 생성하는 단계를 포함하고, 상기 요청은 제2 디바이스에 대한 서브셋을 식별한다. 본 방법은 제1 디바이스에서 상기 요청에 응답하여 제2 디바이스로부터 송신된 정보를 수신하고 복수 글리프의 서브셋을 정의하는 단계를 포함하고, 상기 정보는 서브셋에 속하지 않은 복수 글리프의 나머지를 정의하지는 않는다. 본 발명은 수신된 정보를 사용하여 전자 문서의 프리젠테이션을 제1 디바이스 상에 생성하는 단계를 포함하고, 상기 프리젠테이션은 복수 글리프의 서브셋을 포함한다.
구현예들은 후술되어진 특징 중 어느 하나 또는 모두를 포함할 수 있다. 컴퓨터 구현 방법은 상기 프리젠테이션을 보여주는 동안 사용자로부터 전자 문서의 수정을 수신하는 단계; 상기 수정이 정보에 의해 특정되지 않은 폰트의 적어도 다른 하나의 글리프를 포함하는지를 판단하는 단계; 나머지 글리프에 관한 새로운 요청을 상기 제2 디바이스에 대하여 생성하는 단계; 나머지 글리프를 정의하는 추가 정보를 상기 제2 디바이스로부터 수신하는 단계; 및 상기 전자 문서에서 상기 나머지 글리프를 또한 디스플레이하기 위하여 상기 프리젠테이션을 업데이트하는 단계를 더 포함한다. 상기 수정이 상기 나머지 글리프를 포함하는지에 대한 상기 판단은, 상기 수정이 수신된 후에 미리 결정된 시간이 경과했음을 검출하는 것에 응답하여 수행된다. 상기 수정을 수신하기 전에 제3 디바이스로부터 상기 제1 디바이스 상에 상기 전자 문서를 수신하는 단계를 더 포함한다. 상기 수정은 제1 디바이스 상의 애플리케이션 프로그램의 한 인스턴스(instance)에서 수신되고, 상기 전자 문서는 상기 애플리케이션 프로그램의 다른 인스턴스를 사용하는 상기 제3 디바이스 상에서 작성된 것이다. 상기 애플리케이션 프로그램은 상기 정보를 요청하기 위하여 상기 제2 디바이스의 주소를 내부에 저장하고 있고, 상기 방법은 상기 요청을 생성하기 위하여 애플리케이션 프로그램 내의 상기 주소를 액세스하는 단계를 더 포함한다. 상기 전자 문서는 상기 정보를 요청하기 위하여 상기 제2 디바이스의 주소를 내부에 저장하고 있고, 상기 방법은 상기 요청을 생성하기 위하여 상기 전자 문서 내의 상기 주소에 액세스하는 단계를 더 포함한다. 상기 전자 문서는 상기 제1 디바이스를 조작하는 사용자에게 안내되는 광고를 포함하고, 상기 프리젠테이션은 상기 사용자에게 상기 광고를 디스플레이하는 것을 포함한다. 상기 폰트는 상기 전자 문서에 있는 폰트 식별자에 의해 식별되고, 상기 복수 글리프의 서브셋 각각은 상기 전자 문서에 있는 코드포인트(codepoint)를 사용하여 특정된다.
제2 양태에서, 문서를 위한 사용자정의 폰트(custom font)를 제공하기 위한 컴퓨터 구현 방법은 제1 디바이스에서 제1 입력을 수신하는 단계를 포함하며, 제1 입력은 전자 문서의 콘텐츠들을 형성하기 위한 사용자정의 폰트의 복수 글리프의 서브셋을 특정한다. 본 발명은 제1 디바이스에서 제2 입력을 수신하는 단계를 포함하며, 제2 입력은 사용자정의 폰트의 복수 글리프를 정의하는 정보를 포함한다. 본 발명은 상기 정보를 상기 전자 문서의 수신자로부터의 요청 즉시, 상기 정보를 제공하도록 구성된 제2 디바이스에 전달하는 단계를 포함한다. 본 발명은 내부에 상기 사용자정의 폰트가 저장되지 않은 제3 디바이스에 상기 전자 문서를 전달하는 단계를 포함하며, 상기 제3 디바이스는 제2 디바이스에게 상기 정보를 요청한다.
구현예들은 후술되는 특징들은 어느 하나 또는 모두 포함할 수 있다. 상기 전자 문서는 제3 디바이스를 조작하는 사용자에게 안내되는 광고를 포함하고, 상기 제3 디바이스는 상기 복수 글리프의 상기 서브셋을 포함하는 상기 광고를 상기 사용자에게 디스플레이한다. 상기 폰트는 상기 전자 문서에 있는 폰트 식별자에 의해 식별되고, 상기 복수 글리프의 서브셋 각각은 상기 전자 문서에 있는 코드포인트를 사용하여 특정된다. 폰트는 비-라틴 스크립트를 포함하고, 복수 글리프 각각은 비-라틴 글리프가다.
제3 양태에서, 시스템은 복수 글리프를 포함하는 적어도 하나의 폰트를 정의하는 정보를 포함하는 폰트 데이터베이스를 포함한다. 시스템은 디바이스로부터 요청을 수신하고, 상기 폰트 데이터베이스로부터 얻어진 정보를 상기 요청에 응답하여 전달하도록 구성된 폰트 패키징 요소(font packaging component)를 포함하며, 상기 정보는 상기 요청에서 정의된 복수 글리프의 서브셋을 정의하고, 서브셋에 속하지 않는 복수 글리프의 나머지를 정의하지 않는다.
구현예들은 후술되는 특징들 중 어느 하나 또는 모두를 포함할 수 있다. 시스템은 본 시스템 내에서 실행되고, 상기 전자 문서를 작성하기 위해 사용자에 의해 조작되는 애플리케이션 프로그램을 더 포함한다. 전자 문서는 그 내부에 정보를 요청하기 위한 폰트 데이터 베이스의 주소를 저장하고 있고, 상기 요청은 그 주소를 사용하여 생성된다. 상기 애플리케이션 프로그램은 상기 디바이스에서도 실행되고, 그 내부에 상기 정보를 요청하기 위한 상기 폰트 데이터베이스의 주소를 저장하고 있고, 상기 요청은 상기 주소를 사용하여 생성된다. 상기 애플리케이션 프로그램은 상기 디바이스의 사용자가 상기 전자 문서의 수정을 입력하도록 하고, 상기 디바이스는 상기 수정이 상기 정보에 의해 특정되지 않은 폰트의 적어도 다른 하나의 글리프를 포함하는 것을 판단하는 즉시, 폰트 서버에 대한 새로운 요청을 생성한다. 시스템은 상기 폰트 데이터베이스와 상기 폰트 패키징 요소를 포함하는 폰트 서버를 더 포함하고, 상기 애플리케이션 프로그램은 상기 전자 문서를 작성하는 과정에서 상기 폰트 서버와 상호 작용한다. 상기 폰트 서버는 폰트 이용가능성(font availability)을 상기 애플리케이션 프로그램에 전달한다.
구현예들은 후술하는 이점들 중 하나 또는 모두를 포함할 수 있다. 전자 문서의 프리젠테이션은 폰트를 동적으로 제공함으로써 향상될 수 있다. 전자 문서를 위해 필요한 폰트 글리프들의 서브셋이 패키지되고, 그 문서를 디스플레이할 디바이스에 제공될 수 있다. 문서 작성자는 문서를 위한 사용자정의 폰트를 정의할 수 있고, 그 사용자정의 폰트를 서버에 업로드할 수 있고, 그 문서를 수신하는 시스템은 프리젠테이션을 위하여 그 폰트를 서버에 요구할 것이다.
하나 이상의 실시예에 대한 세부 내용들이 첨부 도면들과 후술하는 상세한 설명에서 개시된다. 다른 특징들과 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백해질 것이다.
도 1은 전자 문서를 작성하기 위해 사용될 수 있는 예시적 그래픽 사용자 인터페이스를 나타낸다.
도 2는 폰트의 일부 또는 모두를 제공할 수 있는 예시적 시스템을 나타낸다.
도 3은 폰트 서버를 포함하는 예시적 시스템을 나타낸다.
도 4는 예시적 컴파일 시간들과 파일 크기들을 갖는 테이블을 나타낸다.
도 5는 문서를 위한 폰트를 얻기 위한 예시적 방법의 순서도를 나타낸다.
도 6은 문서를 위한 사용자정의 폰트를 제공하기 위한 예시적 방법의 순서도를 나타낸다.
도 7은 본 명세서에 설명된 컴퓨터 구현 방법들과 관련되어 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
여러 도면에서 유사한 참조 번호와 명칭들은 유사한 구성요소들을 가리킨다.
도 1은 전자 문서를 작성하기 위해 사용될 수 있는 예시적 그래픽 사용자 인터페이스(100)를 나타낸다. 일부 구현예들에서, 광고 디자이너와 같은 문서 작성자는 한 명 이상의 사람(예를 들어, 광고 편집자 또는 광고 수신인)들에 의한 검토 및/또는 그 사람들에게 디스플레이를 위해 문서(예컨대, 광고물)를 작성하기 위해 인터페이스(100)를 사용한다. 예를 들어, 인터페이스(100)는 그 작성자가 문서에 있는 하나 이상의 폰트(예컨대, 존재하는 폰트 또는 작성자에 의해 정의된 사용자정의 폰트)를 사용할 수 있게 하고; 작성된 문서를 수신하는 시스템 또는 애플리케이션은 지정된 폰트 서버로부터 문서를 디스플레이하기 위해 필요한 만큼의 폰트들을 검색할 수 있다.
인터페이스(100)는 미리보기 영역(102)을 포함할 수 있다. 미리보기 영역(102)은 아직지들, 그래픽들, 텍스트, 링크들, 또는 문서 내에 포함하기 위해 작성자가 선택하는 임의의 다른 콘텐츠를 포함할 수 있다. 여기서, 미리보기 영역(102)은 텍스트 부분(104A-C) 등을 일반적으로 포함한다. 인터페이스(100)는 문서를 위한 콘텐츠를 포맷하기 위해 전용되는 하나 이상의 영역(106)을 포함할 수 있다. 일부 구현예들에서, 포맷하는 것은 포함된 콘텐츠에 대하여 부분별로(portion-to-portion basis) 적용될 수 있다. 예를 들어, 영역(106A)은 부분(104A)을 위한 하나 이상의 포맷팅 모양(formatting aspect)을 선택하기 위하여 사용될 수 있고, 영역(106B) 등은 부분(104B) 등을 위하여 유사하게 사용될 수 있다. 일부 구현예들에서, 작성자는 영역(106)을 사용하여 상기 부분의 텍스트 콘텐츠를 입력하고, 그 부분을 위한 폰트를 선택하고, 및/또는 그 부분의 색상을 선택할 수 있다. 예를 들어, 텍스트 부분(104A)은 "#000000"로서 식별되는 색상으로 된 펠트 팁 로만 볼드(Felt Tip Roman Bold) 폰트를 사용하여 쓰여진 콘텐츠 "Headline"을 포함한다.
이와 같이, 작성된 문서(예를 들면, 광고물)는 디스플레이를 위해 하나 이상의 폰트의 사용을 요구할 수 있는 콘텐츠 부분들을 포함할 수 있다. 즉, 문서가 다른 사용자(예컨대, 편집자 또는 최종 수신자)에게 전달되었을 때, 수신하는 시스템은 폰트들 중 일부 또는 전부를 사용할 것이다. 요구되는 폰트는 전자 문서에 내포되고, 그렇지 않으면 수신하는 시스템에 저장될 수 있다. 만약 전자 문서에 요구되는 폰트가 내포되어 있다면, 그 수신하는 시스템은 그 위치로부터 폰트를 탐색하여 그 문서를 디스플레이할 수 있다. 다른 예시로서, 폰트는 동적 폰트 서버로부터 이용할 수 있고, 수신하는 시스템은 그 폰트를 특정 문서와 함께 사용하기 위하여 폰트 서버에 요청할 수 있다. 일부 구현예들에서, 디스플레이를 위해 필요한 만큼의 폰트만이 요청되거나 및/또는 전송될 수 있다. 예를 들어, 수신하는 시스템이 폰트 글리프의 약 10%만을 필요로 한다면, 그 시스템은 요청 내에 폰트 글리프의 약 10%만을 필요로 한다는 것을 나타낼 수 있고, 폰트 서버는 그 요청에 응답하여 그 서브셋을 패키지하여 반환할 수 있다.
도 2는 폰트의 일부 또는 전부를 제공할 수 있는 예시적 시스템(200)을 나타낸다. 시스템(200)은 미리 정의된 및/또는 사용자정의된 폰트들을 데이터베이스(204)에 포함할 수 있는 컴퓨터 시스템(202)을 포함할 수 있다. 컴퓨터 시스템(202)은 서버 디바이스를 포함하지만 이에 한정되지 않는, 임의 종류의 컴퓨터 디바이스를 포함할 수 있다. 폰트 데이터베이스(204)는 복수 글리프(예를 들어, 상술한 예시에서 언급된 펠트 팁 로만 볼릭 폰트의 글리프 중 임의 또는 모두)를 포함하는 적어도 한 폰트를 정의하는 정보를 포함한다. 컴퓨터 시스템(202)은 예컨대, 로컬 네트워크 및/또는 인터넷과 같은 임의 종류의 네트워크(206)에 접속될 수 있다. 네트워크(206)를 통해, 컴퓨터 시스템(202)은 하나 이상의 다른 시스템(예컨대, 편집 시스템(208) 및/또는 최종 사용자 시스템(210))과 통신할 수 있다. 예를 들어, 컴퓨터 시스템(202)은 시스템(208) 및/또는 시스템(210)이 전자 문서(예컨대, 광고물)를 보여주는데 사용하도록 하나 이상의 글리프를 제공할 수 있다.
일부 구현예들에서, 폰트 데이터베이스(204)는 후술하는 폰트 정보 아이템들 중 임의 또는 모두를 포함할 수 있고, 폰트 정보 아이템에는 폰트 식별자, 폰트명, 폰트 언어, 폰트 스크립트, 폰트 이용가능 유니코드 문자, 폰트의 아직지 미리 보기, 사용자 식별자(예컨대, 사용자정의 폰트용), 기본 폰트 파일 바이트, 및/또는 기본 폰트 파일 해시(hash)가 있다. 일부 구현예들에서는, 폰트명이 예컨대, 영어용 폰트명, 중국어용 폰트명 등으로 지역화될 수 있다. 지역 폰트명은 다른 지역에 있는 사용자들에게 이용가능한 폰트들을 보여주는데 사용될 수 있다. 폰트(예를 들어, 사용자정의 폰트)가 폰트 데이터베이스(204)에 업로드되는 즉시, 폰트를 위한 기본 등록이 수행될 수 있다(일부 구현예들에서는 언어들 및/또는 스크립트 결정을 포함하여 수행됨). 폰트 데이터베이스(204)는 예를 들어 후술하는 사용 경우들(use cases)을 위한 기능을 제공하기 위하여 하나 이상의 요소와 인터페이스할 수 있다. 문서 작성자는 편집하는 동안 관련 폰트들의 리스트를 볼 수 있다. 예를 들어, 각 폰트를 위한 언어 정보가 예를 들어 사용자 선택을 허용하기 위하여 이용될 수 있다. 예를 들어, 각 폰트를 위한 이용가능한 글리프들에 대한 정보는 예컨대, 특정 문자가 랜더링될 수 없을 때 사용자 피드백을 위하여 이용될 수 있다. 예를 들어, 폰트 소유권에 대한 정보가 예를 들어 특정 계정의 사용자정의 폰트들을 보여주기 위하여 유지관리될 수 있다. 사용자정의 폰트가 업로드될 수 있다. 예를 들어, 사용자정의 폰트들의 소유자가 등록될 수 있다. 예를 들어, 폰트에 대한 정보(예컨대, 이용가능한 문자들)가 등록될 수 있다. 예를 들어, 고유한 폰트 식별자가 생성될 수 있다. 예를 들어 계정당 할당량(quota per account)이 확립되고 추적될 수 있다. 원래의 폰트 파일 바이트들에 액세스하는 것이 예를 들어 지역 파일 캐쉬들에 복사를 위해 인정될 수 있다.
컴퓨터 시스템(202)은 폰트 패키져(font packager; 212)를 포함할 수 있다. 폰트 패키져(212)는 임의의 폰트를 특정 문서에 필요한 글리프(들)를 담고있는 서브셋으로 분리하고, 그 글리프들을 파일(예컨대, .swf 파일)에 컴파일링하는 필수 기반구조(infrastructure)를 포함할 수 있다. 일부 구현예들에서, 폰트 패키져(212)는 디바이스(예컨데, 시스템(208) 및/또는 시스템(210))로부터 요청을 수신할 수 있다. 요청은 시스템이 전자 문서를 디스플레이하거나 그렇지 않으면 보여주기 위해 특정 폰트를 필요로 하기 때문에 생성될 수 있다. 예를 들어, 요청은 시스템(208) 및/또는 시스템(210)이 필요한 특정 폰트의 글리프(들)를 식별할 수 있다. 이 요청에 응답하여, 시스템(202)은 폰트 데이터베이스(204)로부터 얻은 정보를 전달할 수 있다. 일부 구현예들에서, 이러한 정보는 그 요청에서 식별된 복수 글리프의 서브셋을 정의하고, 그 서브셋에 속하지 않는 복수 글리프의 나머지 것들을 정의하지 않는다. 예를 들어, 응답에 있는 정보는 특정 폰트의 지정된 글리프만을 포함할 수 있다. 폰트들 및/또는 글리프들은 임의의 적합한 정보 구조를 사용하여 정의될 수 있다. 예를 들어, 폰트는 전자 문서에 있는 폰트 식별자에 의해 식별될 수 있고, 하나 이상의 글리프는 전자 문서에 있는 코드포인트(codepoint)를 사용하여 특정될 수 있다.
일부 구현예들에서, 폰트 패키져(212)는 요청된 패키지를 라벨링된 폰트 서브셋을 이용하여 생성할 수 있고, 라벨링된 폰트 서브셋은 폰트 데이터베이스(204)와 첨부 기본 파일에 있는 폰트들을 위한 폰트 식별자, 그 서브셋을 지칭할 수 있는 폰트명을 포함하는 라벨, 및 패키지될 코드포인트의 셋(예컨대, 유니코드 셋)을 포함한다.
문서 작성자는 전자 문서를 관리하는 하나 이상의 양태에서 프론트엔드(frontend) 애플리케이션(214)을 사용할 수 있다. 일부 구현예들에서, 프론트엔드 애플리케이션(214)은 인터페이스(100: 도 1 참조)를 생성할 수 있고, 및/또는 문서(예컨대, 광고물)을 작성하기 위해 이용될 수 있다. 폰트 데이터베이스(204)는 폰트 이용가능 정보(216)를 프론트엔드 애플리케이션(216)에 제공하여, 예를 들어 하나 이상의 이용가능한 폰트가 영역(106: 도 1 참조)에서 식별될 수 있게 한다. 프론트엔드 애플리케이션(214)은 하나 이상의 업로드된 폰트들(218: 예컨대 문서 작성자가 데이터 베이스에 제공하는 사용자정의 폰트)을 폰트 데이터베이스(204)에 제공할 수 있다. 사용자정의 폰트는 폰트 글리프들이 둘 이상의 폰트 사이즈 및/또는 스타일(예컨대, 볼드체)로 생성될 수 있도록 하기 위해, 임의의 적합한 방식(예컨대, 벡터 그래픽들을 위한 정의들을 생성함)으로 정의될 수 있다. 예를 들어, 폰트는 임의의 적합한 폰트 포맷(몇 가지 예를 나열하자면, 예컨대, 트루타입(TrueTpye) 폰트, 오픈타입(OpenType) 폰트, 또는 타입1 폰트의 형태로 된 포맷)을 사용하여 정의될 수 있다.
폰트 데이터베이스(204)는 하나 이상의 기본 폰트 파일들(220)을 폰트 패키져(212)에 제공할 수 있다. 예를 들어, 폰트 데이터베이스(204)는 예컨대 시스템(208) 및/또는 시스템(210)과 같은 다른 시스템이 찾고 있는 글리프들을 제공할 수 있다. 폰트 패키져(212)는 예를 들어, .swf 파일 또는 임의의 다른 적합한 포맷의 형태로 된 얻어진 폰트들을 사용하여 패키지된 폰트(222)를 생성할 수 있다. 일부 구현예들에서, 전체 폰트는 폰트 데이터베이스에서 폰트 패키져까지 이용가능하고, 폰트 패키져는 필요한 글리프들을 선택하고, 선택된 글리프들을 패키지한다. 일부 구현예들에서, 폰트 패키져는 폰트 데이터베이스로부터 필요한 글리프들만을 요구하고, 수신한 후 그 글리프들을 패키지한다.
프론트엔드 애플리케이션(214)은 패키지된 폰트(222)에 관해 하나 이상의 동작을 취할 수 있다. 예를 들어, 프론트엔드 애플리케이션은 전자 문서를 디스플레이하거나 보여주는데 사용하기 위하여, 패키지된 폰트(222)를 시스템(208) 및/또는 시스템(210)에 전달할 수 있다. 다른 예시로서, 전자 문서의 버전을 생성(예를 들어, 문서에 있는 코드포인트들 및/또는 다른 글리프 플레이스홀더(glyph placeholder)들을 작성자에 의해 선택된 실제 글리프로 대체함으로써)하는데 패키지된 폰트(222)를 사용할 수 있다. 이와 같은 전자 문서의 제작된 버전은 고정 콘텐츠 서버(224)에 저장될 수 있다. 일부 구현예들에서, 제작된 문서의 아직지(들)는 서버(224)에 저장된 후에, 하나 이상의 뷰어들에게 제공될 수 있다. 예를 들어, 특정 폰트를 사용하여 제작된 광고물이 서버(224)에 저장될 수 있고, 미리 정해진 이벤트(예컨대 사용자가 특정 탐색 쿼리를 입력하거나 특정 페이지 또는 사이트를 방문함)가 발생하는 즉시, 그 제작된 광고물이 임의의 최종 사용자 시스템(210) 또는 모든 최종 사용자 시스템(210)에 제공될 수 있다.
전자 문서가 예컨대 서버(224)에 저장될 수 있다는 것은 상기에서 언급되었다. 다른 예시에서, 패키지된 폰트가 저장될 수 있다. 일부 구현예들에서는, 패키지된 폰트를 저장하는 것은, 여러 문서가 패키지된 폰트를 참조하고 이용할 수 있게 한다. 예를 들어, 광고 문서는 모두 동일한 텍스트를 포함하는 다른 크기의 변형물들로 존재할 수 있고, 또는 일부 변형물들은 다른 변형물의 지원된 텍스트(supported text) 중 일부만을 사용할 수 있다. 저장된 폰트 패키지(예컨대, 폰트 .swf 파일)는 많은 변형물들이 공통 파일(common file)을 이용할 수 있게 한다.
편집 시스템(208)은 전자 문서(226)를 편집하기 위해서 사용될 수 있다. 예를 들어, 전자 문서(226)는 프론트엔드 애플리케이션(214)을 이용하는 광고 작성자에 의해 시스템(202) 상에서 작성될 수 있다. 이어, 광고 편집자는 동일한 애플리케이션(214) 또는 다른 애플리케이션을 사용하여 전자 문서(226)에서 선택된 것들을 변경시킬 수 있다. 따라서 한 사용자가 하나의 디바이스에서 전자 문서(226)를 제작할 수 있고, 다른 사용자가 다른 디바이스에서 그 전자 문서(226)를 수정할 수 있다. 다른 디바이스(예컨대, 시스템(208) 및/또는 시스템(210))는 어떤 글리프(들)를 전자 문서(226)가 요구하는 지를, 예를 들어 문서 내에 정의된 각 코드포인트를 읽음으로써 판단할 수 있다. 다른 디바이스는 이 판단에 기초하여 시스템(202)에 대한 요청을 생성할 수 있다. 예를 들어, 요청은 필요한 글리프들의 서브셋을 식별할 수 있다. 일부 구현예들에서, 폰트는 비-라틴 스크립트(예컨대, 중국어, 일본어, 및 한국어에 사용되는 스트립트이지만 이에 한정되지 않음)를 포함한다. 예를 들어, 전자 문서(226)를 위해 요청된 복수 글리프 각각은 비-라틴 글리프일 수 있다. 따라서 요청되어 폰트 데이터베이스(204)로부터 수신된 글리프(들)를 전자 문서가 포함하여, 전자 문서(226)는 시스템(208) 및/또는 시스템(210)을 사용하여 보여질 수 있다.
전자 문서(226)에 대한 추가 편집이 수행될 수 있다. 일부 구현예들에서, 시스템(208) 및/또는 시스템(210)은 편집자가 문서에서 아직 사용되지 않은 하나 이상의 글리프를 입력했는지를 검출할 수 있고, 편집자가 그러한 글리프를 입력하였다면 폰트 데이터베이스(204)에 임의의 그러한 글리프(들)를 요청하여 수신한다. 전자 문서(226)는 요청된 글리프가 수신되었을 때 업데이트될 수 있다. 일부 구현예들에서, 수정된 문서가 로컬 디바이스 상에 아직 저장되지 않은 적어도 다른 하나의 글리프들을 포함하는지에 대한 판단들은, 미리 결정된 이벤트(예컨대, 사용자로부터의 명백한 리프레쉬 명령 또는 사용자 휴지 구간(period of user inactivity))가 발생하는 즉시, 수행될 수 있다. 예를 들어, 편집자는 전자 문서(226)의 수정을 작업하고 있다고 가정한다. 사용자가 문서를 변경하고, 사용자로부터 추가 입력이 없는 상태로 특정 시간이 경과한 후에, 시스템은 수정된 문서가 아직 존재하지 않은 임의의 추가 글리프(들)를 요구하는지 여부를 자동적으로 판단한다. 만약 시스템이 임의의 추가 글리프(들)를 요구한다면, 요구된 글리프(들)이 요청될 수 있다. 요청하는 디바이스에 이 기능 및/또는 다른 기능이 예를 들어 자바스크립트 코드와 같은 임의 형태의 스크립트로 된 명령어들의 실행에 의해 제공될 수 있다.
현재 요구되는 것보다 많은 글리프들이 요청될 수 있다. 예를 들어, 폰트 패키져(212)에 요청하고 그 요청에 응답하여 수신한 글리프들은 문서에 그 지점까지 입력된 글리프들만을 포함할 필요는 없다. 일부 구현예들에서, 애플리케이션(214) 및/또는 애플리케이션이 구현되는 시스템은 사용 가능성에 기초하여 하나 이상의 가정(assumption) 및/또는 추정(extrapolation)을 하도록 구성될 수 있고, 그것에 기초하여 상응하는 글리프(들)를 요청할 수 있다. 예를 들어, 사용자가 라틴 알파벳으로 된 문자 "abc"를 입력하면, 문자 a-z의 전체 범위가 라틴 텍스트로 된 추가 사용자 입력을 예상하여 요청될 수 있다.
일부 구현예들에서, 예컨대, 요청된 폰트가 폰트 데이터베이스(204)에 존재하지 않는 것과 같은 소정 조건이 충족되면 예외가 발생될 수 있다. 대조적으로, 하나 이상의 이슈가 명백하게 무시될 수 있다. 일부 구현예들에서, 무효한 폰트 범위에 대한 예외가 발생하지 않을 수도 있다. 예를 들어, 기본 폰트에 존재하지 않는 하나 이상의 문자를 포함하는 폰트 서브셋에 대한 요청이 이루어지면, 문자(들)는 그 요청에 응답하여 생략/무시될 것이다.
글리프(들)은 폰트 데이터베이스(204)의 주소를 사용하여 요청될 수 있다. 예를 들어, 폰트 이용가능 정보가 커버하는 각 폰트는 폰트 식별자에 의해 식별될 수 있다. 찾는 글리프(들)은, 그 폰트 및 특정 글리프(들)의 신원들(identities)로 폰트 패키져(212)에 접촉함으로써 요청될 수 있다. 일부 구현예들에서, 전자 문서에 내포되지 않거나 수신하는 시스템이 이용할 수 없는 폰트들을 얻을 수 있는 장소에 관한 필요한 정보가 문서(226)에 포함될 수 있다. 예를 들어, 문서(226)는 문서를 위한 폰트를 요청하기 위한 리소스로서, 컴퓨터 시스템(202) 및/또는 폰트 패키져(212)를 식별하는 정보를 포함할 수 있다. 일부 구현예들에서, 폰트들을 얻기 위하여 필요한 정보는 예를 들어, 브라우저 및/또는 프론트엔드 애플리케이션(214)에서 문서를 핸들링하는 적용가능(applicable) 프로그램에 포함될 수 있다. 예를 들어, 프론트엔드 애플리케이션(214)은 문서가 작성되는 디바이스(예컨대, 시스템(202))와 그 문서를 편집할 디바이스(예컨대, 시스템(208)) 모두에 설치될 수 있다. 프로그램(214)은 필요한 폰트(들)을 찾아서 얻기 위해 컴퓨터 시스템(202) 및/또는 폰트 패키져(212)에 대한 자신의 내부 식별자를 사용할 수 있다.
최종 사용자 시스템(210)은 하나 이상의 전자 문서를 액세스하거나 편집하기 위해 사용될 수 있다. 일부 구현예들에서, 최종 사용자 시스템은 개인용 컴퓨터, 모바일 디바이스 또는 전화와 같은 임의 종류의 컴퓨터 디바이스를 포함할 수 있다. 예를 들면, 미리 정의된 폰트(예컨대, 사용자정의 폰트)를 사용하는 광고물이 소비자에 의해 조작되는 디바이스 상에서 디스플레이될 수 있다.
도 3은 폰트 서버(302)를 포함하는 예시적 시스템(300)을 나타낸다. 일부 구현예들에서 시스템(200: 도 2 참조)의 구성요소에 상응할 수 있는 구성요소들은 상응하는 참조번호를 사용하여 식별된다. 일부 구현예들에서, 서버(302)는 폰트 패키져(212)와 동일한 인터페이스를 구현하고, 서버로의 요청들을 차단하기 위하여 래퍼(wrapper)로서 동작한다. 예를 들어, 표준 클라이언트-서버 프레임워크를 사용하는 구현예는 프론트엔드 프로그램(214)에서 코드 의존성을 감소 또는 최소화시킬 수 있게 한다.
고정 폰트 데이터베이스(304)는 시스템(300)에 포함될 수 있다. 일부 구현예들에서, 데이터베이스(304)는 이용가능한 폰트들에 대한 쿼리만을 허용할 수 있다. 예를 들어, 데이터베이스(304)는 예컨대 폰트 데이터에 대한 직접적인 애플리케이션 의존성(예컨대, 프론트엔드 애플리케이션(214)에 의한)을 방지하기 위하여 서버(302)에서 보존될 수 있다.
예를 들어, 패키지된 폰트는 프론트엔드 애플리케이션(214)에 의한 수신을 위하여(예컨대, 최종 사용자 시스템 또는 편집자에 의한 직접 수신 또는 서버(224) 내에서의 배치를 위하여) 서버(302)에 의해 제공될 수 있다.
도 4는 예시적 컴파일 시간들과 파일 크기들을 갖는 테이블(400)을 나타낸다. 여기서, 폰트 컬럼(402)은 어떤 폰트가 특정 문자 또는 문자들에 의해 관련되는지를 나타낸다. 엘리어싱 제거 컬럼(404)은 컬럼(402)에 식별된 폰트를 위하여 개선된 엘리어싱 제거가 제공되고 있는지를 나타낸다. 문자 컬럼(406)은 각 예시에서 식별된 폰트들을 사용하여 어떤 문자들이 정의되는지를 나타낸다. 컴파일 시간 컬럼(408)은 밀리초 단위로 중간값 컴파일 시간(median compile time)을 나타낸다. 파일 사이즈 컬럼(410)은 컬럼(406)에서 식별된 문자들을 위하여 생성된 .swf 파일의 크기를 바이트 단위로 나타낸다.
도 5는 문서를 위한 폰트를 얻기 위한 예시적 방법(500)의 순서도를 나타낸다. 일부 구현예들에서, 방법(500)은 예를 들어 시스템(200) 및/또는 시스템(300)에서 컴퓨터-판독가능 매체에 있는 명령어들을 실행하는 프로세서에 의해 수행될 수 있다. 일부 구현예들에서는, 더 많거나 더 적은 단계들이 수행될 수 있고, 다른 예시로서, 하나 이상의 단계들이 다른 순서로 수행될 수 있다.
단계 510에서, 전자 문서의 콘텐츠에서 특정된 폰트의 글리프 각각이 판단된다. 이 판단은 폰트에 포함된 복수 글리프의 서브셋을 식별한다. 서브셋은 내부에 저장된 폰트가 없는 제1 디바이스 상에서 판단된다. 예를 들어, 시스템(208) 및/또는 시스템(210)은 자신이 상응하는 폰트를 가지고 있지 않은 전자 문서(226)의 글리프(들)를 판단할 수 있다.
단계 520에서, 이 판단에 기초하여 제2 디바이스에 대한 요청이 생성된다. 이 요청은 제2 디바이스에 대한 서브셋을 식별한다. 예를 들어, 시스템(208) 및/또는 시스템(210)은 시스템(202) 및/또는 폰트 패키져(212)에 대한 요청을 생성할 수 있다.
단계 530에서, 정보는 제1 디바이스에서 수신된다. 이 정보는 요청에 응답하여 제2 디바이스로부터 송신되고, 복수 글리프(들)의 서브셋을 정의한다. 정보는 서브셋에 속하지 않는 복수 글랩의 나머지를 정의하지 않는다. 예를 들면, 시스템(208) 및/또는 시스템(210)은 그 시스템(208) 및/또는 시스템(210)이 문서를 보이는데 필요한 폰트의 글리프들만을 갖는 .swf 파일을 폰트 패키져(212)로부터 수신할 수 있다. 문서가 추후에 수정된다면, 첫 번째 요청에 의해 커버되지 않는 임의의 추가 글리프(들)에 대한 다른 요청이 생성될 수 있다.
단계 540에서, 전자 문서의 프리젠테이션은 수신된 정보를 이용하여 생성된다. 이 프리젠테이션은 복수 글리프의 서브셋을 포함한다. 예를 들어, 시스템(208) 및/또는 시스템(210)은 예를 들어 사용자가 문서를 변경시킬 수 있는 편집 프로그램에 전자 문서(226)를 디스플레이하거나, 프린트하거나 또는 시각화할 수 있다.
도 6은 문서를 위한 사용자정의 폰트를 제공하기 위한 예시적 방법의 순서도를 나타낸다. 일부 구현예들에서, 방법(600)은 예를 들어, 시스템(200) 및/또는 시스템(300)에서 컴퓨터-판독가능 매체에 있는 명령어들을 실행하는 프로세서에 의해 수행될 수 있다. 일부 구현예들에서는, 더 많거나 적은 단계들이 수행될 수 있고, 다른 예시로서, 하나 이상의 단계들이 다른 순서로 수행될 수 있다.
단계 610에서, 제1 입력이 제1 디바이스에서 수신된다. 제1 입력은 전자 문서의 콘텐츠들을 형성하는 사용자정의 폰트의 복수 글리프들의 서브셋을 특정한다. 예를 들어, 문서 작성자는 펠트 팁 로만 볼드 폰트로 된 문자들을 포함하는, 예컨대 광고와 같은 전자 문서(226)를 정의하기 위하여 프론트엔드 애플리케이션(214)을 사용할 수 있다.
단계 620에서, 제2 입력이 제1 디바이스에서 수신된다. 제2 입력은 사용자정의 폰트의 복수 글리프를 정의하는 정보를 포함한다. 예를 들어, 작성자는 프론트엔드 애플리케이션(214)을 사용하여 펠트 팁 로만 볼드 폰트를 정의할 수 있다.
단계 630에서, 정보는 제2 디바이스에 전달되며, 제2 디바이스는 전자 문서의 수신자로부터 요청되는 즉시 그 정보를 제공하도록 구성된다. 예를 들어, 사용자정의 폰트는 폰트 데이터베이스(204) 및/또는 폰트 패키져(212)에 업로드될 수 있다.
단계 640에서, 전자 문서는 내부에 저장된 사용자정의 폰트를 가지고 있지 않은 제3 디바이스에 전달된다. 제3 디바이스는 제2 디바이스에게 정보를 요청할 수 있다. 예를 들어, 시스템(202)은 전자 문서(226)를 시스템(208) 및/또는 시스템(210)에 전달할 수 있고, 시스템(208) 및/또는 시스템(210)은 폰트 데이터베이스(204) 및/또는 폰트 패키져(212)에게 필요한 글리프(들)을 요청할 수 있다.
도 7은 일반적 컴퓨터 시스템(700)의 개략도이다. 시스템(700)은 일 실시예에 따라서, 상술된 컴퓨터 구현 방법 중 임의의 것에 연관되어 설명된 동작들을 위해 사용될 수 있다. 본 시스템(700)은 프로세서(710), 메모리(720), 저장 디바이스(730), 및 입/출력 디바이스(740)를 포함한다. 컴포넌트(710, 720, 730 및 740) 각각은 예컨대 시스템 버스(750)를 이용하여 상호 접속될 수 있다. 프로세서(710)는 시스템(700) 내에서의 실행을 위한 명령어들을 처리할 수 있다. 일 구현예에서, 프로세서(710)는 싱글 쓰레드(Single-threaded) 프로세서이다. 다른 구현예에서, 프로세서(710)는 멀티 쓰레드(Multi-threaded) 프로세서이다. 프로세서(710)는 입/출력 디바이스(740) 상의 사용자 인터페이스에 그래픽 정보를 디스플레이하기 위하여, 메모리(720) 혹은 저장 디바이스(730) 상에 저장된 명령어들을 처리할 수 있다.
메모리(720)는 본 시스템(700) 내에서 정보를 저장한다. 일 구현예에서, 메모리(720)는 컴퓨터로 판독 가능한 매체이다. 일 구현예에서, 메모리(720)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(720)는 비휘발성 메모리 유닛이다.
저장 디바이스(730)는 본 시스템(700)에 대한 대용량 저장부를 제공할 수 있다. 일 구현예에서, 저장 디바이스(730)는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현예에서, 저장 디바이스(730)는 예컨대 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 혹은 테입 디바이스를 포함할 수도 있다.
입/출력 디바이스(740)는 시스템(700)에 대한 입/출력 동작을 제공한다. 일 구현예에서, 입/출력 디바이스(740)는 키보드 및/또는 포인팅 디바이스를 포함한다. 다른 구현예에서, 입/출력 디바이스(740)는 그래픽 사용자 인터페이스를 디스플레이하는 디스플레이 유닛을 포함한다.
설명된 특징들은 디지털 전자 회로로 구현되거나, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 장치들은 프로그래머블 프로세서에 의한 실행을 위하여 정보 운반체(information carrier),예컨대, 기계 판독가능 저장 디바이스에 유형적으로 구현된 컴퓨터 프로그램 제품으로 구현될 수 있고, 방법 단계들은 입력 데이터에 의해 동작하여 출력을 생성함으로써 설명된 구현예들의 기능들을 수행하는 명령어들의 프로그램을 실행하는 프로그래머블 프로세서에 의해 수행될 수 있다. 설명된 특징들은 하나 이상의 컴퓨터 프로그램으로 구현되는 것이 바람직하고, 컴퓨터 프로그램은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 적어도 하나의 출력 디바이스와 데이터와 명령어들을 송수신하도록 결합된 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행된다. 컴퓨터 프로그램은 명령어들의 셋(set of instruction)이고, 그 명령어들의 셋은 특정 활동을 수행하거나 특정 결과를 가져오기 위하여 컴퓨터에서 직접 또는 간접적으로 이용될 수 있다. 컴퓨터 프로그램은 컴파일 또는 인터프리터 언어들을 포함하는 임의 형태의 프로그래밍 언어로 작성될 수 있으며, 컴퓨터 프로그램은 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로 배치될 수 있다.
명령어의 프로그램을 실행에 적합한 프로세서들에는, 예를 들어, 범용 및 전용 마이크로 프로세서, 및 단독 프로세서 또는 임의 종류의 컴퓨터 내 다중 프로세서 중 하나가 있다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령어들을 실행하는 프로세서와, 명령어들과 데이터를 저장하는 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 디바이스(예를 들어, 자기 디스크, 내부 하드디스크, 착탈식 디스크, 광자기 디스크, 또는 광디스크)를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 컴퓨터 프로그램 명령어들과 데이터를 유형적으로 구현하기에 적합한 저장 디바이스에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크); 광자기 디스크; 및 CD-ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리가 있다. 프로세서와 메모리는 응용 주문형 집적 회로(Application-Specific Integrated circuit)에 의해 보완되거나 또는 응용 주문형 집적 회로에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 특징들은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(Cathode Ray Tube) 또는 LCD(Liquid Crystal Display) 모니터), 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 구비한 컴퓨터에 구현될 수 있다. 사용자는 키보드와 포인팅 디바이스를 이용하여 컴퓨터에 입력을 제공할 수 있다.
특징들은 예를 들어, 데이터 서버와 같은 백엔드(back-end) 구성요소를 구비하는 컴퓨팅 시스템, 또는 예를 들어, 애플리케이션 서버와 같은 미들웨어(middleware) 구성요소를 구비하는 컴퓨팅 시스템, 또는 예를 들어, 사용자가 본 명세서에 기술된 요지의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 인터넷 브라우저를 구비한 클라이언트 컴퓨터와 같은 프론트엔드(front-end) 구성요소를 구비하는 컴퓨터 시스템, 또는 이러한 백엔드, 미들웨어 또는 프론트엔드 구성요소들의 임의 조합을 구비하는 컴퓨팅 시스템에 구현될 수 있다. 시스템의 구성요소는 디지털 데이터 통신의 임의 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호접속될 수 있다. 통신 네트워크의 예에는 근거리 네트워크(LAN)와, 인터넷을 형성하는 컴퓨터와 네트워크가 포함된다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 상술된 하나의 통신 네트워크를 통하여 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
많은 구현예들이 설명되었다. 그러나 본 명세서의 요지와 범위를 벗어나지 않는 많은 변형예들이 만들어질 수 있다는 것으로 이해되어야 한다. 따라서 다른 구현예들은 후술하는 청구 범위에 속한다.
200: 시스템 202: 컴퓨터 시스템
204: 폰트 데이터베이스 208: 편집 시스템
210: 최종 사용자 시스템 212: 폰트 패키져
214: 프론트엔드 애플리케이션 226: 전자 문서
302: 플래쉬 지원 서버 304: 고정 폰트 데이터베이스

Claims (20)

  1. 문서를 위한 폰트를 얻기 위한 컴퓨터 구현 방법으로서,
    전자 문서의 콘텐츠들에서 특정된 폰트의 글리프(glyph) 각각을 판단하는 단계―상기 판단은 상기 폰트에 포함된 복수 글리프의 서브셋을 식별하고, 상기 서브셋은 내부에 상기 폰트가 저장되지 않은 제1 디바이스에서 판단됨―;
    상기 제1 디바이스 상에서 상기 판단에 기초하여 제2 디바이스에 대한 요청을 생성하는 단계―상기 요청은 상기 제2 디바이스에 대한 상기 서브셋을 식별함―;
    상기 제1 디바이스에서 상기 요청에 응답하여 상기 제2 디바이스로부터 송신된 정보를 수신하고 상기 복수 글리프의 서브셋을 정의하는 단계―상기 정보는 상기 서브셋에 속하지 않은 상기 복수 글리프의 나머지를 정의하지는 않음―;
    상기 수신된 정보를 사용하여 전자 문서의 프리젠테이션을 상기 제1 디바이스 상에 생성하는 단계―상기 프리젠테이션은 상기 복수 글리프의 상기 서브셋을 포함함―을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 청구항 1에 있어서, 상기 프리젠테이션을 보여주는 동안 사용자로부터 상기 전자 문서의 수정을 수신하는 단계;
    상기 수정이 상기 정보에 의해 특정되지 않은 상기 폰트의 적어도 다른 하나의 글리프를 포함하는지를 판단하는 단계;
    나머지 글리프에 관한 새로운 요청을 상기 제2 디바이스에 대하여 생성하는 단계;
    나머지 글리프를 정의하는 추가 정보를 상기 제2 디바이스로부터 수신하는 단계; 및
    상기 전자 문서에서 상기 나머지 글리프를 또한 디스플레이하기 위하여 상기 프리젠테이션을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법
  3. 청구항 2에 있어서, 상기 수정이 적어도 상기 나머지 글리프를 포함하는지에 대한 상기 판단은, 상기 수정이 수신된 후에 미리 결정된 시간이 경과했음을 검출하는 것에 의해 응답하여 수행되는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 청구항 1에 있어서, 상기 수정을 수신하기 전에 제3 디바이스로부터 상기 제1 디바이스 상에 상기 전자 문서를 수신하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 청구항 4에 있어서, 상기 수정은 제1 디바이스 상의 애플리케이션 프로그램의 한 인스턴스(instance)에서 수신되고, 상기 전자 문서는 상기 애플리케이션 프로그램의 다른 인스턴스를 사용하는 상기 제3 디바이스 상에서 작성된 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 청구항 5에 있어서, 상기 애플리케이션 프로그램은 상기 정보를 요청하기 위하여 상기 제2 디바이스의 주소를 내부에 저장하고 있고, 상기 방법은 상기 요청을 생성하기 위하여 애플리케이션 프로그램 내의 상기 주소를 액세스하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 청구항 5에 있어서, 상기 전자 문서는 상기 정보를 요청하기 위하여 상기 제2 디바이스의 주소를 내부에 저장하고 있고, 상기 방법은 상기 요청을 생성하기 위하여 상기 전자 문서 내의 상기 주소에 액세스하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 청구항 1에 있어서, 상기 전자 문서는 상기 제1 디바이스를 조작하는 사용자에게 안내되는 광고를 포함하고, 상기 프리젠테이션은 상기 사용자에게 상기 광고를 디스플레이하는 것을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 청구항 1에 있어서, 상기 폰트는 상기 전자 문서에 있는 폰트 식별자에 의해 식별되고, 상기 복수 글리프의 서브셋 각각은 상기 전자 문서에 있는 코드포인트(codepoint)를 사용하여 특정되는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 문서를 위한 사용자정의 폰트(custom font)를 제공하기 위한 컴퓨터 구현 방법으로서,
    제1 디바이스에서 제1 입력을 수신하는 단계―상기 제1 입력은 전자 문서의 콘텐츠들을 형성하기 위한 사용자정의 폰트의 복수 글리프의 서브셋을 특정함―;
    상기 제1 디바이스에서 제2 입력을 수신하는 단계―상기 제2 입력은 상기 사용자정의 폰트의 복수 글리프를 정의하는 정보를 포함함―;
    상기 정보를 상기 전자 문서의 수신자로부터의 요청 즉시, 상기 정보를 제공하도록 구성된 제2 디바이스에 전달하는 단계; 및
    내부에 상기 사용자정의 폰트가 저장되지 않은 제3 디바이스에 상기 전자 문서를 전달하는 단계―상기 제3 디바이스는 제2 디바이스에게 상기 정보를 요청함―를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 청구항 10에 있어서, 상기 전자 문서는 제3 디바이스를 조작하는 사용자에게 안내되는 광고를 포함하고, 상기 제3 디바이스는 상기 복수 글리프의 상기 서브셋을 포함하는 상기 광고를 상기 사용자에게 디스플레이하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 청구항 10에 있어서, 상기 폰트는 상기 전자 문서에 있는 폰트 식별자에 의해 식별되고, 상기 복수 글리프의 서브셋 각각은 상기 전자 문서에 있는 코드포인트를 사용하여 특정되는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 청구항 10에 있어서, 상기 폰트는 비-라틴 스크립트(non-Latin script)를 포함하고, 상기 복수 글리프 각각은 비-라틴 글리프(non-Latin glyph)인 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 시스템으로서,
    복수 글리프를 포함하는 적어도 하나의 폰트를 정의하는 정보를 포함하는 폰트 데이터베이스; 및
    디바이스로부터 요청을 수신하고, 상기 폰트 데이터베이스로부터 얻어진 정보를 상기 요청에 응답하여 전달하도록 구성된 폰트 패키징 요소(font packaging component)―상기 정보는 상기 요청에서 정의된 복수 글리프의 서브셋을 정의하고 서브셋에 속하지 않는 복수 글리프의 나머지를 정의하지 않음―를 포함하는 것을 특징으로 하는 시스템.
  15. 청구항 14에 있어서, 상기 시스템 내에서 실행되고, 상기 전자 문서를 작성하기 위해 사용자에 의해 조작되는 애플리케이션 프로그램을 더 포함하는 것을 특징으로 하는 시스템.
  16. 청구항 15에 있어서, 상기 전자 문서는 그 내부에 상기 정보를 요청하기 위한 폰트 데이터 베이스의 주소를 저장하고 있고, 상기 요청은 상기 주소를 사용하여 생성되는 것을 특징으로 하는 시스템.
  17. 청구항 15에 있어서, 상기 애플리케이션 프로그램은 상기 디바이스에서도 실행되고, 그 내부에 상기 정보를 요청하기 위한 상기 폰트 데이터베이스의 주소를 저장하고 있고, 상기 요청은 상기 주소를 사용하여 생성되는 것을 특징으로 하는 시스템.
  18. 청구항 17에 있어서, 상기 애플리케이션 프로그램은 상기 디바이스의 사용자가 상기 전자 문서의 수정을 입력하도록 하고, 상기 디바이스는 상기 수정이 상기 정보에 의해 특정되지 않은 폰트의 적어도 다른 하나의 글리프를 포함하는 것을 판단하는 즉시, 폰트 서버에 대한 새로운 요청을 생성하는 것을 특징으로 하는 시스템.
  19. 청구항 15에 있어서, 상기 폰트 데이터베이스와 상기 폰트 패키징 요소를 포함하는 폰트 서버를 더 포함하고, 상기 애플리케이션 프로그램은 상기 전자 문서를 작성하는 과정에서 상기 폰트 서버와 상호 작용하는 것을 특징으로 하는 시스템.
  20. 청구항 19에 있어서, 상기 폰트 서버는 폰트 이용가능성(font availability)을 상기 애플리케이션 프로그램에 전달하는 것을 특징으로 하는 시스템.
KR1020117023723A 2009-03-10 2010-03-10 폰트 글리프들을 제공 KR20120001750A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/401,217 2009-03-10
US12/401,217 US20100231598A1 (en) 2009-03-10 2009-03-10 Serving Font Glyphs

Publications (1)

Publication Number Publication Date
KR20120001750A true KR20120001750A (ko) 2012-01-04

Family

ID=42729067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023723A KR20120001750A (ko) 2009-03-10 2010-03-10 폰트 글리프들을 제공

Country Status (5)

Country Link
US (2) US20100231598A1 (ko)
JP (1) JP2012520511A (ko)
KR (1) KR20120001750A (ko)
CN (2) CN102439588B (ko)
WO (1) WO2010104906A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017078252A1 (ko) * 2015-11-03 2017-05-11 주식회사 한컴플렉슬 Pdf 문서에 포함된 문자의 모양 유지 복사를 위한 전자 단말 장치 및 상기 전자 단말 장치의 pdf 문서에 포함된 문자에 대한 모양 유지 복사 방법
KR102359773B1 (ko) * 2021-03-23 2022-02-28 스튜디오씨드코리아 주식회사 폰트 서브셋 생성 방법 및 그 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319444B2 (en) * 2009-06-22 2016-04-19 Monotype Imaging Inc. Font data streaming
US8769405B2 (en) * 2009-10-16 2014-07-01 Celartem, Inc. Reduced glyph font files
EP2367118A1 (en) 2010-03-15 2011-09-21 GMC Software AG Method and devices for generating two-dimensional visual objects
US8615709B2 (en) 2010-04-29 2013-12-24 Monotype Imaging Inc. Initiating font subsets
US9275018B2 (en) 2011-07-26 2016-03-01 Google Inc. Techniques for analyzing web pages to determine font subsets
US8494276B2 (en) 2011-09-23 2013-07-23 International Business Machines Corporation Tactile input recognition using best fit match
US20130215126A1 (en) * 2012-02-17 2013-08-22 Monotype Imaging Inc. Managing Font Distribution
US8988434B1 (en) 2012-04-12 2015-03-24 Google Inc. Text rendering for browsers and mobile based applications
CN103455503B (zh) * 2012-05-31 2018-04-03 腾讯科技(深圳)有限公司 字库收集方法、网页渲染方法、装置及系统
US20130325795A1 (en) * 2012-05-31 2013-12-05 Google Inc. Systems and Methods for Dynamically Loading Web Fonts and Dynamic Availability for Fonts Based on Language Settings
US9817615B2 (en) 2012-12-03 2017-11-14 Monotype Imaging Inc. Network based font management for imaging devices
WO2014100582A2 (en) 2012-12-21 2014-06-26 Monotype Imaging Inc. Supporting color fonts
US9626337B2 (en) 2013-01-09 2017-04-18 Monotype Imaging Inc. Advanced text editor
EP2763051B1 (en) * 2013-01-31 2019-08-14 Google LLC Serving font glyphs
EP2763050A1 (en) * 2013-01-31 2014-08-06 Google, Inc. Serving font glyphs
US9317777B2 (en) 2013-10-04 2016-04-19 Monotype Imaging Inc. Analyzing font similarity for presentation
US9691169B2 (en) 2014-05-29 2017-06-27 Monotype Imaging Inc. Compact font hinting
US9940744B2 (en) * 2014-09-15 2018-04-10 Microsoft Technology Licensing, Llc Remote font management
CN104267916A (zh) * 2014-09-16 2015-01-07 珠海格力电器股份有限公司 一种信息显示方法、系统和电子设备
US20160182606A1 (en) * 2014-12-17 2016-06-23 Monotype Imaging Inc. Network Based Static Font Subset Management
JP5861229B1 (ja) * 2015-04-15 2016-02-16 株式会社システム中部 手書きフォント配信システム、手書きフォント配信方法
US10115215B2 (en) 2015-04-17 2018-10-30 Monotype Imaging Inc. Pairing fonts for presentation
US10503810B2 (en) * 2015-06-18 2019-12-10 International Business Machines Corporation Font personalization
US11537262B1 (en) 2015-07-21 2022-12-27 Monotype Imaging Inc. Using attributes for font recommendations
US10455056B2 (en) * 2015-08-21 2019-10-22 Abobe Inc. Cloud-based storage and interchange mechanism for design elements
US12099796B2 (en) * 2015-12-08 2024-09-24 Beth Mickley Apparatus and method for generating licensed fanciful fonts for messaging services
CN106951421A (zh) * 2016-01-07 2017-07-14 方正璞华软件(武汉)股份有限公司 一种网络字体显示系统及方法
US10228775B2 (en) * 2016-01-22 2019-03-12 Microsoft Technology Licensing, Llc Cross application digital ink repository
US10503811B2 (en) * 2016-02-29 2019-12-10 Adobe Inc. Acquisition of a font portion using a compression mechanism
US10592590B2 (en) * 2016-08-04 2020-03-17 Adobe Inc. Non-resident font preview
US11334750B2 (en) 2017-09-07 2022-05-17 Monotype Imaging Inc. Using attributes for predicting imagery performance
US10909429B2 (en) 2017-09-27 2021-02-02 Monotype Imaging Inc. Using attributes for identifying imagery for selection
US11657602B2 (en) 2017-10-30 2023-05-23 Monotype Imaging Inc. Font identification from imagery
CN108304357B (zh) * 2018-01-31 2020-09-08 北京大学 一种基于字体流形的中文字库自动生成方法
JP6713657B1 (ja) * 2019-10-23 2020-06-24 日本加除出版株式会社 外字管理システム
CN113867673B (zh) * 2021-09-27 2022-09-16 湖南省舟际智控电气科技有限公司 一种液晶屏立体字字体显示方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6388654B1 (en) * 1997-10-03 2002-05-14 Tegrity, Inc. Method and apparatus for processing, displaying and communicating images
JP2001350464A (ja) * 2000-06-07 2001-12-21 Nec Corp 文字フォント登録システム及びそれに用いる文字フォント登録方法
US20040205118A1 (en) * 2001-09-13 2004-10-14 Allen Yu Method and system for generalized localization of electronic documents
JP2004013390A (ja) * 2002-06-05 2004-01-15 Canon Inc 文書処理装置、その制御方法、及び制御プログラム
GB0413261D0 (en) * 2004-06-15 2004-07-14 Ibm Method and arrangement for front building
US7640502B2 (en) * 2004-10-01 2009-12-29 Microsoft Corporation Presentation facilitation
US9930420B2 (en) * 2004-12-23 2018-03-27 Koniklijke Philips N.V. Method and apparatus for configuring software resources for playing network programs
US20060170684A1 (en) * 2005-01-28 2006-08-03 Microsoft Corporation Font cache and meta-fonts
JP2006235947A (ja) * 2005-02-24 2006-09-07 Fujitsu Ltd ドキュメント送信プログラムおよびドキュメント送信システム
US20070024626A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Large character set handling in limited devices
US20080079730A1 (en) * 2006-09-29 2008-04-03 Microsoft Corporation Character-level font linking
JP2008165264A (ja) * 2006-12-26 2008-07-17 Dynacomware Taiwan Inc ネットワークを利用して多様なフォントを用いたアジアWebページ文書を編集するためのシステム及び方法
JP5089230B2 (ja) * 2007-04-17 2012-12-05 株式会社Pfu 文字管理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017078252A1 (ko) * 2015-11-03 2017-05-11 주식회사 한컴플렉슬 Pdf 문서에 포함된 문자의 모양 유지 복사를 위한 전자 단말 장치 및 상기 전자 단말 장치의 pdf 문서에 포함된 문자에 대한 모양 유지 복사 방법
KR102359773B1 (ko) * 2021-03-23 2022-02-28 스튜디오씨드코리아 주식회사 폰트 서브셋 생성 방법 및 그 장치
KR20220132415A (ko) * 2021-03-23 2022-09-30 스튜디오씨드코리아 주식회사 폰트 서브셋 생성 방법 및 그 장치

Also Published As

Publication number Publication date
JP2012520511A (ja) 2012-09-06
CN102439588A (zh) 2012-05-02
US20140019856A1 (en) 2014-01-16
WO2010104906A3 (en) 2011-02-24
US20100231598A1 (en) 2010-09-16
WO2010104906A2 (en) 2010-09-16
CN102439588B (zh) 2015-04-22
CN104794103A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
KR20120001750A (ko) 폰트 글리프들을 제공
US20190073342A1 (en) Presentation of electronic information
US7278092B2 (en) System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
US7216290B2 (en) System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
US20110258535A1 (en) Integrated document viewer with automatic sharing of reading-related activities across external social networks
US8135616B2 (en) Browsing and quality of service features
US9443014B2 (en) Custom web page themes
US8453051B1 (en) Dynamic display dependent markup language interface
US10084878B2 (en) Systems and methods for hosted application marketplaces
WO1997027553A1 (en) Distributed electronic publishing system
JP2004519116A (ja) テレビエンハンスメントのためのシステムおよび方法
US20210326937A1 (en) Ad Placement in Mobile Applications and Websites
US20090144158A1 (en) System And Method For Enabling Viewing Of Documents Not In HTML Format
EP2332115A2 (en) Content distribution for mobile device
US10013403B2 (en) Browsing system, terminal, image server, program, computer-readable recording medium storing program, and method
US20150363400A1 (en) Serving font glyphs
KR20200001342A (ko) 개체를 렌더링하는 웹 전자 문서 편집 장치 및 이의 동작 방법
JP2022536009A (ja) 動的コンポーネントを有するビデオのレンダリング
US10169448B2 (en) Serving font glyphs
WO2002086739A1 (en) System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
KR20200001340A (ko) 드로잉 개체를 렌더링하는 웹 전자 문서 편집 장치 및 이의 동작 방법
CN118193723A (zh) 文本解析方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101001972; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20160330

Effective date: 20171221