KR100721496B1 - 레이아웃 제어 방법 및 레이아웃 제어 장치 - Google Patents

레이아웃 제어 방법 및 레이아웃 제어 장치 Download PDF

Info

Publication number
KR100721496B1
KR100721496B1 KR1020050008248A KR20050008248A KR100721496B1 KR 100721496 B1 KR100721496 B1 KR 100721496B1 KR 1020050008248 A KR1020050008248 A KR 1020050008248A KR 20050008248 A KR20050008248 A KR 20050008248A KR 100721496 B1 KR100721496 B1 KR 100721496B1
Authority
KR
South Korea
Prior art keywords
container
link
partial display
layout
containers
Prior art date
Application number
KR1020050008248A
Other languages
English (en)
Other versions
KR20060042891A (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 KR20060042891A publication Critical patent/KR20060042891A/ko
Application granted granted Critical
Publication of KR100721496B1 publication Critical patent/KR100721496B1/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23DPLANING; SLOTTING; SHEARING; BROACHING; SAWING; FILING; SCRAPING; LIKE OPERATIONS FOR WORKING METAL BY REMOVING MATERIAL, NOT OTHERWISE PROVIDED FOR
    • B23D35/00Tools for shearing machines or shearing devices; Holders or chucks for shearing tools
    • B23D35/002Means for mounting the cutting members
    • B23D35/004Means for mounting the cutting members for circular cutting members
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23DPLANING; SLOTTING; SHEARING; BROACHING; SAWING; FILING; SCRAPING; LIKE OPERATIONS FOR WORKING METAL BY REMOVING MATERIAL, NOT OTHERWISE PROVIDED FOR
    • B23D19/00Shearing machines or shearing devices cutting by rotary discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Document Processing Apparatus (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

한번의 조작으로 즉시 복수의 콘테이너들간에 링크를 설정할 수 있도록 함으로써 효율적인 사용자 조작을 구현한다. 본 발명의 레이아웃 제어 방법은, 할당된 데이터를 수신하고, 상기 데이터를 페이지상에 레이아웃하는 부분 표시 영역을 서로 연결하는 링크를 상기 부분 표시 영역간에 설정하여, 상기 부분 표시 영역에 할당된 데이터에 기초하여 각각의 상기 부분 표시 영역 각각의 위치를 조정하는 레이아웃 제어 방법이며, 상기 복수의 부분 표시 영역에 대하여 복수의 링크가 설정되고; 복수의 상기 부분 표시 영역이 지정되며; 상기 지정된 부분 표시 영역 각각의 위치 정보가 취득되며; 복수의 링크 설정이 지시된 경우, 상기 취득된 위치 정보에 기초하여, 지정된 복수의 부분 표시 영역에 대하여 복수의 링크가 설정된다.
콘테이너, 사용자 조작, 부분 표시 영역, 위치 정보, 링크 설정

Description

레이아웃 제어 방법 및 레이아웃 제어 장치{LAYOUT CONTROL METHOD AND LAYOUT CONTROL APPARATUS}
도 1a는 본 발명의 실시 형태에 따른 컴퓨터 시스템의 구성을 나타내는 블록도.
도 1b는 호스트 컴퓨터의 구체적인 구성을 설명하는 블록도.
도 2는 레이아웃 엔진 모듈을 호스트 컴퓨터(101) 외에 엔진 서버(227)에도 레이아웃 엔진(225)을 설치한 구성을 나타내는 블록도.
도 3은 메뉴 바, 툴 바, 작업 영역, 플로팅 팔레트(floating palette)를 포함하는 사용자 인터페이스 윈도우를 도시하는 도면.
도 4는 콘테이너간의 링크, 앵커, 및 슬라이더를 갖는 전형적인 콘테이너를 도시하는 도면.
도 5a는 콘테이너를 구성하는 변에 대한 룰을 예시적으로 설명하는 도면.
도 5b는 콘테이너를 구성하는 변에 대한 룰을 예시적으로 설명하는 도면.
도 5c는 콘테이너를 구성하는 변에 대한 룰을 예시적으로 설명하는 도면.
도 5d는 콘테이너를 구성하는 변에 대한 룰을 예시적으로 설명하는 도면.
도 6은 링크 설정 방법을 도시하는 흐름도.
도 7a 내지 도 7c는 링크 생성 시의 사용자 인터페이스 윈도우의 표시예를 나타내는 도면.
도 8은 레이아웃 계산의 처리 흐름을 설명하는 흐름도.
도 9는 레이아웃 계산의 상세한 처리 흐름을 설명하는 흐름도.
도 10a 내지 도 10c는 도 9의 흐름에 대응하는 사용자 인터페이스 윈도우의 표시예를 나타내는 도면.
도 11은 레이아웃 계산 시에 있어서의 콘테이너의 세트에 대하여 설명한 도면.
도 12a 내지 도 12b는 링크의 자동 설정에 관한 UI 윈도우를 예시하는 도면.
도 13은 복수의 콘테이너 F, G, H가 선택되는 UI 윈도우의 예를 나타내는 도면.
도 14a는 도 13에서 설명된 조작에 의해 콘테이너 F, G, H가 선택되는 것을 사용자에게 보여주기 위해 UI 윈도우가 전환되는 상태를 도시하는 도면.
도 14b는 마우스 포인터(1303)로 콘테이너를 지정시 클릭함으로써 복수의 콘테이너가 선택되는 예를 나타내는 도면.
도 15는 선택된 복수의 콘테이너 F, G, H 간에 링크가 일괄로 설정된 상태를 도시하는 도면.
도 16은 링크의 자동 설정의 전체적인 흐름을 설명하는 흐름도.
도 17은 일괄 링크 생성 처리의 흐름을 개략적으로 설명하는 흐름도.
도 18은 콘테이너의 위치 정보를 취득하는 처리의 흐름을 설명하는 흐름도.
도 19a는 X 방향의 링크의 생성 처리 흐름을 설명하는 흐름도.
도 19b는 X 방향의 링크의 생성 처리 흐름을 설명하는 흐름도.
도 20은 도 19b에서의 단계 S1914의 링크 설정 처리 흐름을 설명하는 흐름도.
도 21a는 X 방향의 링크 설정을 설명하는 도면.
도 21b는 X 방향의 링크 설정을 설명하는 도면.
도 22a는 Y 방향의 링크의 생성 처리 흐름을 설명하는 흐름도.
도 22b는 Y 방향의 링크의 생성 처리 흐름을 설명하는 흐름도.
도 23은 도 22b의 단계 S2214에서의 링크 설정 처리의 흐름을 설명하는 흐름도.
도 24a는 링크 생성 상태를 도시하는 UI 윈도우의 예를 나타내는 도면.
도 24b는 링크 생성 상태를 도시하는 UI 윈도우의 예를 나타내는 도면.
도 25는 앵커의 설정에 관한 전체적인 처리의 흐름을 설명하는 흐름도.
도 26은 도 25에 있어서의 단계 S2501의 좌측 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 27은 콘테이너의 좌측 변의 로크 상태를 도시하는 도면.
도 28은 도 25에 있어서의 단계 S2502의 우측 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 29는 콘테이너의 우측 변의 로크 상태를 도시하는 도면.
도 30은 도 25에 있어서의 단계 S2503에서 상부 변(upper side)을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 31은 콘테이너의 상부 변의 로크 상태를 도시하는 도면.
도 32는 도 25에 있어서의 단계 S2504에서 하부 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 33은 콘테이너의 하부 변의 로크 상태를 도시하는 도면.
도 34는 앵커의 설정 상태를 도시하는 도면.
도 35는 최대 및 최소값을 갖는 가변 링크를 설정하기 위한 처리의 흐름을 설명하는 흐름도.
도 36은 최대 및 최소값을 갖는 가변 링크를 설정하기 위한 처리의 흐름을 설명하는 흐름도.
도 37은 사용자가 지정한 범위에 있는 변을 로크하기 위한 처리의 전체적인 흐름을 설명하는 흐름도.
도 38은 도 37에 있어서의 단계 S3702의 콘테이너의 좌측 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 39는 콘테이너의 좌측 변의 로크 상태를 도시하는 도면.
도 40은 도 37에 있어서의 단계 S3703의 콘테이너의 우측 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 41은 콘테이너의 우측 변의 로크 상태를 도시하는 도면.
도 42는 도 37에 있어서의 단계 S3704의 콘테이너의 상부 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 43은 콘테이너의 상부 변의 로크 상태를 도시하는 도면.
도 44는 도 37에 있어서의 단계 S3705의 콘테이너의 하부 변을 로크하기 위한 처리의 흐름을 구체적으로 설명하는 흐름도.
도 45는 콘테이너의 하부 변의 로크 상태를 도시하는 도면.
도 46은 자동 레이아웃 시스템에 있어서의 전형적인 가변 링크에 의한 콘테이너의 배치를 설명하는 도면.
도 47은 자동 레이아웃 시스템에 있어서의 가변 링크를 설정하는 플로우를 나타내는 흐름도.
도 48은 링크(4609)의 정보가 세트되어 있는 다이얼로그 화면의 예를 나타내는 도면.
도 49는 자동 레이아웃 시스템에 있어서의 고정 링크에 의한 레이아웃 결과를 나타내는 도면.
도 50은 자동 레이아웃 시스템에 있어서의 가변 링크에 의한 레이아웃 결과를 나타내는 도면.
도 51은 우선 순위 설정에 대한 흐름을 설명하는 흐름도.
도 52는 일괄 설정에 의해 생성된 링크와 그 콘테이너를 도시하는 도면.
도 53은 자동 우선 순위 설정의 다이얼로그 박스의 표시예를 도시하는 도면.
도 54a는 X 방향을 우선하여 우선 순위가 설정되기 전의 콘테이너와 링크를 도시하는 도면.
도 54b는 X 방향을 우선하여 우선 순위가 설정된 후의 콘테이너와 링크를 도시하는 도면.
도 55a는 Y 방향을 우선하여 우선 순위가 설정되기 전의 콘테이너와 링크를 도시하는 도면.
도 55b는 Y 방향을 우선하여 우선 순위가 설정된 후의 콘테이너와 링크를 도시하는 도면.
도 56은 우선 순위의 설정 처리 흐름을 설명하는 흐름도.
도 57은 각각의 콘테이너 세트(set;집합)를 단위로 하여 우선 순위를 설정하는 내용을 설명하는 도면.
도 58은 우선 순위를 설정하는 다이얼로그 사용자 인터페이스(UI) 윈도우의 예를 나타내는 도면.
도 59a 및 도 59b는 콘테이너에 설정될 우선 순위를 변경하는 절차를 설명하는 도면.
도 60은 우선 순위 설정 모드로 모드를 변경하기 위한 팝업 메뉴의 예를 나타내는 도면.
도 61은 우선 순위의 설정을 사용자에게 제시하는 UI 윈도우의 예를 나타내는 도면.
도 62는 우선 순위의 설정을 사용자에게 제시하는 UI 윈도우의 예를 나타내는 도면.
도 63은 우선 순위의 설정을 사용자에게 제시하는 UI 윈도우의 예를 나타내는 도면.
도 64는 우선 순위가 설정된 콘테이너의 레이아웃의 계산 처리의 흐름을 설 명하는 흐름도.
도 65는 레이아웃의 우선 순위가 콘테이너에 설정되어 있는 경우의 레이아웃 계산 처리의 흐름을 설명하는 흐름도.
도 66은 도 65에 도시된 레이아웃 계산 처리로 표시되는 UI 윈도우의 예를 나타내는 도면.
도 67은 도 65에 도시된 레이아웃 계산 처리로 표시되는 UI 윈도우의 예를 나타내는 도면.
도 68은 최소 거리를 갖고 있지 않은 콘테이너에 대해서도 링크의 자동 설정이 수행되는 경우에 있어서의 처리 흐름을 설명하는 흐름도.
도 69는 링크의 자동 설정 방법을 선택하기 위한 UI 윈도우의 예를 나타내는 도면.
도 70a 및 도 70b는 최소 거리를 갖고 있지 않은 콘테이너에 대해 링크의 자동 설정 방법이 선택되는 경우의 링크 생성 처리 흐름을 설명하는 흐름도.
도 71은 도 70a 및 도 70b에서의 처리에 의해 링크가 X 방향으로 설정되는 경우를 설명하는 도면.
도 72는 최소 거리를 갖고 있지 않은 콘테이너에 대해 링크의 자동 설정 방법이 선택되는 경우에 있어서의 상세한 예를 보여주는 도면.
도 73은 링크의 자동 설정 처리시에 링크 생성 방향을 선택하기 위한 UI를 보여주는 도면.
<도면의 주요 부분에 대한 부호의 설명>
101 : 호스트 컴퓨터
103 : 사용자 인터페이스 모듈
105 : 레이아웃 엔진 모듈
119 : 데이터베이스
121 : 레이아웃 편집 어플리케이션 프로그램
132 : 키보드
133 : 마우스
143 : I/O 인터페이스
144 : 디스플레이 장치
301 : 어플리케이션 윈도우
303 : 툴 바
406 : 링크 툴 버튼
407, 408 : 콘테이너
409 : 앵커 아이콘
410 : 고정되어 있지 않은 변
412 : 링크
본 발명은 텍스트나 이미지를 포함하는 문서의 생성, 편집, 그리고 인쇄를 위한 레이아웃 제어 기술에 관한 것이며, 보다 구체적으로는, 가변 데이터 문서의 생성, 편집, 그리고 인쇄에 관한 것이다.
최근, 상품의 다품종화로 인해 상품 수명 주기가 짧아지고 있고, 인터넷을 이용하는 소비자들에 대한 고객 지향형 서비스(customization service orientation)가 강화되고 있기 때문에, CRM(Customer Relationship Management) 및 1 대 1(one-to-one) 마케팅의 필요성이 주목받고 있다. 이들 방법은 고객 만족도를 높이고, 새로운 고객을 확보하여 조직화(networking)하는 데에 목표가 있는 것이다.
1 대 1 마케팅은 데이터베이스 마케팅의 일종이다. 고객의 연령, 성별, 취미, 기호, 구매 이력 등의 개인 속성 정보가 데이터베이스로서 저장된다. 정보의 내용이 분석되고, 고객의 요구에 부합하는 제안이 제시된다. 그 대표적인 방법으로는 가변 인쇄(variable print)를 들 수 있다. 최근 DTP(DeskTop Publishing) 기술의 진전과 디지털 인쇄 장치의 보급에 수반하여, 문서를 고객마다 커스터마이즈하여 출력하는 가변 인쇄 시스템이 개발되고 있다. 이러한 시스템은 고객마다 다른 정보량의 콘텐츠를 최적으로 레이아웃하고 표시하는 것이 요구되고 있다.
종래의 가변 인쇄 시스템은, 문서상에 정보를 표시하는 영역으로서 콘테이너(문서폼으로는 필드 영역이라고도 함) 등을 레이아웃한다. 데이터베이스와 콘테이너는 서로 연관되어 레이아웃 표시가 달성된다.
그러나, 텍스트 또는 이미지가 접착되는 부분 표시 영역인 각각의 콘테이너는 고정된 사이즈를 갖는다. 이러한 이유로, 데이터베이스 내의 데이터가 콘테이너에 삽입되는 경우, 데이터량이 콘테이너 사이즈보다 많으면 텍스트의 오버랩(text overlap)이나 이미지의 클립핑(image clipping)이 발생한다. 또한, 데이터량이 콘테이너 사이즈보다 작으면 콘테이너 내에 빈 공간(space)이 형성된다. 따라서, 어느 경우에든 표시하고자 하는 텍스트나 이미지의 정보량에 따른 최적의 레이아웃 표시는 실현할 수 없었다.
이러한 문제를 해결하기 위해, 정보량에 따라 콘테이너 사이즈를 변화시키는 자동 레이아웃 시스템이 제안되고 있다. 이 자동 레이아웃 시스템은 텍스트 또는 이미지의 콘테이너 사이즈를 가변으로 설정하는 것이 가능하다. 일부 자동 레이아웃 시스템의 경우, 콘테이너의 사이즈를 가변으로 설정하고, 삽입되는 데이터량에 따라 콘테이너의 사이즈를 크게 하도록 변경할 수 있는 것이 있다. 또 다른 방식으로는, 고정 콘테이너 사이즈보다 큰 텍스트 데이터가 삽입되는 경우, 텍스트의 폰트 사이즈를 축소하여, 콘테이너 내에 전체 텍스트를 표시하는 기술도 존재한다.
그러나, 콘테이너의 사이즈를 크게 하는 경우에는, 문서상의 또 다른 콘테이너에 겹쳐지는 문제가 발생한다. 또한 폰트 사이즈를 조절하는 경우에는 텍스트의 양이 큰 경우, 폰트 사이즈가 지나치게 작아진다고 하는 문제도 발생한다. 이러한 문제를 해결하기 위한 또 다른 자동 레이아웃 기술이 일본 특허공개 No.11-316792호의 "레이아웃 설계 장치"에 개시되고 있다. 이 기술에서는 어느 콘테이너의 사이즈가 커질 경우, 이 콘테이너에 인접하는 또 다른 콘테이너의 사이즈를 작게 하는 것이 개시되어 있다.
그러나, 전술한 자동 레이아웃 시스템에서는, 각 콘텐츠에 접착되는 데이터에 맞춰 콘테이너의 일 예인 가변 표(variable table)의 행수를 늘리고, 그것에 따라서 나머지 콘테이너가 이동하는 위치 정렬 기술에 대해서만 고려하고 있다. 즉, 이 기술은 가변표의 행수가 증가하면 그만큼 다른 콘테이너가 이동하고, 페이지 배출(page ejection)이 발생하는 문서의 레이아웃 디자인을 생성하기 위한 것이다. 그러나, 전술한 1 대 1 마케팅에서는, 정해진 용지 사이즈의 페이지에 사용자가 원하는 수의 콘테이너를 레이아웃하는 것이 요구되고 있다. 즉, 단순한 가변 표를 이용하는 종래 기술로는 이러한 요구에 부응할 수 없다. 따라서, 각각의 콘테이너에 데이터를 유입시켜, 각 콘테이너의 사이즈를 가변으로 하면서 정해진 용지 사이즈의 페이지에 필요한 수의 콘테이너를 동적으로 배치하는 자동 레이아웃 시스템의 수요가 있다. 이러한 자동 레이아웃 시스템에서는, 전체 콘테이너의 사이즈가 가변이기 때문에, 콘테이너 사이즈를 서로 변화시키면서 레이아웃을 동적으로 변화시키지 않으면 안 된다. 레이아웃을 동적으로 변화시키기 위해서는, 각 콘테이너 사이에 연관관계(associations)(이하, 링크라 함)를 설정할 필요가 있다. 그러나, 링크는 각각의 콘테이너 쌍에 대해 설정되어야 하므로, 사용자의 조작 부담이 커지게 된다. 즉, 복수의 콘테이너를 레이아웃하고, 각각의 콘테이너를 동적으로 레이아웃하도록 설정하기 위해서는, 콘테이너 사이에 링크를 설정해야만 한다. 콘테이너의 수가 증가하면, 그 링크의 수 또한 증가하게 되어, 링크를 하나하나 설정하는 사용자의 조작 부담은 콘테이너의 수에 비례하여 커지게 된다.
본 발명은 전술한 종래 기술에서의 문제점을 감안하여 이루어진 것이며, 복수의 콘테이너 사이에 한번의 조작으로 링크를 일괄 설정할 수 있도록 함으로써 효율이 좋은 조작을 실현하는 것을 목적으로 한다.
본 발명의 전술한 목적은 다음의 레이아웃 제어 방법에 의해 달성된다. 즉, 본 발명에 따른 레이아웃 제어 방법은, 할당된 데이터를 수신하고 상기 데이터를 페이지 상에 레이아웃하는 부분 표시 영역을 서로 연결하는 링크를 상기 부분 표시 영역간에 설정하여, 상기 부분 표시 영역에 할당된 데이터에 기초하여 각각의 부분 표시 영역의 위치를 조정하는 레이아웃 제어 방법이다. 이 방법은, 상기 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하기 위한 지시 단계와; 복수의 상기 부분 표시 영역을 지정하는 지정 단계와; 상기 지정된 각각의 부분 표시 영역의 위치 정보를 취득하는 위치 정보 취득 단계; 및 상기 지시 단계에서 복수의 링크 설정이 지시된 경우, 상기 취득한 위치 정보에 기초하여, 상기 지정 단계에서 지정된 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하는 설정 단계를 포함하고 있다.
본 발명의 전술한 목적은 다음의 제어 장치에 의해서도 달성된다. 즉, 본 발명에 따른 제어 장치는, 할당된 데이터를 수신하고, 상기 데이터를 페이지상에 레이아웃하는 부분 표시 영역을 서로 연결하는 링크를 상기 부분 표시 영역간에 설정하여, 상기 부분 표시 영역에 할당된 데이터에 기초하여 각각의 부분 표시 영역의 위치를 조정하는 레이아웃 제어 장치이다. 이 제어 장치는, 상기 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하기 위한 지시 수단과; 복수의 상기 부분 표시 영역을 지정하는 지정 수단과; 상기 지정된 상기 부분 표시 영역 각각의 위치 정보를 취득하는 위치 정보 취득 수단; 및 상기 지시 수단에 의해 복수 링크 설정 이 지시된 경우, 상기 취득된 위치 정보에 기초하여, 상기 지정 수단에 의해 지정된 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하는 설정 수단을 포함하고 있다.
본 발명의 전술한 목적은 레이아웃 제어 프로그램에 의해서도 달성된다. 본 발명의 레이아웃 제어 프로그램은 할당된 데이터를 수신하고, 상기 데이터를 페이지상에 레이아웃하는 부분 표시 영역을 서로 연결하는 링크를 상기 부분 표시 영역간에 설정하여, 상기 부분 표시 영역에 할당된 데이터에 기초하여 각각의 부분 표시 영역의 위치를 조정하는 레이아웃 제어를 컴퓨터에 실행시키는 레이아웃제어 프로그램이다. 이 레이아웃 제어 프로그램은, 상기 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하기 위한 지시 모듈과; 복수의 상기 부분 표시 영역을 지정하는 지정 모듈과; 상기 지정된 상기 각각의 부분 표시 영역의 위치 정보를 취득하는 위치 정보 취득 모듈과; 상기 지시 모듈에 의해 복수의 링크 설정이 지시된 경우, 상기 취득된 위치 정보에 기초하여, 상기 지정 모듈에 의해 지정된 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하는 설정 모듈을 구비하고 있다.
본 발명의 기타 특징과 이점들은 첨부 도면을 참조한 다음의 설명으로부터 보다 명확해질 것이며, 전체 도면을 통해 동일한 참조부호는 동일 혹은 유사한 부분을 가리키는 것이다.
<실시예>
이제 본 발명의 바람직한 실시예가 첨부 도면에 따라서 상세하게 기술될 것이다.
(시스템 구성)
도 1a는 콘테이너 사이즈를 가변적으로 설정함으로써 문서를 인쇄하는 시스템(100)을 도시하고 있다. 이 시스템에서의 콘테이너 사이즈 제어, 콘테이너 간의 링크 설정은 도 1b를 참조하여 상세히 설명되는 호스트 컴퓨터(101)의 제어 하에 실행된다. 도 6을 참조하여 기술되는 프로세스는 레이아웃 제어 장치로서 역할을 수행하는 호스트 컴퓨터(101) 내에서 실행되어, 시스템(100) 상에서 실행가능하게 되는 레이아웃 편집 어플리케이션 프로그램(121)(본 발명의 레이아웃 제어 프로그램)과같이 소프트웨어의 전체 또는 그 일부로 실행된다. 특히 레이아웃 편집 또는 인쇄 단계는 호스트 컴퓨터(101)에 의한 소프트웨어에 의해 실행된다.
소프트웨어는 예를 들어, 이하에 기술될 저장 장치를 포함하는 컴퓨터-판독가능 매체에 저장된다. 소프트웨어는 컴퓨터-판독가능 매체로부터 호스트 컴퓨터에 로드되어, 실행된다. 그 소프트웨어, 매체에 기록된 컴퓨터 프로그램, 또는 그 프로그램을 저장하는 컴퓨터-판독가능 매체는, 컴퓨터와 협력하여 문서의 레이아웃 편집이나 가변 데이터 인쇄에 필요한 연산 처리 또는 디스플레이 제어, 레이아웃 제어, 콘텐츠에 관한 정보 처리를 실행하기 위한 수단으로서 컴퓨터의 기능을 특정한다.
호스트 컴퓨터(101)는 키보드(132) 또는 마우스(133)와 같은 포인팅 디바이스 등의 입력 장치와 디스플레이 장치(144) 및 상황에 따라서는 로컬 프린터(145)를 포함하는 출력 장치에 접속된다. 입출력(I/O) 인터페이스(138)는 호스트 컴퓨터(101)를 네트워크(107)에 접속시켜, 시스템(100)이 다른 컴퓨터 장치(예를 들면, 데이터베이스 서버(117))에 접속될 수 있도록 한다. 그 네트워크(107)의 통상적인 예는 근거리 통신 네트워크(LAN) 및 광역 네트워크(WAN)이다.
호스트 컴퓨터(101)는 적어도 하나의 프로세서 유닛(135), 예를 들면 반도체의 랜덤 억세스 메모리(RAM) 또는 리드 온리 메모리(ROM)를 포함하는 메모리 유닛(136), 비디오 인터페이스(137)를 포함하는 입출력(I/O) 인터페이스, 및 키보드(132) 및 마우스(133)용의 I/O 인터페이스(143)를 포함한다. 저장 장치(139)는 하드 디스크 드라이브(140) 및 플로피 디스크 드라이브(141)를 포함한다. 도 1b에는 도시되어 있지 않지만, 자기 테이프 드라이브 역시 저장 장치로서 사용할 수 있다.
CD-ROM 드라이브(142)는 불휘발성 데이터 소스로서 제공된다. 통상적으로, 호스트 컴퓨터(101)는 GNU/LINUX 또는 Microsoft Windows와 같은 운영체제, 또는 통상적으로는 운영체제에 따라 형성된 컴퓨터 시스템의 동작에 의해서, 상호접속 버스(134)를 통해 프로세서 유닛(135) 내지 입출력 인터페이스(143)를 이용할 수 있다. 도 1a에 도시된 호스트 컴퓨터(101)를 포함한 시스템의 예들로는 IBM-호환 PC또는 SUN의 스파크스테이션 또는 이들을 포함하고 있는 컴퓨터 시스템이 있다.
레이아웃 어플리케이션 프로그램(121)은 통상적으로 하드 디스크 드라이브(140)에 상주하며, 프로세서 유닛(135)에 의해 로드되어 실행된다. 프로그램(121)을 저장하는 저장 장치(139) 및 네트워크(107)로부터 인출된 데이터에 대해, 하드디스크 드라이브(140) 또는 메모리 유닛(136)이 따라서 사용된다. 어플리케이션 프로그램(121)이 CD-ROM 또는 플로피 디스크에 인코딩되어, 대응하는 CD-ROM 드라이브(142) 또는 FDD(141)에 의해 로드되어 사용자에게 제공된다.
어플리케이션 프로그램(121)은 네트워크(107)로부터 사용자에 의해서 설치될 수 있다. 또한 소프트웨어는, 자기 테이프, ROM, 집적 회로, 광 자기 디스크 무선 통신 또는 호스트 컴퓨터(101)와 다른 디바이스 간의 적외선 통신, PCMCIA 카드와 같은 컴퓨터-판독가능 카드, 이메일 통신, 또는 WEB 사이트 상의 기록 정보를 갖는 인터넷이나 인트라넷을 포함하는, 다른 적당한 크기의 컴퓨터-판독가능 매체로부터 호스트 컴퓨터(101) 내로 로드될 수 있다. 그러나, 이러한 컴퓨터-판독가능 매체는 단순히 관련 컴퓨터-판독가능 매체의 표준이다. 그 매체의 유형은 이러한 예들에 제한되는 것이 아니며, 임의의 다른 컴퓨터-판독가능 매체도 사용될 수 있다.
레이아웃 편집이라 명명되는 어플리케이션(121)은 가변 데이터 인쇄(VDP)를 실행하기 위한 프로그램 모듈이고, 2개의 소프트웨어 콤포넌트를 포함한다. 이들 중 하나의 모듈은, 레이아웃 엔진 모듈(105)이다. 그 레이아웃 엔진 모듈(105)은 데이터가 삽입될 부분 디스플레이 영역인 콘테이너(사각형의 범위)의 사이즈 및 위치의 제약에 따라서 데이터베이스(119)에 저장되어 있는 가변 데이터의 각각의 기록을 로드하여, 그 로드된 데이터 및 콘테이너의 제약에 기초하여, 그 로드된 데이터가 삽입되어야 하는 각각의 콘테이너의 사이즈 및 위치를 계산하는 소프트웨어 모듈이다. 레이아웃 엔진(105)이 각 부분 디스플레이 영역(콘테이너)의 사이즈 및 위치를 결정하는 어플리케이션으로서 동작하여, 프린터 드라이버(도시되지 않음)에 드로잉 정보를 출력하는 경우에, 그 프린터 드라이버는 가변 데이터 문서의 이미지드로잉 처리를 실행하여, 인쇄 데이터를 생성한다.
두번째 모듈인 사용자 인터페이스 모듈(103)은 사용자가 문서 템플릿을 생성 하도록 하여, 그 문서 템플릿 내에서 데이터 소스를 콘테이너와 연관시키는 메카니즘을 제공한다. 사용자 인터페이스 모듈(103) 및 레이아웃 엔진 모듈(105)은 통신 채널(123)을 통해 서로 통신할 수 있다. 문서 생성을 위한 데이터 소스(190)는 데이터베이스 어플리케이션을 실행하고 있는 또 다른 컴퓨터에 의해 형성된 데이터베이 서버(117) 상의 데이터베이스(119)에 저장된다. 호스트 컴퓨터(101)는 네트워크(107)와의 접속을 통해 데이터베이스 서버(117)와 통신할 수 있다. 가변 데이터 인쇄를 실행하기 위해, 레이아웃 편집 어플리케이션(121)은 호스트 컴퓨터(101) 또는 다른 컴퓨터에 의해 형성된 파일 서버(115)에 저장될 문서 템플릿을 생성한다. 또한 레이아웃 편집 어플리케이션(121)은 데이터와 통합된 문서 템플릿을 포함하는 문서를 생성한다. 그 문서는 호스트 컴퓨터(101)의 저장 장치(139) 또는 파일 서버(115)에 저장되거나, 또는 프린터(113)에 의해 직접 인쇄된다.
프린터 서버(109)는 네트워크에 직접적으로 접속되지는 않는 프린터(113)에 네트워크 기능을 제공하는 컴퓨터이다. 프린터 서버(109) 및 프린터(113)는 통상적인 통신 채널(111)을 통해 접속된다.
도 2는 레이아웃 엔진 모듈(105)이 호스트 컴퓨터(101)에 배치되는 것 외에도 레이아웃 엔진(225)이 엔진 서버(227)에 배치되는 구성을 도시하는 블럭도이다. 엔진 서버(227)는 통상의 컴퓨터에 의해 형성된다. 파일 서버(115)에 저장된 문서 템플릿은 레이아웃 엔진(225)이 인쇄 또는 다른 목적을 위해 문서를 생성하도록 하기 위해, 데이터베이스(119)에 저장된 데이터와 통합될 수 있다. 이러한 동작은 사용자 인터페이스 모듈(103)의 제어 하의, 사용자 인터페이스(UI) 윈도우를 통해 입력되어, 특정 기록만을 인쇄하도록 설정할 수 있다.
(어플리케이션 구성)
(메인 윈도우)
도 3에 도시된 어플리케이션 윈도우(301)는 동작시에 사용자 인터페이스 모듈(103)(도 1b)에 의해서 디스플레이 장치(144)에 디스플레이된다. 어플리케이션 윈도우(301)는 비-디스플레이 상태로 설정될 수 있거나, 스크린 상의 여러 위치들로 이동될 수 있는 메뉴바(302) 및 툴바(303), 마우스(133)의 위치 및 동작에 의해 위치가 이동될 수 있는 작업 영역(306), 선택의 팔레트(311) 및 커서/포인터 디바이스(313)를 갖는다. 그 어플리케이션 윈도우(301)는 이러한 컴포넌트에 의해 특징지어 진다.
공지된 기술인 메뉴바(302)는 메뉴 옵션의 층의 아래로 연장되는 많은 메뉴 아이템들(304)을 갖는다. 툴바(303)는 어플리케이션이 특정 모드에 의해 비-디스플레이 상태 또는 디스플레이 상태로 설정될 수 있는 많은 툴 버튼(305)을 갖는다. 옵션인 눈금자(308)는 작업 영역 내의 포인터, 페이지, 라인, 마진 가이드, 콘테이너 또는 오브젝트의 위치를 표시하는데 사용된다. 팔레트(311)는 가변 데이터 라이브러리와 같은 부가적인 기능을 억세스하는데 사용된다. 팔레트(311)는 이동시키거나, 리사이즈하거나, 닫기 위한 윈도우 제어 기능을 제공하는 버튼(312)을 갖는다. 팔레트(311)는 선택적으로 작업 영역의 전면에 디스플레이되거나 또는 오브젝트 뒤에 숨겨질 수 있다. 디스플레이 제어에 의해, 팔레트(311)는 단지 어플리케이션 윈도우(301) 내에만 디스플레이될 수 있거나, 아니면 어플리케이션 윈도우(301)의 외부에 부분 또는 전체가 디스플레이될 수도 있다.
툴바(303)는 적어도 사용자-선택가능 "버튼들"(403 내지 406)을 갖는다(도 4). 버튼들(403 내지 406)은 이하에 설명될 것이다.
선택 툴 버튼(403)은 콘테이너의 변(side)을 선택, 이동, 리사이즈, 락(lock)(고정), 또는 언락(unlock)하는데 사용된다. 선택 박스가 복수의 콘테이너 주위를 드래그하거나, 또는 복수의 콘테이너들이 CTRL 키를 누른 채로 선택되는 경우에, 복수의 콘테이너들이 선택될 수 있다.
이미지 콘테이너 툴 버튼(405)은 정적인 또는 가변의 이미지를 갖는 콘테이너를 생성하는데 사용된다.
텍스트 콘테이너 툴 버튼(404)은 정적인 또는 가변의 텍스트를 갖는 콘테이너를 생성하는데 사용된다.
링크 툴 버튼(406)은 콘테이너들을 서로 연관시키기 위한 링크를 생성하는데 사용된다. 이 버튼은 링크의 거리를 제어하는데에도 사용된다.
이러한 버튼들은 잘 공지되어 있는 바와 같이, 동작 상황에 따라 변화하는 아이콘으로 장착된다.
도 3에 도시된 레이아웃 편집 어플리케이션(121)의 어플리케이션 윈도우(301)에서는, 콘테이너 및 링크가 페이지 내에 레이아웃되는 경우, 기본 레이아웃이 결정될 수 있다. 기본 레이아웃이란, 가변 데이터 인쇄의 기본이 되는 레이아웃이다. 기본 레이아웃 내의 모든 콘테이너들이 고정 콘테이너인 경우에는, 모든 기록의 인쇄 결과들은 동일한 레이아웃을 갖게 된다. 기본 레이아웃 내의 콘테이 너들이 (이후에 기술될) 가변성 콘테이너인 경우에는, 각 콘테이너의 사이즈 또는 위치가 각 기록에 대해 로드되는 데이터의 양 또는 사이즈에 따라 (이후에 기술될) 제약의 범위 내에서 변동하게 된다. 레이아웃 편집 어플리케이션(121)에 의해 생성된 문서 템플릿은 어디까지나 기본 레이아웃을 결정하는데 사용된다. 가변성 콘테이너가 포함되어 있는 경우에는, 최종적인 인쇄물의 레이아웃은 로드되는 데이터에 따라서 조정된다.
(문서 템플릿)
도 3에 도시된 작업 영역(306)은 문서 템플릿의 디자인을 디스플레이 및 편집하는데 사용된다. 사용자는 전처리한 인쇄된 문서의 아웃라인 디자인 및 통합된문서가 가변 데이터의 양과 사이즈에 기초하여 어떻게 변화하는 지를 이해할 수 있다. 외부의 데이터베이스가 템플릿에 링크되어 있는 경우에는, 현재 문서의 프리뷰가 얻어질 수 있도록, 가변 텍스트 또는 이미지가 각각의 콘테이너에 디스플레이될 수 있다. 문서 구조 및 가변 데이터 콘테이너들은 커서를 콘테이너 상으로 이동시키거나 콘테이너를 선택한 경우에는 항상 디스플레이될 수 있다.
작업 영역(306)은 스크롤바(307), 옵션인 눈금자(308) 및 문서 템플릿(309)으로 특징지어 진다. 문서 템플릿(309)은 복수의 페이지의 존재를 나타낼 수 있다. 제공된 문서 템플릿의 페이지 사이즈는 공지된 기술로서 사용자에 의해 지정된다. 예를 들어, "페이지 설정"이 "파일"의 메뉴로부터 선택되어 페이지 사이즈를 설정하는 다이얼로그를 디스플레이하고, 거기서 사용자에 의해 지정된 페이지 사이즈가 반영된다. 각 문서의 실제 페이지 수는 가변 데이터에 따라서 변할 수 있다. 가변 데이터가 1 페이지 내에 맞춰질 수 없고, 기본 레이아웃에 소정의 용지 사이즈를 갖는 페이지에 콘테이너들을 맞추는 어떠한 제약도 없는 경우에는, 부가적인 페이지가 자동적으로 생성된다. 소정의 용지 사이즈를 갖는 페이지에 콘테이너를 맞추는 제약(이 제약은 이후 기술될 앵커 아이콘에 의해 설정될 수 있음)이 기본 레이아웃으로 설정되어 있는 경우에는, 각 콘테이너의 사이즈 및 위치는 그 페이지 내에서 서로에 대해 사이즈를 변화시키면서 결정되고, 삽입되는 가변 데이터는 필요에 따라 축소된다. 따라서, 레이아웃은 각 기록마다 동적으로 결정된다.
도 3에 도시된 페이지에서 파선으로 표시된 경계는 페이지 상의 인쇄 가능한 오브젝트의 최대 폭을 도시하는, 임의로 설정할 수 있는 페이지 마진(310)이다. 도 4는 1 페이지의 문서 템플릿(309) 상에 디스플레이될 수 있는 오브젝트들의 예를 도시하는 그림이다. 복수의 콘테이너(407, 408)이 도 4에 도시된다. 콘테이너들 간의 관계는 변(414)의 위치를 고정시키는 앵커 아이콘(409), 고정되어 있지 않은 변(410), 링크(412) 및 슬라이더(413)에 의해 규정되어 있다. 앵커 아이콘(409)은, 콘테이너의 사각형의 코너, 변, 또는 콘테이너의 중앙에 설정될 수 있다. 앵커 아이콘(409)이 설정되는 경우, 설정된 점의 위치는 고정된다. 즉, 도 4에 도시된 예에서는, 앵커 아이콘(409)은 콘테이너(407)의 상부 좌측 코너에 설정된다. 가변 데이터가 콘테이너(407)에 삽입되고, 가변 데이터의 화상 사이즈 또는 텍스트 량이 많은 경우에, 우측 및 아래 방향으로 확대될 수 있다. 앵커 아이콘(409)이 변에 설정되어 있는 경우에는, 그 변은 고정된다. 그 밖의 3변의 방향으로 콘테이너가 확대될 수 있다. 앵커 아이콘(409)이 콘테이너의 중심부에 설정되어 있는 경 우에는, 콘테이너의 중심부가 고정된다. 콘테이너는 콘테이너 사각형의 중앙 위치가 변하지 않고 네 방향으로 확대될 수 있다. (이후에 상세히 기재될) 링크(412)는 콘테이너들(407, 408)이 서로와 연관됨을 나타낸다. 링크(412)는 이 링크에 설정되어 있는 길이(범위가 지정될 수 있음)를 유지하면서, 콘테이너(408)가 우측 방향으로 이동될 수 있음을 나타낸다. 슬라이더(413)는 콘테이너가 그 슬라이더들이 설정되어 있는 변들과 수평 방향으로 이동될 수 있음을 나타낸다.
(콘테이너)
콘테이너에 대해 기술될 것이다. 콘테이너는 고정된 또는 가변성 텍스트(flexible text) 또는 이미지가 가변 데이터 파일로부터 각 기록을 위해 문서 템플릿으로 삽입되어 그려진 공간(부분 디스플레이 영역(partial display region)으로 불림)이다. 콘테이너는 도 4에 도시된 바와 같이, 다른 콘테이너 또는 오브젝트와 함께 레이아웃된다. 콘테이너의 이동, 사이즈 조정, 및 재-생성은 사용자 인터페이스 윈도우를 통해, 사용자로부터의 동작 명령에 기초하여 마우스(133)를 동작시킴으로써 행해진다.
콘테이너에 대해, 변형에 관한 제약이 앵커 아이콘(409), 링크(412) 및 슬라이더(413)에 의해 규정되어 있다. 텍스트 또는 이미지 데이터의 정보량에 따라서 변형이 허용되는 방향으로 콘테이너 공간이 변형되고, 그 텍스트 또는 이미지 데이터는 콘테이너 내에 레이아웃된다. 2개의 콘테이너들이 서로에 관해 변형되어야 한다면, 그 콘테이너들에 맞춰져야 할 텍스트 또는 이미지 데이터의 양에 따라서 (콘테이너들에 임의의 스트레스가 없이) 그 2개의 콘테이너들이 균형이 맞게 변형할 수 있도록 콘테이너들의 형상이 제어된다.
작업 영역(306) 내의 각 콘테이너 위치는 포인팅 디바이스(도 3의 313)로서 역할을 수행하는 마우스(133)의 동작에 의해 특정된다. 그 콘테이너는 사용자 인터페이스로서 역할하는 윈도우 내에서 이동되거나 사이즈 조정될 수 있다. 새로운 콘테이너가 추가될 수도 있다. 콘테이너들 간의 상호관계와 같은 변형에 대한 여러 조건들이 앵커 아이콘, 링크 및 슬라이더에 의해 콘테이너들에 대해 설정된다. 콘테이너의 디스플레이를 위한 시각적 표현, 콘테이너 간의 상호작용, 및 콘테이너 내의 정보 편집이 보장된다. 콘테이너의 정의가 이후 기술될 것이다.
(1) 콘테이너에서, 고정 또는 가변성 콘텐츠가 입력된다. 그 콘테이너는 데이터 소스로부터 데이터를 획득하고, 상이한 문서들 내의 상이한 데이터에 따라서 콘테이너 사이즈가 변경된다는 의미에서 동적인 것이다. 애니메이팅된 콘텐츠 및 다른 방법에 의해 시간에 따라 변화하는 콘텐츠는 인쇄에 적합하지 않기 때문에 가변성 콘텐츠에 포함되지 않는다. 그러나, 링크가 고정 콘텐츠와 가변성 콘텐츠 사이에 설정되어 있는 경우, 고정 콘텐츠의 디스플레이는 디스플레이 위치가 가변성 콘텐트의 동작에 의해 문서들 간에서 변화하도록 제어된다.
(2) 콘테이너가 콘텐츠에 적용되는 배경색, 경계 및 폰트 스타일 등의 텍스트 설정과 같은 장식 기능을 가지고 있다. 이러한 설정을 콘테이너 속성이라 칭한다. 콘테이너 속성은 각 콘테이너마다 설정될 수 있다. 어떤 콘테이너가 다른 콘테이너와 동일한 콘테이너 속성을 갖도록 설정될 수도 있다.
(3) 콘테이너는 문서를 생성할 때 데이터 소스로부터의 데이터와 통합된다. 장식 기능은 모든 고정 콘텐츠에 대한 통상의 인쇄물로서 출력물에 반영된다. 장식이 반영된 결과는 시각적으로 디스플레이된다. 가변성 콘텐츠는 데이터 소스로부터 특정 데이터의 디스플레이를 제공한다. 보다 구체적으로는, 콘테이너 사이즈는 그 특정한 데이터를 참조하여 콘테이너에 대해 설정되어 있는 조건에 따라서 가변적으로 설정된다. 가변적으로 설정된 콘테이너의 레이아웃 및 콘테이너 내의 특정한 데이터 표현은 예를 들어, 프린터(113)를 통하여 인쇄되거나, 디스플레이 장치(144) 상에 디스플레이되거나 또는 인쇄 및 디스플레이 둘 모두에 의해 처리될 수 있다.
(4) 콘테이너를 설정하기 위해, 시스템은 사용자 인터페이스 모듈(103) 및 예를 들어, 콘테이너를 편집하거나 디스플레이를 설정하기 위한 대화식(interactive) 그래픽 사용자 인터페이스(GUI)를 갖는다. 사용자 인터페이스의 각 요소는 디스플레이 유닛(144)의 스크린 상에 디스플레이되지만 문서에는 인쇄되지 않는다. 사용자 인터페이스 모듈(103)은 배경색 및 폰트와 같은 콘테이너의 장식 기능의 일부를 디스플레이할 수 있고 그 장식 기능들을 콘테이너 설정, 편집 및 콘테이너 디스플레이에 추가할 수 있다.
(5) 또한, 사용자 인터페이스 모듈(103)은, 콘테이너들 간의 경계, 콘테이너의 사이즈 및 위치를 대화식으로 변경하거나 디스플레이하기 위해 콘테이너 상에 설정된 코너에서의 아이콘, 및 데이터 소스로부터 데이터를 통합할 경우의 콘테이너 동작(예를 들면, 오버라이팅 회수, 라인, 아이콘 설정, 텍스트의 편집)을 설정한다.
(콘테이너의 제약)
콘테이너는 각 문서에서 콘테이너의 콘텐츠를 디스플레이하기 위해 콘테이너를 콘텐츠와 결합하여 그 디스플레이 및 레이아웃을 제어하는 제약을 갖는다. (고정 또는 가변성 콘텐츠를 콘테이너와 결합시키는) 이러한 제약들은 사용자가 하나의 문서 템플릿으로부터 다수의 문서를 제어하도록 하는 주요 방법으로서 이용된다. 제약의 예로서, "최대값이 4인치이다"를 들 수 있다. 제약의 또 다른 예로서는 "콘테이너의 콘텐츠의 좌측 에지는 각 문서에서 동일한 수평 위치에 디스플레이되어야 한다"를 들 수 있다. 본 명세서에 기술되는 내용은, GUI를 이용하여 디스플레이 및 편집하기 위해 이러한 제약들을 설정할 수 있다.
이미지가 페이지 상의 정의된 위치를 갖는다. 유사하게, 콘텐츠의 위치도 레이아웃 내에 특정된다. 콘테이너는 위치 및 사이즈를 갖는다. 가변 데이터 인쇄시, 콘테이너 내에 삽입될 콘텐츠의 내용에 따라서 콘테이너를 레이아웃 설정하기 위한 조건 하에서, 콘텐츠의 내용이 디스플레이되고 편집될 수 있다. 콘테이너가 사용되는 경우, 사용자는 문서의 각 콘텐츠의 사이즈 및 위치를 지정할 수 있다. 일부 문서들은 하나의 문서 템플릿으로부터 생성된다. 그러므로, 콘테이너는 사용자 인터페이스 모듈(103)에 의해 제공되는 콘테이너에 대한 제약을 지정할 수 있다.
하나의 콘테이너의 변들은 문서에 디스플레이된 연관된 콘텐츠의 가상의 경계선을 정의한다. 예를 들면, 사각형 콘테이너의 좌측 변은 연관된 콘텐츠의 레이아웃의 좌측의 위치를 제공한다. 유사하게, 콘테이너의 높이는 생성된 문서와 연관된 콘텐츠의 높이의 제약을 제공한다.
다음의 기재에서, 콘텐츠의 디스플레이를 제한하는데 사용되는 임의의 값을 정의하는 용어 "고정"은 동일한 방식으로 모든 문서에 적용한다.
(1) 콘테이너의 폭이 고정되는 경우, 연관된 콘텐츠에 할당되는 폭은 모든 문서에서 동일하다.
(2) 콘테이너의 높이가 고정되는 경우, 연관된 콘텐츠에 할당되는 높이는 모든 문서에서 동일하다.
(3) 거리의 제약이 고정되는 경우, 지정된 거리는 모든 문서에서 제약이 된다.
(4) 콘테이너의 좌측 및 우측 변들이 고정인 경우, 콘테이너 사이즈는 높이 방향 또는 수직 방향으로 변경될 수 있어서 콘테이너 내의 콘텐츠를 완전히 맞추도록 변형이 허용된다.
(5) 콘테이너의 상부 및 하부 변들이 고정인 경우, 콘테이너 사이즈는 폭 방향 또는 수평 방향으로 변경될 수 있어서 콘테이너 내의 콘텐츠를 완전히 맞추도록 변형이 허용된다.
(6) 콘테이너의 수직축은 콘테이너의 우측 및 좌측 변들에 평행하고, 그들 사이의 중간 위치에 배치되는 가상의 수직선이다. 콘테이너의 수직축이 고정되어 있는 경우, 콘테이너의 좌측 및 우측 변의 수평 위치의 평균은 모든 문서에서 동일하다. 이 제약으로, 콘테이너의 폭은 변할 수도 있다. 좌측 및 우측 변들은 다른 문서에서 수직축으로부터 가장 가깝거나 가장 멀다. 그러나 축은 모든 문서에서 동일한 수평 위치에 배치된다. 콘테이너의 높이 및 수직 위치는 이 제약에 의해 영향을 받지 않는다.
(7) 유사하게, 수평축이 고정되어 있는 경우, 상부 및 하부 변들을 수직으로 배치하는 제약이 제공된다. 그러나, 높이는 이 제약에 의해 영향을 받지 않는다.
(8) 수평 및 수직축 둘 모두가 고정되어 있는 경우, 콘테이너 변의 중심 위치는 고정되어 있다. 그러나, 폭 및 높이는 이 제약에 의해 영향을 받지 않는다.
(9) 콘테이너의 코너, 콘테이너 변의 중간 위치, 또는 콘테이너의 중심 위치가 고정되어 있는 경우, 그 콘테이너는 그 콘테이너와 연관된 동일한 위치에 디스플레이된다. 예를 들면, 콘테이너의 상부 좌측 코너가 고정되어 있는 경우, 레이아웃된 콘테이너의 상부 좌측 위치는 모든 문서에서 동일하다.
(10) 수직 변 또는 수직 축은 페이지의 좌측 또는 우측 변, 좌측 또는 우측 페이지 마진, 또는 다른 수평 위치와 연관하여 고정될 수 있다. 유사하게, 수평 변 또는 수평 축은 페이지의 상부 또는 하부 변, 상부 또는 하부 페이지 마진, 또는 다른 수직 위치와 연관하여 고정될 수 있다.
"고정(fixed)"의 반대 용어는, 콘테이너의 변, 축, 코너 또는 중간 위치, 또는 문서 제약이 문서들 간에서(기록들 간에서) 변화할 수 있는 "가변(flexible)"이란 용어이다. 예를 들면, 페이지에서, 가변 데이터의 사이즈 또는 양에 따라, 동적으로 레이아웃이 변경되는 것이 예상된다. 그러나, 사용자는 특정 콘테이너의 사이즈 또는 위치를 고정하거나, 또는 페이지의 코너에서의 콘테이너의 네개의 코너들을 고정하기를 원할 수 있다. 이를 위해, 레이아웃 편집 어플리케이션(121)은 각 콘테이너(부분 디스플레이 영역)에 대해, 변, 축, 코너 또는 중간 위치 등을 고정할지, 아니면 변경할지를 적절하게 설정할 수 있다. 그러므로, 사용자는 문서 템플릿(180)의 기본 레이아웃을 결정할 때 원하는 기본 레이아웃을 생성할 수 있다.
(콘테이너 디스플레이/편집)
(신규 콘테이너 생성 방법)
콘테이너들은 두가지 유형, 즉, 텍스트 콘테이너 및 이미지 콘테이너로 분류된다. 텍스트 콘테이너는 텍스트 및 임베딩된 이미지를 갖는다. 이미지 콘테이너는 이미지만을 갖는다. 도 4에 도시된 바와 같이, 텍스트 콘테이너 툴(404) 또는 이미지 콘테이너 툴(405) 상에서 마우스(133)를 클릭하여, 템플릿(309) 상으로 사각형을 드래그함으로써, 신규 텍스트 콘테이너 또는 이미지 콘테이너가 문서 템플릿(309) 상에 생성된다. 적절한 툴(404 또는 405)을 활성화하여, 문서 템플릿(309) 상에서 마우스(133)를 클릭함으로써 콘테이너가 생성된다. 디폴트 사이즈를 갖는 콘테이너가 삽입된다. 대안으로, 신규 콘테이너의 사이즈를 입력하기 위해, 다이얼로그 박스 또는 프롬프트가 제공된다. 콘테이너 사이즈는 여러가지 방법으로 설정될 수 있다. 콘테이너는 자동적으로 미리 정의되어, 계산된 스키마(schema)에 의해서 생성되어 문서 템플릿(309) 상에 레이아웃된다. 생성된 콘테이너가 마우스와 같은 입력 수단에 의해 선택되어 그 마우스의 우측 버튼을 클릭함으로써 그 속성이 지정되는 경우, 콘테이너의 제약을 설정하도록 콘테이너의 속성 다이얼로그가 디스플레이될 수 있다. 콘테이너 속성 다이얼로그 UI(부분 디스플레이 영역 설정 수단에 대응함)에서는, 앞서 기술된 각종의 제약들이 설정될 수 있다. 또한, 콘테이너의 속성 다이얼로그에서는, 콘테이너의 사이즈(폭 및 높이) 및 위치가 설정될 수가 있다. 가변성 사이즈를 설정하기 위해서는, 콘테이너의 기본 패턴(기본 사이즈 및 기준 위치)를 설정한다. 또한, 최대 콘테이너 사이즈(폭 및 높이) 및 최소 콘테이너 사이즈(폭 및 높이)를 설정할 수 있다.
(콘테이너 디스플레이 방법)
도 5a 내지 도 5d는 콘테이너의 변들에 대한 룰을 설명하기 위한 도면이다. 레이아웃 편집 어플리케이션(121)은 변의 상태를 표현하기 위해, 실선(503) 또는 점선(504)으로 변을 그린다. 레이아웃 편집 어플리케이션(121)은 앵커(변 근처에 그려진 506, 507, 509로 표시된 선, 형상, 아이콘), 핸들(이동, 수정을 위해 변 또는 형상에 또는 그 근처에 그려진 제어 점들(502)), 슬라이더(변의 양 측에 그려진 짧은 평행선, 도 4의 413), 확대/축소 아이콘(505), 및 색을 특징적 구성으로서 구비한다.
도 5a 내지 도 5d에 도시된 콘테이너 디스플레이 방법의 룰은 다음과 같다.
1. 변을 고정하기 위해, 그 변을 실선으로 그린다.
2. 폭이 고정되어 있는 경우, 좌측 및 우측 변들을 실선으로 그린다.
3. 높이가 고정되어 있는 경우, 상부 및 하부 변들을 실선으로 그린다.
4. 축은 그리지 않는다.
5. 아직 그리지 않은 모든 변 각각의 근처에 확대/축소 아이콘을 그리고, 그 변들은 점선으로 그린다.
6. 수직 변의 쌍 또는 축의 쌍이 고정되어 있는 경우, 그들 간의 교차점에 앵커를 그린다.
7. 고정된 변 상의 어디에도 앵커가 그려져 있지 않은 경우, 에지의 중심에 슬라이더를 그린다.
8. 수직 변의 쌍 또는 축의 쌍에 대해 앵커도 슬라이더도 그려져 있지 않은 경우, 그들 간의 교차점에 핸들을 그린다.
상술한 바와 같이, 상술된 룰(1, 2, 3)로 정의된 선들은, 고정적이거나 제한적이며, 실선으로 그린다. 룰 5에 의해 정의된 가변성 변은 점선으로 그린다. 룰(6, 7, 8)로 정의된 고정 점들은, 앵커를 표현한다. 일부 고정된 변들은 슬라이더를 표현한다. 나머지 점들은 핸들을 표현한다.
상술된 룰에서, 후에 사용자가 설정한 제약이 보다 높은 우선순위를 갖는다. 즉, 후에 다른 제약이 설정되어, 상술된 룰에 따라 그려져야 하는 변에 영향을 미칠 수 있는 경우, 실선이나 점선의 드로잉 내용이 변경된다.
가변성 변이 그려지는 위치는 콘테이너의 콘텐츠에 의존한다. 후술되는 바와 같이, "동적 교정 처리(dynamic calibration processing)"가 사용되며, 이는 콘텐츠가 문서 템플릿과 통합되어 사용자 인터페이스에 의해 가시화됨을 나타낸다. 대안의 실행 수단이, 모든 문서에서 평균화되는 콘테이너의 콘텐츠 영역 또는 사용자 인터페이스에서의 가변성 변의 레이아웃 위치를 결정하기 위한 다른 수단에 의해 사용될 수 있다. 레이아웃 편집 어플리케이션(121)은 상기 룰에 따라서 콘테이너 디스플레이 제어 및 레이아웃 제어를 실행할 수 있다.
콘텐츠의 표현은 콘테이너의 각 변에 설정된 앵커 아이콘 또는 슬라이더 아이콘에 따라서 사이즈가 변경될 수 있는 콘테이너에 콘텐츠를 삽입함으로써 가시화된다. 콘테이너에 대하여 설정된 상세한 아이콘들 및 그의 변들은 이하에 기술될 방식으로 기능한다.
도 4에 도시된 변(410)과 같이, 점선은 콘테이너에 삽입될 콘텐츠에 의존하여 문서 내의 변의 위치가 이동될 수 있음을 나타낸다. 실선(414)은 위치가 제한을 받는 나타낸다.
앵커는 변 또는 축이 교차하는 점이 고정되어 있음을 나타낸다. 도 4의 아이콘(409)은 교차하는 변(414)이 고정되어 있음을 나타내는 앵커 아이콘의 예이다.
슬라이더는 연관된 변이 그 변의 수직 방향이 고정되어 있다해도 이동될 수 있음을 나타낸다. 폭 및 높이의 사이즈는 레이아웃 편집 어플리케이션(121)의 제어 하에, 2차 다이얼로그 윈도우에 디스플레이되어, 콘테이너 사이즈로서 허용되는 기본 값, 최소값 및 최대값의 기본 패턴이 설정될 수 있다.
도 5a를 참조하면, 실선으로 표시된 콘테이너(501)의 변(503)은 고정된 변이다. 점선으로 표시된 변(504)은 폭 및 높이 둘 모두를 변화시킬 수 있다. 확대/축소 아이콘(505)은 인접하는 변(504)이 가변성임을 나타낸다. 도 5b를 참조하면, 실선으로 표시된 콘테이너(501)의 변(503)은 고정된 변이다. 도 5b를 참조하면, 앵커 아이콘(506)은 변(503)이 교차하는 높이 및 폭의 방향에 변위가 제한됨을 나타낸다.
도 5c를 참조하면, 콘테이너(501)는 콘테이너가 임의로 확대 또는 축소됨을 나타내는 앵커 아이콘(507)으로 표시된 중심점으로부터 폭 및 높이 방향으로 동등하게 연장할 수 있도록 설정된다. 즉, 변들은 폭 및 높이 둘 모두가 변경될 수 있다. 도 5d를 참조하면, 콘테이너(501)에서, 상부 변(508)에 대해 슬라이더 아이콘(509)이 설정되어 있고, 상부 변(508)은 고정되어 있다. 점선으로 표시된 변(502)은 폭 및 높이 둘 모두가 변경될 수 있다. 이 경우, 앵커 아이콘(509)을 통과하는 중심축(수직축)에 대해, 변(502)의 수평 방향, 및 수직 방향으로 콘테이너가 변위될 수 있다. 따라서, 콘테이너 사이즈가 변경될 수 있다. 확대/축소에서, 앵커 아이콘(507)이 항상 콘테이너(501)의 중심에 배치되도록 레이아웃이 조정된다.
(링크 설정 방법)
도 6은 레이아웃 편집 어플리케이션(121)에 의한 링크 설정 방법을 도시하는 플로우차트이며, 도 7a 내지 도 7c는 사용자 인터페이스 윈도우의 디스플레이 예를 도시하는 도면이다. 도 6 및 도 7a 내지 도 7c를 참조하여 콘테이너들 간에 링크를 설정하는 동작 방법이 아래에 기술될 것이다. 먼저, 콘테이너들 간에 링크를 설정하기 위해서는, 링크 설정의 대상인 콘테이너들(적어도 2개의 콘테이너)이 생성된다(S601). 도 7a는 2개의 콘테이너들(701, 702)이 생성된 상태를 도시한다.
다음으로, 상술된 링크 툴 버튼(도 4)이 선택된다(S602). 도 7a에 도시된 콘테이너들(701, 702)은 상술된 도 4의 콘테이너들(407, 408)과 동일한 콘텐츠를 나타낸다. 콘테이너들은 고정된 변(실선으로 표시됨)으로부터 형성된다. 아이콘들(703, 704)은 도 4의 앵커 아이콘(409)과 동일한 앵커 아이콘이다. 참조번호 705는 마우스 포인터(705)를 의미한다.
링크 툴 버튼(406)이 단계 S602에서 선택되는 경우, 콘테이너들이 선택된다(S603). 사용자가 링크 설정 대상인 콘테이너들 중 하나(예를 들어, 콘테이너 (701)) 상에서 마우스(133)를 클릭하는 경우, 콘테이너가 선택된다. 다음으로, 사용자는 링크 설정 대상인 콘테이너들 중 다른 것(예를 들어, 콘테이너(702)) 상에서 마우스(133)을 클릭하면, 그 링크가 설정될 다른 콘테이너가 선택된다(S604).
도 7b의 선분(706)은 단계 S603에서의 마우스(133) 클릭 포인트(P1)와 단계 S604에서의 마우스 클릭 포인트(P2)를 접속한 마우스 포인터(133)의 개략적인 궤적을 나타낸다(도 6의 S605). 그 선분을 교차하는 콘테이너들의 변(711, 712) 사이에 링크(707)가 설정된다. 마지막으로, 링크(707)가 콘테이너들 간에 설정된 상태로 인터페이스 윈도우가 업데이트된다(S606). 링크(707)가 설정된 경우, 콘테이너를 디스플레이하는 윈도우 디스플레이도 자동적으로 변경된다. 변경된 윈도우(도 7c)에서, 상술된 바와 같이 가변성 변을 나타내는 변(708)은 점선으로 도시된다. 콘테이너들(701, 702)의 변들이 링크(707)의 설정에 따라서 가변성 변으로 변화될 필요가 있기 때문에, 변(708)은 고정된 변(링크 설정전의 변(711, 712)가 대응함)으로부터 가변성 변으로 변경된다. 모든 변들이 링크(707)의 설정 후에도 고정되어 있다면, 콘테이너들 간의 상대적인 관계는 링크에 의해 특정된다. 상기 처리는 이러한 모순을 방지하고자 하는 목적이고, 레이아웃 편집 어플리케이션(121)의 제어 하에서, 자동으로 실행된다.
식별용 표시(709)는 도 5a 내지 도 5d의 아이콘들(505)처럼 기능하며, 링크(707)의 설정에 기인하여 콘테이너들(701, 702)이 변위될 수 있는 방향을 사용자에게 시각적으로 제시한다. 도 7c에 도시된 예에서, 좌측 콘테이너(701)의 우측 변 및 우측 콘테이너(702)의 좌측 변이 가변적으로 변화한다. 이는 단지 일례일 뿐이 다. 좌측 콘테이너(701) 및 우측 콘테이너(702)가 도 4의 슬라이더(413)를 설정함으로써 가변성 변(708)을 가질 수 있다. 이상의 처리는 레이아웃 편집 어플리케이션(121)의 제어하에 실행될 수 있다.
(가변 길이의 링크)
일반적인 가변성 링크(4609)가 도 46의 인터페이스 윈도우에 도시된다. 도 4에서와 같이, 인터페이스는 어플리케이션 윈도우(301) 및 툴바(303)를 갖는다. 콘테이너(4603, 4604)는 문서 템플릿(3098) 상에 제시된다. 콘테이너들은 통상적으로 앵커 아이콘(4601, 4602)과 고정된 변(4605, 4606)을 포함한다. 가변성 사이즈를 갖는 링크(4609)는 콘테이너들(4603, 4604) 간에 설정되어 이들을 접속한다. 콘테이너들(4603, 4604) 간에 링크가 설정되어 있기 때문에, 콘테이너(4603)의 우측 변 및 콘테이너(4604)의 좌측 변(4608)은 점선으로 표현된다. 그러므로, 표시들(indicators)(4610, 4611)이 콘테이너에 디스플레이되어, 변들(4607, 4608)이 가변적임을 나타낸다.
도 48은 링크(4609)의 정보가 설정되어 있는 다이얼로그 윈도우(4801)의 일례를 도시하는 도면이다. 이 다이얼로그는 통상적으로 타이틀 바(4802), 툴 버튼(4803), 다이얼로그 윈도우를 개폐하는 버튼(4804), 각종 정보를 설정하는 영역(4809)을 포함한다. 이 다이얼로그 윈도우에서, 링크 유형은 대안으로 가변성 길이(4807) 및 고정 길이(4806)로부터 선택될 수 있다. 가변성 길이에 대해, 링크 길이의 최대값(4812), 최소값(4810) 및 기준값(4811)이 설정될 수 있다. 콘테이너들 간의 거리의 기준값(4811)은 각 콘테이너의 사이즈가 데이터 삽입시에 변경되지 않는 경우에 이용되는 링크 길이를 나타낸다.
도 47은 자동 레이아웃 시스템에서의 가변성 링크 설정의 플로우차트이다. 마우스(133)로 링크(4609)를 클릭하여 선택한다(S4702). 레이아웃 편집 어플리케이션(121)은 마우스의 우측 버튼을 클릭하거나 또는 키보드의 특정 키를 동작함으로써 선택된 링크(4609)의 속성 다이얼로그 윈도우(4801)를 디스플레이한다(S4703). 이 상태에서, 링크 사이즈는 가변이 아니라 고정이다. 그러므로, 링크 타입(4805)에서 "고정"(4806)이 선택된다. 링크를 고정 사이즈로부터 가변 사이즈로 변경하기 위해서, 가변성 링크 사이즈를 설정하는 "가변성"(4807)이 링크 타입(4805)에서 선택된다(S4704). 따라서, 링크 거리(4808) 내에 배치되어 있는 최대값(4812), 최소값(4810) 및 기준값(4811)이 유효화되고, 수치가 설정될 수 있다. 링크의 가변성 사이즈를 설정하기 위해서, 사용자는 최대값(4812)에서 그 링크의 길이의 최대값을, 최소값(4810)에서 그 링크 길이의 최소값을, 기준값(4811)에서 그 링크 길이의 기준값을 설정한다(S4705). 일반적인 다이얼로그 윈도우 개폐 버튼(4804)에 의해 설정이 적용되는 경우, 링크의 UI 디스플레이가 도 46에 도시된 링크(4609)로 변화한다(S4706). 그 다이얼로그 윈도우(4801)의 설정 정보는 메모리에 저장된다.
도 49는 고정 사이즈를 갖는 링크를 사용한 경우의 레이아웃 결과를 도시하는 도면이다. 레이아웃 편집 어플리케이션(121)의 레이아웃 엔진(105)에 의한 레이아웃 계산법이 상술된 절차에 따라서 행해진다. 예를 들어, 도 46에 도시된 콘테이너들(4603, 4604)에 다른 사이즈의 데이터가 삽입되는 것으로 가정한다. 이 경우, 각각의 콘테이너는 데이터 크기를 최적이라고 간주한다. 콘테이너(4603)는 삽입된 이미지 사이즈에 대응하는 프레임(4904)(최적 콘테이너 사이즈)을 위해 사이즈를 우측으로 변화시킨다. 유사하게, 콘테이너(4604)도 삽입된 이미지 사이즈에 대응하는 프레임(4905)(최적 콘테이너 사이즈)을 위해 사이즈를 좌측으로 변화시킨다.
그러나, 고정 사이즈를 갖는 링크(4903)가 콘테이너들(4603, 4604) 간에 설정된다. 콘테이너(4603)의 좌측 변(4612) 및 콘테이너(4604)의 우측 변(4613)은 앵커(4601, 4602) 때문에 이동될 수 없다. 이러한 이유로, 변경 사이즈는 링크 사이즈보다 더 커지게 된다. 이 링크 사이즈는 고정되어 있으며 레이아웃 계산 시에 우선적으로 계산되기 때문에, 콘테이너(4603)(도 46) 및 콘테이너(4604)(도 46)의 사이즈가 변경된다. 결과적으로, 콘테이너(4603, 4604)는 데이터에 대응하는 최적의 사이즈를 확보할 수 없다. 최종적으로, 콘테이너 사이즈는 최적의 사이즈, 즉, 도 49의 콘테이너(4901, 4902)와 같은 프레임(4904, 4905)보다 더 작아진다. 즉, 링크(4903)의 사이즈가 고정되어 있기 때문에, 콘테이너(4901, 4902)는 최적의 사이즈를 달성할 수 없다.
도 50는 링크를 가변성 사이즈로 변경한 경우를 도시하고 있다. 이 경우, 가변성 사이즈를 갖는 링크(4609)(도 46)는 상기 예의 콘테이너들(4603, 4604) 간에 설정된다. 콘테이너(4603, 4604)의 사이즈가 변경된 경우에, 링크 사이즈는 축소하여 콘테이너(4603, 4604)가 도 49에 도시된 예에서보다 커질 수 있다. 삽입되는 데이터 사이즈에 대응하는 최적의 사이즈가 달성될 수 있다. 대안으로, 삽입된 데이터 사이즈(최적 사이즈)에 근접한 콘테이너 프레임을 계산할 수 있다. 그 결과를 도 50에 도시된 콘테이너(5001, 5002)으로 표시한다. 가변 링크(4609)의 사이즈는 레이아웃 계산 결과로서 가변 링크(5003)로 표시된 사이즈로 변화한다. 이 경우, 콘테이너(5001, 5002)는 서로 동시에 변형되어, 최적의 사이즈(데이터 사이즈에 대응하는 사이즈)를 갖게 된다. 상기 처리는, 프로세서 유닛(135), 레이아웃 편집 어플리케이션의 제어 하에서 실행될 수 있다.
(레이아웃 계산법(전체 플로우))
본 실시예의 레이아웃 편집 어플리케이션은, 사용자 인터페이스(103)를 이용하여 콘테이너들을 생성하여, 그 콘테이너들을 서로 연관(링크 설정)시킴으로써 레이아웃을 생성하는 레이아웃 모드와, 레이아웃 엔진(105)에 의해 데이터 소스의 각 기록을 생성된 레이아웃에 삽입하여, 실제 기록 삽입 후의 레이아웃 결과를 프리뷰하는 프리뷰 모드를 갖는다. 이 프리뷰 모드에서, 실제의 기록이 삽입되고, 상술된 우선 순위에 따라서 레이아웃이 계산된다. 그러나, 프리뷰 모드에서는, 디스플레이용 레이아웃이 계산된다. 심지어 실제 인쇄에서도, 레이아웃 엔진(105)이 각 콘테이너에 데이터를 삽입하도록 함으로써 레이아웃이 계산된다. 이 때의 계산법은 프리뷰 모드에서와 동일하다. 도 8은 레이아웃 계산의 플로우를 도시한다.
우선, 프리뷰 모드를 선택한다(S801). 자동 레이아웃 시스템은 콘테이너들을 생성하여, 그 콘테이너들을 서로 연관시킴으로써 레이아웃을 생성하는 레이아웃 모드와, 디스플레이될 데이터 기록들(이하, "기록들"로 언급됨)이 생성된 레이아웃에 삽입되어 실제 기록 삽입 후의 레이아웃 결과를 프리뷰하는 프리뷰 모드를 갖는 다. 이 프리뷰 모드에서, 실제의 기록이 삽입되고, 레이아웃이 계산된다. 그러나, 프리뷰 모드에서는, 디스플레이용 레이아웃이 계산된다. 심지어는 실제 인쇄시에도, 레이아웃은 기록을 삽입함으로써 계산된다. 그 계산법은 프리뷰 모드에서와 동일하다. 프리뷰 모드가 설정된 경우, 프리뷰될 기록이 선택되어 삽입된다(S802). 기록이 삽입된 경우, 레이아웃 계산이 그 기록을 레이아웃하기 위해 실행된다(S803). 처리 단계 S803에서 계산된 레이아웃이 디스플레이된다(S804). 다른 기록에 대해서도 프리뷰할지의 여부를 판정한다(S805). 처리 단계 S805에서 다른 기록의 어떠한 프리뷰도 행해질 필요가 없다고 판정되면(단계 S805에서 NO), 처리는 단계 S807로 진행하여 프리뷰 모드를 종료한다. 단계 S805에서 다른 기록이 프리뷰되어야 한다고 판정되면, 다른 기록을 선택하여 레이아웃 계산을 다시 수행하여(S803), 프리뷰가 행해진다(S804). 프리뷰 모드가 아니라 인쇄 모드가 설정된 경우, 인쇄될 모든 기록들에 대해 레이아웃 계산이 순차적으로 행해진다. 그러므로, 단계 S804에서의 처리는 인쇄 모드에서는 불필요하다. 단계 S805에서 인쇄될 모든 기록들이 처리되는지가 판정된다. 단계 S803에서 계산된 레이아웃 결과가 출력되고, 프린터 드라이버를 사용함으로써 인쇄 데이터가 생성되어 프린터로 출력된다. 이 경우, 모든 기록(인쇄를 위해 지정된 모든 기록)에 대해 인쇄 데이터 출력이 종료된 경우, 본 처리를 종료한다. 상기 처리는 프로세서 유닛(135)의 제어 하에서 실행될 수 있다.
(레이아웃 계산법)
도 9는 레이아웃 계산의 상세한 처리의 흐름을 설명하는 플로우차트이다. 도 10a 내지 도 10c는 본 처리에 있어서 사용자 인터페이스 윈도우의 디스플레이 예를 도시한 도면이다. 도 9는 레이아웃 계산의 처리 방법만을 설명하기 위한 플로우차트이다. 이는 가변 데이터 인쇄의 하나의 기록을 인쇄/프리뷰할 때의 레이아웃 계산법에 대응한다. 복수의 기록이 존재하는 경우, 다음의 처리가 반복된다.
우선, 레이아웃 편집 어플리케이션(121)은 레이아웃이 계산되어야 하는 콘테이너 세트를 획득한다(S901). 레이아웃 계산법은 연관된 콘테이너 세트에 대해 행해진다. 예를 들어, 도 11을 참조하면, 4개의 콘테이너(A, B, C, D)가 한 페이지 상에 레이아웃되어, 서로 연관된다. 이 경우, 콘테이너들 A와 B가 링크로 연관되고, 또 콘테이너들 C와 D가 링크로 연관된다. 그러므로, 콘테이너들 A와 B가 세트 1을 형성하고, 콘테이너들 C와 D가 세트 2를 형성한다. 참조번호 1101은 앵커, 1102는 고정된 변, 1103은 제어 점, 1104는 가변성 변의 변화 방향을 나타내는 화살표, 1105는 가변성 변, 1106은 링크, 1107은 슬라이더를 표시하고 있다.
레이아웃 편집 어플리케이션(121)은 단계 S901에서 획득한 콘테이너 세트로부터, 레이아웃 계산을 위한 세트를 선택한다(S902). 선택된 콘테이너 세트에 대해, 레이아웃 계산이 행해진다. 먼저, 선택된 콘테이너 세트에 포함된 가변성 요소들인 2개의 콘테이너(A, B)의 사이즈는, 삽입될 데이터의 이미지 사이즈 또는 텍스트 양에 의해 영향을 받지 않는 것으로 가정하여 계산된다. 보다 구체적으로, 레이아웃 편집 어플리케이션(121)은 콘테이너 A가 이미지 데이터 콘테이너인지 텍스트 콘테이너인지를 판정한다. 상술된 바와 같이 그 콘테이너에 대해 설정되어 있는 속성에 기초하여 판정될 수 있다. 다음으로, 레이아웃 편집 어플리케이션(121)은 콘테이너 A에 삽입될 데이터를 로드한다. 콘테이너 A가 이미지 데이터 콘테이너인 경우, 어떤 제약도 없이 그 이미지 데이터의 사이즈(수평 픽셀의 수, 수직 픽셀의 수 및 해상도)가 콘테이너 A의 사이즈로 정의된다. 콘테이너 A가 텍스트 콘테이너인 경우, 콘테이너 A에 삽입될 데이터량은 텍스트 데이터의 문자 수 및 콘테이너 A의 콘테이너 속성으로 지정되어 있는 폰트 타입, 폰트 사이즈, 문자 피치, 행 피치와 같은 문자 속성에 기초하여 계산될 수 있다. 텍스트용 콘테이너에 대해서는, 콘테이너 A의 종횡비가 제약을 고려하지 않으면 결정될 수 없기 때문에 제약을 적용시킨다. 도 11에 도시된 예에서는, 앵커들이 콘테이너 A의 상부 좌측 및 하부 좌측 코너에 설정되어 있기 때문에, 높이(수직 방향)가 고정된다. 그러므로, 레이아웃 편집 어플리케이션(121)은 계산된 데이터(텍스트량)에 대응하는 문자들이 콘테이너 A의 기본 패턴으로 설정된 폭(수평 방향)을 갖는 콘테이너 A에 삽입될 수 있는지를 판정한다. 모든 문자들이 삽입될 수 있다고 판정되면, 기본 패턴으로 설정된 사이즈(폭 및 높이)는 콘테이너 A를 변경하지 않는다. 또한,모든 문자들이 삽입될 수 없다고 판정되면, 콘테이너 A는 앵커들을 설정함으로써 높이가 고정되어 있기 때문에, 수평 방향으로 확장한다. 이 경우, 레이아웃 편집 어플리케이션(121)은 그 계산된 양의 문자들이 삽입을 허용하는 콘테이너 A의 폭을 계산하여, 콘테이너 A의 사이즈를 계산한다.
다음으로, 레이아웃 편집 어플리케이션(121)은 레이아웃될 각 콘테이너의 사이즈와 실제 콘텐츠 사이즈 간의 차가 가능한한 작아지도록, 레이아웃을 최적화한다(S903). 그 레이아웃은 삽입될 콘텐츠 사이즈와 레이아웃 사이즈 간의 차가 동 적으로 사이즈를 변경시키기 위해 서로와 연관된 콘테이너들 간의 차와 가능한한 동일하게 되도록 최적화된다. 레이아웃 편집 어플리케이션(121)은 단계 S902에서 선택된 콘테이너 세트의 사이즈, 즉 콘테이너 A, 콘테이너 B 및 링크(1506)(고정 링크)의 합계 사이즈를 획득한다. 이어서, 레이아웃 편집 어플리케이션(121)은 합계 사이즈와 기본 레이아웃의 콘테이너 세트의 사이즈 간의 차를 계산한다 (도 11에 도시된 예에서, 콘테이너 A와 B의 앵커 아이콘들 간의 거리에 대응한다). 콘테이너 A 또는 B의 폭이 이전 단계의 계산 결과에 따라서 증가되면, 차분 값이 생성된다. 레이아웃 편집 어플리케이션(121)은 이 차분 값을 콘테이너 세트의 각 요소들에 균등하게 분배함으로써 레이아웃을 조정한다.
레이아웃 편집 어플리케이션(121)은 레이아웃을 최적화한다. 최적화 계산에서, 룰(콘테이너에 적용된 제약들)의 위반이 발생하면, 콘테이너 사이즈는 임의의 룰 위반을 방지하기 위해 다시 계산된다(S904). 본 명세서에 기재된 룰은 레이아웃 생성 시에 사용자에 의해 설정된 제약이다. 제약의 예들은 콘테이너의 사이즈 및 위치와 가변성 링크의 길이이다. 레이아웃이 어떠한 룰의 위반도 없이 계산된 경우, 단계 S902에서 선택된 세트의 레이아웃이 완료된다. 그리고, 단계 S902 내지 S904의 처리는 그 페이지 상의 모든 콘테이너 세트에 대하여 실행된다. 전체 페이지의 레이아웃이 계산된다(S905). 그러므로, 레이아웃 계산 처리는 종료된다.
도 10a 내지 도 10c는 레이아웃 계산 시에 디스플레이되는 사용자 인터페이스 윈도우의 예를 도시하는 도면이다. 도 10a는 어떤 기록이 삽입되어 있는 상태를 도시하고, 레이아웃은 결정되어 있다. 참조번호 1001 및 1002는 앵커를 표시하고, 1003 및 1004는 고정된 변, 1005은 가변성 변, 1006은 가변성 변의 변화 방향을 나타내고 있는 화살표, 1008는 링크를 표시하고 있다. 이 상태에서, 기록이 변경되는 경우, 다른 사이즈를 갖는 콘텐츠가 삽입되면, 도 10b에 도시된 상태가 획득된다. 도 10a에 도시된 상태에서 각각의 가변성 변의 변위는 대안의 길이이며 2점 쇄선으로 표시되어 있다. 레이아웃 계산이 룰을 고려하여 행해진다. 도 10c는 레이아웃 계산 결과를 도시한다. 콘테이너(1012, 1013)의 사이즈가 실제 삽입될 콘텐츠의 사이즈와 동등한 차를 갖도록(콘테이너가 서로 동시에 변형하도록) 계산되며, 상술된 룰의 어떠한 위반도 발생하지 않도록 계산된다. 도 10c에 도시된 바와 같이, 도 10b에 도시된 삽입될 콘텐츠 사이즈(a1b1c1d1, e1f1g1h1) 및 계산후의 콘텐츠 사이즈(a2b2c2d2, e2f2g2h2)는, 그들이 좌측 및 우측 콘테이너들 간에 동등한 차를 갖도록 계산된다. 상기 처리는 프로세서 유닛(135), 레이아웃 엔진 모듈(105)의 제어 하에서 실행할 수 있다.
(콘테이너의 우선 순위)
(설정 방법)
도 56은, 우선 순위의 설정 처리의 흐름을 설명하기 위한 플로우차트이다. 각 단계에서의 처리가 도 57 내지 도 60에 도시된 사용자 인터페이스 윈도우의 예들을 참조하여 기술될 것이다.
먼저, 레이아웃 편집 어플리케이션(121)은 도 60에 도시된 바와 같이, 우선 순위가 설정될 콘테이너를 사용자가 선택하도록 하기 위한 팝-업 메뉴(6002)를 디 스플레이한다. 우선 순위 설정이 선택되는 경우, 우선 순위 설정 윈도우가 디스플레이된다(S5601). 도 60을 참조하면, 참조번호 6001는 콘테이너를 표시하고, 6002는 팝-업 메뉴, 6003는 마우스 포인터를 표시한다. 우선 순위의 설정은 도 60의 팝-업 메뉴에서 선택된다. 대신에, 그 우선 순위 설정은 콘테이너 속성 다이얼로그 상에서 선택될 수 있다.
다음으로, 레이아웃 편집 어플리케이션(121)은 단계 S5601에서 선택된 콘테이너와 연관되어 있는 콘테이너들을 하나의 세트로 인식하여(S5602), 우선 순위를 설정한다(S5603). 자동 레이아웃 시스템에서, 연관된 콘테이너의 관련 레이아웃은 그들의 사이즈에 따라서 계산되어 최적화된다(레이아웃 계산 방법 참조). 우선 순위는 연관된 콘테이너의 계산 순서를 지정한다. 연관된 콘테이너를 하나의 세트로 인식함으로써 우선 순위가 설정된다. 예를 들면, 도 57을 참조하면, 텍스트 콘테이너 A, D, F 및 이미지 콘테이너 B, C, E가 레이아웃된다. 그 콘테이너들은 두 세트, 즉 콘테이너 A, B, C, D의 세트 및 콘테이너 E, F의 세트가 형성되도록 링크(5701)에 의해 서로 연관된다. 콘테이너 A가 마우스 포인터(5702)에 의해 선택되어 우선 순위가 설정되는 경우, 우선 순위는 콘테이너 A, B, C, D에 대해 설정된다.
다음으로, 레이아웃 편집 어플리케이션(121)은 단계 S5601에서 디스플레이된 우선 순위 설정 윈도우(도 58) 상에 사용자에 의해 설정된 우선 순위를 그 콘테이너들에 대해 설정한다(S5604). 도 58은 우선 순위를 설정하기 위해 다이얼로그 사용자 인터페이스(UI) 윈도우의 일례를 나타내는 도면이다. 도 58을 참조하면, 참조번호 5801는 다이얼로그를 표시하고, 5802는 우선 순위를 나타내는 UI, 5803은 우선 순위가 설정될 콘테이너들이 디스플레이되는 리스트 박스(list box)이다. 단계 S5602에서 설정된 것으로 인식된 모든 콘테이너들이 디스플레이된다. 화살표 버튼(5804)은 우선 순위를 변경하는데 사용된다. 채널 버튼(5805)은 설정을 취소하는데 사용된다. OK 버튼(5806)은 설정을 반영하는데 사용된다. UI(5802)로 표시된 바와 같이, 리스트 박스(5803)에 디스플레이되어 있는 콘테이너의 우선 순위는 상부 변에 대해 높게, 하부 변에 대해 낮게 된다. 레이아웃 계산은 내림 차순으로 행해진다. 도 58을 참조하면, 텍스트 콘테이너 A, 이미지 콘테이너 B, 이미지 콘테이너 C, 및 텍스트 콘테이너 D의 순서로 계산이 행해진다.
도 59a 및 도 59b는 콘테이너에 대해 설정될 우선 순위를 변경시키기 위한 절차를 설명하는 도면이다. 예를 들어, 도 59a의 5901로 표시된 바와 같이, 우선 순위가 변경될 콘테이너 명이 마우스 포인터에 의해 선택된다. 우선 순위를 올리기 위해, 화살표 버튼(5902)의 업 버튼을 클릭한다. 우선 순위를 낮추기 위해, 다운 버튼을 클릭한다. 텍스트 콘테이너 D가 선택되어, 우선 순위를 올리는 동작이 수행되는 것으로 가정한다. 이 경우, 도 59b에 도시된 바와 같이, 텍스트 콘테이너 D의 우선 순위는 1 상승하고, 이미지 콘테이너 C의 우선 순위는 1 내려간다. 우선 순위의 설정 방법은 이 방법에 제한되는 것이 아니다. 본 예에서는, 4개의 콘테이너 A, B, C, D에 대하여 우선 순위가 설정된다. 그 콘테이너들의 우선 순위들은 1번, 2번,....과 같이 번호로 지정될 수 있다. 상기 처리는 프로세서 유닛(135)의 제어 하에서 실행될 수 있다.
(디스플레이 방법)
도 61, 도 62, 도 63은 콘테이너들에 대해 설정된 우선 순위를 사용자에게 시각적으로 제시하기 위한 사용자 인터페이스(UI) 윈도우의 예를 도시한 도면이다. 도 61 및 도 62는 콘테이너의 레이아웃 디스플레이와 우선 순위 설정을 분리 윈도우에 디스플레이하는 UI 윈도우를 도시한다. 도 61 및 도 62를 참조하면, 참조번호 6101는 자동 레이아웃 어플리케이션 윈도우를 표시한다. 이러한 윈도우에 포함된 페이지 영역, 툴바 등은 도 3과 동일하다. 나머지 구성요소는 도 61 및 도 62에 도시되지 않는다. 참조번호 6102는 마우스 포인터를 표시하고, 6103, 6104는 우선 순위가 설정되어 있는 콘테이너 세트, 6105는 우선 순위가 디스플레이된 속성 팔레트, 6106는 콘테이너명이 디스플레이된 리스트 박스를 표시한다. 도 62를 참조해도 마찬가지로, 참조번호 6201는 마우스 포인터, 6202는 리스트 박스를 표시한다. 콘테이너의 우선 순위는 속성 팔레트(6105) 및 리스트 박스(6106, 6202)에 의해 사용자에게 시각적으로 제시될 수 있다. 리스트 박스(6106, 6202)에서는, 콘테이너명이 우선 순위의 내림차순으로 디스플레이된다. 도 61에 도시된 바와 같이, 마우스 포인터(6102)가 콘테이너 세트(6103) 상에 배치된 경우, 그 세트 내의 콘테이너들(콘테이너 A, B, C, D, E)이 우선 순위의 내림차순으로 디스플레이된다. 본 예에서, 콘테이너 B, A, E, C, D의 순으로 우선 순위가 낮게 된다. 도 62에 도시된 바와 같이, 마우스 포인터(6201)가 다른 콘테이너 세트로 이동되는 경우, 리스트 박스(6202) 내의 디스플레이가 업데이트되고, 콘테이너 F, G, H가 우선 순위의 내림차순으로 디스플레이된다. 본 예에서, 우선 순위는 콘테이너 F, H, G의 순으 로 낮게 된다.
도 63은 도 61 및 도 62에 도시된 디스플레이 방법과는 다른 형식으로 UI 윈도우의 예를 도시하는 도면이다. 도 63을 참조하면, 참조 번호 6301는 페이지 영역을 나타내는 페이지 마진을 표시하고, 6302은 마우스 포인터, 6303는 각 콘테이너의 우선 순위가 숫자로 표시된 디스플레이 부분, 6304는 우선 순위가 설정된 콘테이너 세트를 표시한다. 도 63에 도시된 UI 윈도우에서, 마우스 포인터(6302)가 콘테이너상에 있는 경우, 그 콘테이너와 연관된 콘테이너들에 대해 설정된 우선 순위는 숫자 6303으로 디스플레이된다. 본 예에서는, 마우스 포인터를 콘테이너 B 상으로 이동시킨다. 그러면, 콘테이너 B와 연관된 콘테이너 A, C, D, E에 대해 설정되어 있는 우선 순위는 그들 상에 디스플레이된다. 숫자가 작을수록 우선 순위는 높게 된다. 즉, (1)이 가장 높은 우선 순위를 갖는 콘테이너를 나타내고, (5)가 가장 낮은 우선 순위를 갖는 콘테이너를 나타낸다. 따라서, 도 63을 참조하면, 우선 순위는 콘테이너 B, A, E, D, C의 순으로 설정된다. 상기 처리는, 프로세서 유닛(135) 및 레이아웃 편집 어플리케이션의 제어 하에서 실행될 수 있다.
(레이아웃 계산 방법)
다음으로, 설정된 우선 순위를 갖는 콘테이너를 포함하는 레이아웃의 계산 처리가 도 64에 도시된 레이아웃 계산의 플로우차트를 참조하여 이후 기재될 것이다.
먼저, 단계 S6401에서, 프리뷰 모드를 선택된다. 자동 레이아웃 시스템은 콘테이너가 생성되고 그 콘테이너들을 서로 연관시킴으로써 레이아웃이 생성되는 레이아웃 모드와, 데이터 기록이 그 생성된 레이아웃에 삽입되고 실제 기록 삽입 후의 레이아웃 결과가 프리뷰되는 프리뷰 모드를 갖는다.
프리뷰 모드에서, 실제의 기록이 삽입되어, 상술된 우선 순위에 따라서 레이아웃이 계산된다. 그러나, 프리뷰 모드에서는, 디스플레이용의 레이아웃이 계산된다. 실제 인쇄에서도, 레이아웃은 기록을 삽입함으로써 계산된다. 계산 방법은 프리뷰 모드에서와 동일하다. 프리뷰 모드가 단계 S6401에서 활성화되는 경우, 프리뷰될 기록이 데이터베이스(119)에 저장되어 있는 데이터 소스에 대하여 선택되고 프리뷰가 실행된다(S6402).
기록이 선택되어 프리뷰가 실행되는 경우, 레이아웃 편집 어플리케이션(121)은 그 기록을 레이아웃하기 위해 계산을 수행한다. 이 때, 상술된 우선 순위가 콘테이너에 설정되어 있는지를 체크한다(S6403). 단계 S6403의 체크로, 설정된 우선 순위를 갖는 콘테이너가 존재한다고 판정되면(단계 S6403에서 YES), 레이아웃은 "우선 순위가 존재한다"는 조건 하에서 계산된다(S6404). "우선 순위가 존재한다"는 조건 하에서의 레이아웃 계산 방법은 이후 상세히 기재될 것이다.
단계 S6403에서 설정된 우선 순위를 갖는 어떤 콘테이너도 존재하지 않는다고 판정되면(단계 S6403에서 NO), 그 처리는 단계 S6405로 진행한다. 레이아웃 편집 어플리케이션(121)은 "우선 순위가 존재하지 않는다"는 조건 하에서 레이아웃을 계산한다.
단계 S6406에서, 레이아웃 편집 어플리케이션(121)은 "우선 순위가 존재한다"는 조건 하에서 레이아웃 계산을 수행함으로써 획득된 결과(S6404), 또는 "우선 순위가 존재하지 않는다"는 조건 하에서 레이아웃 계산을 수행함으로써 획득된 결과(S6405)를 디스플레이한다. 단계 S6407에서, 다른 기록을 프리뷰하는지가 판정된다. 다른 기록의 프리뷰가 실행될 필요가 없다고 판정되면(단계 S6407에서 NO), 프리뷰 모드를 종료한다(S6409). 다른 기록이 프리뷰되면(단계 S6407에서 YES), 다른 기록이 선택되어 레이아웃 계산이 다시 실행되며(S6404, S6405), 프리뷰가 행해진다(S6406).
프리뷰 모드가 아닌 인쇄 모드에서의 레이아웃 계산에서, 인쇄될 모든 기록에 대해 순차적으로 레이아웃 계산이 행해진다. 그러므로, 기록을 이동하며 레이아웃 계산을 행하는 단계 S6407 및 S6408에서의 처리는 인쇄 모드에서의 레이아웃 계산에서 불필요하다. 모든 기록에 대한 인쇄가 종료된 경우, 그 처리를 종료한다.
(설정된 우선 순위를 갖는 콘테이너에 대한 상세한 레이아웃 계산 방법)
레이아웃 우선 순위가 콘테이너에 설정되어 있는 경우의 레이아웃 계산 처리의 흐름은 도 65에 도시된 플루우차트를 참조하여 기술될 것이다. 도 66 및 도 67a 내지 67c는 레이아웃 계산 처리에 따라서 사용자에게 제시되는 UI 윈도우의 디스플레이 예를 도시하는 도면이다.
도 66을 참조하면, 참조 번호 6601은 콘테이너 A를 표시하고, 6603은 콘테이너 A에 대해 설정된 우선 순위, 6602는 콘테이너 B(6604) 및 콘테이너 C(6605) 간에 설정된 링크를 표시한다. 숫자가 작을수록, 우선 순위(6603)는 높아진다. 본 예에서는, 우선 순위 (1), (2), (3)에 따라 콘테이너 A, B, C의 순으로 레이아웃 계산이 실행된다. 도 67a에서 파선으로 도시된 영역(6701)은 콘테이너 A에 삽입될 콘텐츠의 사이즈를 나타낸다. 참조번호 6702는 콘테이너 A의 레이아웃 계산 후의 콘테이너 A'를 표시한다. 파선으로 표시된 영역(6703)은 콘테이너 B에 삽입될 콘텐츠의 사이즈를 나타낸다. 참조번호 6704는 콘테이너 B의 레이아웃 계산 후의 콘테이너 B'를, 6605는 콘테이너 C의 레이아웃 계산 후의 콘테이너 C'를 표시한다.
먼저, 도 65의 단계 S6501에서, 레이아웃 계산을 하는 콘테이너 세트가 획득된다. 계산을 위한 세트가 선택된다(S6502). 이 경우, 그 콘테이너 세트는 각 콘테이너 간에 링크(6602)에 의해 서로 연관된 도 66의 콘테이너 A, B, C에 대응한다.
레이아웃 편집 어플리케이션(121)은 레이아웃될 콘텐츠 데이터를 데이터베이스(119)로부터 획득한다(S6503). 여기에 기술된 콘텐츠 데이터는 콘텐츠의 내용, 사이즈, 양을 포함한다. 프로세서 유닛(135)은 I/O 인터페이스(138)를 통해 데이터베이스(119)로부터 획득된 콘텐츠 데이터 중 하나를 콘텐츠가 삽입되어야 하는 콘테이너에 할당한다(S6504).
단계 S6505에서, 레이아웃 편집 어플리케이션(121)은 가장 높은 우선 순위를 갖는 콘테이너를 추출한다. 도 67a에서, 콘테이너 A의 우선 순위가 가장 높기 때문에, 콘테이너 A가 추출된다. 그 추출된 콘테이너 A에 대해, 단계 6504에서 할당된 콘텐츠 데이터에 기초하여 레이아웃 계산이 실행된다(S6506). 도 67a의 참조번호 6701는 콘테이너 A에 할당된 콘텐츠 데이터의 사이즈에 대응하는 영역을 표시한다. 계산 방법은 룰의 위반이 발생하지 않으면 현재 계산의 대상인 콘테이너 A보 다 우선 순위가 낮은 콘테이너들(B 및 C)에 영향을 미칠 수 있다. 대신에, 그 계산 방법은 레이아웃 계산 대상인 콘테이너보다 우선 순위가 높은 임의의 콘테이너(예를 들어, 콘테이너 B에서 봤을때 보다 높은 우선 순위를 갖는 콘테이너 A)에 영향을 미칠 수 없다. 도 67a에 도시된 예에서, 콘테이너 A의 레이아웃 계산은 콘테이너 A보다 낮은 우선 순위를 갖는 콘테이너 B 및 C의 콘테이너 사이즈와 무관하게 실행될 수 있다. 콘테이너 B는 콘테이너 A의 레이아웃 계산 결과에 의해 영향을 받는다. 콘테이너 B의 레이아웃 계산 결과는 보다 낮은 우선 순위를 갖는 콘테이너 C에 영향을 미칠 수 있다. 가장 낮은 우선 순위를 갖는 콘테이너 C는 콘테이너 A 및 B의 레이아웃 계산 결과에 의해 영향을 받으면서, 레이아웃 계산을 처리한다.
처리는 단계 S6507로 진행한다. 레이아웃 편집 어플리케이션(121)은 단계 S6506에서의 레이아웃 계산 결과에 기초하여 콘테이너의 사이즈 및 위치를 결정한다. 단계 S6507에서 결정된 콘테이너의 사이즈 및 위치가 최종적으로 결정된다(S6508). 도 67b의 참조번호 6702는 콘테이너 A의 계산이 종료된 후의 콘테이너를 표시하고, 사이즈 및 위치가 최종적으로 결정된다.
단계 S6509에서, 레이아웃 편집 어플리케이션(121)은 선택된 세트 내의 모든 콘테이너 A, B, C에 대해 계산이 종료되는지를 확인한다. 모든 콘테이너 A, B, C 에 대해 계산이 종료되지 않으면(단계 S6509에서 NO), 계산된 콘테이너 다음으로 높은 우선도를 갖는 콘테이너가 추출된다(S6510). 그 콘테이너에 대해 단계 S6506 내지 S6508에서의 처리가 실행된다. 도 67b에 도시된 상태에서, 콘테이너 A의 계산이 종료된 후, 두번째로 높은 우선 순위를 갖는 콘테이너 B에 대하여 사이즈 및 위치를 결정하기 위한 처리가 실행된다. 도 67b의 참조번호 6703는 콘테이너 B에 할당된 콘텐츠 데이터의 사이즈(콘텐츠 사이즈)에 대응하는 영역을 표시한다. 이 콘텐츠 사이즈에 기초하여 콘테이너 B의 레이아웃 계산이 실행된다. 콘테이너 B의 우선 순위는 콘테이너 A의 우선 순위보다 우선 순위가 낮다. 콘테이너 A의 사이즈 및 위치가 이전 단계에서 최종으로 결정되었기 때문에, 콘테이너 B의 계산 결과는 콘테이너 A의 레이아웃 결과에 영향을 미칠 수 없다.
그러므로, 콘테이너 B의 레이아웃 계산에 제약이 적용되어, 그 콘테이너 사이즈는 콘테이너 A에 영향을 미치지 않고 계산되어야 한다. 도 67b의 6703으로 표시된 바와 같이, 콘테이너 B에 실제로 삽입된되어야 할 콘텐츠의 사이즈는 콘테이너 A'와 중첩된다. 그러므로, 계산 결과가 최종으로 결정된 콘테이너 A'와 중복하지 않도록 콘테이너 B의 레이아웃을 실제 사이즈보다 작게하여 계산이 행해진다. 도 67c의 참조번호 6704는 콘테이너 B의 계산이 종료된 후의 콘테이너 B'를 표시하고, 그 사이즈 및 위치는 최종으로 결정된다.
콘테이너 B의 레이아웃 계산이 종료된 후, 콘테이너 B보다 낮은 우선 순위를 갖는 콘테이너 C가 추출된다(도 65의 단계 S6510). 콘테이너 C의 레이아웃 계산이 실행된다(S6506 내지 S6508). 도 67a 내지 도 67c에 도시된 예에서, 콘테이너 C의 우선 순위는 그 세트에서 가장 낮다. 보다 높은 우선 순위를 갖는 나머지 콘테이너들(A 및 B) 모두의 사이즈 및 위치가 최종으로 결정된다. 이 때문에, 콘테이너 C의 레이아웃 계산은 그 레이아웃 계산 결과가 나머지 콘테이너들(A 및 B)에 영향으로 미치지 않고 실행될 수 있다. 그러므로, 가장 낮은 우선 순위를 갖는 콘테이 너가 단계 S6510에서 추출된 경우, 그 사이즈 및 위치는 이미 최종으로 결정되어 있다. 비록 계산이 단계 S6506 내지 S6508에서 가장 낮은 우선 순위를 갖는 콘테이너에 대해 행해질지라도, 그 콘테이너의 레이아웃은 보다 높은 우선 순위를 갖는 나머지 콘테이너들의 계산 결과에 따라서 사실상 이미 최종으로 결정되어 있다. 레이아웃 계산이 세트 내의 모든 콘테이너들에 대해 종료된 경우(단계 S6509에서 YES), 페이지 내에 계산되지 않은 세트가 남아 있는지를 확인한다(S6511). 계산되지 않은 세트가 있는 경우(단계 S6511에서 NO), 처리는 단계 S6502로 리턴한다. 레이아웃 편집 어플리케이션(121)은 상술된 절차에 따라서 레이아웃 계산을 실행한다. 모든 세트에 대해 계산이 종료되면, 레이아웃 편집 어플리케이션(121)은 데이터베이스로부터 가변 데이터의 콘텐츠를 로드하고, 계산된 콘테이너의 콘텐츠를 삽입하고(S6512), 처리를 종료한다. 상기 처리는 프로세서 유닛(135), 레이아웃 편집 어플리케이션(121)(사용자 인터페이스 모듈(103) 및 레이아웃 엔진 모듈(105))의 제어 하에서 실행될 수 있다.
(자동 링크 설정)
본 발명의 특징인 링크의 자동 설정의 내용이 다음에 기술될 것이다. 도 12a는 자동 링크 설정에 관한 UI 윈도우의 예를 도시하는 도면이다. 참조번호 1201은 어플리케이션 윈도우를 표시하고, 1202는 콘테이너, 1203는 콘테이너 간에 설정되어 있는 링크, 1204는 마우스 포인터를 표시한다. 본 실시예는 콘테이너 위치의 설명을 포함한다. 원점(1205)이 문서의 상부 좌측 코너에 설정된다. 좌표는 X 방향을 따라 우측으로, Y 방향을 따라 하측으로 증가하는 것으로 정의된다(도 12b). 콘테이너의 위치 정보는 각각 콘테이너의 코너의 위치 좌표((X1, Y1), (X2, Y2), (X3, Y3) 등)로 기재될 수 있다. 복수의 콘테이너들 간의 위치 관계는 기준 콘테이너의 위치 좌표 정보 및 또 다른 콘테이너의 위치 좌표 정보를 획득함으로써 상대적인 위치 관계가 획득될 수 있다.
도 16은 자동 링크 설정의 전체적인 흐름을 설명하는 플로우차트이다. 먼저, 단계 S1601에서, 레이아웃 편집 어플리케이션(121)은 일괄 링크 설정 대상인 콘테이너가 지정되어 있는지를 판정한다. 콘테이너는 사용자에 의해서 임의로 설정될 수 있다. 어떤 콘테이너도 지정되어 있지 않으면(단계 S1601에서 NO), 그 페이지 상의 모든 콘테이너가 선택된다(S1603). 레이아웃 편집 어플리케이션(121)은 복수의 콘테이너가 지정되었다고 판정한 경우(단계 S1601에서 YES), 그 처리는 단계 S1602로 진행하고, 프로세서 유닛(135)은 사용자에 의해 선택된 복수의 콘테이너들을 인식한다(S1603).
UI 윈도우는, 프로세서 유닛(135) 및 사용자 인터페이스 모듈(103)의 제어 하에서, 인식된 콘테이너를 사용자에게 시각적으로 제시하기 위해서 변경된다(S1604). 도 13은 복수의 콘테이너 F, G, H가 선택된 UI 윈도우의 일례를 도시하는 도면이다. 사각형(1302)이 마우스 포인터(1303)와 같은 명령 입력 수단에 의해 드래그되는 경우, 복수의 콘테이너들이 사각형(1302) 내에 놓여지며, 그 사각형 내의 복수의 콘테이너들은 선택될 수 있다. 복수의 콘테이너들을 선택하는 방법은 이에 제한되지 않는다. 선택될 각 콘테이너는 마우스 포인터(1303)에 의해 드래그되어 지정될 수 있다.
도 14a는 콘테이너 F, G, H가 도 13에 기술된 동작에 의해 선택되었음을 사용자에게 보여주기 위해 UI 윈도우가 전환된 상태를 도시하는 도면이다. 도 14a를 참조하면, 콘테이너 F, G, H가 선택되었음을 나타내는 표시(1402)(도 14a의 예에서 빗금친 부분)가 디스플레이된다.
도 14b는 도 14a에서와 같은 사각형 영역을 사용하여 콘테이너를 지정하는 것이 아니라, 마우스 포인터(1303)로 콘테이너를 클릭함(지정함)으로써 복수의 콘테이너를 선택하는 일례를 도시한 도면이다. 이 방법에서, 도 14a에서 설명된 사각형 영역을 사용하는 것에 의해 선택될 수 없는 레이아웃(선택되지 않은 콘테이너들을 부분적으로 포함하는 레이아웃) 내의 복수의 콘테이너들이 선택될 수 있다.
도 14b에서와 같이, 선택된 콘테이너를 나타내는 표시(5102)가 선택되어 디스플레이된다.
다시 도 16을 참조하면, 단계 S1605에서, 레이아웃 편집 어플리케이션(121)은 복수의 선택된 콘테이너들 간의 링크를 일괄적으로 설정한다. 이 단계는 또한 일괄 링크 설정에 의해서, 레이아웃이 그 링크에 설정되어 있는 룰을 위반하지 않도록 콘테이너의 설정을 변경하는 단계를 포함한다. 복수의 콘테이너가 선택된 상태에서, 도 14a에 도시된 링크 툴 버튼(1403)을 마우스 포인터로 클릭하는 경우, 도 73에 도시된 바와 같은 링크 생성 방향 UI가 디스플레이된다. 본 실시예에서, 일괄적으로 링크를 설정하기 위한 모드는 3개의 설정 방향 모드를 포함한다. 제1 링크 설정 방향 모드는 "링크의 X 방향으로의 설정"(7302)이다. 이 모드가 사용자에 의해 선택되었다고 레이아웃 편집 어플리케이션(121)이 인식한 경우, 링크는 일괄적으로 X 방향으로 설정된다. 제2 링크 설정 방향 모드는 "링크의 Y 방향으로의 설정"(7302)이다. 이 모드(7303)가 사용자에 의해 선택되었다고 레이아웃 편집 어플리케이션(121)이 인식한 경우, 링크는 일괄적으로 Y 방향으로 설정된다. 제3 링크 설정 방향 모드는 "링크의 X 및 Y 방향으로의 설정"(7304)이다. 모드(7304)가 사용자에 의해 선택되었다고 레이아웃 편집 어플리케이션(121)이 인식한 경우, 링크는 일괄적으로 X 및 Y 방향으로 설정된다. 이 실시예에서, X 방향은 수평 방향이고, Y 방향은 수직 방향이다. 일괄 링크 설정의 존재/부재를 사용자가 확인하게 하는 다이얼로그가 디스플레이될 수 있다. 이 경우, 일괄 링크 설정은 확인 입력이 사용자에 의해 행해졌을 경우에 행해진다. 도 15는 링크들이 복수의 선택된 콘테이너들 F, G, H 간에 링크가 일괄적으로 설정된 상태를 도시하는 도면이다. 일괄 링크 설정에 의해, 링크(1502)가 콘테이너 F, G, H 간에 설정된다. 그 링크 설정의 내용은 이후 상세하게 기술될 것이다. 다음으로, 본 처리에서는 가변 데이터가 로드되어 각 콘테이너에 삽입된다. 레이아웃 편집이 자동 레이아웃한 결과의 프리뷰를 획득하기 위한 프리뷰 처리 동안 실행된다면, 설정된 링크(1502)의 상태를 고려하여 레이아웃 계산이 실행된다(S1606). 그 레이아웃 계산은 도 9 및 도 10a 내지 도 10c에 기술된 것과 동일하므로 설명은 생략한다. 그것이 간단한 기본 레이아웃의 편집이며 어떤 프리뷰 디스플레이 요청이나 인쇄 요청도 입력되지 않은 경우, 단계 S1606의 처리는 실행되지 않는다.
(일괄 링크 생성)
도 17은 일괄 링크 생성 처리의 흐름을 개략적으로 설명하기 위한 플로우차 트이다. 처리 내용은 복수의 콘테이너의 선택을 사각형 영역으로 예시함으로써 이하에 기술될 것이다. 그러나, 그 처리는 페이지 내의 모든 콘테이너들이 선택되는지 아니면, 복수의 콘테이너들이 마우스 포인터에 의해 개별적으로 선택되는지에 무관하게 동일한 방법으로 실행될 수 있다.
단계 S1701에서, 레이아웃 편집 어플리케이션(121)은 도 16의 단계 S1602에서 인식되는, 사용자에 의해 선택된 콘테이너의 위치 정보 및 콘테이너의 개수(ConNum)를 획득한다. 레이아웃 편집 어플리케이션(121)은 선택된 콘테이너의 개수를 저장 장치(139)(140 또는 141) 또는 메모리 유닛(136)에 저장한다(S1702). X 방향으로 인접한 위치에 콘테이너가 레이아웃되어 있는 경우, 레이아웃 편집 어플리케이션(121)은 X 방향으로의 링크를 생성한다(S1703). Y 방향으로 인접한 위치에 콘테이너가 레이아웃되어 있는 경우, 레이아웃 편집 어플리케이션(121)은 Y 방향으로의 링크를 생성한다(S1704). 마지막으로, 레이아웃 편집 어플리케이션(121)은 그 생성된 링크가 콘테이너의 레이아웃에 관한 룰을 위반하지 않도록, 콘테이너의 설정(앵커의 설정 등)을 자동으로 변경한다(S1705).
각 단계(S1701 내지 S1705)에서의 처리는 도 18 등의 도면들을 참조하여 아래에 상세하게 기술될 것이다. 프로세서 유닛(135)의 전체적인 제어 하에서, 일괄 링크 생성에 관한 처리는 레이아웃 편집 어플리케이션(121)에 기초하여 실행될 수 있다.
(콘테이너의 위치 정보 획득)
도 18은 콘테이너의 위치 정보를 획득하기 위한 처리의 흐름을 설명하는 플 로우차트이다. 먼저, 레이아웃 편집 어플리케이션(121)은 선택된 콘테이너에 대한 순서를 임의로 설정한다(S1801). 이 처리에서, 그 순서는 모든 콘테이너의 위치 정보를 획득하기 위해 설정된다. 다음으로, 레이아웃 편집 어플리케이션(121)은 초기화하기 위해 변수 i에 1을 대입한다(S1802). 변수 i는 각 콘테이너에 대해 설정된 번호에 대응한다. 콘테이너들은 변수 i에 의해 서로서로 대응하게 된다. i번째 콘테이너에 대해, 프로세서 유닛(135)은 먼저 선택된 콘테이너의 X 방향 위치 정보를 획득하고(S1803), 이어서 Y 방향 위치 정보를 획득한다(S1804). 프로세서 유닛(135)은 획득된 정보를 저장 장치(139)(140 또는 141) 또는 메모리 유닛(136)에 저장한다(S1805). 레이아웃 편집 어플리케이션(121)은 변수 i를 1씩 증분시킨다. 다음 콘테이너의 X 방향 위치 정보가 획득되고(S1803), 이어서 Y 방향 위치 정보가 획득된다(S1804). 데이터는 저장된다(S1805). 앞서 기술된 처리는 선택된 모든 콘테이너에 대해 데이터의 획득 및 저장이 종료될 때까지, 이상의 처리가 반복된다. 선택된 모든 콘테이너들에 대해 처리가 종료되는 경우(단계 S1807에서 YES), 처리를 종료한다.
(링크 생성)
도 19a 및 도 19b는 X 방향으로 링크를 생성하기 위한 처리의 흐름을 설명하는 플로우차트이다. 링크 생성에서, 인접한 콘테이너들이 추출되어, 링크가 그들 간에 설정된다. 인접한 콘테이너들이란 그들 간에 최소 거리를 갖는 콘테이너들을 의미한다. 최소 거리를 갖는 복수의 콘테이너들이 검출되면, 복수의 링크가 설정된다.
먼저, 단계 S1901에서, 레이아웃 편집 어플리케이션(121)은 콘테이너를 링크 설정의 기준으로 설정한다(이 경우 콘테이너(2104)). 콘테이너들 간의 상대적인 위치 관계는 콘테이너(2104)의 좌측 변의 X-좌표를 기준으로 사용하여 획득된다. 링크 생성에 사용될 콘테이너 수는 X 방향으로의 거리의 오름 차순으로 설정된다. 이 순서의 설정에서, 도 21a에서 2106으로 표시된 바와 같이, 콘테이너(2104)의 좌측 변의 X 좌표가 기준으로서 설정된다. 순서 (2)는 X 방향의 거리가 더 작은 (X1 > X2) 콘테이너(2105)에 대해서 설정된다. 순서 (3)은 가장 작은 X 방향의 거리를 갖는 콘테이너(2106)로 설정된다. 유사한 방식으로, X 방향의 거리에 따라, 선택된 모든 콘테이너들에 대한 순서가 설정된다. 복수의 콘테이너들이 동일한 X 방향의 위치에 레이아웃된다면, Y 방향 간의 관계가 얻어진다. 보다 작은 수가 보다 작은 Y 방향 거리를 갖는 콘테이너에 대해 설정된다. 도 21a의 참조번호 2150은 링크 설정의 순서 설정이 종료된 상태를 표시한다. 이 실시예에서, 순서는 상부 좌측 코너에 좌측 변을 갖는 콘테이너로부터 설정된다. 그러나, 본 발명은 이에 제한되는 것이 아니다. 순서는 예를 들어, 상부 우측 또는 하부 우측으로부터 설정될 수도 있다.
처리를 단계 S1902로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 변수 n에 1을 대입한다. 단계 S1903에서, 레이아웃 편집 어플리케이션(121)은 X 방향으로 인접한 콘테이너의 번호(단계 S1901에서 설정된 순서)를 저장할 ContX[]를 준비하여, 이 값을 O으로 초기화한다.
단계 S1904에서, 레이아웃 편집 어플리케이션(121)은 X 방향 거리의 최소값 을 저장할 DistX_Min을 준비하고, 그 페이지 폭을 초기치에 대입한다(S1904).
단계 S1905에서, 레이아웃 편집 어플리케이션(121)은 인접하는 콘테이너를 체크하기 위해 변수 i에 n+1을 대입한다. 단계 S1901에서, 순서는 X 방향의 거리가 오름 차순으로 설정된다. 이 때문에, 링크가 설정될 필요가 있는 인접 콘테이너는 인접하고 있어, 또한, 링크를 설정할 필요가 있는 콘테이너는 자기(self) 콘테이너(도 21a의 콘테이너(2104))보다 더 큰 수를 갖는다. 그러므로, (n+1)번째 콘테이너로부터 체크를 수행할 변수를 제어하기 위해 단계 S1905의 처리가 행해진다.
처리를 도 19b의 플로우차트의 단계 S1906로 진행시켜, n번째 콘테이너의 Y 방향 위치 및 i번째 콘테이너의 Y 방향 위치가 중첩하는지를 체크한다. 본 실시예의 일괄 링크 설정에서, 링크는 콘테이너들이 동일한 방향, 즉 수평 방향 또는 수직 방향으로 존재한다고 가정하여 생성된다. X 방향의 링크에 대해서, 단계 S1906에서 체크가 실행되어, 콘테이너들이 수평 방향으로 레이아웃되어 있는지를 판정한다. 예를 들면, 도 21a의 2160에서, 콘테이너(2104)와 콘테이너(2105) 간의 Y 방향의 거리는 Y1이다. 콘테이너(2104)와 콘테이너(2106) 간의 Y 방향의 거리는 Y2이다.
단계 S1906에서, Y 방향 위치가 중첩한다고 판정되면(단계 S1906에서 YES), 처리를 단계 S1907로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 n번째 콘테이너의 X 방향 위치와 i번째 콘테이너의 X 방향의 위치 간의 차를 계산하여, 결과를 DistX에 대입한다.
처리를 단계 S1908로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 이전 단계에서 계산된 DistX와 최소 거리가 저장되어 있는 Dist_Min을 비교한다. DistX가 최소값(Dist_Min)보다 작으면(단계 Sl908에서 YES), 처리를 단계 S1909로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 ContX[]을 0으로 초기화하고, 변수 k에 0을 대입한다.
최소 거리를 갖는 콘테이너 번호는 ContX[k]에 대입된다(S1910).
단계 1908에서 DistX가 최소값보다는 작지 않으면(단계 S1908에서 NO), 처리를 단계 S1911로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 비교를 더 수행하고 DistX가 DistX_Min과 일치하는지의 여부를 판정한다(S1911). 그 값들이 일치한다면(단계 S1911에서 YES), 그 콘테이너 번호가 ContX[k]에 대입되어, 변수 k가 1씩 증분된다.
단계 S1910에서의 처리가 행해진 후, 또는 단계 S1911에서 DistX가 최소값보다도 크다고 판단된 경우, 또는 단계 1906에서 i번째 콘테이너가 Y 방향으로 중첩하고 있지 않은 경우, 레이아웃 편집 어플리케이션(121)은 다음 콘테이너를 체크하기 위해 변수 i를 증분한다(S1912).
단계 S1913에서, 레이아웃 편집 어플리케이션(121)은 모든 선택된 콘테이너들에 대해 체크가 행해지는지를 판정한다. 단계 S1913에서 NO이면, 흐름은 그 처리를 반복하기 위해 단계 S1906으로 돌아간다. 단계 S1913에서 YES이면, 검출된 인접 콘테이너들 간의 링크를 설정하기 위한 처리가 실행된다(S1914). 이러한 처리가 이후 기재될 것이다.
링크 설정의 처리가 종료된 경우, 변수 n이 증분된다(S1915). 상술된 처리가 선택된 모든 콘테이너들에 대해 행해지는지가 판정된다. 처리되지 않은 콘테이너가 남아 있다면, 흐름은 단계 S1903으로 돌아가서 처리를 반복한다(S1916). 모든 콘테이너들이 처리되면, 처리를 종료한다.
도 20은 도 19b의 단계 1914의 링크 설정 처리의 흐름을 설명하는 플로우차트이다. 단계 S2001에서, ContX[0]가 0인지의 여부를 판정한다. ContX[0]가 0이면(단계 S2001에서 YES), 어떠한 인접한 콘테이너도 검출되지 않음을 나타낸다. 그러므로, 그 처리는 링크의 설정 처리는 행하지 않고 종료된다.
ContX[0]가 0이 아니면(단계 S2001에서 NO), 변수 k에 0이 대입된다. 그리고, n번째 콘테이너와 ContX[k]번째 콘테이너 간에 X 방향으로의 링크가 설정된다. 링크가 설정된 경우, 변수 k는 증분되고(S2004), ContX[k]는 체크된다(S2005). ContX[k]가 0이 될 때까지, 저장되어 있는 모든 콘테이너에 대해 링크 설정이 수행된다. ContX[k]가 O가 되면, 링크의 설정 처리를 종료한다.
도 21a 및 도 21b는 X 방향으로의 링크 설정을 설명하는 도면이다. 도 21a를 참조하면, 참조번호 2101, 2102는 선택되지 않은 콘테이너들을 나타내며, 2103은 복수의 콘테이너들을 지정하는 사각형 영역, 2104 내지 2111은 일괄 링크 처리에 대해 선택된 콘테이너들, 2112는 마우스 포인터를 표시한다. 콘테이너 내의 번호는 도 19의 단계 S1901에서 콘테이너에 주어진 순서를 표시한다. 번호는 X 방향의 위치에 따라 오름 차순으로 설정되어 있다. 그 숫자들은 콘테이너들 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111의 순서로 설정되어 있다. 링크 설정 툴 버튼(2113)을 클릭할 경우 링크가 설정된다. 도 21b를 참조하면, 참조번호 2114 내지 2117은 X 방향으로 설정된 링크를 표시한다. 그 링크는 X 방향으로 최소 거리를 갖는 콘테이너들 간에 설정되어 있다.
도 21a 및 도 21b의 플로우차트에서, 링크가 X 방향으로 최소 거리를 갖는 콘테이너들 간에 설정된다. 도 68은 최소 거리를 갖지 않는 콘테이너들에 대한 처리의 흐름을 도시한다. 기본적인 처리 흐름은 도 16과 거의 동일하며, 단지 다른 점만 기술될 것이다.
도 68의 단계 S6801 내지 S6804의 처리는 도 16에서와 동일하며, 그 설명은 생략될 것이다. 특정 명령이 예를 들어, 마우스에 의해 입력될 경우(예를 들어, 마우스의 우측 버튼을 클릭하는 경우), 레이아웃 편집 어플리케이션(121)은 도 69에 도시된 링크 설정 UI를 디스플레이 장치(144)에 디스플레이된다(S6805). 도 69는 링크 설정 모드를 선택하기 위해 UI를 도시하는 도면이다. 도 69에 도시된 바와 같이, 제1 설정 모드인 "기준 콘테이너에 가장 가까운 콘테이너에 대한 링크 설정" 및 제2 설정 모드인 "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정"이 링크 설정 UI(6901)에 기술되어 있다. 레이아웃 편집 어플리케이션(121)이 사용자가 링크 설정 방법들 중 하나를 선택했음을 인식한 경우, 흐름이 다음 단계로 진행한다. "기준 콘테이너에 가장 가까운 콘테이너에 대한 링크 설정" 모드는 상술된 링크 설정 방법을 나타낸다. "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정" 모드가 선택된 경우의 처리에 대해 기술될 것이다. "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정" 모드는 도 72를 참조하여 상세히 기재될 것이다. 상술된 모드 "기준 콘테이너에 가장 가까운 콘테이너에 대한 링크 설정"에서는, 도 72의 콘테이너들 7201 내지 7203이 링크 설정 대상이다. 콘테이너(7201)를 기준으로 설정함으로써 링크가 생성된 경우, 콘테이너(7203)는 콘테이너(7201)에 가장 가까운 지점에 위치되지 않는다. 그러므로, 링크(7205)가 설정되지 않는다. "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정" 모드가 선택된 경우, 콘테이너(7201)와 Y 방향으로 교차하는 콘테이너(7202)에 대하여 링크(7204)가 설정되고, 링크(7205)가 콘테이너(7203)에 대해 설정된다.
설정 방법이 도 69에 도시된 링크 설정 UI에서 선택되어, "OK" 버튼을 클릭했음을 인식하면, 레이아웃 편집 어플리케이션(121)은 선택된 콘테이너들(S6806) 간에 링크를 설정한다. 단계 S6806 내지 S6809에서의 처리 또한 도 16의 단계 S1605 내지 S1606의 처리와 동일하므로, 그 설명을 생략한다.
일괄 링크 생성 및 콘테이너 위치 정보 획득의 처리 세부 사항은 상술된 도 17 및 도 18에서와 동일하므로, 그 설명을 생략한다. "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정" 모드에서의 링크 생성 흐름은 도 70a 및 도 70b를 참조하여 다음에 기재될 것이다. 단계 S7001 내지 S7005에서의 처리는 단계 S1901 내지 S1903 및 단계 S1905 및 Sl906에서와 동일하므로, 그 세부 설명을 생략한다.
단계 S7005에서, i번째 콘테이너의 y 방향 위치가 n번째 콘테이너의 Y 방향의 위치와 중첩한다고 판정되면, 레이아웃 편집 어플리케이션은 n번째 콘테이너와 i번째 콘테이너 사이에 또 다른 콘테이너가 존재하는지를 판정한다(S7006). 보다 구체적으로는, 레이아웃 편집 어플리케이션(121)은 도 18에 도시된 처리에 의해 저장 장치(139) 또는 메모리 유닛(136)에 저장되어 있는 각 콘테이너의 위치 정보를 참조함으로써 그것을 판정할 수 있다.
단계 S7006에서 어떠한 콘테이너도 n번째 콘테이너와 i번째 콘테이너 간에 존재하지 않는다고 판정되면, 흐름은 링크를 사용함으로써 n번째 콘테이너와 i번째 콘테이너를 연관시키기 위해 단계 S7008로 진행한다. 단계 S7006에서, 또 다른 콘테이너가 콘테이너들 간에 존재한다고 판정되면, 레이아웃 편집 어플리케이션(121)은 링크가 i번째 콘테이너와 n번째 콘테이너 사이에 직접적으로 설정될 수 있는지를 판정한다(S7007). 보다 구체적으로는, 레이아웃 편집 어플리케이션(121)이 도 18에 도시된 처리에 의해 저장 장치(139) 또는 메모리 유닛(136)에 저장되어 있는 각 콘테이너의 위치 정보를 참조함으로써 판정할 수 있다.
단계 S7007에서 링크가 다른 콘테이너를 개제하지 않고 n번째 콘테이너와 i번째 콘테이너 사이에 직접적으로 설정될 수 있다고 판정된 경우, 흐름은 S7008로 진행한다. 보다 구체적으로는, 도 71을 참조하면, 5번째 콘테이너의 Y 방향 위치 및 8번째 콘테이너의 Y 방향의 위치가 중첩한다고 판정될 수 있다. 그러나, 7번째 콘테이너가 5번째 콘테이너와 8번째 콘테이너의 사이에 존재한다. 이 때문에, 7번째 콘테이너를 통해 5번째 콘테이너에서 8번째 콘테이너까지 간접적인 링크만이 설정될 수 있다. 이 경우, 5번째 콘테이너에서 8번째 콘테이너까지 어떠한 링크도 설정되지 않는다. 4번째 콘테이너의 Y 방향 위치와 8번째 콘테이너의 Y 방향 위치 가 중첩한다. 7번째 콘테이너가 그들 간에 존재한다. 그러나, 8번째 콘테이너는 7번째 콘테이너로부터 Y 방향으로 돌출한다. 이 때문에, 7번째 콘테이너를 개재하지 않고 4번째 콘테이너에서 8번째 콘테이너까지 직접적으로 링크가 설정될 수 있다. 이 경우에 링크(7102)가 생성된다.
단계 S7008 내지 S7013의 처리는 도 19의 단계 S1910 내지 S1913에서와 동일하므로, 그 상세한 설명을 생략한다. 도 70b의 단계 S7011의 처리는 도 19b의 S1914를 설명하는 도 20의 처리와 동일하므로, 그 상세한 설명은 생략한다.
도 71은 X 방향의 링크 설정을 설명하는 도면이다. 도 71은 기본적으로는 도 21b와 동일하므로, 다른 점만을 기재할 것이다. 도 21b를 참조하면, 5번째 콘테이너와 X 방향으로 가장 가까운 위치에 위치된 6번째 콘테이너에 대해서만 링크(2116)가 설정된다. 도 71을 참조하면, 7번째 콘테이너가 5번째 콘테이너와 X 방향으로 가장 가까운 위치에 위치되어 있지 않아도, 링크(7101)가 설정된다. 이것은 "기준 콘테이너와 X 또는 Y 방향으로 교차하는 콘테이너에 대한 링크 설정" 모드가 도 69에 도시된 링크 설정 UI에서 선택되기 때문에, 기준 콘테이너(5번째 콘테이너)와 Y 방향으로 교차하고 있는 7번째 콘테이너에 대해 링크(7101)가 설정된다. 도 21b를 참조하면, 8번째 콘테이너가 4번째 콘테이너와 X 방향으로 가장 가까운 위치에 위치되지 않기 때문에, 그들 사이에 어떠한 링크도 설정되지 않는다. 그러나, 도 71에서는 링크(7202)가 설정된다. 7번째 콘테이너는 4번째 콘테이너와 8번째 콘테이너 사이에 존재한다. 그러나, 8번째 콘테이너는 기준 콘테이너(4번째 콘테이너)와 Y 방향으로 교차한다. 또한, 8번째 콘테이너는 7번째 콘테이너 로부터 Y 방향으로 돌출한다. 이러한 이유 때문에, 4번째 콘테이너에서 8번째 콘테이너까지 직접적으로 링크가 설정될 수 있다. 그러므로, 링크(7102)가 설정된다.
도 22a 및 도 22b는 Y 방향으로의 링크 생성의 흐름을 도시한다. 각 단계의 처리는 방향을 제외하고는 X 방향으로의 처리(도 19a 및 도 19b)와 거의 동일하다.
먼저, 레이아웃 편집 어플리케이션(121)은 Y 방향의 링크를 Y 방향으로의 위치의 오름 차순으로 생성하도록 콘테이너들에 대한 순서를 설정한다. 콘테이너들이 동일한 Y-방향 위치에 위치되면, 보다 작은 수가 보다 작은 X-방향 거리를 갖는 콘테이너에 대해 설정된다. 다음으로, 변수 n에 1를 대입한다(S2202). 레이아웃 편집 어플리케이션(121)은 Y 방향으로 인접한 콘테이너의 번호(단계 S2201에서 설정된 순서)를 저장하기 위해 ContY[]를 준비하고, 그 값을 0으로 초기화한다(S2203). 레이아웃 편집 어플리케이션(121)은 또한 Y 방향 거리의 최소값을 저장하기 위해 DistY_Min을 준비하고, 그 페이지 폭을 초기치에 대입한다(S2204). 다음으로, 인접하는 콘테이너를 체크하기 위해 변수 i에 n+1을 대입한다(2205).
처리를 도 22b의 단계 S2206으로 진행한다. 레이아웃 편집 어플리케이션(121)은 n번째 콘테이너의 X 방향 위치와 i번째 콘테이너의 X 방향의 위치가 중첩하는지를 체크한다(S2206). 단계 S2206에서 X 방향 위치가 중첩한다고 판정되면(단계 S2206에서 YES), 레이아웃 편집 어플리케이션(121)은 n번째 콘테이너의 Y 방향 위치와 i번째 콘테이너의 Y 방향의 위치의 차를 계산하고, 그 결과를 DistY에 대입한다(S2207).
레이아웃 편집 어플리케이션(121)은 이전 단계에서 계산된 DistY를 최소 거리가 저장되어 있는 DistY_Min과 비교한다(S2208). DistY가 최소값보다도 작으면, 처리는 단계 S2209로 진행한다. 레이아웃 편집 어플리케이션(121)은 ContY[]를 0으로 초기화하고, 변수 k에 0을 대입한다. 최소 거리를 갖는 콘테이너의 번호를 ContY[k]에 대입한다(S2210).
DistY가 단계 S2208에서 최소값보다 작지 않으면(단계 S2208에서 NO), 처리를 단계 S2211로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 또한 비교를 수행하고 DistY이 DistY_Min과 일치하는지를 판정한다(S2211). 그 값들이 일치하면(단계 S2211에서 YES), 레이아웃 편집 어플리케이션(121)은 그 콘테이너 번호를 ContY[k]에 대입하고, 변수 k를 1씩 증분한다(S2210).
단계 S2210의 처리가 행해진 후, 또는 단계 S2211에서 DistY가 최소값보다 크다고 판단된 경우, 또는 단계 S2206에서 i번째 콘테이너가 X 방향으로 중첩하고 있지 않은 경우에는, 레이아웃 편집 어플리케이션(121)은 다음의 콘테이너를 체크하기 위해 변수 i를 증분한다(S2212). 단계 S2213에서 NO이면, 흐름은 처리를 반복하기 위해 단계 S2206으로 돌아간다. 단계 S2213에서 YES이면, 레이아웃 편집 어플리케이션(121)은 검출된 인접 콘테이너들간의 링크를 설정하기 위한 처리를 실행한다(S2214). 이 처리에 대해서는 이후 기술할 것이다.
Y 방향의 링크 설정 처리가 종료되는 경우, 단계 S2215에서 변수 n이 증분된다. 상술된 처리가 모든 선택된 콘테이너들에 대해 행해지는지가 판정된다. 처리되지 않은 콘테이너가 남아 있으면, 흐름은 처리를 반복하기 위해 단계 S2203으로 돌아간다(S2216). 모든 콘테이너들이 처리되면, 전체 처리가 종료된다.
도 23은 도 22b의 단계 S2214에서 Y 방향으로의 링크를 설정하기 위한 처리의 흐름을 설명하는 플로우차트이다. 단계 S2301에서, 레이아웃 편집 어플리케이션(121)은 ContY[0]이 0인지를 판정한다. ContY[0]이 0이면(단계 S2301에서 YES), 어떠한 인접한 콘테이너도 검출되지 않음을 나타낸다. 그러므로, 그 처리가 링크 설정 처리를 행하지 않고 종료된다. ContY[0]이 0이 아니라면(단계 S2301에서 NO), 레이아웃 편집 어플리케이션(121)은 변수 k에 0을 대입한다(S2302). n번째 콘테이너와 ContY[k]번째 콘테이너 간에 Y 방향으로의 링크가 설정된다. 링크가 설정된 경우에, 레이아웃 편집 어플리케이션(121)은 변수 k를 증분하고(S2304), ContY[k]를 체크하여, ContY[k]가 0이 될 때까지 모든 저장된 콘테이너에 대하여 링크를 설정한다(S2303). ContY[k]가 0인 경우(단계 S2305에서 YES), 링크 설정 처리를 종료한다.
도 24a 및 도 24b는 링크 생성 상태를 나타내는 UI 윈도우의 일례를 도시하는 도면이다. 도 24a를 참조하면, 참조번호 2401은 복수의 콘테이너의 선택을 지정하기 위한 사각형 영역을 표시하고, 2402 내지 2409는 선택된 콘테이너, 2410은 마우스 포인터를 표시한다. 콘테이너 내의 번호들은 도 22a의 단계 S2201로 콘테이너에 주어진 순서를 나타낸다. 콘테이너(1)로부터 보여지는 경우, 남아있는 콘테이너들((2) 내지 (8))의 번호들은 Y 방향 거리의 오름 차순으로 설정된다. 번호들은 콘테이너들 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409의 순으로 설정된다. 도 24b에 도시된 링크 설정 툴 버튼(2415)을 클릭하는 경우, 링크들이 설정된다. 참조번호 2411 내지 2413은 생성된 Y 방향으로 생성된 링크들을 도시하고 있다. 최소 거리를 갖는 콘테이너들 간의 링크들은 Y 방향으로 설정된다. 두 개의 링크들(2413)이 콘테이너(1)로부터 콘테이너(4)와 콘테이너(5)로 설정되어 있다. 이것은 두 개의 콘테이너들이 Y 방향으로 최소 거리만큼 분리되어 있기 때문에, 존재한다. 링크가 일괄적으로 Y 방향으로 설정되어 있을지라도, 상술된 X 방향으로의 일괄 링크 설정에서와 같이, 도 69에 도시된 링크 설정 UI에 의한 선택에 의해, 최소 거리와는 다른 거리를 갖는 콘테이너들 간에 또한 설정될 수 있다.
(콘테이너의 계산을 위한 우선 순위 설정)
콘테이너에 대한 일괄 링크 설정시, 콘테이너 계산 순서를 지정하기 위한 우선 순위 방향이 설정될 수 있다. 이 처리는 도 51, 도 52, 도 53을 참조하여 기술될 것이다. 도 52는 일괄 링크 설정에 의해 생성된 링크 및 그들의 콘테이너를 도시하는 도면이다. 좌측 및 우측 변들 상의 참조번호 5301은 페이지 폭을 표시하고, 5302는 링크들이 일괄 설정된 콘테이너들, 5303은 링크들을 표시한다. X 방향 및 Y 방향 중 한 방향이 지정되어, 콘테이너들에 대한 우선 순위가 그 지정된 방향으로 설정된다. 도 53에 도시된 다이얼로그에서 사용자에 의해 방향 지정이 행해진다. 다이얼로그 박스(5304)의 디스플레이는 사용자 인터페이스 모듈(103)에 의해 제어된다. 참조번호 5305는 방향을 지정하는 라디오 버튼을 표시하고, 5306은 설정을 취소하는 버튼, 5307은 OK 버튼을 표시한다. 방향이 지정되는 경우, OK 버튼을 클릭하여, 우선 순위가 자동으로 설정된다.
도 51은 우선 순위 설정의 흐름을 설명하는 플로우차트이다. 단계 S5101에 서, 도 53에 도시된 상술된 다이얼로그에서 지정된 우선 순위 방향이 판정된다. X 방향이 지정된 경우, 레이아웃 편집 어플리케이션(121)은 콘테이너의 좌측 변의 X 좌표의 위치의 오름 차순으로 콘테이너의 순서를 설정한다(S5102). 복수의 콘테이너들이 동일한 X 좌표에 레이아웃되면, 레이아웃 편집 어플리케이션(121)은 그 콘테이너의 상부 변의 Y 좌표 위치의 순서들을 오름 차순으로 설정한다.
Y 방향이 우선 방향으로 지정되어 있는 경우, 레이아웃 편집 어플리케이션(121)은 콘테이너의 상부 변의 Y 좌표의 콘테이너들의 순서를 오름 차순으로 설정한다(S5103). 복수의 콘테이너들이 동일한 Y 좌표에 레이아웃되면, 레이아웃 편집 어플리케이션(121)은 그 콘테이너의 상부 변의 X 좌표 위치의 순서들을 오름 차순으로 설정한다. 순서 설정이 종료된 경우, 우선 순위는 그 순서에 따라 설정된다(S5104). 우선 순위 방향을 지정함으로써, 콘테이너의 계산의 우선 순위를 설정할 수 있다.
도 54a 및 도 54b는 X 방향으로 우선 순위를 제공함으로써 콘테이너의 우선 순위를 설정하기 위한 처리의 일례를 도시하는 도면이다. 도 54a는 우선 순위가 설정되기 전의 콘테이너 및 링크를 도시한다. 좌측 및 우측 변의 참조번호 5401은 페이지 폭을 표시하고, 5402는 콘테이너들, 5403은 모든 콘테이너들의 좌측 변의 X 좌표를 표시한다. 콘테이너의 우선 순위는 (그 페이지의 좌측 상부로부터) X 좌표의 오름 차순으로 설정된다. 도 54b는 우선 순위가 설정된 후의 콘테이너 및 링크를 표시한다. 그 콘테이너 내의 숫자들은 우선 순위를 표시한다. 우선 순위가 X 좌표의 오름 차순으로 설정되어 있기 때문에, 우선 순위는 콘테이너들 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411의 순으로 설정된다.
도 55a 및 도 55b는 Y 방향에 우선 순위를 제공함으로써 콘테이너의 우선 순위를 설정하기 위한 처리의 예들을 도시하는 도면이다. 도 55a는 우선 순위들이 설정되기 전의 콘테이너 및 링크를 도시한다. 좌측 및 우측 변의 참조번호 5501은 페이지 폭을 표시하고, 5502는 콘테이너, 5503은 모든 콘테이너들의 상부 변의 Y 좌표를 표시한다. 콘테이너들의 우선 순위는 (그 페이지의 상부 변으로부터) Y 좌표의 오름 차순으로 설정된다. 도 55b는 우선 순위가 설정된 후의 콘테이너 및 링크를 도시한다. 각 콘테이너 내의 숫자들은 우선 순위를 나타낸다. 우선 순위가 Y 좌표의 오름 차순으로 설정되어 있기 때문에, 콘테이너들 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511의 순으로 우선 순위가 설정된다.
(링크 설정의 수정)
콘테이너들 간의 일괄 설정된 링크들에 대해, 사용자는 키보드(132) 또는 마우스(133)와 같은 명령 입력 수단을 통해 수정을 지정할 수 있다. 이 경우, 지정된 링크의 속성은 변경될 수 있거나 또는 링크 설정이 취소될 수 있다. 변경 또는 설정 취소는 사용자 인터페이스 모듈(103), 프로세서 유닛(135)의 제어 하에서 실행될 수 있다. 콘테이너들이 개별적으로 지정될 수 있는 경우, 링크들이 개별적으로 설정될 수 있다. 그러므로, 사용자는 일괄 설정된 링크들에 부가하여 새로운 부가적인 링크를 설정할 수 있다.
(콘테이너 설정의 자동 변경(페이지 상의 가장 외측 변을 로크))
도 17의 단계 S1705에 대응하는 콘테이너의 앵커 설정을 변경하기 위한 처리 가 기술될 것이다. 이러한 처리에서, 생성된 링크를 갖는 콘테이너의 변이 그 페이지 내에 레이아웃되어 있는 콘테이너의 가장 외측의 위치와 동일한 위치에 위치되는 경우, 그 변의 위치는 자동적으로 로크(고정)된다. 단일 콘테이너의 가로 변과 세로 변이 로크된 경우, 앵커가 이 변들에 의해 형성된 코너에 자동적으로 설정된다.
도 25는 앵커의 설정의 전체적인 처리 흐름을 설명하는 플로우차트이다. 단계 S2501에서, 콘테이너의 좌측 변이 로크된다. 단계 S2502에서, 콘테이너의 우측 변이 로크된다. 또한, 콘테이너의 상부 및 하부 변들이 단계 S2503 및 단계 S2504에서 로크된다. 각 변을 로크하기 위한 처리의 흐름은 도 26, 도 28, 도 30, 도 32의 플로우차트를 참조하여 상세하게 기재될 것이다.
(좌변의 로크)
도 26은 도 25에서의 단계 S2501의 콘테이너의 좌측 변을 로크하기 위한 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S2601에서, 레이아웃 편집 어플리케이션(121)은 레이아웃된 모든 콘테이너의 좌측 변의 최소 X 좌표를 획득한다. 획득된 최소 X 좌표는 Min_X에 대입된다(S2602). 단계 S2603에서, 변수 i에 1을 대입한다. 단계 S2604에서, 변수 k에 0을 대입한다.
레이아웃 편집 어플리케이션(121)은 Lock_Cont[]을 준비하고, 이를 0으로 초기화한다(S2605). 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 로크 대상으로서 콘테이너의 번호를 저장하기 위한 배열이다.
단계 S2606에서, 레이아웃 편집 어플리케이션(121)은 i번째 콘테이너의 좌측 변의 X 좌표가 Min_X와 동일한 지를 체크한다. 단계 S2606에서 YES이면, 처리를 단계 S2607로 진행시켜, 변수 i를 Lock_Cont[k]에 대입한다. 변수 k 및 i는 증분된다(S2608 및 S2609).
그 값들이 단계 S2606에서 동일하지 않다면(단계 S2606에서 NO), Lock_Cont에 대입하지 않고도 변수 i가 증분된다(S2609). 모든 콘테이너에 대하여 처리가 종료되는지를 확인한다(S2610). 단계 S2610에서 NO이면, 흐름은 처리를 반복하기 위해 단계 S2606으로 진행한다. 단계 S2610에서 YES이면, 처리를 단계 S2611로 진행시켜, 변수 k에 0을 대입한다. 그 처리는 단계 S2612로 진행하여, Lock_Cont[k]의 값을 체크한다. 그 값이 0이면, 로크를 설정하지 않고서도 그 처리는 종료된다. 값이 0이 아니면, Lock_Cont[k]번째 콘테이너의 좌측 변은 로크된다(S2613). 변수 k는 증분된다(S2614). Lock_Cont[k]의 값이 0이 될 때까지 단계 S2613 및 S2614의 처리를 반복한다. 이 처리에 의해 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 좌측에 위치된 변이 로크된다. 복수의 변이 검출되면, 그 복수의 검출된 변들 모두가 로크된다.
도 27은 콘테이너의 좌측 변의 로크 상태를 도시하는 도면이다. 참조번호 2701은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 2702, 2703, 2704는 링크, 2705는 로크된 변, 2706은 최소의 X 좌표를 표시한다. 도 27에 도시된 바와 같이, 도 26의 처리가 실행되는 경우, 최소의 X 좌표에서 각 콘테이너의 좌측 변이 로크된다.
도 28은 도 25의 단계 S2502의 우측 변을 로크하기 위한 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S2801에서, 레이아웃 편집 어플리케이션(121)은 레이아웃되어 있는 모든 콘테이너의 우측 변의 최대 X 좌표를 획득한다. 단계 S2802에서, 그 획득된 최대 X 좌표는 Max_X에 대입된다. 단계 S2803에서, 변수 i에 1을 대입한다. 단계 S2804에서, 변수 k에 0을 대입한다. 단계 S2805에서, Lock_Cont가 준비되어, O으로 초기화된다. 변수 i는 콘테이너 번호를 표시한다. 변수 k는 Lock_Cont[]의 첨자를 표시한다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로서 저장하는 배열이다.
단계 S2806에서, 레이아웃 편집 어플리케이션(121)은 i번째 콘테이너의 우측 변의 X 좌표와 Max_X와 동일한지를 체크한다. 그 값이 동일하면(단계 S2806에서 YES), 처리를 단계 S2807로 진행시켜, 변수 i를 Lock_Cont[k]에 대입한다. 변수 k 및 변수 i가 증분된다(S2808, S2809). 그 값이 단계 S2806에서와 동일하다면(단계 S2806에서 NO), 처리는 단계 S2809로 진행하여 그것을 Lock_Cont에 대입하지 않고, 변수 i를 증분한다.
모든 콘테이너에 대해 처리가 종료되는지가 확인된다(S2810). 처리가 종료되지 않으면(단계 S2810에서 NO), 흐름은 처리를 반복하기 위해 단계 S2806로 돌아간다. 처리가 종료되면(단계 S2810에서 YES), 처리를 단계 S2811로 진행시켜, 변수 k에 0을 대입한다.
처리를 단계 S2812로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 Lock_Cont[k]의 값을 체크한다. 그 값이 0이면(단계 S2812에서 NO), 그 처리는 로 크를 설정하지 않고도 종료된다. 그 값이 0이 아니면(단계 S2812에서 NO), 처리를 단계 S2813으로 진행시켜 Lock_Cont[k]번째 콘테이너의 우측 변을 로크한다.
단계 S2814에서, 변수 k는 증분된다. 단계 S2813 및 S2814의 처리는 Lock_Cont[k]의 값이 0이 될 때까지 반복된다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 그 페이지 내의 가장 우측 위치에 위치된 변은 로크된다. 복수의 변이 검출되면, 그 복수의 검출된 변들 모두가 로크된다.
도 29는 콘테이너의 우측 변의 로크 상태를 도시하는 도면이다. 도 29를 참조하면, 참조번호 2901는 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 2902 및 2903은 링크, 2904는 로크된 변, 2905는 최대 X 좌표를 표시한다. 도 29에 도시된 바와 같이, 도 28의 처리가 실행되는 경우, 최대 X 좌표에서의 각 콘테이너의 우측 변이 로크된다.
(상변의 로크)
도 30은 도 25의 단계 S2503의 상부 변을 로크하는 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S3001에 있어서, 레이아웃 편집 어플리케이션(121)은 레이아웃되어 있는 모든 콘테이너의 상부 변의 최소 Y 좌표를 획득한다. 단계 S3002에서, 그 획득된 최소 Y 좌표를 Min_Y에 대입한다. 단계 S3003에서, 변수 i에 1를 대입한다. 단계 S3004에서, 변수 k에 0을 대입한다. 단계 S3005에서, 레이아웃 편집 어플리케이션(121)은 Lock_Cont[]를 준비하여, 그것을 0으로 초기화한다. 변수 i는 콘테이너 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로 서 저장하기 위한 배열이다.
처리를 단계 S3006으로 진행시켜, 레이아웃 편집 어플리케이션(121)이 i번째 콘테이너의 상부 변의 Y 좌표가 Min_Y와 동일한 지를 체크한다. 그 값이 동일하다면(단계 S3006에서 YES), 처리를 단계 S3007로 진행시켜, 변수 i를 Lock_Cont[k]에 대입한다. 변수 k 및 변수 i는 증분된다(S3008, S3009).
그 값이 단계 S3006에서 동일하지 않다면(단계 S3006에서 NO), 레이아웃 편집 어플리케이션(121)은 Lock_Cont에 대입하지 않아도 변수 i를 증분한다(S3009). 처리를 단계 S3010로 진행시켜, 처리가 모든 콘테이너에 대해 종료되는지를 확인한다. 처리가 종료되지 않으면(단계 S30l0에서 NO), 흐름은 처리를 반복하기 위해 단계 3006으로 돌아간다. 처리가 종료되면(단계 S3010에서 YES), 처리를 단계 S3011로 진행시켜, 변수 k에 0을 대입한다. 처리를 단계 S3012로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 Lock_Cont[k]의 값을 체크한다. 값이 0이면(단계 S3012에서 YES), 처리는 로크를 설정하지 않고서도 종료된다. 값이 0이 아니면(단계 S3012에서 NO), 처리를 단계 S3013으로 진행시켜 Lock_Cont[k]번째 콘테이너의 상부 변을 로크한다. 처리를 단계 S3014로 진행시켜, 변수 k를 증분한다(S3014). Lock_Cont[k]의 값이 0이 될 때까지, 단계 S3013 및 S3014의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 상위에 위치된 변이 로크된다. 복수의 변이 검출되면, 그 복수의 검출된 변 모두가 로크된다.
도 31은 콘테이너의 상부 변의 로크 상태를 도시하는 도면이다. 도 31을 참 조하면, 참조번호 3101은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 3102 및 3103은 링크, 3104는 최소 Y 좌표를 표시한다. 도 31에 도시된 바와 같이, 도 30의 처리가 실행되는 경우, 최소 Y 좌표에 있는 각 콘테이너의 상부 변이 로크된다.
도 32는 도 25에서의 단계 S2504의 하부 변을 로크하기 위한 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S3201에서, 레이아웃 편집 어플리케이션(121)은 레이아웃되어 있는 모든 콘테이너의 하부 변의 최대 Y 좌표를 획득한다. 단계 S3202에서, 그 획득된 최대 Y 좌표는 Max_Y에 대입한다. 단계 S3203에서, 변수 i에 1를 대입한다. 단계 S3204에서 변수 k에 0을 대입한다. 단계 S3205에서, Lock_Cont[]를 준비하여 0으로 초기화한다. 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로서 저장하는 배열이다.
처리를 단계 S3206로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 i번째 콘테이너의 하부 변의 Y 좌표가 Max_Y와 동일한 지를 체크한다. 그 값이 동일하면, 처리를 단계 S3207로 진행시켜, 변수 i를 Lock_Cont[k]에 대입한다. 단계 S3208에서, 변수 k 및 변수 i를 증분한다(S3208, S3209).
그 값이 단계 S3206에서 동일하지 않으면(단계 S3206에서 NO), Lock_Cont에 대입하지 않고서도 변수 i를 증분한다(S3209). 모든 콘테이너에 대해 처리가 종료되는지를 확인한다(S3210). 처리가 종료되지 않으면(단계 S3210에서 NO), 흐름은 그 처리를 반복하기 위해 단계 S3206로 돌아간다. 그 처리가 종료되면(단계 S3210 에서 YES), 처리를 단계 S3211로 진행시켜, 변수 k에 0을 대입한다. 처리를 단계 S3212로 진행시킨다. 레이아웃 편집 어플리케이션(121)은 Lock_Cont[k]의 값을 체크한다. 그 값이 O이면, 로크를 설정하지 않고서도 이 처리가 종료된다. 값이 0이 아니면(단계 S3212에서 NO), Lock_Cont[k]번째 콘테이너의 하부 변이 로크된다(S3213). 처리를 단계 S3214로 진행시켜, 변수 k를 증분한다. Lock_Cont[k]의 값이 0이 될 때까지, 단계 S3213 및 S3214의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 하부에 위치된 변이 검출된다. 복수의 변이 검출되면, 그 복수의 검출된 변 모두가 로크된다.
도 33은 콘테이너의 하부 변의 로크 상태를 도시하는 도면이다. 도 33을 참조하면, 참조번호 3301은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 3302, 3303은 링크, 3304는 최대 Y 좌표를 표시한다. 도 33에 도시된 바와 같이, 도 32의 처리가 실행되는 경우, 최대 Y 좌표에 있는 각 콘테이너의 하부 변이 로크된다.
도 34는 앵커 설정의 상태를 도시하는 도면이다. 참조번호 3401는 페이지 단을 도시하여, 3402는 콘테이너, 3403, 3404는 링크, 3405, 3506, 3407는 로크된 변을 표시한다. 페이지 내의 가장 외측에 위치하는 변(3407)이 상술된 처리에 의해 로크된다. 단일 콘테이너의 세로 및 가로 변이 로크되는 경우, 콘테이너의 코너가 고정된 경우, 앵커(3408)가 자동으로 설정된다.
(유연성 링크 설정)
도 35 및 도 36은 상술된 일괄 링크 생성 처리시 고정된 길이를 갖는 링크를 생성하는 대신에 최대 및 최소 값을 갖는 가변 링크를 설정하기 위한 처리의 흐름을 설명하기 위한 플로우차트이다. 링크가 설정되는 콘테이너를 선택하는 동작은 상술된 내용와 동일하므로, 그 설명을 생략한다. 가변 링크의 최대 및 최소값의 설정하는 처리는 도 20 및 도 23에 도시된 흐름을 변경함으로써 구현된다. 여기서는 그 변경된 점만을 설명한다.
도 35는 도 20으로 도시된 X 방향의 링크 생성의 플로우차트에서 가변 길이를 갖는 링크를 설정하기 위한 처리의 흐름을 설명하기 위한 플로우차트이다. 먼저, 단계 S3501에서, 레이아웃 편집 어플리케이션(121)은 변수 k에 0을 대입한다. 단계 S3502에서, ContX[k]의 값을 체크한다. 값이 0이면(단계 S3502에서 YES), 링크 생성 처리는 종료된다. 그 값이 0이 아니면(단계 S3502에서 NO), 처리를 단계 S3503으로 진행시켜, n번째 콘테이너와 ContX[k]번째 콘테이너 간에 X 방향 링크를 설정한다. 단계 S3504에서, 생성된 링크의 길이를 Link_Dist에 대입한다. 단계 S3505에서, Link_Dist에 계수 1.2를 곱하고, 그 결과의 값을 생성된 링크의 최대값으로 설정한다. 또한, Link_Dist에 계수 0.8를 곱하고, 그 결과의 값을 생성된 링크의 최소값으로 설정한다(S3506). 단계 S3507에서, 변수 k를 증분한다. 링크가 설정되어야할 콘테이너가 남아 있으면, 단계 S3503에서 S3506까지의 처리를 반복한다.
도 36은 도 23에 도시된 Y 방향 링크 생성의 플로우차트에서, 가변 길이를 갖는 링크를 설정하기 위한 처리의 흐름을 설명하기 위한 플로우차트이다. 단계 S3601에서, 변수 k에 1을 대입한다. 단계 S3602에서, ContY[k]의 값을 체크한다. 그 값이 0이면, 링크 생성 처리는 종료된다. 그 값이 0이 아니면(단계 S3602에서 NO), 처리를 단계 S3603로 진행시켜, n번째 콘테이너와 ContY[k]번째 콘테이너 간에 Y 방향의 링크를 설정한다. 단계 S3604에서, 생성된 링크의 길이를 Link_Dist에 대입한다. 단계 S3605에서, Link_Dist에 계수 1.2를 곱하고 그 결과의 값을 생성된 링크의 최대값으로 설정한다. 또한, Link_Dist에 계수 0.8을 곱하고, 그 결과의 값을 생성된 링크의 최소값으로 설정한다(S3606). 단계 S3607에서, 변수 k를 증분한다. 링크가 설정되어야할 콘테이너가 남아 있으면, 단계 S3603에서 S3606까지의 처리를 반복한다.
도 35 및 도 36에서의 상술된 처리에 의해, 생성된 링크의 길이의 값 120%가 최대값으로 설정될 수 있고, 길이의 값 80%가 최소값으로 설정될 수 있다. 그러나, 링크 길이의 최대 및 최소값은 상술된 계수들에 제한되는 것이 아니며, 예를 들어, 도 48에 도시된 UI 윈도우를 통해 사용자에 의해 임의로 지정될 수 있다.
(콘테이너 설정의 자동 변경(사용자가 지정한 범위 내로 변을 로크))
다음에는, 사용자에 의해 입력된 범위 내로 변을 로크하기 위한 처리가 콘테이너의 설정을 자동으로 변경하기 위한 처리로서 기재될 것이다.
도 37은 이러한 로크 처리의 전체적인 흐름을 설명하기 위한 플로우차트이다. 단계 S3701에서, 레이아웃 편집 어플리케이션(121)은 포인팅 디바이스(132, 133)의 사용자 입력에 의해 지정된 X-Y 범위를, 지정된 범위 정보로서 유지되어 있는 변수 "Value_X, Value_Y"에 대입한다. 이 범위는 페이지 내의 가장 외측의 변의 좌표의 내부 점까지를 로크의 대상으로 결정하기 위한 값이다. 단계 S3702 내 지 S3705에서의 처리에 의해 콘테이너들의 변이 로크된다. 각 변의 로크는 이하에 상세히 기술될 것이다.
(좌변의 로크)
도 38은 도 37의 단계 S3702의 콘테이너의 좌측 변을 로크하는 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S3801에서, 레이아웃 편집 어플리케이션(121)은 레이아웃되어 있는 모든 콘테이너의 좌측 변의 최소 X 좌표를 획득한다. 그 획득된 최소 X 좌표를 Min_X에 대입한다(S3802). 단계 S3803에서, 변수 i에 1를 대입한다. 단계 S3804에서 변수 k에 0을 대입한다.
레이아웃 편집 어플리케이션(121)은 Lock_Cont[]을 준비하고, 그것을 0으로 초기화한다(S3805). 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 그 콘테이너의 번호를 로크 대상으로 저장하기 위한 배열이다.
단계 S3806에서, 레이아웃 편집 어플리케이션(121)은 i번째 콘테이너의 좌측 변의 X 좌표에서 Min_X를 감산하고, 그 차가 지정된 범위 정보의 X 좌표인 Value_X보다 작거나 같은지를 체크한다. 그 차가 Value_X보다 작거나 같으면(단계 S3806에서 YES), i번째 콘테이너는 로크 대상으로서 지정된 범위 내에 존재한다. 그러므로, 변수 i를 Lock_Cont[k]에 대입한다(S3807). 변수 k 및 변수 i는 증분된다(S3808, S3809).
그 차가 Value_X보다 작거나 같지 않으면(단계 S3806에서 NO), Lock_Cont에 대입하지 않고서도 변수 i는 증분된다(S3809). 모든 콘테이너에 대하여 처리가 종 료되는지를 확인한다(S3810). 처리가 종료되지 않으면(단계 S3810에서 NO), 처리를 반복하기 위해 단계 S3806으로 돌아간다. 처리가 종료되면(단계 S3810에서 YES), 처리를 단계 S3811로 진행시켜, 변수 k에 0을 대입한다. 처리를 단계 S3812로 진행시켜, Lock_Cont[k]의 값을 체크한다. 그 값이 0이면, 로크를 설정하지 않고서도 이 처리는 종료된다. 값이 0이 아니면(단계 S3812에서 NO), 그 처리를 단계 S3813으로 진행시켜, Lock_Cont[k]번째 콘테이너의 좌측 변을 로크한다. 그 처리를 단계 S3814로 진행시켜, 변수 k를 증분한다. Lock_Cont[k]의 값이 0이 될 때까지, 단계 S3813 및 S3814의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 좌측 위치로부터 사용자가 지정한 범위 내에 존재하는 콘테이너의 좌측 변 모두가 로크된다.
도 39는 콘테이너의 좌측 변의 로크 상태를 도시하는 도면이다. 참조번호 3901는 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 3902, 3903, 3904는 링크, 3905는 콘테이너의 로크된 변, 3906은 최소 X 좌표, 3907은 로크 대상으로서 지정된 범위의 경계선, 3908은 Value_X를 표시한다. 도 39에 도시된 바와 같이, 도 38의 처리가 실행되는 경우, 최소의 X 좌표(3906)로부터 Value_X(3908)로 지정된 범위 내에 있는 콘테이너의 좌측 변이 로크된다(3905). 그 조건이 복수의 변을 적용하면, 그 복수의 변 모두가 로크된다.
(우변의 로크)
도 40은 도 37의 단계 S3703의 콘테이너의 우측 변을 로크하는 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S4001에서, 레이아웃 편 집 어플리케이션(121)은 레이아웃되어 있는 모든 콘테이너의 우측 변의 최대 X 좌표를 획득한다. 그 획득된 최대 X 좌표를 Max_X에 대입한다(S4002). 단계 S4003에서, 변수 i에 1을 대입한다. 단계 S4004에서 변수 k에 0을 대입한다.
Lock_Cont[]를 준비하여, 0으로 초기화한다(S4005). 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로서 저장하기 위한 배열이다. 단계 S4006에서, i번째 콘테이너의 우측 변의 X 좌표는 Max_X로부터 감산된다. 그 차가 지정된 범위 정보의 X 좌표인 Value_X보다작거나 같은지의 여부를 체크한다. Value_X보다 작거나 같은면(단계 S4006에서 YES), i번째 콘테이너는 로크 대상으로서 지정된 범위 내에 존재한다. 그러므로, 변수 i를 Lock_Cont[k]에 대입한다(S4007). 변수 k 및 변수 i가 증분된다(S4008 및 S4009).
그 차가 Value_X보다 작거나 같지 않으면(단계 S4006에서 NO), 그것을 Lock_Cont에 대입하지 않고서도 변수 i를 증분한다(S4009). 처리가 모든 콘테이너에 대해 종료되는지를 확인한다(S4010). 그 처리가 종료되지 않으면(단계 S40l0에서 NO), 처리를 반복하기 위해 단계 S4006로 돌아간다. 처리가 종료되면(단계 S4010에서 YES), 처리를 단계 S4011로 진행시켜, 변수 k에 0을 대입한다. 처리를 단계 S4012로 진행시켜, Lock_Cont[k]의 값을 체크한다. 그 값이 0이면, 로크를 설정하지 않고서도 이 처리를 종료한다. 그 값이 0이 아니면(단계 S4012에서 NO), 처리를 단계 S4013으로 진행시켜, Lock_Cont[k]번째 콘테이너의 우측 변을 로크한다. 처리를 단계 S4014로 진행시켜, 변수 k를 증분한다. Lock_Cont[k]의 값이 0 이 될 때까지, 단계 S4013 및 S4014의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 우측 위치로부터 사용자가 지정한 범위 내에 존재하는 콘테이너의 우측 변 모두가 로크된다.
도 41은 콘테이너의 우측 변의 로크 상태를 도시하는 도면이다. 참조번호 4101은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 4102, 4103, 4104는 링크, 4105는 콘테이너의 로크된 변, 4107은 최대 X 좌표, 4106는 로크 대상으로서 지정된 범위의 경계선, 4108은 Value_X를 표시한다. 도 41에 도시된 바와 같이, 도 40의 처리가 실행되는 경우, 최대 X 좌표로부터 Value_X(4108)에 의해 지정된 범위 내에 있는 콘테이너의 우측 변이 로크된다(4105). 그 조건이 복수의 변들에 적용되면, 복수의 변 모두가 로크된다.
(상변의 로크)
도 42는 도 37의 단계 S3704의 콘테이너의 상부 변을 로크하는 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S4201에서 레이아웃되어 있는 모든 콘테이너들의 상부 변의 최소 Y 좌표가 획득된다. 그 획득된 최소 Y 좌표는 Min_Y에 대입된다(S4202). 단계 S4203에서, 변수 i에 1를 대입한다. 단계 S4204에서, 변수 k에 0을 대입한다.
Lock_Cont[]를 준비하여 0으로 초기화한다(S4205). 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로 저장하기 위한 배열이다. 단계 S4206에서, i번째 콘테이너의 상부 변의 Y 좌표로부터 Min_Y를 감산한다. 그 차가 Value_Y보다 작거나 같은지를 체크한다. 그 차가 Value_Y보다 작거나 같으면(단계 S4206에서 YES), i번째 콘테이너는 로크 대상으로서 지정된 범위 내에 존재한다. 그러므로, 변수 i를 Lock_Cont[k]에 대입한다(S4207). 변수 k 및 변수 i는 증분된다(S4208, S4209).
그 차가 Value_Y보다 작거나 같지 않으면(단계 S4206에서 NO), Lock_Cont에 대입하지 않고서도 변수 i가 증분된다(S4209). 처리가 모든 콘테이너에 대해 종료되었는지를 확인한다(S4210). 처리가 종료되지 않았으면(단계 S4210에서 NO), 흐름은 처리를 반복하기 위해 단계 S4206으로 돌아간다. 처리가 종료되었으면(S4210-YES), 처리를 단계 S4211로 진행시켜, 변수 k에 0을 대입한다. 처리를 단계 S4212로 진행시켜, Lock_Cont[k]의 값을 체크한다. 그 값이 0이면, 로크를 설정하지 않고서도 이 처리는 종료된다. 그 값이 0이 아니면(단계 S4212에서 NO), 처리를 단계 S4213로 진행시켜, Lock_Cont[k]번째 콘테이너의 상부 변을 로크한다. 처리를 단계 S4214로 진행시켜, 변수 k를 증분한다. Lock_Cont[k]의 값이 0이 될 때까지, 단계 S4213 및 S4214의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 상부로부터 사용자가 지정한 범위 내에 존재하는 콘테이너의 상부 변 모두가 로크된다.
도 43은 콘테이너의 상부 변의 로크 상태를 도시하는 도면이다. 참조번호 4301은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 4302, 4303은 링크, 4304는 최소 Y 좌표, 4305는 로크 대상으로 지정된 범위의 경계선, 4308은 Value_Y을 표시한다. 도 43에 도시된 바와 같이, 도 42의 처리가 실행된 경우, 최 소 Y 좌표로부터 Value_Y(4308)로 지정된 범위 내에 있는 콘테이너의 상부 변이 로크된다(4306). 그 조건이 복수의 변에 적용되면, 복수의 변 모두가 로크된다.
(하변의 로크)
도 44는 도 37의 단계 S3705의 콘테이너의 하부 변을 로크하는 처리의 흐름을 상세하게 설명하기 위한 플로우차트이다. 먼저, 단계 S4401에서, 레이아웃되어 있는 모든 콘테이너의 하부 변의 최대 Y 좌표가 획득된다. 그 획득된 최대 Y 좌표를 Max_Y에 대입한다(S4402). 단계 S4403에서, 변수 i에 1를 대입한다. 단계 S4404에서, 변수 k에 0을 대입한다.
Lock_Cont[]를 준비하고, 0으로 초기화한다(S4405). 변수 i는 콘테이너의 번호를 나타낸다. 변수 k는 Lock_Cont[]의 첨자를 나타낸다. Lock_Cont[]는 콘테이너의 번호를 로크 대상으로 저장하기 위한 배열이다. 단계 S4406에서, i번째 콘테이너의 하부 변의 Y 좌표를 Max_Y로부터 감산한다. 그 차가 Value_Y 이하인지 아닌지를 체크한다. Value_Y 이하이면(단계 S4206에서 YES), i번째 콘테이너는 로크 대상으로서 지정된 범위 내에 존재한다. 그러므로, 변수 i은 Lock_Cont[k]에 대입된다(S4407). 변수 k 및 변수 i가 증분된다(S4408, S4409).
그 차가 Value_Y 이하가 아니라면(단계 S4406에서 NO), Lock_Cont에 대입하지 않고서도 변수 i는 증분된다(S4409). 처리가 모든 콘테이너에 대해 종료되었는지를 확인한다(S4410). 그 처리가 종료되지 않았으면(단계 S4410에서 NO), 흐름은 처리를 반복하기 위해 단계 S4406로 돌아간다. 그 처리가 종료되었으면(단계 S4410에서 YES), 단계 S4411로 진행시켜 변수 k에 0을 대입한다. 처리를 단계 S4412로 진행시켜, Lock_Cont[k]의 값을 체크한다. 그 값이 0이면, 로크를 설정하지 않고서도 이 처리는 종료된다. 그 값이 0이 아니면(단계 S4412에서 NO), 처리를 단계 S4413로 진행시켜, Lock_Cont[k]번째 콘테이너의 하부 변을 로크한다. 처리를 단계 S4414로 진행시켜, 변수 k를 증분한다. Lock_Cont[k]의 값이 0이 될 때까지, 단계 S4413 및 S4414의 처리를 반복한다. 이 처리에 의해, 설정된 링크를 갖는 콘테이너의 변들 중, 페이지 내의 가장 하부로부터 사용자가 지정한 범위 내에 존재하는 콘테이너의 하부 변 모두가 로크된다. 그 조건이 복수의 변에 적용되면, 그 복수의 변들 모두가 로크된다.
도 45는 콘테이너의 하부 변의 로크 상태를 도시하는 도면이다. 참조번호 4501은 복수의 콘테이너의 선택을 지정하는 사각형을 표시하고, 4502, 4503은 링크, 4504는 최대 Y 좌표, 4505는 로크 대상으로 지정된 범위의 경계선, 4508은 Value_Y를 표시한다. 도 45에 도시된 바와 같이, 도 44의 처리가 실행되는 경우, 최대 Y 좌표로부터 Value_Y로 지정된 범위 내의 콘테이너의 하부 변이 로크된다. 이 예에서, 로크 대상인 어떠한 콘테이너도 선택된 범위 내에 존재하지 않기 때문에, 어떠한 하부 변도 로크되지 않는다.
이상 설명된 바와 같이, 본 실시예에 따르면, 하나의 동작으로 복수의 콘테이너 간에 일괄적으로 링크가 설정될 수 있다. 그러므로, 효율적인 동작이 구현될 수 있다.
(다른 실시예)
본 발명의 목적은 또한 상술된 실시예들의 기능을 구현하기 위한 소프트웨어 프로그램 코드를 저장하는 저장 매체를 시스템 또는 장치에 제공하고, 그 시스템 또는 장치의 컴퓨터(또는 CPU 또는 MPU)가 저장 매체에 저장된 프로그램 코드를 판독하고 실행하도록 함으로써 달성될 수 있다.
이러한 경우, 저장 매체로부터 판독된 프로그램 코드는 상술된 실시예들의 기능을 스스로 구현하며, 그 프로그램 코드를 저장하는 저장매체는 본 발명을 구성하게 된다.
프로그램 코드를 공급하기 위한 저장 매체로서는, 예를 들어, 플렉시블 디스크, 하드디스크, 광 디스크, 광 자기 디스크, CD-ROM, CD-R, 자기 테이프, 비휘발성 메모리 카드, ROM 등이 이용될 수 있다.
상술된 실시예들의 기능은 판독 프로그램 코드가 컴퓨터에 의해 실행되는 경우 뿐만 아니라 컴퓨터 상에서 가동되는 운영체제(OS)가 그 프로그램 코드들의 명령에 기초하여 실제 처리의 일부 또는 모두를 수행하는 경우에서도 구현될 수 있다.
상술된 실시예의 기능은 또한 저장 매체로부터 판독된 프로그램 코드가 컴퓨터에 접속된 기능 확장 유닛 또는 컴퓨터에 삽입된 기능 확장 보드의 메모리에 기록되는 경우에 구현되고, 상기 기능 확장 유닛 또는 상기 기능 확장 보드의 CPU가 그 프로그램 코드의 명령에 기초하여 실제 처리의 일부 또는 모두를 수행한다.
본 발명의 많은 명백하게 광범위한 다른 많은 실시예들이 본 발명의 정신 및 범위로부터 벗어나지 않고도 이루어질 수 있기 때문에, 본 발명이 첨부 청구항에 정의된 것을 제외한 특정 실시예들에 제한되는 것이 아니다.
복수의 콘테이너 사이에 한번의 조작으로 링크를 일괄 설정할 수 있도록 함으로써 효율이 좋은 조작을 실현할 수 있다.

Claims (33)

  1. 할당된 데이터를 수신하고, 해당 데이터를 페이지 상에 레이아웃하는 부분 표시 영역을 서로 관련짓는 링크를 복수의 부분 표시 영역간에 설정하여, 해당 부분 표시 영역에 할당된 데이터에 의해 해당 부분 표시 영역의 위치를 조정하는 레이아웃 제어 방법으로서,
    상기 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하기 위한 지시 단계와,
    상기 복수의 부분 표시 영역을 지정하는 지정 단계와,
    상기 지정된 상기 부분 표시 영역의 위치 정보를 취득하는 위치 정보 취득 단계와,
    상기 지시 단계에서 복수의 링크를 설정하는 것이 지시된 경우, 상기 취득된 위치 정보에 기초하여, 상기 지정 단계에서 지정된 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하는 설정 단계와,
    상기 할당된 데이터를 수신하기 위해서, 임의의 부분 표시 영역에 할당된 데이터의 사이즈와 상기 링크에 의해 관련지을 수 있었던 다른 부분 표시 영역에 할당된 데이터의 사이즈에 기초하여, 해당 임의의 부분 표시 영역과 해당 다른 부분 표시 영역의 사이즈 및 위치를 연동시켜 결정하는 레이아웃 제어 단계
    를 구비하는 레이아웃 제어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 레이아웃 제어 단계에서는, 상기 부분 표시 영역의 사이즈의 변경에 따라 상기 링크의 길이를 가변으로 제어하는 레이아웃 제어 방법.
  4. 제1항에 있어서,
    상기 설정 단계에서는, 기준이 되는 부분 표시 영역을 특정하고, 상기 특정된 부분 표시 영역 근방에 레이아웃되어 있는 부분 표시 영역에 대하여 링크를 설정하는 레이아웃 제어 방법.
  5. 제1항에 있어서,
    상기 레이아웃 제어 단계에서는, 상기 부분 표시 영역의 사이즈가 변경된 후의 레이아웃 위치가 상기 페이지 상에 있어서 레이아웃이 제약된 위치에 있는지의 여부를 판단하여, 해당 제약된 위치에 있는 경우, 해당 제약 위반이 되지 않도록 해당 부분 표시 영역의 사이즈를 재설정하는 레이아웃 제어 방법.
  6. 제5항에 있어서,
    상기 레이아웃 제어 단계에서는, 사이즈가 재설정된 상기 부분 표시 영역의 변(side)의 이동이 억제되도록 변을 고정하는 레이아웃 제어 방법.
  7. 제1항에 있어서,
    레이아웃 제어를 위한 입출력을 제어하는 인터페이스 제어 단계를 더 포함하고,
    상기 인터페이스 제어 단계에서는, 상기 지정된 복수의 부분 표시 영역에 대한 링크의 설정 결과를 표시 수단에 표시하여 가시화하는 레이아웃 제어 방법.
  8. 제7항에 있어서,
    상기 인터페이스 제어 단계에서는, 입력 수단을 통하여 수정이 지정된 개별 링크에 대하여 링크 설정을 변경하는 레이아웃 제어 방법.
  9. 제1항에 있어서,
    상기 설정 단계에서는, 기준이 되는 부분 표시 영역을 특정하고, 상기 특정된 부분 표시 영역의 가장 근방에 있는 부분 표시 영역에 대하여 링크를 설정하거나, 또는 상기 특정된 부분 표시 영역으로부터 직접적으로 링크를 설정할 수 있는 부분 표시 영역에 대하여 링크를 설정하는 레이아웃 제어 방법.
  10. 제1항에 있어서,
    상기 설정 단계에서는 수평 방향 및 수직 방향 중 어느 한 방향으로 복수의 링크를 설정하는 레이아웃 제어 방법.
  11. 제1항에 있어서,
    상기 설정 단계에서는 수평 방향 및 수직 방향으로 복수의 링크를 설정하는 레이아웃 제어 방법.
  12. 할당된 데이터를 수신하고, 해당 데이터를 페이지 상에 레이아웃하는 부분 표시 영역을 서로 관련짓는 링크를 복수의 부분 표시 영역간에 설정하여, 해당 부분 표시 영역에 할당된 데이터에 의해 해당 부분 표시 영역의 위치를 조정하는 레이아웃 제어 장치로서,
    상기 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하기 위한 지시 수단과;
    상기 복수의 부분 표시 영역을 지정하는 지정 수단과;
    상기 지정된 상기 부분 표시 영역의 위치 정보를 취득하는 위치 정보 취득 수단과;
    상기 지시 수단에 의해 복수의 링크를 설정하는 것이 지시된 경우, 상기 취득된 위치 정보에 기초하여, 상기 지정 수단에 의해 지정된 복수의 부분 표시 영역에 대하여 복수의 링크를 설정하는 설정 수단과,
    상기 할당된 데이터를 수신하기 위해서, 임의의 부분 표시 영역에 할당된 데이터의 사이즈와 상기 링크에 의해 관련지을 수 있었던 다른 부분 표시 영역에 할당된 데이터의 사이즈에 기초하여, 해당 임의의 부분 표시 영역과 해당 다른 부분 표시 영역의 사이즈 및 위치를 연동시켜 결정하는 레이아웃 제어 수단
    을 구비하는 레이아웃 제어 장치.
  13. 삭제
  14. 제12항에 있어서,
    상기 레이아웃 제어 수단은, 상기 부분 표시 영역의 사이즈의 변경에 따라 상기 링크의 길이를 가변으로 제어하는 레이아웃 제어 장치.
  15. 제12항에 있어서,
    상기 설정 수단은, 기준이 되는 부분 표시 영역을 특정하고, 상기 특정된 부분 표시 영역 근방에 레이아웃되어 있는 부분 표시 영역에 대하여 링크를 설정하는 레이아웃 제어 장치.
  16. 제12항에 있어서,
    상기 레이아웃 제어 수단은, 상기 부분 표시 영역의 사이즈가 변경된 후의 레이아웃 위치가 상기 페이지 상에 있어서 레이아웃이 제약된 위치에 있는지의 여부를 판단하여, 해당 제약된 위치에 있는 경우, 해당 제약 위반이 되지 않도록 해당 부분 표시 영역의 사이즈를 재설정하는 레이아웃 제어 장치.
  17. 제16항에 있어서,
    상기 레이아웃 제어 수단은, 사이즈가 재설정된 상기 부분 표시 영역의 변의 이동이 억제되도록 변을 고정하는 레이아웃 제어 장치.
  18. 제12항에 있어서,
    레이아웃 제어를 위한 입출력을 제어하는 인터페이스 제어 수단을 더 포함하고,
    상기 인터페이스 제어 수단은, 상기 지정된 복수의 부분 표시 영역에 대한 링크 설정 결과를 표시 수단에 표시하여 가시화하는 레이아웃 제어 장치.
  19. 제18항에 있어서,
    상기 인터페이스 제어 수단은, 입력 수단을 통하여 수정이 지정된 개별 링크에 대하여 링크 설정을 변경하는 레이아웃 제어 장치.
  20. 제12항에 있어서,
    상기 설정 수단은, 기준이 되는 부분 표시 영역을 특정하고, 상기 특정된 부분 표시 영역의 가장 근방에 있는 부분 표시 영역 및 상기 특정된 부분 표시 영역으로부터 직접적으로 링크를 설정할 수 있는 부분 표시 영역 중 하나에 대하여 링크를 설정하는 레이아웃 제어 장치.
  21. 제12항에 있어서,
    상기 설정 수단은 수평 방향 및 수직 방향 중 어느 한 방향으로 복수의 링크를 설정하는 레이아웃 제어 장치.
  22. 제12항에 있어서,
    상기 설정 수단은 수평 방향 및 수직 방향으로 복수의 링크를 설정하는 레이아웃 제어 장치.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020050008248A 2004-01-30 2005-01-28 레이아웃 제어 방법 및 레이아웃 제어 장치 KR100721496B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004024589 2004-01-30
JPJP-P-2004-00024589 2004-01-30
JPJP-P-2004-00371886 2004-12-22
JP2004371886A JP4165888B2 (ja) 2004-01-30 2004-12-22 レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム

Publications (2)

Publication Number Publication Date
KR20060042891A KR20060042891A (ko) 2006-05-15
KR100721496B1 true KR100721496B1 (ko) 2007-05-23

Family

ID=34656296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050008248A KR100721496B1 (ko) 2004-01-30 2005-01-28 레이아웃 제어 방법 및 레이아웃 제어 장치

Country Status (5)

Country Link
US (1) US7735004B2 (ko)
EP (1) EP1560127A3 (ko)
JP (1) JP4165888B2 (ko)
KR (1) KR100721496B1 (ko)
CN (1) CN1313916C (ko)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272258B2 (en) 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
JP4047308B2 (ja) * 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4095592B2 (ja) * 2004-08-06 2008-06-04 キヤノン株式会社 情報処理装置、情報処理方法ならびにプログラム
JP4332480B2 (ja) * 2004-08-31 2009-09-16 キヤノン株式会社 レイアウト調整方法及び装置並びにプログラム
JP4111519B2 (ja) * 2004-08-31 2008-07-02 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
GB2421106A (en) * 2004-12-07 2006-06-14 Hewlett Packard Development Co A method and apparatus for preparing variable-data documents for publishing
JP4241647B2 (ja) * 2005-03-04 2009-03-18 キヤノン株式会社 レイアウト制御装置、レイアウト制御方法及びレイアウト制御プログラム
JP2006277727A (ja) * 2005-03-04 2006-10-12 Canon Inc レイアウト処理方法、情報処理装置及びコンピュータプログラム
US20060236230A1 (en) * 2005-04-15 2006-10-19 Xiaofan Lin Automatic layout adjustment for documents containing text
US20060248071A1 (en) * 2005-04-28 2006-11-02 Xerox Corporation Automated document localization and layout method
JP4732029B2 (ja) * 2005-06-29 2011-07-27 キヤノン株式会社 レイアウト決定方法および情報処理装置およびレイアウト決定プログラム
US9164741B2 (en) 2005-07-29 2015-10-20 Adobe Systems Incorporated Enhanced design guides
US7779362B1 (en) * 2005-09-02 2010-08-17 Adobe Systems Inc. Methods and apparatus for selecting objects by state
GB2430060A (en) * 2005-09-08 2007-03-14 Hewlett Packard Development Co Flows for variable data printing
CN100395751C (zh) * 2005-10-14 2008-06-18 华为技术有限公司 实现页面灵活布局的装置和方法
KR100736077B1 (ko) * 2005-10-24 2007-07-06 삼성전자주식회사 데이터 방송의 텍스트를 제어하는 장치 및 그 방법
JP4393444B2 (ja) * 2005-11-02 2010-01-06 キヤノン株式会社 情報処理方法およびその装置
US7761789B2 (en) 2006-01-13 2010-07-20 Ricoh Company, Ltd. Methods for computing a navigation path
JP2007241661A (ja) * 2006-03-08 2007-09-20 Canon Inc 画像形成装置およびその制御方法
JP2007334510A (ja) * 2006-06-13 2007-12-27 Canon Inc 自動レイアウトシステム及び方法
US8943397B2 (en) * 2006-10-13 2015-01-27 International Business Machines Corporation Configurable column display of information at a web client
JP4956202B2 (ja) * 2007-01-16 2012-06-20 キヤノン株式会社 情報処理装置及び情報処理方法及びプログラム
US8583637B2 (en) 2007-03-21 2013-11-12 Ricoh Co., Ltd. Coarse-to-fine navigation through paginated documents retrieved by a text search engine
US8812969B2 (en) 2007-03-21 2014-08-19 Ricoh Co., Ltd. Methods for authoring and interacting with multimedia representations of documents
US8584042B2 (en) 2007-03-21 2013-11-12 Ricoh Co., Ltd. Methods for scanning, printing, and copying multimedia thumbnails
AU2007201627B2 (en) * 2007-04-13 2010-11-25 Canon Kabushiki Kaisha Gluing layout containers
KR100844071B1 (ko) * 2007-05-09 2008-07-07 엘지전자 주식회사 웹페이지 표시가 가능한 이동통신 단말기 및 그 제어방법
US20090006451A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Web Page-Container Interactions
US8626771B2 (en) 2007-06-29 2014-01-07 Microsoft Corporation Container reputation
US8838729B2 (en) 2007-06-29 2014-09-16 Microsoft Corporation Gathering statistics based on container exchange
JP5322421B2 (ja) * 2007-10-02 2013-10-23 キヤノン株式会社 情報処理装置およびその方法
US8738659B1 (en) * 2007-10-22 2014-05-27 Data Recognition Corporation Method and apparatus for managing priority in standardized test and survey imaging
US8526055B1 (en) 2007-10-22 2013-09-03 Data Recognition Corporation Standardized test and survey imaging system
US8488220B1 (en) 2007-10-22 2013-07-16 Data Recognition Corporation Method and apparatus for calibrating imaging equipment
US8649601B1 (en) 2007-10-22 2014-02-11 Data Recognition Corporation Method and apparatus for verifying answer document images
TWI423163B (zh) * 2008-06-13 2014-01-11 Hon Hai Prec Ind Co Ltd 聚合實體圖層轉換系統及方法
US10114875B2 (en) * 2008-06-27 2018-10-30 Microsoft Technology Licensing, Llc Dashboard controls to manipulate visual data
US20100218090A1 (en) * 2009-02-26 2010-08-26 Universal - Ad Ltd. Sub-page-based page layout system and method thereof
JP5391873B2 (ja) * 2009-06-30 2014-01-15 コニカミノルタ株式会社 画像形成装置
US9811511B1 (en) * 2009-11-11 2017-11-07 West Corporation Method and apparatus of creating customized computer-based user dashboard interfaces
US9135023B2 (en) 2009-11-13 2015-09-15 Google Inc. Aligning user interface elements
US10713666B2 (en) * 2009-12-24 2020-07-14 Outbrain Inc. Systems and methods for curating content
US9417787B2 (en) * 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
JP5460390B2 (ja) 2010-03-12 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション レイアウト変換装置、レイアウト変換プログラム、およびレイアウト変換方法
US8479117B2 (en) * 2010-06-04 2013-07-02 Lenovo (Singapore) Pte. Ltd. Intelligent window sizing for graphical user interfaces
CN101894168B (zh) * 2010-06-30 2013-02-06 优视科技有限公司 移动终端网页页面的排版显示方法及系统
CN101998167B (zh) * 2010-08-16 2014-11-05 中兴通讯股份有限公司 电子节目菜单展示管理方法及系统
JP5277230B2 (ja) * 2010-11-11 2013-08-28 株式会社バッファロー タグ情報管理装置、タグ情報管理システム、タグ情報管理プログラム、タグ情報管理方法
EP2668597A4 (en) * 2011-01-25 2016-04-27 Hewlett Packard Development Co DOCUMENT DESIGN CAPTURE AND REUSE SYSTEM
US8863039B2 (en) 2011-04-18 2014-10-14 Microsoft Corporation Multi-dimensional boundary effects
KR20120123197A (ko) * 2011-04-19 2012-11-08 삼성전자주식회사 오브젝트 배치 장치 및 방법
US10061860B2 (en) * 2011-07-29 2018-08-28 Oath Inc. Method and system for personalizing web page layout
KR101999182B1 (ko) * 2012-04-08 2019-07-11 삼성전자주식회사 사용자 단말 장치 및 그의 제어 방법
CN103902170B (zh) * 2012-12-27 2017-03-22 深圳市金蝶天燕中间件股份有限公司 网页内容定位方法和装置
CN103914285A (zh) * 2012-12-31 2014-07-09 北京新媒传信科技有限公司 一种用户界面布局的方法、装置及终端设备
CN104794116B (zh) * 2014-01-16 2019-03-19 阿里巴巴集团控股有限公司 一种页面中元素的布局方法和装置
CA2959534C (en) 2014-09-02 2021-06-29 Ab Initio Technology Llc Compiling graph-based program specifications
CN112363712B (zh) * 2014-09-02 2024-03-12 起元科技有限公司 用于处理基于图的程序规范的方法
CN106033387B (zh) * 2015-03-11 2018-09-11 广州市动景计算机科技有限公司 测试flash内部控件的方法和装置
JP6464862B2 (ja) * 2015-03-24 2019-02-06 富士通株式会社 表示プログラム、表示方法及び表示装置
US10217254B2 (en) * 2015-09-24 2019-02-26 Oracle International Corporation Graphical editing of memory layout rules for software programs
CN106886526A (zh) * 2015-12-16 2017-06-23 北京奇虎科技有限公司 推广链接的布局方法及布局装置
US9959257B2 (en) 2016-01-08 2018-05-01 Adobe Systems Incorporated Populating visual designs with web content
JP2017151768A (ja) * 2016-02-25 2017-08-31 富士ゼロックス株式会社 翻訳プログラム及び情報処理装置
JP6812170B2 (ja) * 2016-08-29 2021-01-13 キヤノン株式会社 情報処理装置、その制御方法、および制御プログラム
US10402786B2 (en) * 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
CN107545062B (zh) * 2017-09-05 2020-08-21 北京星选科技有限公司 入口召回方法、装置、存储介质和电子设备
US10409895B2 (en) * 2017-10-17 2019-09-10 Qualtrics, Llc Optimizing a document based on dynamically updating content
US10697757B2 (en) * 2017-12-22 2020-06-30 Symbol Technologies, Llc Container auto-dimensioning
CN110262938B (zh) * 2019-05-07 2023-10-27 创新先进技术有限公司 一种内容监控方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255160A (ja) * 1995-03-16 1996-10-01 Sony Corp レイアウト装置および表示装置
KR19980074545A (ko) * 1997-03-26 1998-11-05 윤종용 객체 관리 콘테이너 및 방법
JP2000207396A (ja) 1999-01-08 2000-07-28 Dainippon Screen Mfg Co Ltd 文書レイアウト装置
KR20020050295A (ko) * 2000-03-17 2002-06-26 아끼구사 나오유끼 문서 작성 프로그램을 기록한 컴퓨터 판독 가능한 기록매체, 문서 작성 시스템 및 문서 작성 방법
JP2003333308A (ja) 2002-05-08 2003-11-21 Seiko Epson Corp 画像自動レイアウト装置及び同装置におけるレイアウト枠決定方法、並びに自動レイアウトプログラム
KR20050078236A (ko) * 2004-01-30 2005-08-04 캐논 가부시끼가이샤 레이아웃 조정 방법 및 장치

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214756A (en) * 1989-03-10 1993-05-25 International Business Machines Corporation Direct manipulation of icons via conversational linking
US5214755A (en) * 1989-04-25 1993-05-25 Microsoft Corporation Document processing method and system
US6678864B1 (en) * 1992-02-25 2004-01-13 Irving Tsai Method and apparatus for linking designated portions of a received document image with an electronic address
US5437008A (en) * 1992-06-23 1995-07-25 Adobe Systems Incorporated Method of establishing constraints and links in a distribution frame between graphical elements and resolving the constaints
AU1522095A (en) * 1994-01-05 1995-08-01 Peter J. Covey Dynamic-state, multi-dimensional, multi-media database
US5845303A (en) * 1994-12-06 1998-12-01 Netpodium, Inc. Document processing using frame-based templates with hierarchical tagging
US5900002A (en) * 1995-01-09 1999-05-04 Josten, Inc. Method and apparatus for manipulating page layouts in a desktop publishing system
US5953733A (en) * 1995-06-22 1999-09-14 Cybergraphic Systems Ltd. Electronic publishing system
US5796401A (en) * 1996-08-09 1998-08-18 Winer; Peter W. System for designing dynamic layouts adaptable to various display screen sizes and resolutions
US6596032B2 (en) * 1996-10-15 2003-07-22 Fujitsu Limited Document processing apparatus storing and modifying data using effect data
US7278098B1 (en) * 1997-04-09 2007-10-02 Adobe Systems Incorporated Method and apparatus for implementing web pages having smart tables
JPH11316792A (ja) 1998-02-27 1999-11-16 Mantaro Yajima 情報処理装置及び帳表作成方法
US6323879B1 (en) * 1998-05-14 2001-11-27 Autodesk, Inc. Method and system for determining the spacing of objects
US6232983B1 (en) * 1998-06-01 2001-05-15 Autodesk, Inc. Positioning and alignment aids for shape objects having authorable behaviors and appearances
US6486898B1 (en) * 1999-03-31 2002-11-26 Koninklijke Philips Electronics N.V. Device and method for a lattice display
US6931591B1 (en) * 1999-10-15 2005-08-16 Saepio Technologies, Inc. Publishing layout wizard
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US7194680B1 (en) * 1999-12-07 2007-03-20 Adobe Systems Incorporated Formatting content by example
JP2001184346A (ja) * 1999-12-24 2001-07-06 Matsushita Electric Ind Co Ltd 文書編集装置および文書編集プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001216292A (ja) * 2000-01-31 2001-08-10 Toshiba Corp レイアウト画像編集装置及びレイアウト画像編集方法
US7093196B1 (en) * 2000-06-10 2006-08-15 Oracle International Corporation Method and apparatus for aligning items relatively within an electronic document
US7028255B1 (en) * 2000-08-14 2006-04-11 Adobe Systems Incorporated Self-sizing object placement
US7051276B1 (en) * 2000-09-27 2006-05-23 Microsoft Corporation View templates for HTML source documents
JP3835193B2 (ja) * 2001-03-30 2006-10-18 セイコーエプソン株式会社 ディジタルコンテンツ作成システム及びディジタルコンテンツ作成プログラム
US7216298B1 (en) * 2001-06-07 2007-05-08 Oracle International Corporation System and method for automatic generation of HTML based interfaces including alternative layout modes
US7193609B2 (en) * 2002-03-19 2007-03-20 America Online, Inc. Constraining display motion in display navigation
US7415452B1 (en) * 2002-06-21 2008-08-19 Adobe Systems Incorporated Traversing a hierarchical layout template
US7010746B2 (en) * 2002-07-23 2006-03-07 Xerox Corporation System and method for constraint-based document generation
US7487445B2 (en) * 2002-07-23 2009-02-03 Xerox Corporation Constraint-optimization system and method for document component layout generation
US7243303B2 (en) * 2002-07-23 2007-07-10 Xerox Corporation Constraint-optimization system and method for document component layout generation
US7454699B2 (en) * 2003-03-24 2008-11-18 Microsoft Corporation Smart content insertion
US7246311B2 (en) * 2003-07-17 2007-07-17 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout
US7395510B2 (en) * 2003-12-16 2008-07-01 Hewlett-Packard Development Company, L.P. Method of, and system for, adjusting a document configuration

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255160A (ja) * 1995-03-16 1996-10-01 Sony Corp レイアウト装置および表示装置
KR19980074545A (ko) * 1997-03-26 1998-11-05 윤종용 객체 관리 콘테이너 및 방법
JP2000207396A (ja) 1999-01-08 2000-07-28 Dainippon Screen Mfg Co Ltd 文書レイアウト装置
KR20020050295A (ko) * 2000-03-17 2002-06-26 아끼구사 나오유끼 문서 작성 프로그램을 기록한 컴퓨터 판독 가능한 기록매체, 문서 작성 시스템 및 문서 작성 방법
JP2003333308A (ja) 2002-05-08 2003-11-21 Seiko Epson Corp 画像自動レイアウト装置及び同装置におけるレイアウト枠決定方法、並びに自動レイアウトプログラム
KR20050078236A (ko) * 2004-01-30 2005-08-04 캐논 가부시끼가이샤 레이아웃 조정 방법 및 장치

Also Published As

Publication number Publication date
US7735004B2 (en) 2010-06-08
CN1313916C (zh) 2007-05-02
JP4165888B2 (ja) 2008-10-15
JP2005242992A (ja) 2005-09-08
EP1560127A2 (en) 2005-08-03
KR20060042891A (ko) 2006-05-15
EP1560127A3 (en) 2006-09-13
US20050172226A1 (en) 2005-08-04
CN1648847A (zh) 2005-08-03

Similar Documents

Publication Publication Date Title
KR100721496B1 (ko) 레이아웃 제어 방법 및 레이아웃 제어 장치
KR100716084B1 (ko) 레이아웃 조정 방법 및 장치
JP4332480B2 (ja) レイアウト調整方法及び装置並びにプログラム
US8086958B2 (en) Layout determination method, layout determination apparatus, and layout determination program
KR100821449B1 (ko) 레이아웃 조정 방법 및 장치
JP4829662B2 (ja) 自動レイアウトシステムおよび情報提供方法およびサーバーシステム
US7373593B2 (en) Apparatus and method for automatically setting constraints within a document layout
KR100818860B1 (ko) 정보 처리 장치와 그 제어 방법 및 기록 매체
US8464151B2 (en) Layout of field area where merchandise and advertising information are inserted or determining position and size of area where merchandise and advertising information flow
JP4047308B2 (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4208858B2 (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
US8370738B2 (en) Information processing apparatus, control method, and computer-readable medium
JP4700940B2 (ja) 情報処理装置及びその制御方法、プログラム
JP2006277727A (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4912139B2 (ja) 情報処理装置
JP4125249B2 (ja) 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム
JP2006171979A (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
JP2007316873A (ja) コンテンツサーバおよびレイアウトシステム
JP4250577B2 (ja) 情報処理装置、情報処理方法、ならびにプログラム
JP4795398B2 (ja) レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム
JP2006074225A (ja) レイアウト調整方法及び装置並びにプログラム
JP4241551B2 (ja) 情報処理装置、情報処理方法、ならびにプログラム

Legal Events

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

Payment date: 20130425

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140424

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150424

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee