KR101176659B1 - 텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터판독가능 매체 - Google Patents

텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터판독가능 매체 Download PDF

Info

Publication number
KR101176659B1
KR101176659B1 KR1020060007338A KR20060007338A KR101176659B1 KR 101176659 B1 KR101176659 B1 KR 101176659B1 KR 1020060007338 A KR1020060007338 A KR 1020060007338A KR 20060007338 A KR20060007338 A KR 20060007338A KR 101176659 B1 KR101176659 B1 KR 101176659B1
Authority
KR
South Korea
Prior art keywords
shape
text
constraint
graphic
initial
Prior art date
Application number
KR1020060007338A
Other languages
English (en)
Other versions
KR20060101218A (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 KR20060101218A publication Critical patent/KR20060101218A/ko
Application granted granted Critical
Publication of KR101176659B1 publication Critical patent/KR101176659B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0206Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
    • H04M1/0208Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
    • H04M1/0214Foldable telephones, i.e. with body parts pivoting to an open position around an axis parallel to the plane they define in closed position
    • H04M1/0216Foldable in one direction, i.e. using a one degree of freedom hinge

Abstract

본 발명에는, 텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터 판독가능 매체가 제공된다. 본 방법에 따르면, 형상 및 그 형상 내의 텍스트가 어떻게 레이아웃되어야 하는지를 설명하는 초기 값을 포함하는 초기 제약들이 정의된다. 또한 형상 내의 텍스트에 초기 제약을 적용시킴으로써 텍스트가 그 형상의 경계를 벗어나게 되는 경우, 그 초기 제약을 변경하여 사용하기 위한 제약 규칙들이 정의된다. 상기 형상들 중 하나 이상의 사이즈 또는 위치, 또는 상기 형상들 중 하나의 형상 내의 텍스트에 영향을 미칠 그래픽에 대한 변화가 검출될 수 있다. 그러한 변화는 초기 제약을 사용하여 레이아웃될 때 텍스트를 벗어나게 한다면, 제약 규칙들은 그 제약을 변경하기 위해 순차적으로 적용된다. 이어서 변경된 제약은 그래픽에 대한 새로운 레이아웃을 작성하기 위해 상기 형상에 대해 다시 적용된다.
Figure R1020060007338
그래픽, 텍스트, 형상, 레이아웃, 제약, 제약 규칙

Description

텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터 판독가능 매체{METHOD AND COMPUTER-READABLE MEDIUM FOR FITTING TEXT TO SHAPES WITHIN A GRAPHIC}
도 1은 본 발명의 여러가지 실시예들에서 이용되고 제공되는 컴퓨터 시스템을 설명하는 컴퓨터 시스템 아키텍쳐 그래픽을 도시한 도면.
도 2a 내지 도 4는 본 발명의 일실시예에 따른 예시적인 드로잉 프로그램에 의해 제공되는 그래픽을 도시하는 블록도.
도 5는 본 발명의 일실시예에 이용되는 형상에 대한 몇가지 가능한 제약들을 설명하는 블록도.
도 6은 본 발명의 일실시예에 이용되는 그래픽 정의 파일의 내용의 일부를 설명하는 블록도.
도 7 내지 도 8b는 본 발명의 일실시예에 따른 그래픽 내의 하나 이상의 형상에 텍스트를 맞추기 위한 몇가지 루틴을 설명하는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
5: 중앙 처리 장치
7: 시스템 메모리
9: 랜덤 억세스 메모리
10: 드로잉 응용 프로그램
11: 리드 온니 메모리
14: 대용량 저장 디바이스
16: 운영체제
18: 네트워크
20: 네트워크 인터페이스 장치
22: 입출력 제어기
24: 그래픽
30: 데이터 모델
40: 그래픽 정의 파일
관련 출원의 교차 참조
본 특허 출원은, 2004년 9월 30일자로 제출된 발명의 명칭이 "Method, System, and Computer-Readable Medium for Creating and Laying Out A Graphic Within an Apllication Program"인 미국 특허출원번호 제10/955,271호(대리인 문서번호 제60001.0423US01호), 본 특허와 동시에 제출된 발명의 명칭이 "Method, and Computer-Readable Medium For Generating Graphics Having A Finite Number of Dinamically Sized and Positioned Shapes"인 미국특허출원번호 제 호(대 리인 문서번호 제14917.0068US01호), 및 2004년 9월 30일자로 제출된 발명의 명칭이 "Editing The Text Of An Arbitrary Graphic Via A Hierarchical List"인 미국 특허출원번호 제10/957,103호(대리인 문서번호 제40062.0247US01호)와 관련되어 있으며, 이들 각각은 본 출원과 동일한 양수인에게 양도되어 있다. 앞서 언급된 특허출원들은 본 명세서에 전체적으로 참조로 포함되어 있다.
오늘날의 워드 프로세서들 및 드로잉 전용 응용 프로그램들은 사용자로 하여금 간단한 그래픽 및 복잡한 그래픽 둘 모두를 작성할 수 있도록 한다. 이러한 프로그램들은 사용자들로 하여금 텍스트로 주석될 수 있는 다양한 형상들을 사용하여 그래픽을 작성할 수 있도록 한다. 이러한 응용 프로그램으로 작성된 그래픽들은 독립형 문서가 될 수도 있으며 또는 텍스트 문서에 통합될 수도 있다. 그러나, 이러한 프로그램이 제공하는 이점들에도 불구하고, 오늘날 이 프로그램들의 버전은 통상의 사용자에 의한 그래픽 작성 및 레이아웃을 숨기는 몇가지 단점들을 갖는다.
현재의 드로잉 프로그램들의 일특정 단점은 이 프로그램들은 통상적으로 모든 형상 및 그래픽에서 일반적인 텍스트 속성(예를 들어, 가장자리 여백, 행간 등)에 대한 디폴트를 이용한다는 것이다. 대부분의 경우에, 이러한 디폴트는 넓은 범위의 그래픽에서는 최적으로 보이지 않는다. 결과적으로, 사용자들은 전문화된 룩킹 그래픽을 얻기 위해 수동으로 디폴트 속성을 무효화시켜야 한다. 이는 사용자에게 절망적이고 시간 소모적인 일이 될 수 있다.
현재의 드로잉 프로그램의 또 다른 단점은 이 프로그램들이 형상 및 텍스트 를 그래픽에 추가할 때 형상 내의 텍스트를 수동으로 리사이징하도록 사용자에게 요구한다는 것이다. 예를 들어, 사용자가 형상의 경계를 벗어나는 텍스트를 형상에 추가하는 경우, 사용자는 그 텍스트가 형상 내에 완전히 맞도록 그래픽 또는 텍스트를 수동으로 리사이징해야 한다. 이러한 문제는 텍스트를 갖는 대다수의 형상이 그래픽에 이용되는 경우에 특히 시간 소모적인 것일 수 있다. 이러한 문제는 텍스트가 관련 형상과 똑같이 사이징되어 있을 때 많은 그래픽들이 가장 보기 좋아진다는 사실과 타협한다. 이러한 유용한 현재 드로잉 프로그램을 달성하기 위해서는, 사용자는 관련 형상 각각의 텍스트를 수동으로 리사이징해야 한다. 이는 또한 컴퓨터 사용자에게 절망적이고 시간 소모적인 일이 될 수 있다.
본 발명의 각종 실시예들이 행해진 것은 이러한 고려사항들 및 기타 고려사항들에 관한 것이다.
발명의 개요
본 발명에 따르면, 상기 및 다른 문제점들이 텍스트를 그래픽 내의 하나 이상의 형상에 맞추기 위한 방법 및 컴퓨터 판독가능 매체에 의해 해결된다. 본 방법에 따르면, 형상 및 그 형상 내의 텍스트가 레이아웃되어야 하는 방법을 설명하는 초기치를 포함하는 하나 이상의 초기 제약을 정의한다. 예를 들어, 레이아웃되어야 할 텍스트의 폰트 체, 폰트 사이즈, 문자 속성을 나타내는 초기 제약들이 지정될 수 있다. 또한 형상 내의 텍스트에 대한 초기 제약의 적용이 형상의 경계를 벗어나는 텍스트를 초래할 경우, 그 초기 제약을 변경하는데 사용하기 위한 하나 이상의 제약 규칙들이 정의될 수 있다. 형상 내의 텍스트의 레이아웃에는 영향을 미치지만 규칙들에 의해 변경되지는 않는 하나 이상의 파라미터들이 정의될 수도 있다.
본 발명의 일실시예에 따르면, 하나 이상의 형상의 사이즈 또는 위치 또는 그 형상들 중 하나의 형상 내의 텍스트에 영향을 미치는 그래픽에 대한 변화가 검출될 수 있다. 예를 들어, 형상이 추가 또는 제거될 수 있거나, 그래픽의 레이아웃이 변화될 수 있거나, 폰트가 변화될 수 있거나, 텍스트가 그래픽 내의 형상에 추가되거나 이로부터 제거될 수 있다. 그러한 변화의 검출에 응답하여, 초기 제약이 적용된다. 텍스트가 형상을 벗어나면, 제약 규칙들은 제약을 변경하기 위해 연속적으로 적용된다. 이어서 변경된 제약들은 그래픽에 대한 새로운 레이아웃을 생성하기 위해 그 형상에 다시 적용된다.
본 발명의 또 다른 실시예에 따르면, 제약을 변경할 제약 규칙들을 적용하는 것은 우선 형상 내부에 맞지 않는 텍스트를 갖는 그래픽 내의 형상을 식별하는 것을 포함한다. 그러한 형상이 식별된 경우, 제1 제약 규칙이 식별된 형상과 연관된 그래픽 정의 파일 내에서 식별된다. 제약 규칙은 형상과 연관된 제약에 대한 한계값을 식별한다. 이어서, 초기 제약 값과 식별된 형상에 맞는 텍스트를 초래하는 한계값 간의 제약값을 식별하기 위해 이진 검색(binary search)과 같은 검색이 수행된다. 실시예에 따르면, 식별된 값은 초기 제약에 가장 근접하면서 텍스트가 그 형상에 맞도록 하는 값을 포함한다.
형상에 맞는 텍스트를 초래하는 검색동안 값이 식별된다면, 제약에 대해 식 별된 값이 형상에 적용된다. 형상에 맞는 데이터를 초래하는 값이 정해질 수 없으면, 그 형상에 한계값이 적용되며, 다음 제약 규칙이 식별되어 그 형상에 적용된다. 대안으로, 그 규칙으로 식별된 중간값이 형상에 적용될 수 있다. 이러한 방식으로, 형상과 연관된 각 제약 규칙이 형상에 연속적인 형식으로 적용될 수 있다. 실시예들에 따르면, 레이아웃을 정할 때 도움이 되지 않는 규칙들은 형상에 맞는 텍스트를 스킵할 수 있다. 모든 제약 규칙들의 적용이 형상에 맞는 텍스트를 초래하지 않는다면, 텍스트가 형상 밖으로 벗어나지 않도록 보장하는 소정의 규칙이 적용될 수 있다. 예를 들어, 어떠한 텍스트도 형상 밖으로 벗어나지 않도록 텍스트를 자르고 괄호를 추가하는 규칙이 적용될 수 있다.
본 발명의 또 다른 실시예에 따르면, 그에 저장된 데이터 구조를 갖는 컴퓨터 판독가능 매체가 제공된다. 그 데이터 구조는 텍스트를 그래픽 내의 형상에 맞추기 위한 하나 이상의 초기 제약을 나타내는 데이터를 포함하는 한 세트의 데이터 필드를 포함한다. 그 제약들은 하나 이상의 형상 내의 텍스트가 어떻게 레이아웃되어야 하는 지를 설명하는 초기 값을 포함한다.
일실시예에 따르면, 데이터 구조는 또한 형상에 텍스트를 맞추기 위한 하나 이상의 제약 규칙들을 나타내는 데이터를 포함하는 제2 데이터 필드를 구비한다. 그 제약의 적용이 형상 내에 완전히 레이아웃되는 텍스트를 성공적으로 초래하지 않는 경우, 그 제약 규칙들은 그 제약들을 변경하기 위한 규칙들을 포함한다. 특히, 각 제약 규칙은 적어도 하나의 제약에 대한 한계값을 포함한다. 그 제약 규칙들은 폰트 사이즈, 가장자리 여백(margin), 워드랩(word-wrapping), 하이픈 (hypenation), 간격좁힘(kerning), 행간(line-spacing) 및 다른 형상 내의 텍스트 속성을 변경하는데 이용될 수 있다.
본 발명은 컴퓨터 프로세스, 컴퓨팅 시스템으로서 또는 컴퓨터 프로그램 또는 컴퓨터 판독가능 매체와 같은 제조 아티클로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하며, 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램 명령문들을 인코딩하는 컴퓨터 저장 매체가 될 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독가능하며, 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램 명령문을 인코딩하는 반송파 상의 전파 신호가 될 수 있다.
본 발명의 특징을 나타내는 이들 및 여러가지 다른 특징들 및 이점들은 다음의 관련 도면과 상세한 설명을 읽어보면 명백해질 것이다.
<실시예>
이제, 같은 참조번호가 같은 요소를 나타내는 도면을 참조하여, 본 발명의 여러가지 양상들을 기술할 것이다. 특히, 도 1과 그 해당 설명은 본 발명의 실시예들이 구현될 수 있는 적절한 컴퓨팅 환경의 간단하고도 일반적인 설명을 제공하도록 의도된 것이다. 본 발명은 퍼스널 컴퓨터 상의 운영체제를 실행하는 프로그램 모듈과 관련하여 실행되는 일반적인 프로그램 모듈에 관해 설명될 것이지만, 본 기술분야의 숙련자라면 본 발명이 다른 형태의 컴퓨터 시스템 및 프로그램 모듈에 연동되어 구현될 수도 있음을 인식할 것이다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 컴포넌트, 데이터 구조 및 특 정 태스크를 수행하거나 특정 추상적 데이터 형식을 구현하는 다른 형태의 구조들을 포함한다. 또한, 본 기술분야의 숙련자들은 본 발명이 핸드헬드 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 소비자 전자제품, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성으로 실시될 수 있음을 이해할 것이다. 본 발명은 또한 태스크가 통신 네트워크를 통해 링크되어 있는 리모트 프로세싱 디바이스에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 리모트 메모리 저장 디바이스 양자 모두에 배치될 수 있다.
이제, 도 1을 참조하면, 본 발명의 다양한 실시예에서 이용되는 컴퓨터(2)에 대한 도식적인 컴퓨터 아키텍쳐가 기술될 것이다. 도 1에 도시된 컴퓨터 아키텍쳐는 중앙 처리 장치(5)("CPU")를 포함하는 종래의 데스크탑 또는 랩탑 컴퓨터, 랜덤 억세스 메모리("RAM")(9) 및 리드-온니 메모리("ROM")(11)를 포함하는 시스템 메모리(7) 및 상기 메모리를 상기 CPU에 결합시키는 시스템 버스(12)를 도시한다. 시동 중과 같은 컴퓨터 내의 요소들 간에 정보를 전달하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템이 ROM(11)에 저장된다. 컴퓨터(2)는 운영체제(16), 응용 프로그램 및 기타 프로그램 모듈을 저장하기 위한 대용량 저장 디바이스(14)를 더 포함하며, 이하에 보다 상세하게 기술할 것이다.
대용량 저장 디바이스(14)는 버스(12)에 접속된 대용량 저장 제어기(도시되지 않음)를 통해 CPU(5)에 접속된다. 대용량 저장 디바이스(14) 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터(2)를 위해 비휘발성 저장소를 제공한다. 본 명세서에 포함되어 있는 컴퓨터 판독가능 매체의 설명이 하드디스크 또는 CD-ROM 드라이브와 같은 대용량 저장 디바이스를 참조할지라도, 컴퓨터 판독가능 매체가 컴퓨터(2)에 의해 억세스될 수 있는 임의의 사용가능한 매체가 될 수 있음을 숙련자라면 이해해야 한다.
예일뿐 제한이 아닌 것으로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 임의의 방법 또는 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보 저장 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EPROM, EEPROM, 플래쉬 메모리 또는 기타 고상 메모리 기술, CD_ROM, DVD("digital versatile disk"), 또는 기타 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장 디바이스 또는 원하는 정보를 저장하는데 사용될 수 있으며 컴퓨터(2)에 의해 억세스될 수 있는 임의의 다른 매체들을 포함하지만, 이에 제한되는 것은 아니다.
본 발명의 여러 실시예들에 따르면, 컴퓨터(2)는 인터넷과 같은 네트워크(18)를 통해 리모트 컴퓨터들에 논리 접속을 이용하여 네트워킹된 환경에서 동작할 수 있다. 컴퓨터(2)는 버스(12)에 접속된 네트워크 인터페이스 장치(20)를 통해 네트워크(18)에 접속할 수 있다. 네트워크 인터페이스 장치(20)도 다른 형태의 네트워크 및 리모트 컴퓨터 시스템에 접속하는데 이용될 수 있다. 컴퓨터(20)는 또한 키보드, 마우스 또는 전자 스타일러스(도 1에 도시되지 않음)를 포함하는 다수의 다른 디바이스로부터 입력을 수신하여 처리하기 위한 입출력 제어기(22)를 포함 할 수 있다. 마찬가지로, 입출력 제어기(22)는 디스플레이 스크린, 프린터 또는 다른 형태의 출력 디바이스에 출력을 제공할 수 있다.
앞서 간략히 언급한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일은, 워싱턴, 레드몬드에 위치한 마이크로소프트사에서 개발한 WINDOWS XP 운영체제와 같은 네트워크 퍼스널 컴퓨터의 동작을 제어하기에 적절한 운영체제(16)를 포함하는 컴퓨터(2)의 대용량 저장 디바이스(14) 및 RAM(9)에 저장될 수 있다. 대용량 저장 디바이스(14) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 특히, 대용량 저장 디바이스(14) 및 RAM(9)은 드로잉 응용 프로그램(10)을 저장할 수 있다. 드로잉 응용 프로그램(10)은 그래픽(24)과 같은 그래픽의 작성 및 레이아웃을 위한 기능을 제공하도록 동작한다. 본 발명의 일실시예에 따르면, 드로잉 응용 프로그램(10)은 WORD, EXCEL 및 POWERPOINT 응용 프로그램들을 포함하는 마이크로소프트사에서 제작한 OFFICE 계열 응용 프로그램들의 프로그램 중 어느 하나를 포함할 수 있다.
대용량 저장 디바이스(14)는 또한 드로잉 응용 프로그램(10) 내에 그래픽의 작성 및 레이아웃에 이용되는 몇가지 구성요소들을 저장할 수 있다. 특히, 그 구성요소들은 데이터 모델(30) 및 그래픽 정의 파일(40)을 포함할 수 있다. 본 발명의 각종 실시예들에서, 드로잉 응용 프로그램(10)은 그래픽의 작성 및 레이아웃에 관한 명령문을 그래픽 정의 파일(40)에서 판독한다. 본 발명의 일실시예에서, 데이터 모델(30) 및 그래픽 정의 파일(40)은 드로잉 응용 프로그램(10)에 의해 억세스되는 컴퓨터 시스템(2) 내의 개별 파일들로서 저장될 수 있다.
데이터 모델(30)은 그래픽(24)을 구성하기 위한 내용을 포함하는 노드, 관련성, 텍스트 및 속성의 집합을 포함한다. 그래픽 정의 파일(40)은 특정 그래픽 레이아웃을 작성하는 방법을 기술하는 데이터의 집합이다. 본 발명의 여러가지 실시예에서, 그래픽 정의 파일(40)은 XML(extensible markup language)을 이용하여 포맷될 수 있다. 본 기술분야의 숙련된 자들이 이해하고 있는 것처럼, XML은 데이터를 통신하기 위한 표준 포맷이다. XML 데이터 포맷에서, 스키마는 통신될 수 있는 데이터 형식 및 구조를 관리하는 문법 및 데이터 형식 규칙 세트를 XML 데이터에 제공하는데 사용된다. XML 데이터 포맷은 본 기술분야의 숙련된 자들에게 잘 공지되어 있는 것이므로, 본 명세서에 더 상세히는 논의하지 않는다. 그래픽 정의 파일(40)이 설명하고 있는 그래픽의 특징은 각 레이아웃 노드를 사용하는 레이아웃 알고리즘의 명칭, 알고리즘 파라미터, 제약, 레이아웃 트리를 구성하기 위한 제약 규칙, 형상 기하학 및 스타일 속성의 디폴트, 그래픽 분류 데이터 및 샘플 데이터 모델을 포함한다. 내용에 관한 부가적인 세부사항 및 그래픽 정의 파일(40)의 사용은 2004년 9월 30일 제출된 발명의 명칭이 "응용 프로그램 내에 그래픽을 작성 및 레이아웃하기 위한 방법, 시스템 및 컴퓨터 판독가능 매체"인 미국 특허출원번호 제10/955,271호(대리인 문서번호 제60001.0423US01호)에서 찾아볼 수 있으며, 이는 본 명세서에 참조로 포함되어 있다.
제약이란, 그래픽을 작성하기 위한 레이아웃 알고리즘에 의해 사용되는 조건이다. 형상의 폭에 사용되어야 하는 값이 제약의 일례가 될 수 있다. 제약은 수치값 또는 불린 값을 포함할 수 있다. 수치 제약은 특정 수치 값(예를 들어, 폭 = 1인치)을 지정할 수 있다. 수치 제약은 또한 관계식(예를 들어, 높이 = 폭 * 0.75)을 이용하여 다른 제약 값을 참조하여 그 값을 계산할 수도 있다. 불린 제약은 세트 내의 모든 노드들이 다른 제약과 동일한 값을 갖도록 하는 동일성 제약(equality contraint)을 포함할 수 있으며, 하나의 제약 값이 다른 제약값에 기초하여 제한되어 있는 부등성 제약(예를 들어, 형상의 폭은 다른 형상의 높이 이상 또는 이하이어햐 할 필요가 있음)을 포함할 수도 있다.
제약은 드로잉 요소들 간의 동일성(예를 들어, 모든 일반 노드들이 동일한 폰트 사이즈를 가짐) 또는 부등성(예를 들어, 전이 노드의 폭은 일반 노드 폭과 <= 해야 함)을 강요하도록 레이아웃 노드들 간에 전파될 수 있다. 제약은 그 상태를 다른 레이아웃 노드들에 전파하는 제약에 공유 전파인자를 부가함으로써 전파될 수 있다. 제약 및 제약 규칙 양자 모두는 전파 제약으로부터 다른 노드들 상에 업데이트될 수 있다.
제약 규칙은 레이아웃 알고리즘에 의해 일치될 수 없는 경우에 제약 세트를 변경하는 방법을 설명하는 것이다. 예를 들어, 제약은 폰트 사이즈가 14 포인트이어야 한다고 지정할 수 있지만, 제약 규칙은 폰트 사이즈가 최소 8 포인트까지 줄일 수 있다고 지정할 수 있다.
본 발명의 일실시예에 따르면, 제약은 형상 및 그 형상 내의 텍스트가 어떻게 레이아웃 되어야 하는 지를 설명하는 초기 값을 포함한다. 이에 관해, 제약의 적용이 형상의 경계 내에 성공적으로 레이아웃되는 텍스트를 초래하지 않을 때, 그 제약을 변경하기 위한 규칙을 포함하는 제약 규칙이 지정될 수 있다. 제약 및 제 약 규칙의 구조 및 사용에 관한 부가적인 세부사항들 및 그래픽 정의 파일(40)의 내용이 도 4를 참조하여 이하에 제공될 것이다.
이제 도 2a 및 도 2b를 참조하면, 본 발명의 실시예에 의해 생성된 몇가지 도식적인 그래픽(24A, 24B)을 기술할 것이다. 도 2a에 도시된 바와 같이, 그래픽(24A)은 형상(50A, 50B, 50C)을 포함한다. 형상 각각은 텍스트(52A, 52B, 52C)를 각각 포함한다. 본 발명의 일실시예에 따르면, 가장자리 여백, 자간 및 줄맞춤과 같은 텍스트 블록, 단락 및 문자 속성은 가장 미학적인 텍스트 레이아웃을 제공하기 위해 데이터 구조에 기초하여 동적으로 변화될 수 있다. 예를 들어, 형상(50B) 내의 텍스트(52B)가 몇가지 불릿 포인트(bullet point)를 추가하기 위해 편집되는 경우, 텍스트(52B)의 줄맞춤은 가운데 맞춤에서 왼쪽 맞춤으로 변화될 수 있다. 이는 도 2b에 도시된 왼쪽으로 당겨진 텍스트(52B)로 반영될 수 있다.
본 발명의 일실시예에 따르면, 여러 형상들에서의 텍스트 줄맞춤 또한 데이터 변화에 기초하여 동적으로 변경될 수 있다. 예를 들어, 불릿을 텍스트(52B)에 추가하는 것에 응답하여, 텍스트(52B)의 줄맞춤은 상술된 바와 같이, 가운데 맞춤에서 왼쪽 맞춤으로 변화될 수 있다. 부가적으로, 형상(50A, 50B) 내의 텍스트(52A, 52B)의 줄맞춤은 또한 텍스트(52B)로의 변경에 응답하여 가운데 맞춤에서 왼쪽 맞춤으로 변화될 수 있다. 이는 도 2b에 도시된 텍스트(52A, 52C)에 반영된다.
이제 도 3a 및 도 3b로 가서, 본 발명의 부가적인 특징을 그래픽(24C, 24D)에 대해서 제시할 것이다. 그래픽(24C)은 텍스트(52A, 52B, 52C)를 각각 갖는 형상(50A, 50B, 50C)을 포함한다. 텍스트(52A, 52B, 52C)는 상단 및 왼쪽 맞춤되어 있다. 사용자가 도 3a에 도시된 바와 같이 처리 그래픽에서 도 3b에 도시된 계층적 그래픽(24D)으로 드로잉 형식을 변화시킨다면, 텍스트(52A, 52B, 52C)는 그래픽(24D)에서 적절한 형상으로 맵핑된다. 게다가, 그래픽 스타일의 변화에 응답하여, 형상(52A 내지 52d) 각각에서 텍스트의 줄맞춤은 상단-왼쪽 맞춤에서 가운데 맞춤으로 변화된다. 이 변화는 그래픽(24D)과 연관된 그래픽 정의 파일이 텍스트가 가운데 맞춤되어야 함을 나타내기 때문에 발생한다.
이제 도 4를 참조하면, 본 발명의 실시예들을 통해 적용될 수 있는 포맷 형식 변화에 관한 부가적인 상세가 설명될 것이다. 도 4는 형상(50E)을 포함하는 그래픽(24E)을 도시한다. 형상(50E)는 부모 형상과 하나의 자식 형상으로 구성된 복합 형상이다. 복합 형상은 부모 형상을 포함하며, 임의의 수의 자식 형상을 가질 수 있다. 본 발명의 실시예로서 복합 형상을 이용하는 것은 필수적인 것이 아님을 이해해야 한다. 본 명세서에서 제공된 알고리즘은 형상들의 임의의 조합으로 동작할 수 있다. 이하 보다 상세히 기술되는 바와 같이, 형상의 사이즈 및 포맷팅은 형상과 연관된 임의의 텍스트가 형상 내부에 완전히 맞도록 변경될 수 있다. 텍스트의 포맷팅 및 사이즈 또한 변동될 수 있다. 본 발명의 일실시예에 따르면, 부모 형상의 텍스트 및 형상은 자식 형상과는 무관하게 변동될 수 있다. 마찬가지로, 자식 형상은 부모 형상과 무관하게 변동될 수 있다. 이러한 방식으로, 복합 형상의 임의의 부분은 임의의 다른 부분과 무관하게 변경될 수 있다. 이러한 처리에 관한 부가적인 상세는 이하에 기술될 것이다.
이제 도 5를 참조하면, 형상이 텍스트를 포함하도록 변경될 수 있는 형상의 특징에 관한 부가적인 상세 및 그 연관 텍스트가 기술될 것이다. 특히, 도 5는 형상(50F)를 도시한다. 형상(50F)은 연관 텍스트(52D)를 갖는다. 형상(50F)은 또한 내부 가장자리(58), 수직 크기(56) 및 수평 크기(54)를 포함한다. 이하 보다 상세하게 기술된 바와 같이, 형상(50F)의 수직 및 수평 크기들은 텍스트(52D)가 그 형상 내부에 완전히 맞도록 수정될 수 있다. 마찬가지로, 내부 가장자리(58)는 텍스트(52D)가 형상(50F) 내에 맞도록 하기 위해 지정된 바와 같이 수정될 수 있다. 폰트 사이즈 및 텍스트 줄맞춤과 같은 텍스트(52D)의 속성 또한 형상(50F) 내에 텍스트(52D)를 맞추려는 시도에 의해 변동될 수 있다. 본 명세서에 제공된 알고리즘은 임의의 기하학적 형상에 의해 결합된 텍스트 자체에 이용될 수 있음을 이해해야 한다.
이하 보다 상세하게 기술된 바와 같이, 그래픽 정의 파일(40)은 형상(50F) 및 텍스트(52D)의 속성은 텍스트(52D)를 맞추려는 시도 및 변경될 순서에 따라 변경되어야 함을 정의하는 제약 규칙을 포함한다. 도 5에 도시되고 본 명세서에 기술된 형상(50F) 및 텍스트(52D)의 속성은 단순하게 예시적인 것을 뿐이며, 형상의 다른 속성들이 그 형상 내에 텍스트(52D)를 맞추려는 시도에 따라서 변경될 수 있음을 이해해야 한다. 또한, 제약 및 제약 규칙이 형상 단위마다 지정될 수 있음을 이해해야 한다. 제약 및 제약 규칙 또한 한 세트의 형상에 대해 지정될 수도 있다.
이제 도 6을 참조하면, 예시적인 그래픽 정의 파일(40)의 부분의 내용이 설명될 것이다. 특히, 그래픽 정의 파일(40)은 하나 이상의 제약(60)을 포함한다. 제약(60)은 형상 및 그 형상 내의 텍스트가 어떻게 레이아웃되어야 하는 지를 설명하는 초기 값을 포함한다. 예를 들어, 도 6에 도시된 제약(60)은 형상의 폭을 1.5인치로 설정하기 위한 제약을 포함한다. 또 다른 제약은 형상의 높이를 폭의 0.667배로 설정한다. 또 다른 제약은 부모 형상에 대한 텍스트 사이즈를 36 포인트로 설정하고, 또 다른 제약은 자식 형상의 텍스트 사이즈를 36 포인트로 설정한다. 이러한 제약들은 형상 및 그 연관 텍스트를 초기에 레이아웃하는데 이용된다. 또한 그 파일(40)에는 파라미터들이 지정될 수도 있다.
그래픽 정의 파일은 또한 하나 이상의 제약 규칙(62)을 포함한다. 그 제약 규칙(62)은 레이아웃 알고리즘에 일치할 수 없는 경우 제약 세트를 어떻게 변경해야 하는지에 대한 설명이다. 예를 들어, 도 6에 도시된 제약 규칙(62)은 형상의 폭이 .25인치의 단위로 3인치까지 증가될 수 있음을 나타내는 제1 제약 규칙을 포함한다. 제1 제약 규칙의 적용이 형상에 맞는 텍스트를 초래하지 못하면, 다음 제약 규칙이 적용된다. 다음 제약 규칙은 형상의 높이가 형상의 폭의 1.5배까지 증가될 수 있음을 나타낸다. 이러한 제약 규칙이 텍스트의 양호한 맞춤을 초래하지 못하면, 어떠한 부가적인 제약 규칙도 남아있지 않을 때까지 순차적으로 그 다음 규칙을 적용한다. 도 6에 도시된 다른 제약 규칙은 부모 텍스트의 폰트 사이즈를 최소 16 포인트까지 줄이고, 자식 텍스트의 폰트 사이즈를 최소 16 포인트까지 줄이고, 높이를 3인치까지 늘리고, 부모 텍스트의 사이즈를 4 포인트까지 줄인다. 제약에 이용될 수 있는 디폴트 값이 파일(40)에 구체적으로 정의되어 있지 않음을 이해해야 한다.
이제 도 7을 참조하면, 초기 제약 및 제약 규칙을 정의하기 위한 처리를 설명하는 예시적인 루틴 700이 기술될 것이다. 본 명세서에 제시된 루틴들의 논의사항을 읽어보면, 본 발명의 다양한 실시예들의 논리 연산은 (1) 컴퓨팅 시스템을 실행하는 동작 또는 프로그램 모듈들로 구현된 컴퓨터 시퀀스로서, 및/또는 (2) 상호접속된 머신 논리 회로 또는 컴퓨팅 시스템 내의 회로 모듈로서 구현된다. 그 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구조건에 의존하는 선택의 문제이다. 따라서, 도 7 및 도 8에 도시되고 본 명세서에 기술된 본 발명의 실시예를 구성하는 논리 연산은 연산들, 구조적 디바이스들, 동작들 또는 모듈들로서 다양하게 언급될 수 있다. 이들 동작, 구조적 디바이스 동작 및 모듈은 본 명세서에 설명된 청구범위에서 인용하고 있는 본 발명의 정신 및 범위를 벗어나지 않고도, 소프트웨어, 펌웨어, 특수 용도의 디지털 로직 및 그 임의의 조합으로 구현될 수 있음을 본 기술분야의 숙련된 자라면 이해할 것이다.
루틴 700은 제약 값이 정의되어 있는 동작 702에서 시작한다. 이어서 루틴 700은 제약 규칙이 정의되어 있는 동작 704으로 진행한다. 루틴 700은 동작 704에서 제약값 및 제약 규칙이 그래픽 정의 파일(40)에 저장되어 있는 동작 706으로 진행한다. 이어서 루틴 700은 종료를 위해 동작 708로 진행한다.
이제 도 8a 및 도 8b를 참조하면, 형상에 텍스트를 맞추기 위한 예시적인 루틴 800이 기술될 것이다. 루틴 800은 새로운 그래픽을 작성하라는 요청을 받으면 동작 802에서 시작한다. 이 경우, 동작 802에서 요청을 수신하여 새로운 그래픽을 삽입한다. 이어서, 루틴 800은 새로운 그래픽 형태의 선택을 수신하는 동작 804로 진행한다. 이어서, 루틴 800은 그래픽에서의 초기 형상의 위치를 정하는 동작 806으로 진행한다. 형상은 초기 제약에 따라서 위치가 정해질 수 있다. 동작 806으로부터 루틴 800은 그 형상에 배치될 텍스트를 수신하는 동작 808로 진행한다. 이어서 루틴 800은 동작 814로 진행하며, 이는 이하에 설명한다.
그래픽 형태가 변경되면 동작 810에서 루틴 800을 시작한다. 이 경우, 새로운 그래픽 형태의 선택이 동작 810에서 수신된다. 루틴 800은 동작 810으로부터 동작 814로 진행하며, 이는 이하에 설명한다.
동작 814에서, 텍스트 내용은 그래픽 내의 형상으로 매핑한다. 이어서 루틴 800은 그 형상에 초기 제약을 적용하는 동작 816으로 진행한다. 또한 그 형상에 파라미터가 적용될 수도 있다. 예컨대, 텍스트 색상을 변경하는 것은 텍스트의 사이즈 또는 위치를 변경하는 것이 아니므로, 색상은 파라미터가 될 수 있다. 루틴 800은 동작 816으로부터 동작 818로 진행한다.
동작 818에서는, 텍스트가 각각의 형상에 맞는지의 여부에 관해 판정된다. 텍스트가 맞지 않으면, 루틴 800은 그래픽 정의 파일에 처리해야 할 부가적인 제약 규칙이 있는지의 여부에 관해 판정하는 동작 820으로 진행한다. 처리되어야 할 부가적인 제약 규칙이 남아 있다면, 루틴은 동작 822로 진행한다. 동작 822에서, 다음 제약 규칙은 그래픽 정의 파일로부터 판독된다. 이어서 루틴 800은 텍스트에 대해 최상의 맞춤을 판정하기 위해 제약 규칙에서 지정되는 값의 세트를 검색하는 동작 824로 진행한다. 예를 들어, 초기 제약이 형상의 폭이 1.5인치이어야 함을 지정하고, 제약 규칙이 폭이 3인치 한계값까지 증가될 수 있음을 지정한다면, 그 형상에 맞는 텍스트를 초래할 1.5인치와 3인치 사이의 최소값을 식별하는 검색을 수행한다. 일실시예에 따르면, 이진 검색이 이용된다. 그러나, 검색 알고리즘에 부가하여 최상의 맞춤 값을 식별하기 위해 다른 형태의 알고리즘이 이용될 수 있음을 이해해야 한다.
본 발명의 일실시예에 따르면, 성공적인 값이 정해진 후에도 시작값에 좀 더 가까운 값을 계속해서 검색하는 변경된 이진 검색 알고리즘이 이용된다. 이러한 처리는 맞춤을 허용하는 제1 결과가 다음의 맞춤 결과 값의 소정의 임계치 내에 있을 때까지 계속한다. 이 방식으로, 최상의 맞춤 값을 정할 수 있다.
일단 최상의 맞춤 값에 대한 검색이 현재의 제약 규칙을 이용하여 수행되기만 하면, 방법(800)은 텍스트가 그 형상에 맞는지의 여부에 관해 또 다른 판정을 행하는 동작 818로 리턴한다. 텍스트가 맞지 않으면, 동작 820, 822, 824에 대해 상기 처리를 반복한다. 텍스트가 맞으면, 루틴 800은 동작 818에서 동작 828로 분기한다.
일실시예에 따르면, 검색 루틴에 의해 형상에 대한 최상의 맞춤으로서 식별된 값들이 벗어난다면, 텍스트는 다른 형상들로 전파될 수 있음을 이해해야 한다. 이 방식으로, 관련 형상들이 일관적으로 리사이징될 수 있으므로, 사용자가 관련 형상들을 수동으로 리사이징해야 하는 것을 모면하게 해준다.
동작 828에서, 그래픽 내의 임의의 내용의 사이즈 또는 위치가 변화되었는지의 여부에 관해 판정이 행해진다. 변화가 없었다면, 루틴 800은 종료를 위해 동작 832로 분기한다. 변화가 있었다면, 루틴 800은 동작 826으로 분기하여, 그래픽에 서의 형상으로 매핑될 새로운 내용이 있는지의 여부를 판정한다. 매핑될 새로운 내용이 있다면, 루틴 800은 상술된 동작 826에서 동작 814로 분기한다. 매핑될 새로운 내용이 없다면, 루틴은 상술된 상술된 동작 826에서 동작 816으로 분기한다.
동작 820에서, 처리할 어떤 부가적인 제약 규칙도 없음이 판정되면, 루틴 800은 동작 820에서 동작 830으로 분기한다. 동작 830에서, 형상에 소정의 규칙이 적용되어, 텍스트가 그 형상 외부로 벗어나지 않도록 보증한다. 예를 들어, 본 발명의 일실시예에 따르면, 텍스트를 잘라내고 그 잘라냄을 표시하기 위해 텍스트 끝에 괄호("...")를 추가할 수 있다. 남아있는 텍스트 전체가 그 형상에 맞도록 충분한 텍스트가 잘려질 수 있다. 텍스트가 형상 밖으로 벗어나지 않을 것임을 보장하는 다른 형태의 규칙들이 적용될 수 있다. 루틴 800은 상술된 동작 830에서 동작 828로 분기한다.
전술한 바에 기초하여, 본 발명의 각종 실시예들은 텍스트를 그래픽 내의 형상들에 맞추기 위한 방법 및 컴퓨터 판독 매체를 포함하는 것임을 이해해야 한다. 상기 상세한 설명, 예시들 및 데이터는 본 발명 구성의 제조 및 사용에 대한 완전한 설명을 제공한다. 본 발명의 많은 실시예들이 본 발명의 정신 및 범위를 벗어나지 않고도 수행될 수 있으므로, 본 발명은 이하에 첨부된 청구범위에 귀속된다.
본 발명은, 초기 제약 및 제약 규칙들을 정의하여, 텍스트를 그래픽 내의 형상에 맞출 수 있다. 따라서, 텍스트가 형상에 맞지 않을 경우, 사용자가 텍스트 또는 형상을 수동으로 리사이징해야 할 필요가 없게 해 준다.

Claims (20)

  1. 텍스트를 그래픽 내의 적어도 하나의 형상(shape)에 맞추기 위한 방법으로서,
    상기 텍스트와 연관된 적어도 하나의 속성을 결정하는 단계 - 상기 텍스트와 연관된 상기 적어도 하나의 속성은, 얼라인먼트(alignment), 여백(margin), 및 간격(spacing) 중 하나를 포함함 -;
    상기 적어도 하나의 속성과 상기 그래픽 내의 적어도 하나의 형상 사이에 정의된 연관에 기초하여, 상기 텍스트와 연관된 상기 적어도 하나의 속성을 변경하는 단계;
    상기 적어도 하나의 형상에 상기 텍스트를 맞추기 위한 적어도 하나의 초기 제약 및 적어도 하나의 제약 규칙을 정의하는 단계 - 상기 적어도 하나의 제약 규칙 및 상기 적어도 하나의 초기 제약은, 상기 적어도 하나의 형상과 형상들의 집합 중 적어도 하나에 대해 정의되고, 상기 적어도 하나의 초기 제약을 정의하는 단계는 상기 적어도 하나의 초기 제약의 상태를 적어도 하나의 레이아웃 노드에 전파하는 공유된 전파자(propagator)를 상기 적어도 하나의 초기 제약에 연결(attach)하는 단계를 포함함 -;
    상기 적어도 하나의 형상 내에 상기 텍스트를 맞추기 위해 상기 적어도 하나의 초기 제약을 적용하는 단계;
    상기 텍스트가 상기 적어도 하나의 형상 내에 맞지 않았음을 검출하는 단계;
    상기 텍스트가 상기 적어도 하나의 형상 내에 맞지 않았음을 검출한 것에 응답하여, 적어도 하나의 초기 제약을 변경하기 위해 상기 적어도 하나의 제약 규칙을 적용하는 단계;
    상기 그래픽에 대한 새로운 레이아웃을 생성하기 위해 상기 적어도 하나의 형상에 상기 변경된 적어도 하나의 초기 제약을 다시 적용하는 단계;
    상기 그래픽과 연관된 다이어그램 타입이 변화했는지의 여부를 결정하는 단계;
    상기 그래픽과 연관된 상기 다이어그램 타입이 변화했다고 결정한 것에 응답하여, 상기 다이어그램 타입의 변화가, 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서 변화를 일으켰는지의 여부를 결정하는 단계;
    상기 다이어그램 타입의 변화가 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서 변화를 일으켰다고 결정한 것에 응답하여, 상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있는지의 여부를 판정하는 단계;
    상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있다고 판정된 것에 응답하여, 상기 텍스트를 변화된 상기 다이어그램 타입의 상기 적어도 하나의 형상에 다시 매핑하고 변화된 상기 다이어그램 타입과 연관된 적어도 하나의 새로운 제약을 상기 텍스트와 연관된 상기 적어도 하나의 속성에 적용하는 단계 - 변화된 상기 다이어그램 타입과 연관된 상기 적어도 하나의 새로운 제약을 상기 적어도 하나의 속성에 적용하는 단계는 상기 그래픽 내의 상기 적어도 하나의 형상과 상기 적어도 하나의 속성의 상기 연관에 의해 정의되고, 상기 적어도 하나의 새로운 제약은 변화된 상기 다이어그램 타입의 결과로서 정의됨 -; 및
    변화된 상기 다이어그램 타입과 연관된 상기 적어도 하나의 새로운 제약을 상기 텍스트와 연관된 상기 적어도 하나의 속성에 적용한 것에 응답하여, 상기 그래픽을 디스플레이 스크린에 디스플레이하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 초기 제약은 상기 적어도 하나의 형상 및 상기 적어도 하나의 형상 내의 상기 텍스트가 어떻게 레이아웃되어야 하는 지를 설명하는 초기 값들을 포함하는 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 제약 규칙은, 상기 적어도 하나의 초기 제약의 적용에 의해 상기 텍스트가 상기 적어도 하나의 형상 내에 레이아웃되지 않을 경우에, 상기 적어도 하나의 초기 제약을 변경하기 위한 규칙들을 포함하는 방법.
  4. 제3항에 있어서,
    상기 텍스트가 상기 적어도 하나의 형상 내에 맞지 않게 되는 상기 그래픽에 대한 변화를 검출하는 단계; 및
    상기 변화를 검출한 것에 응답하여, 상기 적어도 하나의 초기 제약과 상기 적어도 하나의 형상에 대한 상기 변경된 적어도 하나의 초기 제약의 적용 중 적어도 하나를 변경하기 위해 상기 적어도 하나의 제약 규칙을 적용하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 적어도 하나의 초기 제약을 변경하기 위해 상기 적어도 하나의 제약 규칙을 적용하는 단계는,
    상기 텍스트가 상기 적어도 하나의 형상 내부에 맞지 않을 적어도 하나의 형상을 식별하는 단계;
    상기 식별된 적어도 하나의 형상과 연관된 제1 제약 규칙을 식별하는 단계 - 상기 제1 제약 규칙은 제약에 대한 한계값을 식별함 -;
    초기 제약값과, 상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 될 한계값 사이에서 상기 적어도 하나의 초기 제약의 최상의 맞춤 값을 식별하는 단계;
    상기 적어도 하나의 초기 제약에 대하여 상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 값이 식별되었는지의 여부를 판정하는 단계; 및
    상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 값이 식별되었다고 판정한 것에 응답하여, 상기 식별된 값을 상기 적어도 하나의 형상에 적용하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 값이 식별되었다고 판정한 것에 응답하여, 상기 식별된 값을 적어도 하나의 다른 형상에 적용하는 단계를 더 포함하는 방법.
  7. 제5항에 있어서,
    상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 값이 식별되지 않았다고 판정한 것에 응답하여, 상기 제1 제약 규칙 외의 부가적인 제약 규칙을 식별하여 상기 적어도 하나의 형상에 적용하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 부가적인 제약 규칙을 상기 적어도 하나의 형상에 적용하기 전에 상기 제1 제약 규칙에 의해 지정된 상기 적어도 하나의 제약에 대한 상기 한계값을 적용하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 형상에 상기 적어도 하나의 제약 규칙 모두를 적용하는 것에 의해 상기 텍스트가 상기 적어도 하나의 형상 내에 맞지 않게 되었음을 판정한 것에 응답하여, 상기 텍스트가 상기 적어도 하나의 형상 밖으로 벗어나지 않음을 보장하게 될 미리 정의된 규칙을 상기 적어도 하나의 형상에 적용하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 맞춤 값을 식별하는 단계는 이진 검색(binary search)을 수행하는 단계를 포함하는 방법.
  11. 제9항에 있어서,
    상기 적어도 하나의 초기 제약 및 상기 적어도 하나의 제약 규칙은 상기 그래픽과 연관된 그래픽 정의 파일에서 지정되는 방법.
  12. 제1항에 있어서,
    상기 적어도 하나의 형상은 부모 형상 및 적어도 하나의 자식 형상으로 이루어지는 복합 형상을 포함하는 방법.
  13. 텍스트를 그래픽 내의 적어도 하나의 형상에 맞추기 위한 시스템으로서,
    메모리 저장소; 및
    상기 메모리 저장소에 결합된 처리 유닛
    을 포함하고, 상기 처리 유닛은,
    상기 텍스트와 연관된 적어도 하나의 속성을 결정하고 - 상기 텍스트와 연관된 상기 적어도 하나의 속성은, 얼라인먼트, 여백, 및 간격 중 하나를 포함함 -,
    상기 텍스트와 연관된 상기 적어도 하나의 속성과 상기 그래픽 내의 상기 적어도 하나의 형상 사이에 정의된 연관에 기초하여, 상기 텍스트와 연관된 상기 적어도 하나의 속성을 변경하고,
    적어도 하나의 초기 제약 및 상기 적어도 하나의 초기 제약의 상태를 적어도 하나의 레이아웃 노드에 전파하는 공유된 전파자를 상기 적어도 하나의 초기 제약에 연결함으로써 상기 적어도 하나의 형상 내에 상기 텍스트를 레이아웃하기 위한 적어도 하나의 제약 규칙을 저장하고,
    상기 적어도 하나의 형상 내에 상기 텍스트를 레이아웃하기 위해 상기 적어도 하나의 형상에 상기 적어도 하나의 초기 제약을 적용하고,
    상기 텍스트가 상기 적어도 하나의 형상 내에 맞지 않게 하는 상기 그래픽에 대한 변화를 검출하고,
    상기 변화를 검출한 것에 응답하여, 상기 적어도 하나의 초기 제약을 변경하기 위해 상기 적어도 하나의 제약 규칙을 적용하고,
    상기 그래픽에 대한 새로운 레이아웃을 생성하기 위해 상기 적어도 하나의 형상에 상기 변경된 적어도 하나의 초기 제약을 다시 적용하고,
    상기 그래픽과 연관된 다이어그램 타입이 변화했는지의 여부를 결정하고,
    상기 그래픽과 연관된 상기 다이어그램 타입이 변화했다고 결정한 것에 응답하여, 상기 다이어그램 타입의 변화가, 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서 변화를 일으켰는지의 여부를 결정하고,
    상기 다이어그램 타입의 상기 변화가 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서 변화를 일으켰다고 결정한 것에 응답하여, 상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있는지의 여부를 판정하고,
    상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있다고 판정된 것에 응답하여, 상기 텍스트를 변화된 상기 다이어그램 타입의 상기 적어도 하나의 형상에 다시 매핑하고 상기 그래픽 내의 상기 적어도 하나의 형상에 대한 상기 적어도 하나의 속성의 정의된 연관에 따라 변화된 상기 다이어그램 타입과 연관된 적어도 하나의 새로운 제약을 상기 텍스트와 연관된 상기 적어도 하나의 속성에 적용하도록 - 상기 적어도 하나의 새로운 제약은 변화된 상기 다이어그램 타입의 결과로서 정의됨 -
    동작하는 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 초기 제약은 상기 적어도 하나의 형상 내의 상기 텍스트가 어떻게 레이아웃되어야 하는지를 설명하는 초기 값들을 포함하는 시스템.
  15. 제14항에 있어서,
    상기 적어도 하나의 제약 규칙은 상기 적어도 하나의 초기 제약의 적용에 의해 상기 텍스트가 상기 적어도 하나의 형상 내에 레이아웃되게 하지 않는 경우에, 상기 적어도 하나의 초기 제약을 변경하기 위한 규칙들을 포함하는 시스템.
  16. 제15항에 있어서,
    상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에 영향을 줄 수 있는 상기 그래픽에 대한 변화를 검출하는 것은 상기 적어도 하나의 형상의 추가, 상기 적어도 하나의 형상의 제거, 상기 그래픽의 상기 레이아웃에 대한 변화, 상기 그래픽에의 상기 텍스트의 추가, 및 상기 그래픽에서의 상기 텍스트의 제거 중 적어도 하나를 포함하는 시스템.
  17. 제15항에 있어서, 상기 처리 유닛은,
    상기 적어도 하나의 형상 내부에 상기 텍스트가 맞지 않을 적어도 하나의 형상을 식별하고;
    상기 식별된 적어도 하나의 형상과 연관된 제1 제약 규칙을 식별하고 - 상기 제1 제약 규칙은 상기 적어도 하나의 초기 제약에 대한 한계값을 식별함 -;
    상기 적어도 하나의 초기 제약값과, 상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 될 한계값 사이에서 상기 적어도 하나의 초기 제약의 값을 식별하고;
    상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 상기 적어도 하나의 초기 제약에 대한 값이 식별되었는지의 여부를 판정하고;
    상기 텍스트가 상기 식별된 적어도 하나의 형상 내에 맞게 되는 값이 식별되었다고 판정한 것에 응답하여, 상기 식별된 값을 상기 적어도 하나의 형상에 적용함으로써,
    상기 적어도 하나의 초기 제약을 변경하기 위해 상기 적어도 하나의 제약 규칙을 적용하도록 더 동작하는 시스템.
  18. 실행될 때에 텍스트를 그래픽 내의 적어도 하나의 형상에 맞추기 위한 방법을 수행하는 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은, 상기 컴퓨터 실행가능 명령어에 의해 수행되며,
    상기 텍스트와 연관된 적어도 하나의 속성을 결정하는 단계 - 상기 텍스트와 연관된 상기 적어도 하나의 속성은, 얼라인먼트, 여백, 및 간격 중 하나를 포함함 -;
    상기 적어도 하나의 속성과 상기 그래픽 내의 상기 적어도 하나의 형상 사이에 정의된 연관에 기초하여, 상기 텍스트와 연관된 상기 적어도 하나의 속성을 변경하는 단계;
    상기 그래픽과 연관된 다이어그램 타입이 변화했는지의 여부를 판정하는 단계;
    상기 그래픽과 연관된 상기 다이어그램 타입이 변화했다고 판정한 것에 응답하여, 상기 다이어그램 타입의 변화가, 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서 변화를 일으켰는지의 여부를 판정하는 단계;
    상기 다이어그램 타입의 상기 변화가 상기 적어도 하나의 형상의 크기와 상기 적어도 하나의 형상의 위치 중 적어도 하나에서의 변화를 일으켰다고 판정한 것에 응답하여, 상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있는지의 여부를 판정하는 단계;
    상기 적어도 하나의 형상 내의 상기 텍스트가 다시 매핑될 필요가 있다고 판정된 것에 응답하여, 상기 텍스트를 변화된 상기 다이어그램 타입의 상기 적어도 하나의 형상에 다시 매핑하고 변화된 상기 다이어그램 타입과 연관된 적어도 하나의 새로운 제약을 상기 텍스트와 연관된 상기 적어도 하나의 속성에 적용하는 단계 - 변화된 상기 다이어그램 타입과 연관된 상기 적어도 하나의 새로운 제약을 상기 적어도 하나의 속성에 적용하는 단계는 상기 그래픽 내의 상기 적어도 하나의 형상에 대한 상기 적어도 하나의 속성의 상기 연관에 의해 정의되고, 상기 적어도 하나의 새로운 제약은 변화된 상기 다이어그램 타입의 결과로서 정의됨 -;
    제1 데이터 구조에, 상기 텍스트를 상기 그래픽 내의 상기 적어도 하나의 형상에 맞추기 위한 적어도 하나의 초기 제약을 나타내는 데이터를 보유하는 데이터 필드들의 제1 집합을 저장하는 단계 - 상기 적어도 하나의 초기 제약은 상기 적어도 하나의 초기 제약의 상태를 적어도 하나의 레이아웃 노드에 전파하는 상기 적어도 하나의 초기 제약에 연결된 공유된 전파자를 포함함 -; 및
    상기 제1 데이터 구조에, 상기 텍스트를 상기 적어도 하나의 형상에 맞추기 위한 적어도 하나의 제약 규칙을 나타내는 데이터를 보유하는 데이터 필드들의 제2 집합을 저장하는 단계 - 상기 적어도 하나의 제약 규칙은, 상기 적어도 하나의 초기 제약의 적용에 의해 상기 텍스트가 상기 적어도 하나의 형상 내에 레이아웃되게 하지 않은 경우에, 상기 적어도 하나의 초기 제약을 변경하기 위한 규칙들을 포함함 -
    를 포함하는 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 적어도 하나의 초기 제약은 상기 적어도 하나의 형상 내의 상기 텍스트가 어떻게 레이아웃되어야 하는 지를 설명하는 초기 값들을 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서,
    상기 적어도 하나의 제약 규칙은 상기 적어도 하나의 초기 제약에 대한 한계값을 포함하는 컴퓨터 판독가능 저장 매체.
KR1020060007338A 2005-03-15 2006-01-24 텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터판독가능 매체 KR101176659B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/081,324 2005-03-15
US11/081,324 US7743325B2 (en) 2005-03-15 2005-03-15 Method and computer-readable medium for fitting text to shapes within a graphic

Publications (2)

Publication Number Publication Date
KR20060101218A KR20060101218A (ko) 2006-09-22
KR101176659B1 true KR101176659B1 (ko) 2012-08-23

Family

ID=36586025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060007338A KR101176659B1 (ko) 2005-03-15 2006-01-24 텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터판독가능 매체

Country Status (5)

Country Link
US (1) US7743325B2 (ko)
EP (1) EP1703417A3 (ko)
JP (2) JP2006260560A (ko)
KR (1) KR101176659B1 (ko)
CN (1) CN1834903B (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2416614A (en) * 2004-07-27 2006-02-01 Hewlett Packard Development Co Document creation
JP4095592B2 (ja) * 2004-08-06 2008-06-04 キヤノン株式会社 情報処理装置、情報処理方法ならびにプログラム
US8134575B2 (en) 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US7348982B2 (en) * 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8510657B2 (en) 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
US7750924B2 (en) * 2005-03-15 2010-07-06 Microsoft Corporation Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US7747944B2 (en) 2005-06-30 2010-06-29 Microsoft Corporation Semantically applying style transformation to objects in a graphic
US20070016456A1 (en) * 2005-07-12 2007-01-18 International Business Machines Corporation System, method and program product for reporting status of contract performance or a process
US8438486B2 (en) * 2006-02-09 2013-05-07 Microsoft Corporation Automatically converting text to business graphics
US7949948B2 (en) * 2007-05-09 2011-05-24 Microsoft Corporation Constraint and rule-based page layout
US8516365B2 (en) 2007-06-15 2013-08-20 Microsoft Corporation Dynamically laying out images and associated text using pre-defined layouts
US8037410B2 (en) * 2008-10-27 2011-10-11 Yahoo! Inc. Method and apparatus for estimating the size of rendered text
US9405449B2 (en) * 2010-01-14 2016-08-02 Microsoft Technology Licensing, Llc Layout constraint manipulation via user gesture recognition
US8799325B2 (en) * 2010-03-12 2014-08-05 Microsoft Corporation Reordering nodes in a hierarchical structure
US20110221764A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation Laying out and cropping images in pre-defined layouts
TW201214152A (en) * 2010-09-29 2012-04-01 Hon Hai Prec Ind Co Ltd System and method for multi-line text view with auto wrap and cutting
US9213681B2 (en) * 2010-10-08 2015-12-15 Adobe Systems, Incorporated Method and system to modify source content to fit into a target display area in a browser
US8869026B2 (en) * 2010-10-29 2014-10-21 Konica Minolta Laboratory U.S.A., Inc. Using a layout engine to display an overflowed textbox
US9424584B2 (en) * 2011-06-28 2016-08-23 Rovi Guides, Inc. Systems and methods for generating and displaying user preference tag clouds
US20130084999A1 (en) * 2011-10-04 2013-04-04 Jason Churchill Costa Game centered on building nontrivial computer programs
US20140006942A1 (en) * 2012-06-29 2014-01-02 Google Inc. Computing an Optimal Font-Size for Content Item Text
US9361278B2 (en) 2013-03-15 2016-06-07 Facebook, Inc. Overlaying photographs with text on a social networking system
US10275142B2 (en) 2014-10-29 2019-04-30 International Business Machines Corporation Managing content displayed on a touch screen enabled device
CN106649245B (zh) * 2015-10-30 2021-08-17 方正国际软件(北京)有限公司 一种页面布局方法及装置
US10937127B2 (en) 2018-08-13 2021-03-02 International Business Machines Corporation Methods and systems for managing text in rendered images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507289A (ja) 1997-06-27 2002-03-05 マイクロソフト コーポレイション レイアウトサービスライブラリを用いたグリフの描画方法
JP2002507301A (ja) 1997-06-27 2002-03-05 マイクロソフト コーポレイション レイアウトサービスライブラリを用いたパラグラフのレイアウト方法
JP2003044464A (ja) 2001-07-31 2003-02-14 Seiko Epson Corp レイアウト装置及びレイアウトプログラム

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214755A (en) * 1989-04-25 1993-05-25 Microsoft Corporation Document processing method and system
JPH03177964A (ja) 1989-12-07 1991-08-01 Toshiba Corp 文書整形装置
US5649216A (en) * 1991-05-17 1997-07-15 Joseph S. Sieber Method and apparatus for automated layout of text and graphic elements
CA2048039A1 (en) 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5426729A (en) * 1992-06-24 1995-06-20 Microsoft Corporation Method and system for nonuniformly adjusting a predefined shape
JPH08506670A (ja) * 1993-01-22 1996-07-16 タリジェント インコーポレイテッド フレキシブル・ネットワーク・システム
JP2620576B2 (ja) * 1993-04-15 1997-06-18 インターナショナル・ビジネス・マシーンズ・コーポレイション ユーザが要求したフォントに従ってグラフィカル・ユーザ・インターフェースを調節する方法及びシステム
US5909220A (en) * 1993-05-10 1999-06-01 Sandow; Robin Interactive computerized image coloring systems and methods for processing combinations of color with automated subroutines and color standardization for diverse color systems
US5596691A (en) 1994-06-15 1997-01-21 Claris Corporation Computer system and method for manipulating the display of drawings
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5669006A (en) * 1995-02-23 1997-09-16 International Business Machines Corporation Method for automatically obtaining spatial layout for multimedia presentations
US5619631A (en) * 1995-06-07 1997-04-08 Binaryblitz Method and apparatus for data alteration by manipulation of representational graphs
JPH09109351A (ja) * 1995-10-16 1997-04-28 Toppan Printing Co Ltd 表示情報レイアウト装置
US6173286B1 (en) * 1996-02-29 2001-01-09 Nth Degree Software, Inc. Computer-implemented optimization of publication layouts
US5818447A (en) * 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US6057858A (en) * 1996-08-07 2000-05-02 Desrosiers; John J. Multiple media fonts
US5903902A (en) * 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US5956737A (en) * 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US5973692A (en) * 1997-03-10 1999-10-26 Knowlton; Kenneth Charles System for the capture and indexing of graphical representations of files, information sources and the like
US6289502B1 (en) * 1997-09-26 2001-09-11 Massachusetts Institute Of Technology Model-based software design and validation
US6204859B1 (en) * 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
JP3377419B2 (ja) * 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令列生成方法及び装置、変換方法、及びコンピュータ
US6289505B1 (en) * 1997-11-18 2001-09-11 Sun Microsystems, Inc. Method, apparatus and computer programmed product for binary re-optimization using a high level language compiler
US6081816A (en) * 1998-03-18 2000-06-27 Microsoft Corporation Method for placing text around polygons and other constraints
US6189132B1 (en) * 1998-04-09 2001-02-13 International Business Machines Corporation Design rule correction system and method
US6256650B1 (en) * 1998-05-18 2001-07-03 Microsoft Corporation Method and system for automatically causing editable text to substantially occupy a text frame
US6301704B1 (en) * 1998-06-16 2001-10-09 Silicon Graphics, Inc. Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization
US6405225B1 (en) * 1998-06-17 2002-06-11 Microsoft Corporation Integrating email functionality into a word processor by incorporating an email GUI within the word processor
US6166738A (en) * 1998-09-14 2000-12-26 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objects
US6305012B1 (en) * 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
US6308322B1 (en) * 1999-04-06 2001-10-23 Hewlett-Packard Company Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints
US6667750B1 (en) * 1999-07-30 2003-12-23 Curl Corporation Multiple pass layout of graphical objects with elastics
US6826727B1 (en) 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US7246316B2 (en) * 1999-11-30 2007-07-17 Siebel Systems, Inc. Methods and apparatus for automatically generating presentations
EP1111543A3 (en) 1999-12-22 2002-11-27 Adobe Systems, Inc. Method and apparatus for painting groups of objects
US7055095B1 (en) * 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US20010051962A1 (en) * 2000-06-08 2001-12-13 Robert Plotkin Presentation customization
US20020111969A1 (en) * 2000-09-28 2002-08-15 Halstead Robert H. System and method for processing graphical objects for layout using an elastic difference operation
US20020065852A1 (en) 2000-11-30 2002-05-30 Matt Hendrickson Online guided resume creation system that allows dynamic style formatting
US6944830B2 (en) * 2000-12-21 2005-09-13 Xerox Corporation System and method for browsing hierarchically based node-link structures based on an estimated degree of interest
US20040205602A1 (en) * 2001-07-25 2004-10-14 Douglas Croeni Page layout design using geometric interference schema
AUPR962001A0 (en) 2001-12-19 2002-01-24 Redbank Manor Pty Ltd Document display system and method
US7107525B2 (en) * 2002-07-23 2006-09-12 Xerox Corporation Method for constraint-based document generation
US7945846B2 (en) * 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
AU2002952711A0 (en) 2002-11-18 2002-11-28 Typefi Systems Pty Ltd A method of formatting documents
CA2414047A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
TW562221U (en) 2002-12-27 2003-11-11 Hon Hai Prec Ind Co Ltd Mounting device for disk drive
US20040133854A1 (en) * 2003-01-08 2004-07-08 Black Karl S. Persistent document object model
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
US7339598B2 (en) * 2003-07-11 2008-03-04 Vistaprint Technologies Limited System and method for automated product design
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
US20050091584A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Methods for applying styles to visual aspects of user interface elements
US7178102B1 (en) 2003-12-09 2007-02-13 Microsoft Corporation Representing latent data in an extensible markup language document
US7395510B2 (en) * 2003-12-16 2008-07-01 Hewlett-Packard Development Company, L.P. Method of, and system for, adjusting a document configuration
US7536048B2 (en) * 2004-01-15 2009-05-19 Xerox Corporation Method and apparatus for automatically determining image foreground color
US20050289466A1 (en) * 2004-06-24 2005-12-29 Kaihu Chen Multimedia authoring method and system using bi-level theme templates
US20060064642A1 (en) * 2004-09-22 2006-03-23 Edurite Technologies Pvt. Ltd. Seamless presentation integrator
US7348982B2 (en) * 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8510657B2 (en) * 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
US7750924B2 (en) * 2005-03-15 2010-07-06 Microsoft Corporation Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US20060277476A1 (en) 2005-06-02 2006-12-07 Hsuan-Cheng Lai Method and system for dynamic generation of graphical content using a markup language
US7555711B2 (en) * 2005-06-24 2009-06-30 Hewlett-Packard Development Company, L.P. Generating a text layout boundary from a text block in an electronic document
US7747944B2 (en) 2005-06-30 2010-06-29 Microsoft Corporation Semantically applying style transformation to objects in a graphic
US7423646B2 (en) * 2005-11-08 2008-09-09 Microsoft Corporation Smart shape insert
US8042065B2 (en) * 2005-11-17 2011-10-18 Microsoft Corporation Smart copy/paste of graphical nodes
US7949948B2 (en) * 2007-05-09 2011-05-24 Microsoft Corporation Constraint and rule-based page layout
US8225278B2 (en) * 2007-05-14 2012-07-17 International Business Machines Corporation Method of visualizing modifications of a hierarchical state diagram
US8479218B2 (en) * 2007-07-09 2013-07-02 National Instruments Corporation Automatically arranging objects in a graphical program block diagram
US8826174B2 (en) * 2008-06-27 2014-09-02 Microsoft Corporation Using visual landmarks to organize diagrams

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507289A (ja) 1997-06-27 2002-03-05 マイクロソフト コーポレイション レイアウトサービスライブラリを用いたグリフの描画方法
JP2002507301A (ja) 1997-06-27 2002-03-05 マイクロソフト コーポレイション レイアウトサービスライブラリを用いたパラグラフのレイアウト方法
JP2003044464A (ja) 2001-07-31 2003-02-14 Seiko Epson Corp レイアウト装置及びレイアウトプログラム

Also Published As

Publication number Publication date
CN1834903B (zh) 2010-06-02
US20060212801A1 (en) 2006-09-21
EP1703417A2 (en) 2006-09-20
JP2006260560A (ja) 2006-09-28
KR20060101218A (ko) 2006-09-22
JP5336569B2 (ja) 2013-11-06
EP1703417A3 (en) 2009-01-14
CN1834903A (zh) 2006-09-20
US7743325B2 (en) 2010-06-22
JP2012104117A (ja) 2012-05-31

Similar Documents

Publication Publication Date Title
KR101176659B1 (ko) 텍스트를 그래픽 내의 형상에 맞추기 위한 방법 및 컴퓨터판독가능 매체
US10319125B2 (en) Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8442998B2 (en) Storage of a document using multiple representations
KR101312867B1 (ko) 사용자 인터페이스를 위한 표시 기반 확장성
US7750924B2 (en) Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US7596752B2 (en) Delaying optimal paragraph layout during editing
AU2012207560A1 (en) Storage of a document using multiple representations
JP2005228344A (ja) 電子文書に含まれる数値データを視覚的に目立たせる方法および装置
US7480861B2 (en) System and method for converting between text format and outline format
JP4303079B2 (ja) テキストフォーマッティングまたはマークアップ言語フォーマッティングとアウトライン構造との間の変換のためのシステムおよび方法
WO2006001392A1 (ja) 文書処理方法および装置
US20230289527A1 (en) Convergence of document state and application state

Legal Events

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

Payment date: 20150730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 8