專利名稱:布局處理方法及信息處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于生成、編輯并打印由文本、圖像構(gòu)成的文檔的技術(shù),更詳細地說,涉及一種適用于可變數(shù)據(jù)(Variable Date)文檔的生成、編輯及打印的技術(shù)。
背景技術(shù):
近年來,由于商品的多樣化、商品壽命變短,隨著互聯(lián)網(wǎng)使用的普及,對消費者的客戶服務(wù)增強等原因,CRM(Customer RelationshipManagement客戶關(guān)系管理)、一對一(One-to-One)營銷的必要性備受關(guān)注。這些方法,對于提高客戶滿意程度,開發(fā)、穩(wěn)定客戶,非常有效。
一對一營銷是數(shù)據(jù)庫營銷的一種,把客戶的年齡、性別、興趣、愛好、購買經(jīng)歷等個人屬性信息做成數(shù)據(jù)庫,分析其內(nèi)容,提出符合客戶需求的方案。作為一對一營銷的典型的具體做法,例如有可變打印。特別是,最近隨著DTP(desktop publishing桌面出版系統(tǒng))技術(shù)的發(fā)展和數(shù)字打印裝置的普及,開發(fā)出了按每個客戶定制文件并輸出的可變打印系統(tǒng)。在這樣的可變打印系統(tǒng)中,要求按每個客戶生成對不同的量的內(nèi)容進行了最佳布局的定制文件。
一般地,在可變打印系統(tǒng)中生成這樣的定制文件時,要在文檔上對容器(condenser)進行布局。容器是用于描繪內(nèi)容的局部區(qū)域(數(shù)據(jù)區(qū)域),有時也稱作字段區(qū)。即,在文檔上對這樣的容器進行布局,將數(shù)據(jù)庫與布局建立關(guān)聯(lián)(將數(shù)據(jù)庫的各內(nèi)容與各容器建立關(guān)聯(lián)),通過這樣的作業(yè),生成定制文件(文檔)。在本說明書中,將這樣的文檔稱作可變數(shù)據(jù)文檔。
在這樣的可變打印系統(tǒng)中,可以將因顧客而異的內(nèi)容插入布局好的各容器中。因此,當插入到內(nèi)容中的數(shù)據(jù)的尺寸可變而容器的尺寸固定時,就會產(chǎn)生以下的問題。例如,當插入比容器的尺寸大的文本數(shù)據(jù)時,無法將所有文本顯示在該容器內(nèi)?;蛘?,當插入比容器的尺寸大的圖像數(shù)據(jù)時,該圖像的一部分就會缺失。將這樣的問題稱作溢出。
另外,當內(nèi)容是圖像數(shù)據(jù)時,雖然也想到將該圖像縮小描繪在容器內(nèi),但有可能產(chǎn)生圖像極小這樣的弊端。此外,還提出了以下技術(shù)在插入無法完全進入固定尺寸的容器內(nèi)的文本數(shù)據(jù)時,可以縮小文本的字體大小,在該容器內(nèi)顯示所有文本。但會產(chǎn)生以下問題在這樣調(diào)節(jié)字體大小時,字體大小變得過小,從而造成文檔整體的平衡被破壞,或變得難以閱讀。
作為用于解決這樣的問題的自動布局的技術(shù),在日本特開平7-129658號公報的“布局設(shè)計裝置”中公開了以下技術(shù)當某字符區(qū)域的尺寸增大時,為了保持與相鄰的區(qū)域的間隔,而減小該相鄰的區(qū)域的尺寸。
在日本特開平7-129658號公報所述的技術(shù)中,記載有按照文本的輸入來放大字符區(qū)域的技術(shù)。但會產(chǎn)生以下問題當增大字符區(qū)域的尺寸時,為了保持間隔而縮小了相鄰的區(qū)域,由此,隨著要輸入的文本量的增加,相鄰的區(qū)域?qū)⒗^續(xù)縮小。
并且,在日本特開平7-129658號公報中,并沒有考慮通過對上述數(shù)據(jù)庫與各布局框建立關(guān)聯(lián)來插入內(nèi)容數(shù)據(jù),生成按每個客戶定制的文件的可變打印系統(tǒng)。
另外,作為考慮到可變數(shù)據(jù)打印的布局方法,有生成固定的容器并在其中插入內(nèi)容數(shù)據(jù)的方法。但是,在使用固定尺寸的容器的情況下,當插入尺寸比容器尺寸大的內(nèi)容數(shù)據(jù)時,會產(chǎn)生溢出這樣的問題。另外,在這樣的情況下,要縮小字體大小而強行插入時,會產(chǎn)生字體大小變得極小這樣的問題。另外,考慮按照要插入的內(nèi)容數(shù)據(jù)的尺寸來放大或縮小容器的尺寸。但是,在對兩個容器建立了關(guān)聯(lián)的狀態(tài)下,當一個容器尺寸被放大時,建立了關(guān)聯(lián)的容器只有伴隨著一個容器的放大而縮小。由此,不能進行考慮到容器間的尺寸平衡的布局處理。
因此,需要一種考慮到建立了關(guān)聯(lián)的多個容器間的尺寸平衡的布局方法。在按照插入到各容器中的內(nèi)容數(shù)據(jù)的尺寸變更各容器的尺寸時,可以通過進行調(diào)整了各容器尺寸的變化量的布局處理,來進行考慮到建立了關(guān)聯(lián)的容器的尺寸平衡的布局處理。
但是,在上述一對一營銷中,作為目的之一,可以舉出按照客戶需求生成目錄或小冊子的情況。在這樣的情況下,設(shè)想要生成因客戶而不同的目錄或小冊子。
為了生成這樣的各式各樣的目錄或小冊子,僅利用按照上述內(nèi)容數(shù)據(jù)的尺寸來調(diào)整容器尺寸的變化量的布局調(diào)整算法,很可能無法生成對用戶來說最優(yōu)的布局。
另外,在上述布局調(diào)整算法中,按照數(shù)據(jù)庫的數(shù)據(jù)大小自動進行布局計算時,用戶無法設(shè)定使容器的尺寸怎樣變化。因此,無法如在要生成的文檔內(nèi)盡量維持某容器的設(shè)計時的尺寸,并優(yōu)先改變某容器的內(nèi)容的描繪尺寸那樣,靈活地反映用戶的意圖。
發(fā)明內(nèi)容
本發(fā)明是鑒于上述問題而完成的,其目的在于,在處理上述那樣的各式各樣的內(nèi)容數(shù)據(jù)的可變打印中,也能夠得到用戶所希望的輸出結(jié)果。例如,實現(xiàn)從多個布局調(diào)整算法中選用要應(yīng)用的布局調(diào)整算法來調(diào)整數(shù)據(jù)區(qū)域的內(nèi)容數(shù)據(jù)的布局處理。
另外,其目的還在于,可以對每個區(qū)域設(shè)定任意的布局調(diào)整算法,從而實現(xiàn)能夠靈活地反映用戶的意圖的布局處理。
為了達到上述目的,本發(fā)明具有以下的結(jié)構(gòu)。
一種布局處理方法,根據(jù)在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù),動態(tài)地變更具有該數(shù)據(jù)區(qū)域的模板的布局,所述布局處理方法包括選擇步驟,從多個布局調(diào)整算法中,選擇要應(yīng)用于上述數(shù)據(jù)區(qū)域的布局調(diào)整算法;布局調(diào)整步驟,在向數(shù)據(jù)區(qū)域插入內(nèi)容數(shù)據(jù)時,按照由上述選擇步驟選擇出的布局調(diào)整算法,調(diào)整上述數(shù)據(jù)區(qū)域的布局;以及輸出步驟,在由上述布局調(diào)整步驟調(diào)整后的數(shù)據(jù)區(qū)域中,布置上述內(nèi)容數(shù)據(jù)并輸出。
另外,本發(fā)明還提供一種執(zhí)行上述布局處理方法的信息處理裝置。
本發(fā)明的其他特征和優(yōu)點,可以通過下面的參照附圖進行的說明而得到明確。在所有附圖中,相同的標號表示相同或類似的部分。
附圖包括在說明書中并構(gòu)成說明書的一部分,用于舉例說明本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1A是表示實施例的可變打印系統(tǒng)的結(jié)構(gòu)的圖。
圖1B是表示圖1A中的主計算機的結(jié)構(gòu)的概要的圖。
圖1C是說明可變數(shù)據(jù)打印的概要的圖。
圖2是表示實施例的可變打印系統(tǒng)的其他結(jié)構(gòu)的圖。
圖3是表示包括菜單欄、工具欄、工作區(qū)、托板的實施例的用戶界面的例子的圖。
圖4是表示用戶界面上的容器的顯示例的圖。
圖5A~圖5D是說明實施例的容器規(guī)則的圖。
圖6是說明實施例的鏈接的生成處理的流程圖。
圖7A~圖7C是表示生成鏈接時的用戶界面的變化例的圖。
圖8是表示實施例的布局引擎進行的布局計算處理的流程圖。
圖9是表示實施例的布局引擎進行的布局計算處理的流程圖。
圖10A~圖10C是用于說明實施例的布局計算處理的圖。
圖11是說明實施例的布局計算時的容器的集合的圖。
圖12是表示通過可變鏈接配置了容器時的用戶界面的顯示例的圖。
圖13是說明用于通過實施例的用戶界面設(shè)定可變鏈接的處理的流程圖。
圖14是表示實施例的鏈接的設(shè)定對話框的圖。
圖15是表示基于固定鏈接的布局結(jié)果例的圖。
圖16是表示基于可變鏈接的布局結(jié)果例的圖。
圖17是表示本實施例的自動布局處理的整體處理流程的流程圖。
圖18是說明本實施例的布局最優(yōu)化處理的流程圖。
圖19是表示在步驟S1802中對在步驟S1801中選擇出的容器進行的應(yīng)用算法的解析(perspective)的流程圖。
圖20是表示本實施例的布局再計算處理的流程圖。
圖21A~圖21C是說明內(nèi)容優(yōu)先的布局調(diào)整算法的圖。
圖22A~圖22C是說明容器·內(nèi)容優(yōu)先的布局調(diào)整算法的圖。
圖23A~圖23C是說明基本設(shè)計優(yōu)先的布局調(diào)整算法的圖。
圖24A~圖24C是說明在1個鏈接組內(nèi)、對各容器分別設(shè)定基本設(shè)計優(yōu)先的布局調(diào)整算法和內(nèi)容優(yōu)先的布局調(diào)整算法時的布局計算處理的圖。
圖25A~圖25G是表示用于設(shè)定各種布局調(diào)整算法的用戶界面(UI)例的圖。
圖26是說明通過按各單位設(shè)定好的布局調(diào)整算法、各容器的設(shè)定變成什么樣的圖。
圖27是表示用于設(shè)定布局調(diào)整算法的另一用戶界面例的圖。
圖28是表示用于顯示圖27的UI的處理的流程圖。
圖29A~圖29D是在1個鏈接組內(nèi)、對各容器分別設(shè)定容器·內(nèi)容優(yōu)先和內(nèi)容優(yōu)先時的布局計算例的圖。
圖30是表示算法信息的存儲例的圖。
圖31是用于說明布局最優(yōu)化處理的圖。
圖32是說明內(nèi)容優(yōu)先布局的算法的圖。
圖33是表示用于說明使用了最小二乘法的布局計算方法及結(jié)果、和不使用最小二乘法時的布局計算方法及結(jié)果的布局例的圖。
圖34是說明容器·內(nèi)容優(yōu)先的布局算法的圖。
圖35是表示本實施例的布局編輯應(yīng)用程序121的功能結(jié)構(gòu)的框圖。
具體實施例方式
下面,參照
本發(fā)明的優(yōu)選實施例。
<系統(tǒng)結(jié)構(gòu)>
首先,參照圖1A和圖1B說明本實施例的可變打印系統(tǒng)的結(jié)構(gòu)。圖1A是表示用于打印可變數(shù)據(jù)文檔的可變打印系統(tǒng)100的結(jié)構(gòu)例的框圖。此外,圖1B是更詳細地表示圖1A所示的主計算機101的結(jié)構(gòu)的框圖。在本實施例中說明的可變打印處理,由作為布局調(diào)整裝置的主計算機101(由通用計算機模塊構(gòu)成)執(zhí)行。可以在系統(tǒng)100上實施的布局編輯應(yīng)用程序121(本發(fā)明的布局調(diào)整程序),在主計算機101中,執(zhí)行該軟件的整體或一部分。特別是用于布局編輯的處理、用于打印可變數(shù)據(jù)文檔的處理,利用由主計算機101執(zhí)行的軟件來實現(xiàn)。
布局編輯應(yīng)用程序121,存儲在計算機的可讀介質(zhì)中,從該計算機的可讀介質(zhì)加載到主計算機101的存儲器136中并執(zhí)行。存儲有這樣的軟件或計算機程序的計算機的可讀介質(zhì)是計算機程序產(chǎn)品。通過在計算機中使用該計算機程序產(chǎn)品,提供適于文檔的布局編輯和可變打印的裝置。
如圖1B所示,在主計算機101上通過輸入輸出接口143,將鍵盤132、鼠標133那樣的指示設(shè)備等作為輸入裝置連接。此外,通過視頻接口137連接作為輸出裝置的顯示裝置144。還能通過輸入輸出接口138連接本地打印機145等。此外,輸入輸出接口138還具有將計算機模塊101連接到網(wǎng)絡(luò)107上的功能。據(jù)此,能夠通過網(wǎng)絡(luò)將主計算機101連接到系統(tǒng)100內(nèi)的其他計算機裝置上。作為網(wǎng)絡(luò)107的典型的例子,可以列舉局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。
此外,如圖1B所示,主計算機101至少包含一個處理單元135、由例如半導(dǎo)體隨機存儲器(RAM)和只讀存儲器(ROM)構(gòu)成的存儲單元136。存儲設(shè)備139包括可以與存儲程序等的計算機可讀介質(zhì)之間交換數(shù)據(jù)的硬盤驅(qū)動器140和floppy(注冊商標)盤驅(qū)動器141。另外,雖然未在圖1B顯示,但還可以將磁帶驅(qū)動器等作為存儲設(shè)備139使用。作為非易失性的數(shù)據(jù)源,提供CD-ROM驅(qū)動器142(當然,也可以通過CD-ROM提供計算機程序)。
主計算機101,按照GNU/LINUX或微軟公司的windows(注冊商標)那樣的操作系統(tǒng)或典型的操作系統(tǒng)的形式,或者根據(jù)基于在相關(guān)技術(shù)中已知技術(shù)所形成的計算機系統(tǒng)的常規(guī)操作模式的方法,利用經(jīng)由相互連接的總線134進行通信的、計算機模塊101的構(gòu)成要素135~143。即,由上述135~143表示的各結(jié)構(gòu),經(jīng)由總線134可通信地連接起來,并由安裝在主計算機101中的操作系統(tǒng)利用。
另外,作為圖1B所示的主計算機101的例子,可以考慮IBM兼容PC,SUN的Sparcstation,或包括這些計算機的計算機系統(tǒng)。
<布局編輯應(yīng)用程序的概要>
在本實施例中,布局編輯應(yīng)用程序121常駐在硬盤驅(qū)動器140中,由處理器135控制執(zhí)行、讀入。與硬盤驅(qū)動器140相呼應(yīng)地使用半導(dǎo)體存儲器136,存儲從布局編輯應(yīng)用程序121的程序的媒介存儲裝置和網(wǎng)絡(luò)107取得的數(shù)據(jù)。
在一個例子中,布局編輯應(yīng)用程序121的已編碼的程序,存儲在CD-ROM或floppy(注冊商標)盤上,通過對應(yīng)的驅(qū)動器142、141讀入,并被硬盤驅(qū)動器140安裝?;蛘?,作為其他例子,布局編輯應(yīng)用程序121,也可以從網(wǎng)絡(luò)107讀入主計算機101內(nèi),并被硬盤驅(qū)動器140安裝。并且,軟件還可以從下述介質(zhì)加載到主計算機101內(nèi),即磁帶,ROM,集成電路,光磁盤,在主計算機101與其他設(shè)備之間的紅外線等無線通信,PCMCIA卡那樣的計算機可讀卡,以及包含電子郵件通信、帶有WEB站點上的記錄信息的互聯(lián)網(wǎng)或企業(yè)內(nèi)部互聯(lián)網(wǎng)的其他適當?shù)挠嬎銠C。這些是計算機可讀介質(zhì)的例子,當然,還可以使用其他計算機可讀介質(zhì)。
在圖1A中,本發(fā)明的布局編輯應(yīng)用程序121,使計算機進行可變打印(也叫做可變數(shù)據(jù)打印(VDP))。布局編輯應(yīng)用程序121包含2個軟件組件,即,布局引擎105和用戶界面103。布局引擎105是這樣的軟件組件,即按照賦予作為局部區(qū)域的容器(矩形的范圍)的尺寸和位置的限定,從存儲在數(shù)據(jù)庫119中的可變數(shù)據(jù)中,逐個地讀入記錄,根據(jù)所讀入的數(shù)據(jù)和容器的限定,計算插入所讀入的數(shù)據(jù)的容器的大小和位置等。此外,在本實施例中,布局引擎105還進行描繪分配給容器的數(shù)據(jù)、生成可變數(shù)據(jù)文檔的圖像的處理。但本發(fā)明不限于此,例如,布局引擎105還可以作為確定各局部區(qū)域(容器)的尺寸和位置的應(yīng)用程序而工作,向圖示省略的打印機驅(qū)動器輸出描繪信息。這時,打印機驅(qū)動器進行可變數(shù)據(jù)文檔的圖像描繪處理,生成打印數(shù)據(jù)。用戶界面103,可以由用戶進行容器的布局和屬性設(shè)定,使其對用戶生成文檔模板。此外,用戶界面103提供使文檔模板內(nèi)的各容器和數(shù)據(jù)源建立關(guān)聯(lián)的機制(mechanism)。用戶界面103和布局引擎105通過信道123通信。
圖1C是說明本實施例的可變數(shù)據(jù)打印的概要的圖。通過布局編輯應(yīng)用程序121的用戶界面模塊103(以下,記為用戶界面103),按照來自用戶的操作指示,在頁面上配置多個容器181~183。通過對各容器賦予關(guān)于位置和尺寸的限定條件,生成文檔模板180。此外,用戶界面103,進行文檔模板180與數(shù)據(jù)源190(在圖1A中為數(shù)據(jù)庫119)的關(guān)聯(lián),進而各容器與數(shù)據(jù)源190內(nèi)的各數(shù)據(jù)字段的關(guān)聯(lián)。表示各容器與數(shù)據(jù)源190內(nèi)的各數(shù)據(jù)字段的關(guān)聯(lián)的關(guān)聯(lián)信息,被記述在文檔模板內(nèi),該文檔模板被存儲在HDD140或存儲器136中。此外,數(shù)據(jù)源190是以記錄單位記載項目數(shù)據(jù)(可變數(shù)據(jù))的文件,被存儲在HDD140中。布局引擎105,按照來自用戶的打印指示或預(yù)覽指示,將以關(guān)聯(lián)信息建立關(guān)聯(lián)的可變數(shù)據(jù),從數(shù)據(jù)源190讀入文檔模板的各容器181~183中。然后,將讀入的可變數(shù)據(jù)以記錄單位插入(例如,將數(shù)據(jù)記錄1的數(shù)據(jù)字段A~C插入容器181~183),根據(jù)所插入的數(shù)據(jù),對各容器的尺寸等進行調(diào)整(布局調(diào)整)。布局調(diào)整的方法將在后面說明。當是預(yù)覽指示時,生成布局調(diào)整后的文檔圖像,為了作為預(yù)覽顯示,而輸出到視頻顯示器144的畫面上。此外,當是打印指示時,將用布局引擎105或打印機驅(qū)動器生成的文檔圖像,作為打印數(shù)據(jù)向打印服務(wù)器109輸出。通過依次處理數(shù)據(jù)記錄1、2、3...,實現(xiàn)可變數(shù)據(jù)打印。
用于文檔生成的數(shù)據(jù)源(190),例如,還可以是由運行著數(shù)據(jù)庫應(yīng)用程序的其他計算機構(gòu)成的數(shù)據(jù)庫服務(wù)器117上的一般的數(shù)據(jù)庫119。這時,主計算機101,能夠通過網(wǎng)絡(luò)107與數(shù)據(jù)庫服務(wù)器117通信,取得數(shù)據(jù)源。此外,由布局編輯應(yīng)用程序121生成的、用于可變數(shù)據(jù)打印的文檔模板(180),保存在主計算機101或由其他計算機構(gòu)成的文件服務(wù)器115上。在圖1C中,如上所述,布局編輯應(yīng)用程序121的布局引擎105,生成由與數(shù)據(jù)合并后的文檔模板構(gòu)成的可變數(shù)據(jù)文檔。這些文檔保存在主計算機101的本地文件系統(tǒng)中,或保存在文件服務(wù)器115上,或被發(fā)送給打印機113進行打印。打印服務(wù)器109是用于向沒有直接連接到網(wǎng)絡(luò)的打印機提供網(wǎng)絡(luò)功能的計算機。打印服務(wù)器109和打印機113通過一般的信道111連接。
<其他的系統(tǒng)結(jié)構(gòu)例>
圖2是與圖1A類似的框圖,但追加了引擎服務(wù)器227。存儲在引擎服務(wù)器227中的布局引擎225,是布局引擎105的分離版本(version)。引擎服務(wù)器227中使用一般的計算機。為了根據(jù)打印或其他目的生成可變數(shù)據(jù)文檔,布局引擎225將保存在文件服務(wù)器115中的文檔模板和保存在數(shù)據(jù)庫119中的數(shù)據(jù)結(jié)合。這樣的操作通過用戶界面103來請求。
<布局編輯應(yīng)用程序的說明>
下面,說明布局編輯應(yīng)用程序121。
用戶界面103,在操作時在視頻顯示器144上,顯示由圖3所示的應(yīng)用程序窗口301形成的用戶界面畫面。該窗口301具有菜單欄302、工具欄303、工作區(qū)306和選項托板311。菜單欄302和工具欄303可以不顯示,或移動到屏幕上的各種地方。此外,工作區(qū)306可以通過鼠標133的操作使其移動地方。此外,托板311是可選的,光標/指示設(shè)備313表示鼠標133指示的位置。
菜單欄302,作為公知技術(shù)如已知那樣,具有在菜單選項的層級下擴展的多個菜單項304。
工具欄303,具有可以通過應(yīng)用程序的特殊模式變成非顯示狀態(tài)或變成顯示狀態(tài)的、多個工具按鈕和控件305。
標尺308是可選的,用于顯示工作區(qū)內(nèi)的指針、頁面、行、邊緣引導(dǎo)(margin guide)、容器或?qū)ο蟮奈恢谩?br>
托板311用于訪問可變數(shù)據(jù)文件庫那樣的追加功能。托板311具有用于進行移動、尺寸調(diào)整、關(guān)閉的窗口控件312。托板311是可選的,可顯示在工作區(qū)的前面,或隱藏在對象的背面。托板311被限定只能在應(yīng)用程序窗口301的范圍內(nèi)顯示,或允許在應(yīng)用程序窗口301的外側(cè)顯示其一部分或整體。
在工具欄303上配置有圖4所示的、可由用戶選擇的“按鈕”。
(1)選擇工具按鈕403用于進行容器的邊的選擇、移動、尺寸變更、尺寸調(diào)整以及鎖住/解鎖。通過在容器的周圍拖動選擇框來進行容器的選擇。此外,可以一邊按住CTRL鍵,一邊對多個容器進行選擇操作,從而選擇多個容器。
(2)文本容器工具按鈕404用于生成具有靜態(tài)或可變文本的容器。
(3)圖像容器工具按鈕405用于生成具有靜態(tài)或可變圖像的容器。
(4)鏈接工具按鈕406用于生成在容器之間進行關(guān)聯(lián)的鏈接,還用于控制鏈接的距離。
布局編輯應(yīng)用程序121的如圖3所示的應(yīng)用程序窗口301,能夠通過在頁面內(nèi)對各容器和鏈接進行布局,來確定基本布局。所謂基本布局,就是在可變數(shù)據(jù)打印中作為基本的布局。當基本布局內(nèi)的各容器為固定容器時,所有記錄的打印結(jié)果的布局相同。此外,當基本布局內(nèi)的至少一個容器為后述的可變?nèi)萜鲿r,根據(jù)按記錄單位讀入的數(shù)據(jù)的量和尺寸,在后述的限定的范圍內(nèi)變動各容器的尺寸和位置。由此,由布局編輯應(yīng)用程序121生成的文檔模板,最終確定基本布局,當包括可變?nèi)萜鲿r,最終的打印品的布局,根據(jù)所讀入的數(shù)據(jù)進行布局調(diào)整。
在圖3中,工作區(qū)306用于顯示和編輯文檔模板(180基本布局)的設(shè)計。另外,有時也將文檔模板簡稱為模板。它可以在用戶設(shè)計文檔模板的過程中,向用戶顯示要打印的文檔的概貌。由此,用戶能夠容易地理解與數(shù)據(jù)源(190)合并后的文檔,如何根據(jù)可變數(shù)據(jù)的量和尺寸而變化。
此外,當數(shù)據(jù)源與文檔模板建立了關(guān)聯(lián)時,在布局后的各容器上顯示相應(yīng)的可變文本和圖像,以便能夠進行當前文檔的預(yù)覽。
進行文檔模板中的文檔構(gòu)造和可變數(shù)據(jù)容器的描寫的、可視的線索(容器的框線、錨點、滑塊、鏈接等),總是在生成文檔模板時顯示。并且,當進行插入可變數(shù)據(jù)的預(yù)覽時,在使光標移動到容器上,或選擇了容器時,顯示視覺上的線索。
工作區(qū)306包括滾動條307、可選的標尺308和文檔模板309。文檔模板309能夠表示具有多個頁面。此外,文檔模板309表示圖1C的文檔模板180。
所給出的文檔模板的頁面尺寸,用公知的技術(shù),由用戶指定。例如,通過從菜單的“文件”選擇“頁面設(shè)定”,來顯示設(shè)定頁面尺寸的對話框,在那里反映用戶指定的頁面尺寸。各文檔中的實際的頁數(shù),有可能根據(jù)建立了關(guān)聯(lián)的數(shù)據(jù)源內(nèi)的可變數(shù)據(jù)而變化。這是因為,當在文檔模板內(nèi)像可變表那樣設(shè)定根據(jù)可變數(shù)據(jù)的量而改變大小的字段的情況下,當讀入的可變數(shù)據(jù)無法容納在1個頁面內(nèi)時,自動生成追加的頁面。
在各頁面內(nèi)顯示的邊界線310,是表示頁面上的可打印的對象的最大寬度的、任意的頁邊距。
圖4是表示能在1個頁面的文檔模板309上顯示的對象的例子的圖。作為這樣的對象,包括容器407、408,任意使用的錨點圖標409,固定的邊411、414,未固定的邊410,鏈接412以及滑塊413。錨點圖標409可以設(shè)定在容器的矩形的角、邊、或容器的中央。另外,本申請所述的對象,指能夠顯示在文檔模板上的所有內(nèi)容,在要明確區(qū)別各對象時,通過以各自的名稱記述來明確。當設(shè)定錨點圖標409時,所設(shè)定的地方的位置固定。即,在圖4的例子中,錨點圖標409,被設(shè)定在容器407的左上角。因此,表示當容器407插入可變數(shù)據(jù),可變數(shù)據(jù)的圖像尺寸或文本量多時,能夠向右和向下放大。例如,當錨點圖標409被設(shè)定在任意1個邊上時,能夠固定該邊,而向其余3個邊的各方向放大。此外,當錨點圖標409被設(shè)定在容器中央時,能夠固定容器的中央位置,容器矩形的中央位置不變地向4個方向放大。鏈接412將在后面詳細說明,它表示容器407與容器408建立了關(guān)聯(lián)。并且,表示在保持對該鏈接412設(shè)定的長度(可指定范圍)的同時,容器408可向右移動(在后述的可變尺寸鏈接的情況下,根據(jù)要插入的數(shù)據(jù)大小,鏈接長度在設(shè)定好的范圍內(nèi)為可變)。滑塊413表示可以在與設(shè)定好的邊水平的方向上移動。
這里,對容器進行說明。容器是將固定或可變的文本/圖像,從可變數(shù)據(jù)文件插入文檔模板內(nèi)并描繪的空間(將其稱作局部區(qū)域或數(shù)據(jù)區(qū)域)。如圖4所示,與其他容器和對象一起對容器進行布局。通過用戶界面畫面,按照來自用戶的操作指示,通過鼠標133的操作,對容器進行移動、尺寸調(diào)整和再生成。另外,將插入容器中的數(shù)據(jù)稱作內(nèi)容或內(nèi)容數(shù)據(jù)(可變數(shù)據(jù)或字段數(shù)據(jù))。
更準確地說,容器具有設(shè)定的集合、可視的表現(xiàn)以及交互作用(interaction)和編輯動作。以下是對本實施例的容器的定義。
(1)容器具有固定或可變的內(nèi)容??勺儍?nèi)容是指,從數(shù)據(jù)源取得的數(shù)據(jù)有可能在各文檔即各記錄上不同,可以說是動態(tài)(活動)的。但是,作為本實施例的可變內(nèi)容,做成動畫的內(nèi)容或以其他方法按時間變化的內(nèi)容,因為不適合打印,所以,不打算在此討論。同樣,固定內(nèi)容在使用容器生成的所有文檔中,相同地表示。但是,當固定內(nèi)容通過鏈接與可變內(nèi)容建立了關(guān)聯(lián)時,受可變內(nèi)容的影響,固定內(nèi)容有可能在各文檔中位置不同。
(2)容器具有用于內(nèi)容的背景色、邊界、字體風格那樣的與文本設(shè)定相同的裝飾功能。將這樣的設(shè)定稱作容器屬性。能對每個容器設(shè)定容器屬性,但也能夠進行是與某容器相同的容器屬性的設(shè)定。
(3)容器在生成文檔時,與來自數(shù)據(jù)源的數(shù)據(jù)合并。裝飾功能在所打印的輸出品中是可視的,這在任何固定內(nèi)容中也是如此??勺儍?nèi)容提供來自數(shù)據(jù)源的特定數(shù)據(jù)的顯示。容器的該表現(xiàn)形式,例如能夠被打印,或顯示在視頻顯示器144的屏幕上。
(4)如圖4所示,容器具有作為可視的線索的用戶界面。例如,具有用于容器的編輯和顯示設(shè)定的交互式圖形用戶界面(GUI)。GUI的各要素顯示在視頻顯示器144的屏幕上,但不作為文檔打印。布局編輯應(yīng)用程序121的用戶界面103,顯示背景色和字體那樣的容器的若干裝飾功能,還具有能夠?qū)θ萜鞯脑O(shè)定進行編輯和顯示功能。
容器具有關(guān)于控制如何結(jié)合顯示在各文檔中的內(nèi)容的限定。這些限定(包括將固定/可變內(nèi)容與容器結(jié)合),是用戶通過一個文檔模板控制多個文檔的主要方法。作為限定的一個例子,有“該容器的內(nèi)容高度最大為4英寸”。此外,作為其他的限定的例子,有“容器的內(nèi)容的左邊緣(左邊),在各文檔中必須在相同的水平位置顯示”。在此所述的內(nèi)容,是用于使用GUI,顯示、編輯這樣的限定的各種方法。
在數(shù)字打印技術(shù)中,已知有為了具有將圖像定義在頁面上的地方,而指定固定內(nèi)容的布置的內(nèi)容占位符。容器具有位置和尺寸,以在公知的技術(shù)中已知的方法編輯、顯示它們。因此,在以下的說明中,將焦點對準在可變數(shù)據(jù)打印方面特殊的方法中的顯示和編輯。
通過使用容器,用戶可以指定文檔的內(nèi)容的尺寸(描繪尺寸)和位置。由于通過一個文檔模板生成多種文檔,所以,對容器設(shè)定多個可能性和限定,而為了這些設(shè)定(指定)和顯示,使用預(yù)定的用戶界面。
一個容器的邊,定義在文檔內(nèi)顯示建立了關(guān)聯(lián)的內(nèi)容的、虛擬的邊界線。因此,提到容器的左邊,與提到在各文檔中可顯示建立了關(guān)聯(lián)的內(nèi)容的區(qū)域內(nèi)最左的邊是相同的。同樣,提到容器的高度,可以理解為在所生成的文檔中建立了關(guān)聯(lián)的內(nèi)容的高度的限定。在本說明書中,當參照用戶界面103提到容器的邊或大小時,該區(qū)別變得清楚。
在以下的記載中,定義用于限定內(nèi)容的顯示的某個值的用語“固定”,在所有文檔中都是相同的。
(1)當容器的寬度固定時,分配給關(guān)聯(lián)的內(nèi)容的寬度,在所有文檔中都相同。
(2)當容器的高度固定時,分配給關(guān)聯(lián)的內(nèi)容的高度,在所有文檔中都相同。
(3)當距離(鏈接的長度)固定時,所指定的距離,為所有文檔的限定。
(4)當容器的左右邊固定時,意味著關(guān)于頁面的邊的水平位置,在所有文檔中都相同。但是,容器的高度或垂直方向的位置有可能變化。例如,當容器的左邊固定時,關(guān)聯(lián)的內(nèi)容的顯示位置,在所有文檔中其左邊的位置為相同的水平位置。但該內(nèi)容有可能在某文檔中顯示在頁面的上方,而在其他文檔中則顯示在頁面的下方。
(5)當容器的上下邊固定時,意味著頁面的邊的垂直位置在所有文檔中都相同。但是,容器的寬度或水平位置有可能根據(jù)文檔變化。
(6)容器的垂直軸是與容器的右邊和左邊平行,位于其中間的虛擬的垂直線。如果容器的垂直軸固定,則該容器的左右邊的水平位置的中央位置在所有文檔中都相同。在該限定下,容器的寬度有可能變化。但是,從左右邊離垂直軸最遠的容器到最近的容器,垂直軸在所有文檔中都處于相同的水平位置。另外,容器的高度和垂直位置不受該限定的影響。
(7)同樣地,如果水平軸固定,則容器的上邊和下邊的平均位置被限定在垂直方向上的同一位置。但是,容器的寬度和水平位置不受該限定的影響。
(8)當水平軸和垂直軸二者均固定時,意味著容器的中心位置被固定。但是,容器的寬度和高度不受該限定的影響。
(9)當容器的角位置、容器的邊的中間位置、或容器的中心位置固定時,各位置在所有文檔中都處于相同的地方。例如,如果容器的左上角固定,則意味著所配置的容器的左上位置在所有文檔中都相同。
(10)垂直邊或垂直軸,可以與頁面的左邊或右邊,或左頁邊距或右頁邊距,或其他水平位置建立關(guān)聯(lián)而固定。同樣地,水平邊或水平軸,可以與頁面的上邊或下邊,或上下頁邊距,或其他垂直位置建立關(guān)聯(lián)而固定。
“固定”的反意詞是“可變”,“可變”意味著容器的邊、軸、角、中間位置或文檔限定可能在文檔間(記錄間)發(fā)生變化。例如,在頁面內(nèi),希望根據(jù)可變數(shù)據(jù)的尺寸和量動態(tài)地變更布局,但對于特定的容器,有時希望固定大小和位置,有時希望使頁面的角上的容器的四角固定。因此,在本布局編輯應(yīng)用程序121中,能夠?qū)Ω魅萜?局部區(qū)域),適當?shù)卦O(shè)定使邊、軸、角和中間位置等固定,還是使其可變。由此,當用戶確定文檔模板180的基本布局時,能夠如用戶所希望的那樣生成基本布局。
新容器的生成方法容器包括文本容器和圖像容器2種。文本容器具有文本和嵌入的圖像。圖像容器只具有圖像。
如圖4所示,通過用鼠標133點擊文本容器工具404或圖像容器工具405,在文檔模板309上拖動四邊形,從而在該文檔模板309上生成新文本容器或圖像容器。
或者,還可以在激活適當?shù)墓ぞ?04、405后,通過在文檔模板309上單擊來生成容器。這時,按照鼠標133的點擊操作,在模板上插入默認尺寸的容器,并且,提供用于設(shè)定該新容器的尺寸等的對話框或其他提示符。另外,容器的尺寸也可以自動地提前定義,或者考慮由計算出的分離器(skimmer)生成、配置等各種方法。能夠用鼠標等輸入裝置選擇在此生成的容器,通過右擊進行屬性的指示等操作,從而顯示容器的屬性對話框,設(shè)定容器的限定。在容器的屬性對話UI(相當于局部區(qū)域設(shè)定裝置)中,能夠設(shè)定上述各種限定。此外,在容器的屬性對話框中,能夠確定容器的尺寸(寬度、高度)和位置。另外,當容器為可變尺寸時,可以設(shè)定容器的基本模式(基本尺寸和基準位置),進而設(shè)定最大容器尺寸(寬度、高度)和最小容器尺寸(寬度、高度)。
圖5A~圖5D舉例說明關(guān)于容器的邊的顯示規(guī)則。
布局編輯應(yīng)用程序121,為了表現(xiàn)容器的邊的狀態(tài),用實線(項目503)或虛線(504)表示邊,并且,使用以下內(nèi)容錨點(由在邊的附近描繪的506、507、509所示的線、形狀、圖標)、句柄(為了進行移動、修改,在區(qū)域的邊上或附近描繪的控制點502)、滑塊(在邊的兩側(cè)描繪的短平行線,圖4的413)、放大縮小圖標(505)以及顏色。
圖5A~圖5D所示的容器顯示方法的規(guī)則如下所述。
(1)為了固定各邊,用實線描繪。
(2)寬度固定時,用實線描繪左邊和右邊。
(3)高度固定時,用實線描繪上邊和下邊。
(4)不描繪軸。
(5)在尚未由(1)~(3)描繪的各邊的附近描繪放大縮小圖標,以虛線描繪這些邊。
(6)在垂直邊和水平邊,或垂直軸和水平軸的各對中,如果兩者固定,則在其相交點描繪錨點。
(7)在各固定邊上,如果在邊的任意位置都未描繪錨點,則在邊的中央描繪滑塊。
(8)在垂直邊和水平邊,或垂直軸和水平軸的各對中,如果尚未描繪錨點和滑塊,則在其相交點描繪句柄。
由規(guī)則(1)、(2)、(3)定義的線,如上所述,被固定或被限定,因此用實線描繪。像規(guī)則(5)那樣,可變的邊以虛線描繪。由規(guī)則(6)、(7)、(8)定義的、固定的點表示錨點,幾條固定的邊表示滑塊,其他表示句柄。
由用戶后來所設(shè)定的限定優(yōu)先于上述規(guī)則。即,當以后設(shè)定了其他限定時,如果上述規(guī)則影響到要描繪的邊,則變更實線和虛線的描繪內(nèi)容。
描繪可變的邊的地方依賴于容器的內(nèi)容。如后面將要說明的那樣,使用“動態(tài)校正處理”,“動態(tài)校正處理”的意思是,將內(nèi)容合并到文檔模板中,且在用戶界面上是可見的。也可以使用其他手段來確定用戶界面上可變的邊的描繪位置。例如,也可以使用在所有文檔中平均的尺寸的容器(平均的內(nèi)容區(qū)域),來確定描繪可變的邊的位置。
這些內(nèi)容表現(xiàn),提供表示容器的各邊的狀態(tài)的圖解(graphical)手段。該表現(xiàn)的解釋如下所述。
(1)如圖4的邊410那樣,虛線意味著根據(jù)容器的內(nèi)容,文檔內(nèi)的邊的位置發(fā)生變化。
(2)實線意味著為了固定(邊414)、或容器的寬度和高度固定(在容器408中,4條邊是實線,兩者均固定)而限制的邊。
(3)錨點意味著邊或軸交叉的地方被固定。因此,錨點出現(xiàn)在所有文檔的水平、垂直位置。錨點當然被固定。圖4的圖標409是錨點圖標的例子,意味著邊414的交叉位置固定。
(4)滑塊意味著建立了關(guān)聯(lián)的邊的長度固定,但有可能并行移動。例如,在圖4中,滑塊413表示插入到容器408的內(nèi)容數(shù)據(jù),可能顯示在文檔內(nèi)以特定的圖表所示的位置的左或右。例如,當插入與容器408建立了關(guān)聯(lián)(設(shè)定了鏈接)的容器407的數(shù)據(jù)的圖像尺寸或文本量少時,容器407的尺寸變小。所以,容器408向左滑動(并行移動)地進行布局并顯示。此外,當容器407的尺寸變大時,相反地,容器408向右滑動地進行布局。
根據(jù)對哪個工具、哪個容器進行選擇、加亮或激活,對這些圖標和邊的幾個或全部進行描繪或不描繪。一般地,容器的邊和圖標是設(shè)計文檔模板的工具,所以,在打印品中不描繪。
另外,如上所述,容器的寬度和高度的基本值、最小值、最大值的基本模式的設(shè)定,顯示在附屬對話框中。
在圖5A中,容器501的寬度和高度二者均不固定(可變)。固定的邊503用實線表示,可變的邊504用虛線表示。放大縮小圖標505表示相鄰的邊504可變。也可以代替或追加地使用其他形式的指示器(indicator)。
在圖5B中,容器501的寬度和高度二者均可變。為了明確地表示交叉的兩條邊503的角的位置被固定,而添加錨點圖標506。
在圖5C中,容器501表示這樣的狀態(tài),即容器的寬度和高度二者均可變,以任意的錨點圖標507表示的點為中心,均等地擴展周圍。即,容器501能夠以錨點圖標507為中心放大或縮小。這里的放大/縮小是指,錨點圖標507的位置總處于容器501的中心點那樣地,進行布局調(diào)整。
在圖5D中,容器501的上邊508固定,但寬度和高度二者均可變。位于上邊508的中心顯示的錨點圖標509固定。并且,容器501的左邊和右邊,在通過錨點圖標509垂直地描繪的中心軸(垂直軸)的周圍放大、縮小。
鏈接表示容器與容器之間的關(guān)聯(lián)。關(guān)聯(lián)表示容器間的距離,通過鏈接建立了關(guān)聯(lián)的容器之間,受到相互的布局變更的影響地計算布局。圖4的412所示的部分就是鏈接,在圖4中,對容器407與容器408建立了關(guān)聯(lián)。關(guān)于鏈接的設(shè)定方法以及通過鏈接建立了關(guān)聯(lián)的容器的布局計算方法,將在后面說明。
下面,說明用于在容器之間建立關(guān)聯(lián)的鏈接的設(shè)定。圖6是表示鏈接的設(shè)定方法的流程圖。此外,圖7A~圖7C表示設(shè)定鏈接時的用戶界面(UI)的變化例。用圖6、圖7A~圖7C說明對容器設(shè)定鏈接的方法。另外,本申請所述的流程圖的各步驟的處理,由信息處理裝置(主計算機)所具有的處理器135執(zhí)行。
首先,在步驟S601中,布局編輯應(yīng)用程序121,在用戶界面畫面的工作區(qū)306上,顯示為編輯而選擇出的文檔模板。為了設(shè)定鏈接,需要在文檔模板上生成用于設(shè)定鏈接的容器(最少2個)。圖7A~圖7C表示在步驟S601生成2個容器并設(shè)定鏈接時的用戶界面的變化例。
接著,在步驟S602中,布局編輯應(yīng)用程序121,判斷上述鏈接工具是否變?yōu)檫x擇狀態(tài)(通過點擊圖4的按鈕406變?yōu)檫x擇狀態(tài))。如果鏈接工具不是選擇狀態(tài),則根據(jù)需要執(zhí)行其他的各種處理(步驟S609),回到步驟S602。
在圖7A中,設(shè)容器701和702全部由固定的邊構(gòu)成。此外,703和704與圖4的409相同,意味著錨點。705意味著鼠標指針。那么,在鏈接工具為選擇狀態(tài)期間,用戶點擊設(shè)定鏈接的2個容器中的一個(設(shè)為容器701)來選擇。按照該操作,布局編輯應(yīng)用程序121的用戶界面103,識別指定了第1容器這一情況(步驟S603),在存儲器136中保存指定選擇出的容器的信息。此外,在畫面上顯示與以后的鼠標指針的移動相對應(yīng)的軌跡(步驟S604)。例如,圖7B的線段706,表示將圖7A的狀態(tài)下的點擊位置與當前鼠標指針的位置連接起來的線,能夠通過該UI向用戶表明在哪個位置設(shè)定鏈接。
接著,如圖7B所示,用戶將鼠標指針移動到另一個容器(容器702)并點擊。按照該操作,用戶界面103識別指定了第2容器這一情況(步驟S605)。然后,布局編輯應(yīng)用程序121,在步驟S604中保存的第1容器、和步驟S605中識別出指定的第2容器之間設(shè)定鏈接(步驟S606)。
這樣,在由用戶選擇出的兩個容器701、702之間設(shè)定鏈接時,顯示鏈接UI707(步驟S607)。進而,接受該鏈接設(shè)定,容器的顯示狀態(tài)成為圖7C的狀態(tài)(步驟S608)。即,通過設(shè)定鏈接,自動地變更容器的UI。這里,通過鏈接建立了關(guān)聯(lián)的邊為可變,以虛線表示。在圖7C中,708是以虛線表示的邊,如上所述表示可變的邊。
另外,圖7C那樣的容器的邊的狀態(tài)的變化,是由于設(shè)定了鏈接而需要使容器的邊可變,從而自動地執(zhí)行的。其目的在于,防止發(fā)生盡管設(shè)定了鏈接但所有的邊卻是固定的這樣的矛盾。此外,709與圖5A~圖5D中的505相同,是通過設(shè)定鏈接,對用戶可視地表示容器可發(fā)生變化的方向的標記。此外,在圖7C的例子中,左側(cè)的容器的右邊和右側(cè)的容器的左邊變?yōu)榭勺兊臓顟B(tài),但這只是一個例子,例如,右側(cè)的容器也可以變化為具有圖4的413所示的滑塊的設(shè)定。
<基于布局引擎的布局計算處理> 本實施例的布局編輯應(yīng)用程序,分為布局模式和預(yù)覽模式,布局模式使用用戶界面103生成容器,在該容器之間進行關(guān)聯(lián)(鏈接設(shè)定)并生成布局;預(yù)覽模式通過布局引擎105,將數(shù)據(jù)源的各記錄插入所生成的布局,再預(yù)覽實際插入了記錄之后的布局結(jié)果。在該預(yù)覽模式中,插入實際的記錄所具有的內(nèi)容數(shù)據(jù)并計算布局。其中,預(yù)覽模式是顯示上的布局計算。即使在實際進行打印時,布局引擎105也是在將數(shù)據(jù)插入到各容器后再計算布局,而此時的計算方法與預(yù)覽模式相同。另外,在對要插入內(nèi)容數(shù)據(jù)的容器設(shè)定了優(yōu)先順序時,按照上述優(yōu)先順序進行布局計算。作為按照優(yōu)先順序進行的布局計算的一個例子,考慮盡量以原始的尺寸(原來的數(shù)據(jù)大小)顯示插入到優(yōu)先順序高的容器中的內(nèi)容數(shù)據(jù)。
圖8表示布局計算的流程。首先,選擇預(yù)覽模式(步驟S801)。如果是預(yù)覽模式,則布局編輯應(yīng)用程序121,使用戶從數(shù)據(jù)源選擇要預(yù)覽的記錄,確定要將選擇出的記錄的各字段數(shù)據(jù)插入各容器(步驟S802)。當確定向各容器插入字段數(shù)據(jù)時,布局編輯應(yīng)用程序121,進行用于對該記錄進行布局的計算,并根據(jù)需要進行布局調(diào)整(步驟S803)。步驟S803中的布局計算的細節(jié)將在后面說明。然后,布局編輯應(yīng)用程序121,顯示在步驟S803中計算出的布局(步驟S804)。布局編輯應(yīng)用程序121,根據(jù)用戶的指示判斷是否還對其他記錄進行預(yù)覽(步驟S805)。當在步驟S805中判斷為不必對其他記錄進行預(yù)覽時,結(jié)束預(yù)覽模式(步驟S807)。當判斷為對其他記錄進行預(yù)覽時,布局編輯應(yīng)用程序121,選擇其他記錄再次進行布局計算,并進行預(yù)覽(步驟S806)。
另外,在非預(yù)覽模式下進行打印時,依次對要打印的所有記錄進行布局的計算。因此,步驟S804不存在,步驟S805進行是否已將要打印的記錄全部處理完的判斷。對在步驟S803中進行布局計算后的結(jié)果進行描繪并輸出,用打印機驅(qū)動器生成為打印數(shù)據(jù),并向打印機輸出打印數(shù)據(jù)。此時,在對于所有記錄(為了打印而指定出的所有記錄)打印數(shù)據(jù)的輸出結(jié)束的時刻,結(jié)束本處理。
下面,說明在上述步驟S803進行的布局計算的細節(jié)。圖9是表示本實施例的未設(shè)定布局的優(yōu)先順序時的布局計算的方法的流程圖。此外,圖10A~圖10C是表示此時的UI顯示例的圖。由于圖9是僅用于說明布局計算的處理方法的流程圖,所以,相當于對可變數(shù)據(jù)打印的1個記錄進行打印/預(yù)覽時的布局計算方法。當為多個記錄時,反復(fù)進行以下的處理。
首先,布局編輯應(yīng)用程序121,求出計算布局的容器的集合(步驟S901)。布局計算將建立了關(guān)聯(lián)的容器作為一個集合進行計算。例如,參照圖11,在頁面上布置好4個容器,并對各容器設(shè)定了關(guān)聯(lián)。此時,容器A與容器B、容器C與容器D通過鏈接建立了關(guān)聯(lián)。因此,容器A、B成為集合1,容器C、D成為集合2。即,將通過鏈接而連接的容器組指定為一個集合。如上所述,1101表示錨點,1102表示固定的邊,1103表示控制器,1104表示指示可變的邊的變化方向的箭頭,1105表示可變的邊,1106表示鏈接,1107表示滑塊。
接著,布局編輯應(yīng)用程序121,從在步驟S901所求出的容器的集合中,選擇一個用于計算布局(步驟S902)。然后,對選擇出的容器的集合進行布局計算。首先,對選擇出的容器的集合中包含的可變要素即2個容器(A、B),根據(jù)要插入的數(shù)據(jù)的圖像尺寸或文本量,計算各容器不受任何限定時的大小。具體而言,布局編輯應(yīng)用程序121,判斷容器A是圖像數(shù)據(jù)用容器,還是文本用容器。如上所述,可以根據(jù)對容器所設(shè)定的屬性來進行判斷。接著,布局編輯應(yīng)用程序121,讀入插入到容器A的數(shù)據(jù)。當容器A為圖像數(shù)據(jù)用容器時,該圖像數(shù)據(jù)的尺寸(寬度、高度的像素數(shù)以及解析度)為不受容器A的限定時的尺寸。此外,當容器A為文本用容器時,可以基于該文本數(shù)據(jù)的字符數(shù)和由容器A的容器屬性指定的字符屬性,計算要插入到容器A的數(shù)據(jù)量。字符屬性是指字體類型、字體大小、字符間距、行間距等。這里,當是文本用容器時,如果不考慮容器A的縱橫比例的限定就無法進行確定,因此適用限定。在圖11的例子中,容器A在左上角和左下角設(shè)定了錨點,因此,高度(縱向)固定。由此,布局編輯應(yīng)用程序121,判斷是否能夠?qū)⒂嬎愠龅臄?shù)據(jù)量(文本量)的字符,插入到作為容器A的基本模式而設(shè)定好的寬度(橫向)的容器A中。當判斷為能夠全部插入時,容器A對以基本模式設(shè)定好的尺寸(寬度、高度)不變更。此外,當判斷為不能全部插入時進行尺寸變更。在圖11的例子中,容器A通過設(shè)定錨點而高度固定,因此,向橫向延伸。這里,布局編輯應(yīng)用程序121,計算容器A的寬度變?yōu)槎嗌俨拍懿迦胗嬎愠龅臄?shù)據(jù)量的字符,并算出容器A的尺寸。
接著,布局編輯應(yīng)用程序121進行布局的最優(yōu)化,使得要布局的容器尺寸與實際的內(nèi)容尺寸的差盡量小(步驟S903)。布局的最優(yōu)化這樣進行,以使可動態(tài)改變尺寸地建立了關(guān)聯(lián)的容器中,分別插入的內(nèi)容的尺寸與要布局的尺寸的差盡可能相同。布局編輯應(yīng)用程序121,求出在步驟S902計算出的容器的集合的尺寸,即,容器A、容器B及鏈接1106(這里為固定鏈接)的合計尺寸。然后,求出該合計尺寸與基本布局中的該容器的集合的尺寸(在圖11的例子中,相當于容器A與容器B的各自的錨點圖標的距離)的差。當在前面步驟中計算出容器A或容器B的寬度增大時產(chǎn)生差值。布局編輯應(yīng)用程序121,通過將該差值平均分配給容器的集合中的各要素,來進行布局調(diào)整。
布局編輯應(yīng)用程序121進行布局的最優(yōu)化,當違反了規(guī)則時,再次進行計算使得不違反規(guī)則(步驟S904)。這里所說的規(guī)則,是在布局生成時由用戶設(shè)定的限定,是容器的尺寸的可變范圍、位置的限定,在為可變鏈接時是鏈接長度的變化的限定等。如果沒有違反規(guī)則地計算了布局,則該集合的布局完成。然后,布局編輯應(yīng)用程序121,對頁面上的所有集合實施步驟S902~S904的處理,計算頁面整體的布局(步驟S905)。
圖10A~圖10C是在未設(shè)定優(yōu)先順序的情況下進行布局時的UI例。
圖10A表示某記錄已被插入、布局已被確定的狀態(tài)。1001和1002表示錨點,1003和1004表示固定的邊,1005表示可變的邊,1006表示指示可變的邊的變化方向的箭頭,1008表示鏈接。在該狀態(tài)下,變更記錄,插入不同尺寸的內(nèi)容。圖10B表示將新內(nèi)容的尺寸重疊于圖10A的狀態(tài)上。1009表示在各自的容器中所插入的內(nèi)容尺寸。然后,進行布局的計算。圖10C表示進行布局計算后的結(jié)果。進行計算,使得計算后的各容器的尺寸與實際插入的內(nèi)容尺寸同等地具有差異,且不違反上述規(guī)則。如圖10C所示,圖10B所示的要插入的內(nèi)容尺寸(1009)與計算后的內(nèi)容尺寸(1010),兩者具有同等的差異。
當如圖10A~圖10C那樣僅在橫向進行布局計算時,僅通過以同等差異地進行布局計算的處理不會產(chǎn)生問題。但是,當如圖31所示必須進行考慮到縱向和橫向的布局計算時,僅通過以同等差異地進行布局計算的處理可能會無法應(yīng)對。
在處理橫向和縱向的二維布局的圖31的情況下,采用圖9的布局計算方法,首先對橫向進行調(diào)整,然后對縱向進行調(diào)整。即,在容器3101和3102之間,按照上述順序進行布局調(diào)整以使其在設(shè)定值D之內(nèi),然后,在容器3102和3103之間進行布局調(diào)整,以使其在設(shè)定值G之內(nèi)。
但是,采用對橫向進行調(diào)整后對縱向進行調(diào)整的調(diào)整方法,可以預(yù)想會成為偏離了用戶所希望的基本布局的布局結(jié)果。
因此,對于各容器進行布局,以使其盡量不偏離基本模式(設(shè)計布局時的容器尺寸和容器的縱橫比例等)。為此,例如可以考慮以下方法。求出基本模式的寬度與布局調(diào)整后的寬度的差的平方、和基本模式的高度與布局調(diào)整后的高度的差的平方的和,對于所有的容器都要計算該和。然后,布局編輯應(yīng)用程序121,計算各容器的寬度和高度后再進行布局調(diào)整,使得各容器的平方和(橫向+縱向)的合計值最小。這樣,通過采用最小二乘法進行布局調(diào)整,不會距用戶當初設(shè)定好的基本布局有大的偏離,能夠確定作為整體取得了平衡的最終布局。
另外,由于在容器之間設(shè)定了后述的可變鏈接,因此,如后面將要說明地那樣,按照要插入的內(nèi)容數(shù)據(jù)的大小來變更鏈接尺寸。由于本申請所述的布局編輯應(yīng)用程序具有這樣的布局調(diào)整單元,因此,可以按照所分配的數(shù)據(jù)大小,調(diào)整多個局部顯示區(qū)域(容器)的配置位置。
此外,在上述記載中,作為布局調(diào)整算法的一個例子列舉了采用最小二乘法,但也可以通過預(yù)定的操作切換三乘或四乘等布局調(diào)整算法。
圖12表示用于設(shè)定可變鏈接的用戶界面。與圖4相同,具有應(yīng)用程序窗口301和工具欄303。在圖12的狀態(tài)下,在文檔模板309上存在容器1203和容器1204。容器1203包括錨點圖標1201和固定的邊1205;容器1204包括錨點圖標1202和固定的邊1206。在容器1203與1204之間具有可變尺寸的鏈接1209,連接著容器1203與容器1204。因為在容器1203與容器1204之間設(shè)定了鏈接,所以,容器1203的右邊1207和容器1204左邊1208用虛線表示。因此,指示器1210和指示器1211顯示在各容器上,分別表示邊1207和邊1208可變。
此外,圖14是鏈接設(shè)定裝置中的用戶界面畫面,是用于設(shè)定鏈接1209的信息的對話框1401的例子。該對話框由標題欄1402、工具按鈕1403、進行對話框的開關(guān)的按鈕1404、設(shè)定各種信息的區(qū)域1409構(gòu)成。在該對話框中,可以進行鏈接類型是可變長度(1407)的鏈接,還是固定長度(1406)的鏈接的擇一性選擇。當鏈接類型可變時,可以設(shè)定鏈接長度的最小值(最小距離1410)、最大值(最大距離1412)以及基準值(基準距離1411)。圖14的對話框1401,例如在下述情況下顯示通過用圖6、圖7A~圖7C說明的鏈接的設(shè)定操作,在2個容器之間設(shè)定了鏈接之后,通過點擊等操作選擇該所設(shè)定好的鏈接。或者,也可以在剛設(shè)定了鏈接之后,自動顯示關(guān)于該鏈接的對話框1401。這里,各容器之間的距離的基準值1411,是在插入了數(shù)據(jù)時各容器的尺寸沒有變更的情況下所使用的鏈接的長度。
圖13是說明利用本實施例的用戶界面103進行的可變鏈接的設(shè)定順序的流程圖。例如,當在圖11的容器A與容器B之間,以用圖6、圖7A~圖7C說明的順序設(shè)置鏈接時,首先設(shè)置固定尺寸的鏈接。然后,選擇該鏈接執(zhí)行圖13所示的處理,從而能夠使該鏈接從固定尺寸的鏈接1106(圖11)的狀態(tài),向可變尺寸的鏈接1209(圖12)變化。
首先,用鼠標將所需要的鏈接(例如,鏈接1106)設(shè)置成選擇狀態(tài),進行用于顯示鏈接屬性的預(yù)定操作。于是,布局編輯應(yīng)用程序121的用戶界面103,將其識別為鏈接屬性的顯示指示的輸入(步驟S1301)。當識別為鏈接屬性的顯示指示后,顯示與選擇狀態(tài)的鏈接(以下,稱作對象鏈接)相對應(yīng)的屬性對話框1401(圖14)。接著,用戶界面103顯示鏈接屬性(步驟S1302)。另外,作為鏈接的選擇操作,與設(shè)定容器的基本模式時相同,也可以是鼠標的右擊或鍵盤特定鍵的操作等中的任意一種。
在步驟S1302顯示的對話框1401上,顯示選擇出的鏈接的當前狀態(tài)。在本例子中,因為選擇了鏈接1106,所以,在該階段鏈接尺寸固定,在鏈接類型1405中,選擇了表示固定長度的固定長度1406。
為了在該對話框1401中將鏈接從固定尺寸變更為可變尺寸,而在鏈接類型1405中選擇用于將鏈接尺寸設(shè)定為可變的可變長度1407。由此,配置在鏈接距離1408內(nèi)的最大距離1412、最小距離1410、基準距離1411變?yōu)橛行В梢赃M行數(shù)值的設(shè)定。為了設(shè)定鏈接的可變尺寸,用戶在最大距離1412中設(shè)定該鏈接長度的最大值,在最小距離1410中設(shè)定最小值,在基準距離1411中設(shè)定當前值。
當結(jié)束設(shè)定時,用戶通過一般的對話框開關(guān)按鈕1404指示該設(shè)定的應(yīng)用。用戶界面103,在檢測到該指示后,使處理從步驟S1303向步驟S1304以后進展,使該對象鏈接反映上述設(shè)定狀態(tài)。
即,首先在步驟S1304中,布局編輯應(yīng)用程序121判斷對象鏈接是固定尺寸還是可變尺寸。如果指定了固定尺寸則進入步驟S1308,將對象鏈接設(shè)定為“固定尺寸”,在步驟S1307中,使對象鏈接的顯示狀態(tài)為表示“固定鏈接”的“實線”。
另一方面,在步驟S1304,如果指定了可變尺寸則進入步驟S1305,布局編輯應(yīng)用程序121,將對象鏈接設(shè)定為“可變尺寸”。然后,在步驟S1306中,注冊通過上述對話框1401設(shè)定好的對象鏈接的當前值(基準值)、最大值和最小值。然后,在步驟S1307中,使對象鏈接的顯示狀態(tài)為表示“可變鏈接”的“虛線”。結(jié)果,鏈接的UI顯示變化為圖12的鏈接1209所示的狀態(tài)(步驟S1306)。以上的對話框1401的設(shè)定信息存儲在存儲器中。
另外,還可以在設(shè)定于基準距離1411的當前值中,將作為當前布局而配置的容器之間的距離,作為缺省值自動地輸入。
圖15表示在使用了固定尺寸的鏈接時、在圖12所示的基本布局中插入了內(nèi)容的布局結(jié)果。另外,設(shè)想圖12的鏈接1209是可變鏈接,但也可以設(shè)定固定鏈接。布局計算方法如上所述地進行。
例如,在圖12中,考慮在容器1203和容器1204上,分別插入了不同尺寸的圖像數(shù)據(jù)(1504和1505)的情況。
此時假設(shè)將各容器的數(shù)據(jù)大小視為最佳,且容器1203在要接近與所插入的圖像尺寸相同的框1504(最佳容器尺寸)時向右變更尺寸。同樣,容器1204在要接近與所插入的圖像尺寸相同的框1505(最佳容器尺寸)時向左變更尺寸。
但是,容器1203由于錨點1201不能移動左邊1212,容器1204由于錨點1202不能移動右邊1213,如果要像上述那樣變更尺寸,則只有縮小兩者的間隔。但是,在容器間設(shè)定了固定尺寸的鏈接1503,為了在計算布局時維持其長度,容器1203和容器1204的尺寸將變更。
結(jié)果,容器1203和容器1204,無法確保符合數(shù)據(jù)的縱橫比例的最佳的尺寸,最終如圖15所示,變得比最佳尺寸(框1504、框1505)小。即,由于鏈接1503的尺寸固定,因此,容器1501和容器1502無法達到最佳尺寸(在圖15中,以各容器內(nèi)的點劃線表示的范圍是數(shù)據(jù)所具有的縱橫比例)。
另一方面,圖16表示在與圖15相同的狀態(tài)下、將鏈接設(shè)為可變尺寸的情況。這時,在上述例子中,在容器1203與容器1204之間,如圖所示地設(shè)置有可變尺寸的鏈接1209。因此,在變更容器1203和容器1204的尺寸時,通過縮小鏈接尺寸,能夠使容器1203和容器1204的尺寸大于圖15的例子。結(jié)果,能夠達到符合要插入的數(shù)據(jù)大小的最佳尺寸,或者能夠設(shè)定更加接近插入數(shù)據(jù)大小(最佳尺寸)的容器的框。圖16表示該結(jié)果,可變鏈接1209為布局計算的結(jié)果,即成為可變鏈接1603所示的尺寸狀態(tài)。這時,容器1203和容器1204分別為最佳尺寸(符合數(shù)據(jù)大小的尺寸)。
<整體流程>
下面,說明本實施例的使用了多種布局計算方法的自動布局處理。
在本實施例中,說明按照插入到多個容器的每一個中的內(nèi)容數(shù)據(jù),自動變更具有這些容器的文檔模板的布局的自動布局處理。圖17是表示本實施例的自動布局處理的整體處理流程的流程圖。首先,在步驟S1701中求出要計算布局的容器的集合。這里所說的容器的集合,是以通過鏈接直接或間接地相互聯(lián)結(jié)起來的所有容器為要素的集合體,也稱作鏈接組,是指如前所述地通過鏈接建立了關(guān)聯(lián)的容器組。這樣,在步驟S1701中,進行查找存在于布局整體的鏈接組的處理。
接著,在步驟S1702中,從在步驟S1701中求出的鏈接組中選擇1個鏈接組。然后,在步驟S1703中,對在步驟S1702中選擇出的1個鏈接組進行布局的最優(yōu)化。在步驟S1703中進行的布局的最優(yōu)化等同于進行布局計算,關(guān)于該處理,將在“布局的最優(yōu)化流程”中參照圖18詳細說明。
接著,在步驟S1704中對是否未違反規(guī)則進行檢查。這里所說的規(guī)則是指偏移規(guī)則(offset rule),偏移規(guī)則是對布局的約束。對布局的約束是以容器或可變鏈接的最大值、最小值,以及頁面框的位置等為對象的,是在進行布局計算時不準破壞的規(guī)則。換言之,布局計算要在不破壞偏移規(guī)則的范圍內(nèi)進行。當在步驟S1704中判斷為違反了規(guī)則時返回步驟S1703,再次進行布局的最優(yōu)化。當判斷為沒有違反規(guī)則時,從步驟S1704前進到步驟S1705。在步驟S1705中,判斷對于在步驟S1701中查找到的所有鏈接組,上述處理(布局的最優(yōu)化)是否都已結(jié)束。如果有未處理的鏈接組則返回步驟S1702,選擇其他的鏈接組,繼續(xù)進行布局的最優(yōu)化。當對于所有容器集合計算都已結(jié)束時,結(jié)束布局整體流程。
這樣,當布局整體流程完成后,如圖8的步驟S804所示作為預(yù)覽進行顯示,或者作為用于打印輸出的數(shù)據(jù)輸出到外部。
圖18是說明本實施例的布局最優(yōu)化處理的流程圖。下面,參照圖18說明本實施例的布局最優(yōu)化處理。
首先,在步驟S1801中,布局編輯應(yīng)用程序從在步驟S1702中選擇出的鏈接組(集合)中選擇1個容器。詳細地說,就是經(jīng)由輸入輸出接口143識別用鼠標等選擇出的容器,從而可以識別選擇了文檔模板上的哪個容器。另外,在步驟S1801中選擇出的容器,暫時保存在存儲器136中。
接著,在步驟S1802中,布局編輯應(yīng)用程序121,取得應(yīng)用于在步驟S1801中選擇出的容器的布局調(diào)整算法。這是通過解析由存儲器136或存儲設(shè)備139所保存的算法信息而取得的。布局調(diào)整算法信息,用后面將要利用圖25等說明的用戶界面來設(shè)定,并如圖30(后面將要說明)所示保存在存儲器136或存儲設(shè)備139中。這里,搜索這樣的布局調(diào)整算法信息、并將其確定為對步驟S1801中選擇出的容器進行布局計算所要應(yīng)用的布局調(diào)整算法。另外,關(guān)于步驟S1802的處理,將在“應(yīng)用算法的解析流程”中參照圖19詳細說明。
在步驟S1803中,布局編輯應(yīng)用程序121,按照步驟S1802中布局調(diào)整算法的搜索結(jié)果對處理進行分支。當判斷為要用于在步驟S1801中選擇出的容器的布局調(diào)整算法是“內(nèi)容優(yōu)先”時,將處理從步驟S1803前進到步驟S1804。在步驟S1804中,將布局調(diào)整算法設(shè)定為,插入到在步驟S1801中選擇出的容器中的內(nèi)容(來自數(shù)據(jù)庫的插入數(shù)據(jù))的尺寸是該容器的計算用的基準尺寸,暫時保存在存儲器136中。例如,如果是圖像,則設(shè)該圖像數(shù)據(jù)所具有的尺寸為計算用的基準尺寸。此外,如果是文本數(shù)據(jù),則根據(jù)字符數(shù)、和要插入該文本數(shù)據(jù)的容器的屬性(反映文本數(shù)據(jù)時的字體類型、字體大小等字符屬性),確定計算用的基準尺寸。
此外,布局編輯應(yīng)用程序121,在判斷為應(yīng)用于在步驟S1801中選擇出的容器的布局調(diào)整算法是“容器·內(nèi)容優(yōu)先”時,使處理進入步驟S1805。在步驟S1805中,將步驟S1801中選擇出的容器本身在設(shè)計時(進行基本布局時)的容器尺寸,設(shè)定為容器的計算用的基準尺寸。然后,與插入到該容器中的內(nèi)容(來自數(shù)據(jù)庫的插入數(shù)據(jù))的尺寸一起,將設(shè)定好的計算用的基準尺寸暫時保存在存儲器136中。
此外,布局編輯應(yīng)用程序121,在判斷為應(yīng)用于在步驟S1801中選擇出的容器的布局調(diào)整算法是“基本設(shè)計優(yōu)先”時,使處理進入步驟S1806。在步驟S1806中,將在步驟S1801中選擇出的容器的設(shè)計尺寸(進行基本布局時的容器尺寸),設(shè)定為該容器的計算用的基準尺寸,暫時保存在存儲器136中。另外,在本申請中,有時也代替計算用的基準尺寸而稱之為目標形狀。
在步驟S1804~S1806結(jié)束之后進入步驟S1807,判斷是否已解析完對所有容器應(yīng)用的布局調(diào)整算法。當存在沒有進行解析的容器時,返回到步驟S1801,從該鏈接組中選擇其他的容器,對選擇出的容器的應(yīng)用布局調(diào)整算法進行解析。當判斷為對于鏈接組內(nèi)的所有容器解析都已結(jié)束時進入步驟S1808,進行布局再計算處理。布局再計算處理,是按照所應(yīng)用的布局調(diào)整算法進行各鏈接組內(nèi)的布局計算的處理。關(guān)于步驟S1808的處理,將在后面的“布局再計算處理流程”中詳細說明。
布局編輯應(yīng)用程序121,從多個布局調(diào)整算法中選擇要應(yīng)用于數(shù)據(jù)區(qū)域的布局調(diào)整算法。
然后,布局編輯應(yīng)用程序121,按照選擇出的布局調(diào)整算法執(zhí)行布局處理。
圖19是表示在步驟S1802中,對在步驟S1801中選擇出的容器進行的應(yīng)用布局調(diào)整算法的解析的流程圖。首先,在步驟S1901中,布局編輯應(yīng)用程序121,將文檔指定算法設(shè)定為容器的應(yīng)用布局調(diào)整算法。即,作為默認的設(shè)定,先將對文檔所設(shè)定的布局調(diào)整算法設(shè)定為該容器的應(yīng)用算法。例如,在圖30那樣的布局調(diào)整算法信息中,設(shè)定對文檔層所設(shè)定的“內(nèi)容優(yōu)先”那樣的布局調(diào)整算法。
接著,在步驟S1902中,布局編輯應(yīng)用程序121,檢查是否有對容器直接指定好的布局調(diào)整算法。詳細地說,就是可以在存儲器136中保存容器屬性,通過參照該存儲器136,來判斷是否有直接指定好的布局調(diào)整算法。
布局編輯應(yīng)用程序121,當在步驟S1902中判斷為有對容器直接指定好的布局調(diào)整算法時,進入步驟S1903,對該容器設(shè)定該指定算法,結(jié)束本解析處理。
當沒有對該容器直接指定好的布局調(diào)整算法時,使處理進入步驟S1904。在步驟S1904中,布局編輯應(yīng)用程序121,檢查是否對包括該容器的區(qū)域(某一定的范圍)指定了布局調(diào)整算法。這里所說的區(qū)域,可以指用戶任意選擇的范圍、或者指用圖18說明的鏈接組(集合)。布局編輯應(yīng)用程序121,當判斷為有對區(qū)域指定好的布局調(diào)整算法時,進入步驟S1905,對該區(qū)域內(nèi)的該容器設(shè)定該指定算法,結(jié)束本解析處理。另外,當對區(qū)域指定了布局調(diào)整算法時,將這些信息也保存在存儲器136等中,因此,布局編輯應(yīng)用程序121,能夠通過參照存儲器136進行步驟S 1904的判斷。
當沒有對區(qū)域指定好的布局調(diào)整算法時,進入步驟S1906。在步驟S1906中,布局編輯應(yīng)用程序121,檢查在包含要插入到該容器的內(nèi)容數(shù)據(jù)的記錄中是否指定了要使用的布局調(diào)整算法。可以按記錄單位變更用于布局計算的布局調(diào)整算法,例如,在記錄1中使用這個布局調(diào)整算法,在記錄2中使用這個布局調(diào)整算法。當指定了用于記錄單位的布局調(diào)整算法時,這些信息也保存在存儲器136等中。因此,布局編輯應(yīng)用程序121,能夠通過參照存儲器136執(zhí)行步驟S1906的判斷。
如果有對記錄指定好的布局調(diào)整算法則進入步驟S1907,對容器設(shè)定當前記錄的指定算法,結(jié)束解析處理。
當沒有對記錄指定好的布局調(diào)整算法時進入步驟S1908。在步驟S1908中,布局編輯應(yīng)用程序121,檢查是否指定了在包括該容器的頁面內(nèi)使用的布局調(diào)整算法。在此所說的頁面內(nèi),是指應(yīng)用于頁面上的所有容器的設(shè)定,并可指定按頁面單位不同的布局調(diào)整算法。另外,當指定了按頁面單位使用的布局調(diào)整算法時,由于這些信息也保存在存儲器136等中,因此,布局編輯應(yīng)用程序121,能夠通過參照存儲器136進行步驟S1908的判斷。如果有對頁面所指定的布局調(diào)整算法則進入步驟S1909,對容器設(shè)定當前頁面的指定算法,結(jié)束解析處理。當在步驟S1908中判斷為沒有對頁面所指定的布局調(diào)整算法時,通過步驟S1902、S1904、S1906、S1908的判斷處理,全部被判斷為“否”。此時,布局編輯應(yīng)用程序121,將在步驟S1901中設(shè)定好的文檔指定算法用于文檔內(nèi)的容器,結(jié)束流程。
通過以上的解析處理,優(yōu)先將對圖30所示的分層結(jié)構(gòu)的下層所設(shè)定的狀態(tài)設(shè)定于容器。
圖20是表示本實施例的布局再計算處理(步驟S1808)的流程圖。
首先,在步驟S2001中,布局編輯應(yīng)用程序121選擇標記。標記是指容器框線,為了確定移動容器的哪條邊而進行選擇。在此選擇出的框線,是容器的可移動的邊。
然后,在步驟S2002中,布局編輯應(yīng)用程序121計算應(yīng)力(tension)。應(yīng)力對應(yīng)于計算用的基準尺寸與當前的容器尺寸的差。另外,計算用的基準尺寸和當前的容器尺寸的差的計算方法,在每個布局調(diào)整算法中不同。在布局計算中,通過不斷縮小該差(不斷減小應(yīng)力)來不斷確定布局。此外,如上所述,計算用的基準尺寸根據(jù)應(yīng)用的布局調(diào)整算法而變化,被暫時保存在存儲器136中。進而,由于當前的容器尺寸也暫時保存在存儲器136中,因此,布局編輯應(yīng)用程序,可以在步驟S2002中通過參照存儲器136進行應(yīng)力的計算。
在步驟S2003中,布局編輯應(yīng)用程序121根據(jù)在步驟S2002中計算出的應(yīng)力來移動標記。另外,移動后的位置信息(坐標值等)和標記的移動已經(jīng)結(jié)束這一情況被保存在存儲器136中。
在步驟S2004中,檢查是否選擇了所有標記。所有標記是指所有容器的邊(框),進行鏈接組內(nèi)所有容器的應(yīng)力計算,并對是否進行了標記移動進行檢查。由于移動處理結(jié)束這一情況已被保存在存儲器136中,因此,布局編輯應(yīng)用程序能夠通過參照存儲器136,判斷在步驟S2003中進行標記的移動處理的情況。另外,如果存在未選擇的標記則進入步驟S2001,反復(fù)進行選擇未選擇的標記及步驟S2002以后的處理。當選擇完所有標記時結(jié)束流程。
接著,說明在步驟S2002、S2003執(zhí)行的幾個布局調(diào)整算法的計算方法。在以下的記載中沿1個方向(橫向)對容器進行布局調(diào)整,但在沿縱向進行布局調(diào)整時也與之相同。另外,當然也可以擴展為沿2個方向(縱向橫向)對容器進行布局調(diào)整的處理,作為1個算法的計算方法可以列舉采用上述的最小二乘法的計算方法。此外,用于調(diào)整容器布局的布局調(diào)整算法不限于本實施例所示的算法。
圖21A~圖21C是說明內(nèi)容優(yōu)先的布局調(diào)整算法的圖。如圖21A所示,存在容器2101和容器2102,它們通過鏈接2103建立了關(guān)聯(lián)。各容器中存在從數(shù)據(jù)庫插入的數(shù)據(jù)(內(nèi)容),容器2101中被插入了內(nèi)容2104,容器2102中被插入了內(nèi)容2105。當前的容器2101的寬度尺寸(插入內(nèi)容2104之前容器的寬度尺寸)為5,當前的容器2102的寬度尺寸(插入內(nèi)容2105之前容器的寬度尺寸)為7。內(nèi)容2104的寬度尺寸為8,內(nèi)容2105的寬度尺寸為4。
在內(nèi)容優(yōu)先的布局調(diào)整算法中,基于這些信息進行布局計算。如上所述,在內(nèi)容優(yōu)先的布局調(diào)整算法中,將內(nèi)容尺寸視為計算用的基準尺寸,不斷對容器尺寸進行布局調(diào)整。在布局計算中,通過對當前的容器進行布局調(diào)整,以使當前的容器尺寸(容器2101、容器2102)與計算用的基準尺寸(內(nèi)容2104、內(nèi)容2105)的差(應(yīng)力)縮小,從而使之接近計算用的基準尺寸。
圖21B表示應(yīng)力的計算處理。如圖21B所示,容器2101的應(yīng)力T1為8-5=3,容器2102的應(yīng)力T2為7-4=3。由此,該鏈接組的應(yīng)力合計為6。
為了減小該應(yīng)力而進行了標記移動的結(jié)果如圖21C所示。這里,容器2101的尺寸變成8,容器2102的尺寸變成4,都達到了計算用的基準尺寸(內(nèi)容2104的尺寸8和內(nèi)容2105的尺寸4)。即,基于布局計算的布局結(jié)果的應(yīng)力變成0。由此,在使用了內(nèi)容優(yōu)先的布局調(diào)整算法時,優(yōu)先考慮內(nèi)容的大小以確定容器尺寸。
圖22A~圖22C是說明容器·內(nèi)容優(yōu)先的布局調(diào)整算法的圖。設(shè)計是指用戶在布局生成模式下生成了容器和鏈接時的狀態(tài)(基本布局)。設(shè)計尺寸是生成這些對象時(設(shè)計時)的尺寸。
如圖22A所示,存在容器2201和容器2202,它們通過鏈接2203建立了關(guān)聯(lián)。各容器中存在從數(shù)據(jù)庫插入的數(shù)據(jù)(內(nèi)容),容器2201中插入了內(nèi)容2204,容器2202中被插入了內(nèi)容2205。當前的容器2201的寬度尺寸(插入內(nèi)容2204之前容器的寬度尺寸)為5,當前的容器2202的寬度尺寸(插入內(nèi)容2205之前容器的寬度尺寸)為7。內(nèi)容2204的寬度尺寸為8,內(nèi)容2205的寬度尺寸為4。此外,還存在設(shè)計時的容器尺寸2206和2207。
即,在圖22A的例子中,作為基本布局用戶將容器2201和容器2202的寬度尺寸設(shè)定為6。然后,在例如插入了最初的記錄中的內(nèi)容數(shù)據(jù)之后進行布局計算,將容器尺寸變更為當前的尺寸(容器2201為5,容器2202為7)。
在該狀態(tài)下,接著使用容器·內(nèi)容優(yōu)先的布局調(diào)整算法執(zhí)行布局計算,要插入這樣的記錄的狀態(tài)示于圖22A。
在容器·內(nèi)容優(yōu)先的布局調(diào)整算法中,考慮內(nèi)容尺寸、當前的容器尺寸以及設(shè)計時(基本布局時)的容器尺寸進行布局計算。如上所述,在容器·內(nèi)容優(yōu)先的布局調(diào)整算法中,除了內(nèi)容尺寸外,還將設(shè)計尺寸視為計算用的基準尺寸,不斷對容器尺寸進行布局調(diào)整。即,在布局計算中,通過對當前的容器進行布局調(diào)整,以使當前的容器尺寸(容器2201、容器2202)與內(nèi)容尺寸(內(nèi)容2204、內(nèi)容2205)的差(應(yīng)力),以及當前的容器尺寸(容器2201、容器2202)與設(shè)計尺寸(設(shè)計尺寸2206、設(shè)計尺寸2207)的差縮小,從而使之接近計算用的基準尺寸。
圖22B表示應(yīng)力的計算處理。各容器的應(yīng)力如下所述。
關(guān)于容器2201,內(nèi)容尺寸與當前的容器尺寸的應(yīng)力(T1)為|8-5|=3,設(shè)計尺寸與當前的容器尺寸的應(yīng)力(T3)為|5-6|=1。此外,關(guān)于容器2202,內(nèi)容尺寸與當前的容器尺寸的應(yīng)力(T2)為|4-7|=3,設(shè)計尺寸與當前的容器尺寸的應(yīng)力(T4)為|6-7|=1。由此,該鏈接組的應(yīng)力合計為3+1+3+1=8。
為了減小該應(yīng)力而進行了標記移動的結(jié)果,是圖22C所示的狀態(tài)。
這里,容器2201的尺寸為7,容器2202的尺寸為5。由此,進行完布局的應(yīng)力,關(guān)于容器2201,與內(nèi)容尺寸的應(yīng)力(T1)變成|8-7|=1,與設(shè)計尺寸的應(yīng)力(T3)變成|6-7|=1。此外,關(guān)于容器2202,與內(nèi)容尺寸的應(yīng)力(T2)為|4-5|=1,與設(shè)計尺寸的應(yīng)力(T4)為|6-5|=1。由此,該鏈接組的應(yīng)力合計為1+1+1+1=4。此時,沒有達到應(yīng)力為0的狀態(tài),但由于至此已沒有減小應(yīng)力的計算方法,因此,結(jié)束布局計算。
這樣,內(nèi)容尺寸、設(shè)計尺寸一般是不同的尺寸,在為了使其滿足內(nèi)容尺寸和設(shè)計尺寸兩者而對容器進行布局調(diào)整時,應(yīng)力一般不為0。因此,移動標記以使應(yīng)力最小,并將其作為布局結(jié)果。由此,在使用了容器·內(nèi)容優(yōu)先的布局調(diào)整算法時,能夠取得斟酌了內(nèi)容的大小和設(shè)計時的容器尺寸這兩者的布局結(jié)果。
圖23A~圖23C是說明基本設(shè)計優(yōu)先的布局調(diào)整算法的圖。在本實施例中,基本設(shè)計優(yōu)先,是僅將設(shè)計時的尺寸作為計算用的基準尺寸進行布局計算的方法。
如圖23A所示,存在容器2301和容器2302,它們通過鏈接2303建立了關(guān)聯(lián)。各容器中存在從數(shù)據(jù)庫插入的數(shù)據(jù)(內(nèi)容),容器2301中被插入了內(nèi)容2304,容器2302中被插入了內(nèi)容2305。當前的容器2301的寬度尺寸(插入內(nèi)容2304之前容器的寬度尺寸)為5,當前的容器2302的寬度尺寸(插入內(nèi)容2305之前容器的寬度尺寸)為7。內(nèi)容2304的寬度尺寸為8,內(nèi)容2305的寬度尺寸為4。此外,還存在設(shè)計時(基本布局)的容器尺寸2306和2307。設(shè)計時的容器尺寸2306和2307為6。
在基本設(shè)計優(yōu)先的布局調(diào)整算法中,基于這些尺寸中的當前的容器尺寸和設(shè)計尺寸的信息,進行容器的布局調(diào)整。由此,在布局計算中,對當前的容器進行布局調(diào)整,以使當前的容器尺寸(容器2301、容器2302)與計算用的基準尺寸(設(shè)計尺寸2306、設(shè)計尺寸2307)的差(應(yīng)力)縮小,從而使之接近計算用的基準尺寸。
圖23B表示進行應(yīng)力計算的狀態(tài)。容器2301與計算用的基準尺寸的應(yīng)力(T3)為6-5=1。容器2312與計算用的基準尺寸的應(yīng)力(T4)為7-6=1。由此,該鏈接組的應(yīng)力合計為1+1=2。
圖23C說明了為了減小上述應(yīng)力而進行了標記移動的結(jié)果,示出容器2301、容器2302以及內(nèi)容2304、內(nèi)容2305的調(diào)整后的狀態(tài)。這里,容器2301的尺寸變成6,容器2302的尺寸變成6。由此,布局調(diào)整后,容器2301與計算用的基準尺寸的應(yīng)力為6-6=0,并且,容器2302與計算用的基準尺寸的應(yīng)力為6-6=0。由此,該鏈接組的應(yīng)力合計為0+0=0。即,通過該布局結(jié)果達到了計算用的基準尺寸。
另外,在使用了基本設(shè)計優(yōu)先的布局調(diào)整算法時,不管內(nèi)容的大小如何,都優(yōu)先考慮用戶進行設(shè)計時的大小來確定容器尺寸。
但是,由于該布局調(diào)整算法完全與內(nèi)容的大小無關(guān),因此,便沒有布局計算中的可變要素。即,容器總是設(shè)計時的大小。由此,基本設(shè)計優(yōu)先的布局調(diào)整算法,在鏈接組內(nèi)通過與其它布局調(diào)整算法一起使用來發(fā)揮作用。
圖24A~圖24C是說明在1個鏈接組內(nèi)、分別對各容器設(shè)定基本設(shè)計優(yōu)先的布局調(diào)整算法和內(nèi)容優(yōu)先的布局調(diào)整算法時的布局計算處理的圖。
如圖24A所示,存在容器2401和容器2402,它們通過鏈接2403建立了關(guān)聯(lián)。另外,對容器2401設(shè)定了基本設(shè)計優(yōu)先,對容器2402設(shè)定了內(nèi)容優(yōu)先。各容器中存在從數(shù)據(jù)庫插入的數(shù)據(jù)(內(nèi)容),容器2401中插入了內(nèi)容2404,容器2402中插入了內(nèi)容2405。當前的容器2401的寬度尺寸為|a-b|=5,當前的容器2402的寬度尺寸為|e-h|=7。內(nèi)容2404的寬度尺寸為|a-d|=8,內(nèi)容2405的寬度尺寸為|g-h|=4。此外,還存在設(shè)計時的容器尺寸2406和2407。設(shè)計時的容器尺寸2406和2407均為6。
如圖24B所示,對容器2401所設(shè)定的布局調(diào)整算法是基本設(shè)計優(yōu)先。因此,在布局計算中使用當前的容器尺寸(容器2401)與設(shè)計尺寸(設(shè)計尺寸2406)的差(應(yīng)力T1)。另外,由于對容器2402設(shè)定了內(nèi)容優(yōu)先的布局調(diào)整算法,因此,使用當前的容器尺寸(容器2402)與內(nèi)容尺寸(內(nèi)容2405)的差(應(yīng)力T2)。通過使這些應(yīng)力減小,對當前的容器進行布局調(diào)整,從而使之接近計算用的基準尺寸。
在圖24B中,容器2401的應(yīng)力,為容器2401的設(shè)計尺寸(6)與當前的容器尺寸(5)的應(yīng)力T1=|b-c|=1。另外,容器2402的應(yīng)力,為當前的容器尺寸(7)與內(nèi)容尺寸(4)的應(yīng)力T2=|e-g|=3。由此,該鏈接組的應(yīng)力合計為T1+T2=|b-c|+|e-g|=4。
圖24C表示為了減小上述應(yīng)力而進行了標記移動的結(jié)果。這里,容器2401的尺寸變成|a-b|=7,容器2402的尺寸變成|e-h|=5。由此,在布局結(jié)果中,容器2401的應(yīng)力變成設(shè)計尺寸(6)與當前的容器尺寸(7)的應(yīng)力T1=|b-c|=1。此外,容器2402的應(yīng)力變成當前的容器尺寸(5)與內(nèi)容尺寸(4)的應(yīng)力T2=|e-g|=1。由此,該連接組的應(yīng)力合計為T1+T2=2。此時,沒有達到應(yīng)力為0的狀態(tài),但由于至此已不能再減小應(yīng)力,因此,結(jié)束布局計算。這樣,就使圖24C中的容器2401的尺寸(7)接近設(shè)計時的尺寸(6)、使圖24C中的容器2402的尺寸(5)接近所插入的內(nèi)容的尺寸(4)地完成了布局。
這樣,基本設(shè)計優(yōu)先的布局調(diào)整算法在與其它布局調(diào)整算法一起使用時會發(fā)揮作用。此外,能夠?qū)Ω魅萜鲬?yīng)用各種布局調(diào)整算法,從而能夠滿足用戶提出的各種布局需求。另外,在前面說明了基本設(shè)計優(yōu)先和內(nèi)容優(yōu)先的組合,當然也可以是其它組合。此外,當鏈接組中存在至少3個容器時,按照上述2個容器時的計算處理來進行處理即可。
接著,說明各布局算法的計算方法。對可變?nèi)萜髟O(shè)定該布局算法。由于固定容器不管應(yīng)用哪種布局算法都根本不會發(fā)生容器尺寸的變更,因此,即使應(yīng)用本申請的布局算法也不能執(zhí)行布局變更處理。固定容器的布局位置,在通過鏈接與可變?nèi)萜飨噙B接時有可能會發(fā)生變更。
用圖32說明第1布局算法。第1布局算法,因為以內(nèi)容尺寸為計算用的基準尺寸進行計算,因此,為“內(nèi)容優(yōu)先布局的算法”。在圖32中,3201~3203是設(shè)計時的基本容器。3205~3207是插入到各容器中的內(nèi)容。此外,3204是對各容器建立關(guān)聯(lián)的鏈接,設(shè)圖32的鏈接為固定鏈接。3208~3210表示應(yīng)用了第1布局算法(內(nèi)容優(yōu)先布局的算法)的結(jié)果。
3201~3203所示的容器A、B、C通過固定鏈接3204建立了關(guān)聯(lián)。各容器和鏈接的水平方向的尺寸如圖所示,在水平方向具有合計為57的尺寸。在該布局中容器A的左邊和容器C的右邊的位置被設(shè)定為固定。因此,水平方向的合計57的值是固定的。當在該布局中向各容器插入3205~3207所示的內(nèi)容A′、B′、C′時,產(chǎn)生應(yīng)力(布局的負荷)。
各內(nèi)容都具有實際尺寸。假設(shè)各內(nèi)容的實際尺寸如圖所示(A′為17、B′為13、C′為27)。在內(nèi)容是文本時,根據(jù)對作為數(shù)據(jù)的插入目的地的容器所設(shè)定的字體大小、縱橫尺寸的可變/固定、最大值/最小值等,確定計算用的基準尺寸。此外,在內(nèi)容是圖像時,該圖像數(shù)據(jù)的尺寸(縱橫像素數(shù))就是實際尺寸。為了在將該內(nèi)容插入到容器中之后以實際尺寸對所有內(nèi)容進行布局,需要使水平尺寸為17+5+13+7+27=69,但該布局的水平尺寸被固定為57。因此,69-57=12成為該布局的應(yīng)力。
接著,向各容器分配上述應(yīng)力。在本申請的布局算法中,進行計算以使該應(yīng)力在各容器中均勻,此時所采用的方法的一個例子是最小二乘法。首先,第1布局算法中各容器的應(yīng)力的計算方法為T=|布局后的尺寸-內(nèi)容尺寸| ...(1)由于應(yīng)力的值未必限于正值,因此,需要使用絕對值。
進而,使用式(1)對各容器所計算出的T的合計,為作為當前對象的集合的合計應(yīng)力。在此,用圖32進行說明。
當設(shè)各容器的計算后的尺寸為a、b、c時,為了適當分配由各容器產(chǎn)生的應(yīng)力,最后進行以下的計算處理t=(a-17)2+(b-13)2+(c-27)2...(2)其中,t是用于計算各容器的應(yīng)力的平均值的變量。當該變量t取最小值時,為各容器的應(yīng)力均勻的狀態(tài)。
圖32的布局,是單純的布局且沒有進行優(yōu)先度的設(shè)定,因此,即使不使用式(2),也能將變量t為最小值的條件表示為|a-17|=|b-13|=|c-27| ...(3)
進而,根據(jù)計算后的布局的尺寸,a+5+b+7+c=57 ...(4)由式(3)和式(4)可以求出各容器的計算后的尺寸。在此,計算出a=13,b=9,c=23。由此,計算內(nèi)容與計算結(jié)果的差,則各容器的差成4。即,各容器產(chǎn)生的應(yīng)力為4,計算后的各容器(3208~3210)A”、B”、C”的尺寸如圖所示。
但是,由于在圖32的情況下利用式(3)和式(4)進行了計算,因此,即使不使用由式(2)記述的最小二乘法也能計算布局結(jié)果。這是因為圖32的布局是單純的布局。即,取決于所生成的模板,有時最好使用式(2)的最小二乘法。使用圖33說明該例子。
在圖33那樣的布局中,說明使用了最小二乘法的計算方法及結(jié)果、和不使用上述最小二乘法時的計算方法及結(jié)果。另外,在圖33中,假設(shè)對容器A輸入尺寸為15的內(nèi)容,對容器B輸入尺寸為25的內(nèi)容,對容器C輸入尺寸為5的內(nèi)容。設(shè)當前的容器A和容器B的尺寸為10、容器C的尺寸為9。由于在以下的說明中以第1布局算法為對象,因此,計算用的基準尺寸為內(nèi)容尺寸。此外,設(shè)3302與3301的距離為23。另外,在圖33中,假定容器A的左邊和容器B的右邊的位置被設(shè)定為固定,因此,3302與3301的距離固定。設(shè)對各容器建立了關(guān)聯(lián)的固定鏈接3307的尺寸為1。
(1)不使用最小二乘法的情況在不使用最小二乘法時,判斷對各容器進行了布局計算之后的容器尺寸是否大于計算用的基準尺寸。在圖33的情況下,需要考慮各容器的布局位置和約束條件(3301和3302固定)以及內(nèi)容尺寸。由于容器A的左邊固定右邊可變,因此,可以向右變更尺寸并進行移動。進而,插入到容器A3303和容器B3304中的內(nèi)容尺寸的合計值(=35)大于上述約束條件(3301~3302的距離=23)。即,可以判斷為必須縮小插入到容器A和容器B中的各內(nèi)容數(shù)據(jù)。由此,可以判斷為布局計算后的容器A的尺寸a小于計算用的基準尺寸(=15)。同樣地,通過對容器B進行解析,可以判斷為容器B也小于計算用的基準尺寸(=25)。
另一方面,僅根據(jù)當前的布局位置和約束條件以及內(nèi)容尺寸,無法預(yù)測容器C的布局計算后的容器尺寸。由此,在圖33的布局中,在容器C的計算后的尺寸大于計算用的基準尺寸(容器C的尺寸=5)時、和小于計算用的基準尺寸的情況下,需要進行布局計算。
首先,假定容器C的計算后的尺寸大于計算用的基準尺寸的情況。此外,各容器的應(yīng)力的計算式,使用|布局結(jié)果-計算用的基準尺寸|。另外,分別設(shè)各容器的布局后的值為a、b、c。進而,在圖33中設(shè)3306為軸。由此,在圖33的布局的情況下,本布局引擎,根據(jù)以該軸3306為界限在位于左側(cè)的容器A和容器C中產(chǎn)生的應(yīng)力、與在位于右側(cè)的容器B中產(chǎn)生的應(yīng)力相等的時刻的信息,計算布局結(jié)果。當按照以上方法生成計算式時,變成以下那樣。
|a-15|+|c-5|=|b-25|(條件c>5) ...(5)在圖33的布局中,容器A的布局后的尺寸與1個固定鏈接的尺寸的和,等于容器C的布局后的尺寸與2個固定鏈接的尺寸和。并且,3302與3301的距離固定。按照上述要求產(chǎn)生以下的約束條件a+1=1+c+1 ...(6)1+a+1+b+1=23 ...(7)當按照上述條件對式(5)進行計算處理時,15-a+c-5=25-b15-a+(a-1)-5=25-(-a+20)a=4當使用計算結(jié)果和式(6)、式(7)時,計算得b=16,c=3。但是,式(5)的條件為c>5。即,計算結(jié)果c(=3)不滿足式(5)的條件,因此式(5)被破壞。
接下來,首先假定容器C的計算后的尺寸小于計算用的基準尺寸。此時也需要以該軸3306為界限使在左邊和右邊產(chǎn)生的應(yīng)力相等,因此可以使用式(5),但條件不同。其式子如式(8)所示。
|a-15|+|c-5|=|b-25|(條件c<5) ...(8)
在此,當按照式(6)、式(7)對式(8)進行計算處理時,15-a+5-c=25-b15-a+5-(a-1)=25-(-a+20)a=5.3...
進而,當使用計算結(jié)果和式(6)、式(7)時,計算出b=14.6...,c=4.3...。此時,由于滿足了式(8)的條件(c<5),因此,通過式(8)計算出的值成為布局結(jié)果。在本申請中,將舍去小數(shù)點第1位以后的值作為布局結(jié)果,但不限于此。
(2)使用最小二乘法的情況接下來,說明使用了最小二乘法的情況。在使用最小二乘法時也用圖33進行說明,且基本條件相同。首先,以最小二乘法生成用于進行布局計算的計算式。
t=(a-15)2+(b-25)2+(c-5)2...(9)進而,用式(6)、式(7)對式(9)進行變形,成為t=(a-15)2+[(-a+20)-25]2+[(a-1)-5]2...(10)本布局算法的目的在于使變量t為最小。式(10)是關(guān)于a的二次函數(shù)。斜率(inclination)為正的二次函數(shù)的最小值是頂點的值。即,相當于斜率為0的直線與式(10)相切的值。由此,設(shè)斜率為0,以a對式(10)進行微分,使下述計算式成立0=2(a-15)-2(-a-5)+2(a-6)求解該計算式得到a=5.3。將計算結(jié)果a代入(6)、式(7),計算出b=4.3,c=14.7。
即,使用最小二乘法計算出的布局結(jié)果和不使用最小二乘法計算出的布局結(jié)果相同。但是,在不使用最小二乘法時要分情況進行計算處理,因此,關(guān)于布局計算的處理負擔增加。而在使用了最小二乘法時無需分情況進行計算處理,因此,可以容易地計算布局結(jié)果。這樣,當對圖33那樣的復(fù)雜布局計算布局結(jié)果時,使用最小二乘法更有意義。此外,在圖33中,由于軸3306為1個,因此能夠分2種情況計算布局結(jié)果,但隨著軸的增加,區(qū)分情況的條件也增加,由此,最小二乘法的有效性增加。
此外,通過使用內(nèi)容優(yōu)先布局的算法執(zhí)行布局處理,以使各容器尺寸盡量接近內(nèi)容尺寸,因此,內(nèi)容優(yōu)先布局的算法在要使用內(nèi)容的實際尺寸進行布局處理時發(fā)揮作用。
接下來,使用圖34說明第2布局算法。其初始條件與圖32相同。3401~3403是設(shè)計時的容器。3405~3407是插入到各容器中的內(nèi)容。3404是對各容器建立關(guān)聯(lián)的鏈接,設(shè)其為固定鏈接。此外,3408~3410是通過將第2布局算法應(yīng)用于圖34而計算出的布局計算結(jié)果。此外,第2布局算法,因為考慮到基本容器尺寸和內(nèi)容尺寸,因此,設(shè)定為“容器·內(nèi)容優(yōu)先布局的算法”。
首先,第2布局算法中計算用的基準尺寸,是將各容器的尺寸和插入到各容器中的內(nèi)容尺寸的和除以2而得到的值。
由此,容器A的計算用的基準尺寸為“16”,容器B的計算用的基準尺寸為“11.5”,容器C的計算用的基準尺寸為“23.5”各容器的應(yīng)力的計算方法為T=|布局后的尺寸-[(內(nèi)容尺寸+基本容器尺寸)/2]|...(11)然后,使用式(11)對各容器所計算出的T的合計,為作為當前對象的集合的合計應(yīng)力。在此,用圖34進行說明。
當設(shè)各容器的計算后的尺寸為a、b、c時,為了適當分配由各容器產(chǎn)生的應(yīng)力,最好使用下式進行計算處理t=(a-16)2+(b-11.5)2+(c-23.5)2...(12)圖34的布局是單純的布局且未設(shè)定優(yōu)先度,因此,變量t最小的條件可以表示為|a-16|=|b-11.5|=|c-23.5| ...(13)進而,利用計算后的布局的尺寸,可以表示為a+5+b+7+c=57 ...(14)由式(13)和式(14)可以求出考慮到內(nèi)容和基本容器時的各容器的計算后的尺寸,計算出a=14,b=9.5,c=16.5。由此,計算后的各容器(3408~3410)A”、B”、C”的各尺寸如圖所示。
與第1布局算法相同在圖34那樣的布局的情況下,即使不使用最小二乘法也可以計算布局結(jié)果。但是,當對圖33那樣的布局應(yīng)用第2布局算法時,也最好使用最小二乘法。
使用最小二乘法的計算方法,在將[(內(nèi)容尺寸+基本容器尺寸)/2]的計算結(jié)果代入到計算用的基準尺寸之后,與內(nèi)容優(yōu)先布局的算法相同地進行處理即可,因此省略詳細說明。
通過使用該第2布局算法,能夠計算出考慮到基本容器尺寸和內(nèi)容尺寸這兩者的布局結(jié)果,因此,能夠反映模板制作者的意圖和內(nèi)容制作者的意圖。
在本申請中,除了上述第1布局算法、第2布局算法還有第3布局算法。該第3布局算法,在對通過鏈接與設(shè)定了第3布局算法的容器建立了關(guān)聯(lián)的容器設(shè)定了第1布局算法或第2布局算法時,執(zhí)行布局變更,以使插入到各容器中的內(nèi)容尺寸接近設(shè)計時的基本容器尺寸。因此,第3布局算法,為基本設(shè)計優(yōu)先布局算法。當對1個集合中包含的所有容器設(shè)定了第3布局算法時,進行尺寸變更,以使插入到各容器中的內(nèi)容尺寸與基本容器尺寸一致。即,即使不進行第1布局算法、第2布局算法那樣的計算處理,也可以計算出布局結(jié)果。但是,當在1個集合中設(shè)定了第3布局算法和其他布局算法時,必須進行計算處理。關(guān)于該計算處理使用圖33進行說明。
由于圖33的初始條件已經(jīng)說明過故而省略。在此,對容器A、容器B設(shè)定了第1布局算法,對容器C設(shè)定了第3布局算法。另外,使用最小二乘法時的有效性已經(jīng)在上面說明。由此,為了使該有效性發(fā)揮作用,在以下的說明中也圍繞使用最小二乘法的情況進行說明。
容器A、容器B的計算用的基準尺寸為插入到各容器中的內(nèi)容尺寸(容器A的計算用的基準尺寸為15,容器B的計算用的基準尺寸為25)。而由于對容器C設(shè)定了第3布局算法,因此,計算用的基準尺寸為基本容器尺寸(容器C的計算用的基準尺寸為9)。
結(jié)果,計算用于使各容器的應(yīng)力均勻地分配的變量t的式子如下所述。
t=(a-15)2+(b-25)2+(c-9)2...(15)向式(15)代入式(6)、式(7),則t=(a-15)2+[(-a+20)-25]2+[(a-1)-9]2...(16)根據(jù)與式(10)相同的理由,以a對式(16)進行微分,則0=2(a-15)-2(-a-5)+2(a-10)a=6.7...(26)進而,利用計算結(jié)果和式(6)、式(7),計算出b=13.3,c=5.7。
由此,通過在1個集合中,應(yīng)用例如內(nèi)容優(yōu)先布局的算法和基本設(shè)計優(yōu)先布局的算法,能夠?qū)γ總€容器計算布局結(jié)果,使其接近內(nèi)容尺寸或基本容器尺寸。即,能夠計算出按每個容器反映了模板制作者或內(nèi)容尺寸制作者的意圖的布局結(jié)果。
這樣,基本設(shè)計優(yōu)先布局的算法,通過在1個集合中組合使用其他布局算法來發(fā)揮其效果。
圖25A~圖25G是表示用于設(shè)定上述各種布局調(diào)整算法的用戶界面(UI)例的圖。
首先,按照用戶的預(yù)定操作,顯示用于指定應(yīng)用布局調(diào)整算法的范圍的對話框2500。根據(jù)在對話框2500中所選擇的內(nèi)容,顯示對話框2501~2541所對應(yīng)的對話框。
在圖25A中,當在圖25F的對話框2500中選擇了“文檔”時,為了選擇應(yīng)用于每個文檔的布局調(diào)整算法而顯示對話框2501。用戶能夠使用對話框2501選擇對文檔內(nèi)的容器的布局調(diào)整算法。在對話框2501上,存在內(nèi)容優(yōu)先的布局2502、容器·內(nèi)容優(yōu)先的布局2503、基本設(shè)計優(yōu)先2504的選項,用戶選擇任意的選項。在對話框2501上不存在圖25B~圖25E所示的“無指定”的選項,這是由于必須預(yù)先確定要作為文檔的默認值使用的布局調(diào)整算法。這一點如以下說明的那樣,是由應(yīng)用策略(policy)決定的,在此,為了簡便將無指定的選項排除在選擇項之外。在對話框2501中選擇出的布局調(diào)整算法對文檔整體產(chǎn)生影響,但在實際進行布局計算時是否應(yīng)用于文檔內(nèi)的所有容器,由應(yīng)用策略來決定。關(guān)于“應(yīng)用策略”,將在后述的“應(yīng)用策略順序”中詳細說明。
在圖25B中,顯示在對話框2500中選擇了“頁面”時、用于指定要應(yīng)用算法的頁面或頁面的范圍的頁面設(shè)定畫面。當通過該頁面設(shè)定畫面設(shè)定頁面和頁面范圍時,為了選擇應(yīng)用于每個頁面的布局調(diào)整算法而顯示對話框2511。
用戶可以使用對話框2511對頁面內(nèi)的容器選擇布局調(diào)整算法。
在對話框2511上,存在無指定2512、內(nèi)容優(yōu)先的布局2513、容器·內(nèi)容優(yōu)先的布局2514、基本設(shè)計優(yōu)先2515的選項,用戶能夠選擇任意的選項。
在對話框2511中選擇出的布局調(diào)整算法,對打開該設(shè)定對話框時所指定的頁面產(chǎn)生影響。在圖25B中選擇了無指定。
在圖25C中,顯示在對話框2500中選擇了“區(qū)域”時、用于選擇應(yīng)用于每個區(qū)域的布局調(diào)整算法的對話框2521。另外,當對區(qū)域選擇布局調(diào)整算法時,必須通過對話框2500,在選擇了區(qū)域之后所顯示的文檔模板上指定區(qū)域。
用戶能夠用對話框2521對區(qū)域內(nèi)的容器選擇布局調(diào)整算法。在對話框2521上,存在無指定2522、內(nèi)容優(yōu)先的布局2523、容器·內(nèi)容優(yōu)先的布局2524、基本設(shè)計優(yōu)先2525的選項,用戶能夠選擇任意的選項。
在對話框2521中選擇出的布局調(diào)整算法,對打開該設(shè)定對話框時所指定的區(qū)域內(nèi)的容器產(chǎn)生影響。在圖25C中選擇了無指定。在實際進行布局計算時是否將該對話框2521的設(shè)定應(yīng)用于區(qū)域內(nèi)的所有容器,由后述的應(yīng)用策略來決定。
在圖25D中,顯示在對話框2500中選擇了“記錄”時、用于選擇記錄的記錄選擇畫面。為了選擇應(yīng)用于在該記錄選擇畫面中所指定的每個記錄的布局調(diào)整算法而顯示對話框2531。用戶能夠用對話框2531對記錄內(nèi)的容器選擇布局調(diào)整算法。在對話框2531上,存在無指定2532、內(nèi)容優(yōu)先的布局2533、容器·內(nèi)容優(yōu)先的布局2534、基本設(shè)計優(yōu)先2535的選項,用戶能夠選擇任意的選項。在對話框2531中選擇出的布局調(diào)整算法,對打開該設(shè)定對話框時所指定的記錄內(nèi)的所有容器產(chǎn)生影響。
在圖25D中選擇了無指定。在實際進行布局計算時是否應(yīng)用于與記錄相關(guān)的所有容器,由后述的應(yīng)用策略來決定。
在圖25E中,顯示在對話框2500中選擇了“容器”時、用于選擇容器的容器選擇畫面。為了選擇應(yīng)用于在該容器選擇畫面中選擇出的每個容器的布局調(diào)整算法而顯示對話框2541。用戶能夠用對話框2541對任意的容器選擇布局調(diào)整算法。在對話框2541上,存在無指定2542、內(nèi)容優(yōu)先的布局2543、容器·內(nèi)容優(yōu)先的布局2544、基本設(shè)計優(yōu)先2545的選項,用戶能夠選擇任意的選項。在此選擇出的布局調(diào)整算法,對打開設(shè)定對話框時所指定的容器產(chǎn)生影響。
在圖25E中選擇了無指定。在實際進行布局計算時是否將所指定的布局調(diào)整算法應(yīng)用于該容器,由后述的應(yīng)用策略來決定。當在對話框2500中選擇了“容器組”時,顯示用于選擇容器組的容器組選擇畫面。為了選擇應(yīng)用于在該容器組選擇畫面中選擇出的每個容器組的布局調(diào)整算法而顯示圖25G的對話框2551。由于關(guān)于對話框2551的選擇處理等與上述相同,故而省略詳細的說明。此外,容器組是指本申請中的通過鏈接建立了關(guān)聯(lián)的集合。
如上所述,在圖25A~圖25E中所指定的布局調(diào)整算法,作為表示在文檔、頁面、區(qū)域、記錄、容器等各范圍內(nèi)設(shè)定的布局調(diào)整算法的布局調(diào)整算法信息,保存在存儲器136、存儲設(shè)備139等中。由此,布局編輯應(yīng)用程序,能夠通過參照存儲器136或存儲設(shè)備139執(zhí)行流程圖19的判斷處理。
當利用以上那樣的圖25A~圖25G的UI設(shè)定布局調(diào)整算法時,以圖30所示的分層結(jié)構(gòu)設(shè)定好的布局調(diào)整算法,被存儲在存儲器136或存儲設(shè)備139中。
如在應(yīng)用布局調(diào)整算法的解析流程(圖19)中說明的那樣,應(yīng)用策略按照文檔的設(shè)定、頁面的設(shè)定、記錄的設(shè)定、區(qū)域的設(shè)定、容器的設(shè)定的順序進行應(yīng)用。即,應(yīng)用布局調(diào)整算法的單位越小,優(yōu)先順序被設(shè)定得越高,越優(yōu)先用于布局計算。此外,就圖30的分層結(jié)構(gòu)而言,層級越低設(shè)定內(nèi)容的優(yōu)先順序越高,越優(yōu)先用于布局計算。
圖26表示在某文檔中、利用按各單位設(shè)定好的布局調(diào)整算法、最終各容器的設(shè)定將變成什么樣。
該設(shè)定內(nèi)容是由圖30的分層結(jié)構(gòu)得到的。如圖30所示,在該文檔中設(shè)定了“內(nèi)容優(yōu)先”。由此,對該文檔內(nèi)的所有容器,將“內(nèi)容優(yōu)先”的布局調(diào)整算法設(shè)定為默認值。
接著,在頁面單位中,可以清楚對第1頁面2611設(shè)定“容器·內(nèi)容優(yōu)先”,對第2頁面2621和第3頁面2631設(shè)定“內(nèi)容優(yōu)先”。在第1頁面2611中沒有用比它還小的單位進行的布局計算設(shè)定,因此,第1頁面內(nèi)的所有容器(容器2612、容器2613、容器2614)的應(yīng)用布局調(diào)整算法為“內(nèi)容優(yōu)先”。
在第2頁面2621內(nèi),對多個記錄進行了布局調(diào)整算法的設(shè)定。在第2頁面內(nèi),采用了向1個頁面內(nèi)插入多個記錄的內(nèi)容數(shù)據(jù)的多記錄功能。即,向第2頁面的鏈接組2622插入第1記錄的內(nèi)容數(shù)據(jù),向鏈接組2623插入第2記錄的內(nèi)容數(shù)據(jù),向鏈接組2624插入第3記錄的內(nèi)容數(shù)據(jù)。
然后,對插入了第1記錄的鏈接組2622和插入了第3記錄的鏈接組2624設(shè)定“內(nèi)容優(yōu)先”,對鏈接組2623設(shè)定“容器·內(nèi)容優(yōu)先”。
在第2頁面2621內(nèi)不存在比記錄單位更小的單位的設(shè)定。因此,對鏈接組2623內(nèi)的所有容器應(yīng)用“容器·內(nèi)容優(yōu)先”,而對鏈接組2622、2624內(nèi)的所有容器應(yīng)用“內(nèi)容優(yōu)先”。
接著,在第3頁面2631上存在用戶所指定的選擇區(qū)域2637,并對該選擇區(qū)域2637指定了“基本設(shè)計優(yōu)先”。進而,對選擇區(qū)域內(nèi)的容器2635直接指定了與選擇區(qū)域2637不同的布局調(diào)整算法(“內(nèi)容優(yōu)先”)。由此,對選擇區(qū)域2637內(nèi)的容器2634、容器2636應(yīng)用“基本設(shè)計優(yōu)先”,對容器2635應(yīng)用“內(nèi)容優(yōu)先”。此外,對第3頁面2631中存在的選擇區(qū)域2637以外的容器2632、容器2633,應(yīng)用對該頁面所設(shè)定的“內(nèi)容優(yōu)先(2639)”。
通過以上說明可以清楚,優(yōu)先應(yīng)用在圖30中設(shè)定在下層的布局調(diào)整算法。
圖27是表示用于設(shè)定布局調(diào)整算法的另一用戶界面例的圖。例如,明確表示了以下的布局調(diào)整算法根據(jù)圖30所示的算法信息取得對各容器設(shè)定好的布局調(diào)整算法,如圖27所示通過使用多種網(wǎng)格來對各容器進行設(shè)定。利用這樣的UI,對各容器所設(shè)定的布局調(diào)整算法將一目了然,此外,能夠容易地對各容器指定布局調(diào)整算法。
在具有標題欄2802和工具欄2803的典型的窗口2801上,顯示位于主窗口2804的頁面2805和在其上布局好的容器。此外,還顯示了頁面內(nèi)的邊緣區(qū)域2806的線。而且,存在托板2811,能夠用托板2811指定主窗口上的容器的布局調(diào)整算法。例如,當要對容器B應(yīng)用內(nèi)容優(yōu)先的布局調(diào)整算法時,進行將標記2812拖拽到容器B內(nèi)并放下的作。同樣地,在容器·內(nèi)容優(yōu)先的布局調(diào)整算法的情況下使用標記2814,在基本設(shè)計優(yōu)先的布局調(diào)整算法的情況下使用標記2818。在各容器的顯示中,按照設(shè)定好的布局調(diào)整算法的種類使容器的網(wǎng)格種類不同,因此,一眼就能判斷各容器使用哪種布局調(diào)整算法。
當然,還可以指定區(qū)域后再設(shè)定布局調(diào)整算法。例如,通過鼠標作在UI上描繪僅將容器C、D、E包括在內(nèi)的矩形,從而容器C、D、E變?yōu)檫x擇狀態(tài)。然后,應(yīng)于所希望的布局調(diào)整算法的標記(2812、2814、2818)拖拽變?yōu)檫x擇狀態(tài)的多個容器中的任意一個中并放下。通過這樣的作能夠統(tǒng)一地對選擇區(qū)域內(nèi)的所有容器設(shè)定布局調(diào)整算法。另外,通過區(qū)域的指定得到的圖30的分層結(jié)構(gòu)的區(qū)域的部分,按照變更后的結(jié)構(gòu)變更。此外,如果對屬于某個區(qū)域的容器,進行布局調(diào)整算法指定,或者進行使屬于某個區(qū)域的容器屬于另一區(qū)域的區(qū)域指定,則該容器所屬的區(qū)域的捆綁被解除。
此外,在圖27的UI中,指定了內(nèi)容優(yōu)先的布局調(diào)整算法的容器,列表顯示在列表框2813內(nèi)。此外,指定了容器·內(nèi)容優(yōu)先的布局調(diào)整算法的容器,列表顯示在列表框2817內(nèi),指定了基本設(shè)計優(yōu)先的布局調(diào)整算法的容器,列表顯示在列表框2819內(nèi)。此外,在容器·內(nèi)容優(yōu)先的布局調(diào)整算法中,存在輸入設(shè)計影響力(power)2815和內(nèi)容影響力2816的編輯框,對此將在后述的“算法優(yōu)先度”中詳細說明。用戶能夠一邊觀察這樣的畫面,一邊簡便地對各容器確定布局調(diào)整算法。
圖28是表示用于顯示圖27的UI的處理的流程圖。首先,在步驟S2701中,布局編輯應(yīng)用程序121,識別來自用戶的布局調(diào)整算法設(shè)定畫面的顯示指示,顯示圖27所示的布局調(diào)整算法設(shè)定畫面。
接著,布局編輯應(yīng)用程序121,檢索對各容器所設(shè)定的布局調(diào)整算法(S2702)。具體而言,圖30那樣的分層信息保存在存儲器136等中,因此,布局編輯應(yīng)用程序121可以通過參照存儲器136實現(xiàn)S2702的處理。
在步驟S2703中,布局編輯應(yīng)用程序121,根據(jù)對各容器所設(shè)定的布局調(diào)整算法,顯示各容器的網(wǎng)格、要填寫的列表2813、2817、2819。這樣,完成圖27所示的界面顯示。此外,用圖27的UI對每個容器所設(shè)定的布局調(diào)整算法的信息,作為算法信息保存在存儲器136、存儲設(shè)備139等中。
容器·內(nèi)容優(yōu)先的布局調(diào)整算法,除了可以通過逐漸減小當前的容器尺寸與內(nèi)容尺寸的差來導(dǎo)出布局結(jié)果外,還可以通過逐漸減小當前的容器尺寸與設(shè)計時的容器尺寸(設(shè)計尺寸)的應(yīng)力來導(dǎo)出布局結(jié)果。由此,通過對各應(yīng)力設(shè)定權(quán)重值,能夠確定更接近內(nèi)容尺寸和設(shè)計尺寸中的哪一個地進行布局。
在圖29A~圖29D中,說明在對容器2901和容器2902應(yīng)用容器·內(nèi)容優(yōu)先的布局調(diào)整算法時,如何通過設(shè)定優(yōu)先度來進行布局計算。
如圖29A所示,存在容器2901和容器2902,通過鏈接2903對它們建立了關(guān)聯(lián)。各容器中存在從數(shù)據(jù)庫插入的數(shù)據(jù)(內(nèi)容),容器2901中插入了內(nèi)容2904,容器2902中插入了內(nèi)容2905。
當前的容器2901的寬度尺寸為|a-b|=7,當前的容器2902的寬度尺寸為|e-h|=6。內(nèi)容2904的寬度尺寸為|a-d|=8,內(nèi)容2905的寬度尺寸為|g-h|=5。此外,還存在設(shè)計時的容器尺寸2906和2907。
對容器2901和容器2902設(shè)定了“容器·內(nèi)容優(yōu)先”。由此,在布局計算中使用當前的容器尺寸(容器2901)與內(nèi)容尺寸(內(nèi)容2904)的差(應(yīng)力T1),以及當前的容器尺寸(容器2901)與設(shè)計尺寸(設(shè)計尺寸2906)的差(應(yīng)力T3)。
此外,對容器2902設(shè)定了“容器·內(nèi)容優(yōu)先”,因此,使用當前的容器尺寸(容器2902)與內(nèi)容尺寸(內(nèi)容2905)的差(應(yīng)力T2),以及當前的容器尺寸(容器2902)與設(shè)計尺寸(設(shè)計尺寸2907)的差(應(yīng)力T4)。通過減小這些應(yīng)力的合計,對當前的容器進行布局調(diào)整,來使之接近計算用的基準尺寸。
圖29B表示出進行應(yīng)力計算的狀態(tài)。在容器2901的應(yīng)力中,存在當前的容器尺寸(7)與內(nèi)容尺寸(8)的應(yīng)力T1=|b-d|=1,以及當前的容器尺寸(7)與設(shè)計尺寸(5)的應(yīng)力T3=|b-c|=2。
此外,在容器2902中,存在當前的容器尺寸(6)與內(nèi)容尺寸(5)的應(yīng)力T2=|e-g|=1,以及設(shè)計尺寸(8)與當前的容器尺寸(6)的應(yīng)力T4=|f-e|=2。
在此,如圖29D所示,在屬性2931和屬性2934中,能夠設(shè)定分別對容器A和容器B所設(shè)定的容器·內(nèi)容優(yōu)先的布局調(diào)整算法中的、設(shè)計影響力和內(nèi)容影響力。在此所說的影響力具有與權(quán)重值相同的意思,是使之接近某尺寸的力。指的是例如使之接近設(shè)計尺寸的力,或者使之接近內(nèi)容尺寸的力。在此設(shè)通常的影響力(權(quán)重值)為100%,如果值比100%大則影響力變強,即使之接近該尺寸的力增加。相反,如果值比100%小則影響力變?nèi)?,即使之接近該尺寸的力減弱。在布局計算的過程中,通過使影響力與應(yīng)力相乘來實現(xiàn)布局計算。即,以該影響力的值(權(quán)重值)為基礎(chǔ)使應(yīng)力的比重發(fā)生變化,從而執(zhí)行容器的布局調(diào)整。
在容器A中將設(shè)計影響力2932設(shè)定為100%,將內(nèi)容影響力2933設(shè)定為50%,在容器B中同樣將設(shè)計影響力2935設(shè)定為100%,將內(nèi)容影響力2936設(shè)定為50%。即,在圖29A~圖29D的連接組中,使容器尺寸接近生成基本布局時的設(shè)計尺寸的力,有使之接近內(nèi)容尺寸的力2倍強。
由此,該鏈接組的應(yīng)力的合計為1/2×(T1+T2)+T3+T4=1/2×(|b-d|+|e-g|)+|b-c|+|f-e|=1/2×2+2+2=5。
圖29C表示為了減小這樣計算出的應(yīng)力而進行了標記的移動的結(jié)果。在圖29C中,容器2901的尺寸變成|a-b|=6,容器2902的尺寸變成|e-h|=7。由此,布局后的應(yīng)力變成1/2×(T1+T2)+T3+T4=1/2×(|b-d|+|e-g|)+|b-c|+|f-e|=1/2×4+1+1=4。此時,無法達到應(yīng)力為0的狀態(tài),但由于已經(jīng)不能再減小應(yīng)力了,因此結(jié)束布局計算。
如上所述,在上述例子中,以比內(nèi)容尺寸更接近設(shè)計尺寸的形狀對容器A、容器B進行了布局。這樣就能夠?qū)Σ季终{(diào)整算法應(yīng)用優(yōu)先度(也稱作影響力或權(quán)重值),從而能夠應(yīng)對用戶所提出的多種布局需求。
圖35表示以上說明的自動布局系統(tǒng)(布局編輯應(yīng)用程序121)的功能結(jié)構(gòu)。在圖35中,布局編輯應(yīng)用程序121,執(zhí)行按照在數(shù)據(jù)區(qū)域所描繪的內(nèi)容數(shù)據(jù)自動變更具有該數(shù)據(jù)區(qū)域的模板的布局的布局處理。為了執(zhí)行該布局處理,取得單元,從保存要用于數(shù)據(jù)區(qū)域的多個布局調(diào)整算法的保存單元中,取得要用于數(shù)據(jù)區(qū)域的布局調(diào)整算法。布局調(diào)整單元,在向數(shù)據(jù)區(qū)域插入內(nèi)容數(shù)據(jù)時,按照由取得單元所取得的布局調(diào)整算法,調(diào)整數(shù)據(jù)區(qū)域的布局。然后,輸出單元,在由布局調(diào)整單元調(diào)整后的數(shù)據(jù)區(qū)域,對內(nèi)容數(shù)據(jù)進行布局并輸出。
如以上說明的那樣,根據(jù)上述實施例,在自動布局系統(tǒng)中,可以對各容器設(shè)定各種布局計算方法的布局調(diào)整算法。因此,即使在對多個容器建立了關(guān)聯(lián),一邊相互施加影響一邊使布局變化的情況下,也可以通過對各容器進行基于用戶所希望的布局調(diào)整算法的尺寸計算,來生成用戶想要的各種布局。進而,由于能夠可視地表示設(shè)定好的布局調(diào)整算法,因此,用戶將容易預(yù)測自動布局后的布局結(jié)果。
此外,在上述實施例中,多種計算方法算法的每一個,對數(shù)據(jù)區(qū)域進行布局調(diào)整以使數(shù)據(jù)區(qū)域與目標形狀的差異變小,差異的計算過程因各布局調(diào)整算法而不同。由此,可以靈活進行反映了用戶意圖的布局調(diào)整。此外,即使在對建立了關(guān)聯(lián)的多個容器進行布局調(diào)整時,也可以對容器進行布局調(diào)整,以使應(yīng)用各布局調(diào)整算法而得到的差異(應(yīng)力)的合計變小。因此,容易應(yīng)用于多個容器間的協(xié)商(negotiation)處理。
另外,本發(fā)明當然還可以通過以下方式實現(xiàn),即向系統(tǒng)或裝置提供存儲有實現(xiàn)上述實施例的功能的軟件的程序代碼的存儲介質(zhì)(或記錄介質(zhì)),該系統(tǒng)或裝置的計算機(或CPU、MPU)讀取并執(zhí)行存儲在存儲介質(zhì)中的程序代碼。
這時,從存儲介質(zhì)讀取的程序代碼本身,實現(xiàn)上述實施例的功能,存儲有該程序代碼的存儲介質(zhì)構(gòu)成本發(fā)明。此外,不僅有通過計算機執(zhí)行所讀取的程序代碼實現(xiàn)上述實施例的功能的情況,當然還包括以下情況,即按照該程序代碼的指示,在計算機上運行的作系統(tǒng)(0S)等進行實際處理的一部分或全部,通過該處理實現(xiàn)上述實施例的功能。
當然還包括以下情況在將從存儲介質(zhì)讀出的程序代碼寫入插入計算機的功能擴展卡或連接在計算機上的功能擴展單元所具備的存儲介質(zhì)后,按照該程序代碼的指示,該功能擴展卡或功能擴展單元所具備的CPU等進行實際處理的一部分或全部,通過該處理實現(xiàn)上述實施例的功能。
另外,本發(fā)明當然還可以通過以下方式實現(xiàn),即通過網(wǎng)絡(luò)分發(fā)實現(xiàn)上述實施例的功能的軟件的程序代碼,從而將其存儲在系統(tǒng)或裝置的硬盤、存儲器等存儲裝置,或CD-RW、CD-R等存儲介質(zhì)中,該系統(tǒng)或裝置的計算機(或CPU、MPU),讀取并執(zhí)行存儲在該存儲裝置或該存儲介質(zhì)中的程序代碼。
根據(jù)本發(fā)明,從多個布局調(diào)整算法中選用要應(yīng)用的布局調(diào)整算法,調(diào)整數(shù)據(jù)區(qū)域的內(nèi)容數(shù)據(jù),因此,即使在處理多種內(nèi)容數(shù)據(jù)的可變打印中,也可以取得用戶所希望的輸出結(jié)果。
在不脫離本發(fā)明的精神和范圍的情況下,可以對本發(fā)明進行種種變更,本發(fā)明并不限于上述特殊的實施例,而由所附的權(quán)利要求來限定。
權(quán)利要求
1.一種布局處理方法,根據(jù)在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù),動態(tài)地變更具有該數(shù)據(jù)區(qū)域的模板的布局,所述布局處理方法包括選擇步驟,從多個布局調(diào)整算法中,選擇要應(yīng)用于上述數(shù)據(jù)區(qū)域的布局調(diào)整算法;布局調(diào)整步驟,在向數(shù)據(jù)區(qū)域插入內(nèi)容數(shù)據(jù)時,按照由上述選擇步驟選擇出的布局調(diào)整算法,調(diào)整上述數(shù)據(jù)區(qū)域的布局;以及輸出步驟,根據(jù)由上述布局調(diào)整步驟調(diào)整后的數(shù)據(jù)區(qū)域,布置上述內(nèi)容數(shù)據(jù)并輸出。
2.根據(jù)權(quán)利要求1所述的布局處理方法,其特征在于上述多個布局調(diào)整算法的每一個用于調(diào)整數(shù)據(jù)區(qū)域的布局,使得數(shù)據(jù)區(qū)域與目標形狀的差異變小,上述差異的計算過程,按每個布局調(diào)整算法而不同。
3.根據(jù)權(quán)利要求2所述的布局處理方法,其特征在于上述布局調(diào)整步驟,在調(diào)整通過鏈接建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域的每一個的布局時,對上述建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域,分別按照由上述選擇步驟選擇出的布局調(diào)整算法計算上述差異,并調(diào)整該建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域的每一個的布局,使得這些計算出的差異的合計為最小。
4.根據(jù)權(quán)利要求2所述的布局處理方法,其特征在于上述多個布局調(diào)整算法,包括以下算法中的至少2個第1算法,將在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù)的內(nèi)容形狀,作為上述目標形狀,計算上述差異;第2算法,將作為設(shè)計上述布局時的數(shù)據(jù)區(qū)域的形狀的布局形狀,作為上述目標形狀,計算上述差異;以及第3算法,將作為數(shù)據(jù)區(qū)域與上述內(nèi)容形狀的差異的第1差異、和作為數(shù)據(jù)區(qū)域與上述布局形狀的差異的第2差異的合計,作為上述數(shù)據(jù)區(qū)域與目標形狀的差異。
5.根據(jù)權(quán)利要求4所述的布局處理方法,其特征在于上述布局調(diào)整步驟,在采用上述第3算法調(diào)整數(shù)據(jù)區(qū)域的布局時,將作為上述數(shù)據(jù)區(qū)域與上述內(nèi)容形狀的差異的第1差異、和作為該數(shù)據(jù)區(qū)域與上述布局形狀的差異的第2差異的合計,作為與目標形狀的差異。
6.根據(jù)權(quán)利要求5所述的布局處理方法,其特征在于上述布局調(diào)整步驟,根據(jù)分別對上述第1差異和上述第2差異設(shè)定的權(quán)重值,調(diào)整數(shù)據(jù)區(qū)域的布局。
7.根據(jù)權(quán)利要求1所述的布局處理方法,其特征在于還包括提示步驟,顯示用于對數(shù)據(jù)區(qū)域設(shè)定布局調(diào)整算法的用戶界面,將按照通過上述提示步驟所提示的上述用戶界面的輸入,對上述數(shù)據(jù)區(qū)域所設(shè)定的布局調(diào)整算法,保存在保存裝置中。
8.根據(jù)權(quán)利要求7所述的布局處理方法,其特征在于上述用戶界面,能夠以預(yù)定范圍為單位指定布局調(diào)整算法,以各預(yù)定范圍為單位設(shè)定上述布局調(diào)整算法,上述預(yù)定范圍包括文檔、構(gòu)成該文檔的頁面、包含在該頁面內(nèi)的區(qū)域、數(shù)據(jù)區(qū)域。
9.根據(jù)權(quán)利要求8所述的布局處理方法,其特征在于上述選擇步驟,按照每個上述預(yù)定范圍的優(yōu)先順序,選擇要應(yīng)用于上述數(shù)據(jù)區(qū)域的布局編輯算法。
10.根據(jù)權(quán)利要求7所述的布局處理方法,其特征在于上述用戶界面具有以下功能顯示頁面上的數(shù)據(jù)區(qū)域的布局狀態(tài),使用戶對從所顯示的數(shù)據(jù)區(qū)域中指定的數(shù)據(jù)區(qū)域設(shè)定所希望的布局調(diào)整算法。
11.根據(jù)權(quán)利要求7所述的布局處理方法,其特征在于上述用戶界面,向用戶可視地表示對數(shù)據(jù)區(qū)域所設(shè)定的布局編輯算法。
12.根據(jù)權(quán)利要求1所述的布局處理方法,其特征在于還包括設(shè)定步驟,能對每個數(shù)據(jù)區(qū)域設(shè)定任意的布局調(diào)整算法。
13.一種信息處理裝置,根據(jù)在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù),動態(tài)地變更具有該數(shù)據(jù)區(qū)域的模板的布局,所述信息處理裝置包括取得裝置,從保存要應(yīng)用于上述數(shù)據(jù)區(qū)域的多個布局調(diào)整算法的保存裝置中,取得要應(yīng)用于上述數(shù)據(jù)區(qū)域的布局調(diào)整算法;布局調(diào)整裝置,在向數(shù)據(jù)區(qū)域插入內(nèi)容數(shù)據(jù)時,按照由上述取得裝置所取得的布局調(diào)整算法,調(diào)整上述數(shù)據(jù)區(qū)域的布局;以及輸出裝置,根據(jù)由上述布局調(diào)整裝置調(diào)整后的數(shù)據(jù)區(qū)域,布置上述內(nèi)容數(shù)據(jù)并輸出。
14.根據(jù)權(quán)利要求13所述的信息處理裝置,其特征在于上述多個布局調(diào)整算法的每一個用于調(diào)整數(shù)據(jù)區(qū)域的布局,使得數(shù)據(jù)區(qū)域與目標形狀的差異變小,上述差異的計算過程,按每個布局調(diào)整算法而不同。
15.根據(jù)權(quán)利要求14所述的信息處理裝置,其特征在于上述布局調(diào)整裝置,在調(diào)整通過鏈接建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域的每一個的布局時,對上述建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域,分別按照由上述取得裝置所取得的布局調(diào)整算法計算上述差異,并調(diào)整該建立了關(guān)聯(lián)的多個數(shù)據(jù)區(qū)域的每一個的布局,使得這些計算出的差異的合計為最小。
16.根據(jù)權(quán)利要求14所述的信息處理裝置,其特征在于上述多個布局調(diào)整算法,包括以下算法中的至少2個第1算法,將在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù)的內(nèi)容形狀,作為上述目標形狀計算上述差異;第2算法,將作為設(shè)計上述布局時的數(shù)據(jù)區(qū)域的形狀的布局形狀,作為上述目標形狀,計算上述差異;以及第3算法,將作為數(shù)據(jù)區(qū)域與上述內(nèi)容形狀的差異的第1差異、和作為數(shù)據(jù)區(qū)域與上述布局形狀的差異的第2差異的合計,作為上述數(shù)據(jù)區(qū)域與目標形狀的差異。
17.根據(jù)權(quán)利要求16所述的信息處理裝置,其特征在于上述布局調(diào)整裝置,在采用上述第3算法調(diào)整數(shù)據(jù)區(qū)域的布局時,將作為上述數(shù)據(jù)區(qū)域與上述內(nèi)容形狀的差異的第1差異、和作為該數(shù)據(jù)區(qū)域與上述布局形狀的差異的第2差異的合計,作為與目標形狀的差異。
18.根據(jù)權(quán)利要求17所述的信息處理裝置,其特征在于上述布局調(diào)整裝置,根據(jù)分別對上述第1差異和上述第2差異設(shè)定的權(quán)重值,調(diào)整數(shù)據(jù)區(qū)域的布局。
19.根據(jù)權(quán)利要求13所述的信息處理裝置,其特征在于還包括提示裝置,提示用于對數(shù)據(jù)區(qū)域設(shè)定布局調(diào)整算法的用戶界面,將按照通過上述提示裝置所提示的上述用戶界面的輸入,對上述數(shù)據(jù)區(qū)域所設(shè)定的布局調(diào)整算法,保存在上述保存裝置中。
20.根據(jù)權(quán)利要求19所述的信息處理裝置,其特征在于上述用戶界面,能夠以預(yù)定范圍為單位指定布局調(diào)整算法,以各預(yù)定范圍為單位設(shè)定上述布局調(diào)整算法,上述預(yù)定范圍包括文檔、構(gòu)成該文檔的頁面、包含在該頁面內(nèi)的區(qū)域、數(shù)據(jù)區(qū)域。
21.根據(jù)權(quán)利要求20所述的信息處理裝置,其特征在于上述取得裝置,按照每個上述預(yù)定區(qū)域的優(yōu)先順序,取得要應(yīng)用于上述數(shù)據(jù)區(qū)域的布局編輯算法。
22.根據(jù)權(quán)利要求19所述的信息處理裝置,其特征在于上述用戶界面具有以下功能顯示頁面上的數(shù)據(jù)區(qū)域的布局狀態(tài),使用戶對從所顯示的數(shù)據(jù)區(qū)域中指定的數(shù)據(jù)區(qū)域設(shè)定所希望的布局調(diào)整算法。
23.根據(jù)權(quán)利要求19所述的信息處理裝置,其特征在于上述用戶界面,向用戶可視地表示對數(shù)據(jù)區(qū)域所設(shè)定的布局編輯算法。
24.根據(jù)權(quán)利要求13所述的信息處理裝置,其特征在于還包括設(shè)定裝置,能對每個數(shù)據(jù)區(qū)域設(shè)定任意的布局調(diào)整算法。
全文摘要
本發(fā)明提供一種布局處理方法及信息處理裝置,其中,該布局處理方法根據(jù)在數(shù)據(jù)區(qū)域中描繪的內(nèi)容數(shù)據(jù)動態(tài)地變更具有該數(shù)據(jù)區(qū)域的模板的布局,從保存要應(yīng)用于數(shù)據(jù)區(qū)域的多個布局調(diào)整算法的保存裝置中,選取要應(yīng)用于數(shù)據(jù)區(qū)域的布局調(diào)整算法;在向數(shù)據(jù)區(qū)域插入內(nèi)容數(shù)據(jù)時,按照所選取的布局調(diào)整算法調(diào)整數(shù)據(jù)區(qū)域的布局。然后,在調(diào)整后的數(shù)據(jù)區(qū)域中,布置內(nèi)容數(shù)據(jù)并輸出。
文檔編號G06F3/12GK1828518SQ20061005835
公開日2006年9月6日 申請日期2006年3月3日 優(yōu)先權(quán)日2005年3月4日
發(fā)明者牧野順 申請人:佳能株式會社