CN100389384C - 布局处理方法及信息处理装置 - Google Patents
布局处理方法及信息处理装置 Download PDFInfo
- Publication number
- CN100389384C CN100389384C CNB2006100583528A CN200610058352A CN100389384C CN 100389384 C CN100389384 C CN 100389384C CN B2006100583528 A CNB2006100583528 A CN B2006100583528A CN 200610058352 A CN200610058352 A CN 200610058352A CN 100389384 C CN100389384 C CN 100389384C
- Authority
- CN
- China
- Prior art keywords
- layout
- container
- mentioned
- data area
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种布局处理方法及信息处理装置,其中,该布局处理方法根据在数据区域中描绘的内容数据动态地变更具有该数据区域的模板的布局,从保存要应用于数据区域的多个布局调整算法的保存装置中,选取要应用于数据区域的布局调整算法;在向数据区域插入内容数据时,按照所选取的布局调整算法调整数据区域的布局。然后,在调整后的数据区域中,布置内容数据并输出。
Description
技术领域
本发明涉及一种用于生成、编辑并打印由文本、图像构成的文档的技术,更详细地说,涉及一种适用于可变数据(Variable Date)文档的生成、编辑及打印的技术。
背景技术
近年来,由于商品的多样化、商品寿命变短,随着互联网使用的普及,对消费者的客户服务增强等原因,CRM(Customer RelationshipManagement:客户关系管理)、一对一(One-to-One)营销的必要性备受关注。这些方法,对于提高客户满意程度,开发、稳定客户,非常有效。
一对一营销是数据库营销的一种,把客户的年龄、性别、兴趣、爱好、购买经历等个人属性信息做成数据库,分析其内容,提出符合客户需求的方案。作为一对一营销的典型的具体做法,例如有可变打印。特别是,最近随着DTP(desktop publishing:桌面出版系统)技术的发展和数字打印装置的普及,开发出了按每个客户定制文件并输出的可变打印系统。在这样的可变打印系统中,要求按每个客户生成对不同的量的内容进行了最佳布局的定制文件。
一般地,在可变打印系统中生成这样的定制文件时,要在文档上对容器(condenser)进行布局。容器是用于描绘内容的局部区域(数据区域),有时也称作字段区。即,在文档上对这样的容器进行布局,将数据库与布局建立关联(将数据库的各内容与各容器建立关联),通过这样的作业,生成定制文件(文档)。在本说明书中,将这样的文档称作可变数据文档。
在这样的可变打印系统中,可以将因顾客而异的内容插入布局好的各容器中。因此,当插入到内容中的数据的尺寸可变而容器的尺寸固定时,就会产生以下的问题。例如,当插入比容器的尺寸大的文本数据时,无法将所有文本显示在该容器内。或者,当插入比容器的尺寸大的图像数据时,该图像的一部分就会缺失。将这样的问题称作溢出。
另外,当内容是图像数据时,虽然也想到将该图像缩小描绘在容器内,但有可能产生图像极小这样的弊端。此外,还提出了以下技术:在插入无法完全进入固定尺寸的容器内的文本数据时,可以缩小文本的字体大小,在该容器内显示所有文本。但会产生以下问题:在这样调节字体大小时,字体大小变得过小,从而造成文档整体的平衡被破坏,或变得难以阅读。
作为用于解决这样的问题的自动布局的技术,在日本特开平7-129658号公报的“布局设计装置”中公开了以下技术:当某字符区域的尺寸增大时,为了保持与相邻的区域的间隔,而减小该相邻的区域的尺寸。
在日本特开平7-129658号公报所述的技术中,记载有按照文本的输入来放大字符区域的技术。但会产生以下问题:当增大字符区域的尺寸时,为了保持间隔而缩小了相邻的区域,由此,随着要输入的文本量的增加,相邻的区域将继续缩小。
并且,在日本特开平7-129658号公报中,并没有考虑通过对上述数据库与各布局框建立关联来插入内容数据,生成按每个客户定制的文件的可变打印系统。
另外,作为考虑到可变数据打印的布局方法,有生成固定的容器并在其中插入内容数据的方法。但是,在使用固定尺寸的容器的情况下,当插入尺寸比容器尺寸大的内容数据时,会产生溢出这样的问题。另外,在这样的情况下,要缩小字体大小而强行插入时,会产生字体大小变得极小这样的问题。另外,考虑按照要插入的内容数据的尺寸来放大或缩小容器的尺寸。但是,在对两个容器建立了关联的状态下,当一个容器尺寸被放大时,建立了关联的容器只有伴随着一个容器的放大而缩小。由此,不能进行考虑到容器间的尺寸平衡的布局处理。
因此,需要一种考虑到建立了关联的多个容器间的尺寸平衡的布局方法。在按照插入到各容器中的内容数据的尺寸变更各容器的尺寸时,可以通过进行调整了各容器尺寸的变化量的布局处理,来进行考虑到建立了关联的容器的尺寸平衡的布局处理。
但是,在上述一对一营销中,作为目的之一,可以举出按照客户需求生成目录或小册子的情况。在这样的情况下,设想要生成因客户而不同的目录或小册子。
为了生成这样的各式各样的目录或小册子,仅利用按照上述内容数据的尺寸来调整容器尺寸的变化量的布局调整算法,很可能无法生成对用户来说最优的布局。
另外,在上述布局调整算法中,按照数据库的数据大小自动进行布局计算时,用户无法设定使容器的尺寸怎样变化。因此,无法如在要生成的文档内尽量维持某容器的设计时的尺寸,并优先改变某容器的内容的描绘尺寸那样,灵活地反映用户的意图。
发明内容
本发明是鉴于上述问题而完成的,其目的在于,在处理上述那样的各式各样的内容数据的可变打印中,也能够得到用户所希望的输出结果。例如,实现从多个布局调整算法中选用要应用的布局调整算法来调整数据区域的内容数据的布局处理。
另外,其目的还在于,可以对每个区域设定任意的布局调整算法,从而实现能够灵活地反映用户的意图的布局处理。
为了达到上述目的,本发明具有以下的结构。
一种布局处理方法,根据在数据区域中描绘的内容数据,动态地变更具有该数据区域的模板的布局,所述布局处理方法包括:选择步骤,从多个布局调整算法中,选择要应用于上述数据区域的布局调整算法;布局调整步骤,在向数据区域插入内容数据时,按照由上述选择步骤选择出的布局调整算法,调整上述数据区域的布局;以及输出步骤,根据由上述布局调整步骤调整后的数据区域,布置上述内容数据并输出,上述多个布局调整算法的每一个,调整数据区域的布局,使得数据区域和目标形状的差异减小,上述多个布局调整算法包括以下算法中的至少两个,第1算法,将依照在数据区域中描绘的内容数据的内容形状,作为上述目标形状,计算上述差异;第2算法,将作为设计上述布局时的数据区域的形状的布局形状,作为上述目标形状,计算上述差异;以及第3算法,将作为数据区域与上述内容形状的差异的第1差异、和作为数据区域与上述布局形状的差异的第2差异的合计,作为上述数据区域与目标形状的差异。
另外,本发明还提供一种执行上述布局处理方法的信息处理装置。
本发明的其他特征和优点,可以通过下面的参照附图进行的说明而得到明确。在所有附图中,相同的标号表示相同或类似的部分。
附图说明
附图包括在说明书中并构成说明书的一部分,用于举例说明本发明的实施例,并与说明书一起用于解释本发明的原理。
图1A是表示实施例的可变打印系统的结构的图。
图1B是表示图1A中的主计算机的结构的概要的图。
图1C是说明可变数据打印的概要的图。
图2是表示实施例的可变打印系统的其他结构的图。
图3是表示包括菜单栏、工具栏、工作区、托板的实施例的用户界面的例子的图。
图4是表示用户界面上的容器的显示例的图。
图5A~图5D是说明实施例的容器规则的图。
图6是说明实施例的链接的生成处理的流程图。
图7A~图7C是表示生成链接时的用户界面的变化例的图。
图8是表示实施例的布局引擎进行的布局计算处理的流程图。
图9是表示实施例的布局引擎进行的布局计算处理的流程图。
图10A~图10C是用于说明实施例的布局计算处理的图。
图11是说明实施例的布局计算时的容器的集合的图。
图12是表示通过可变链接配置了容器时的用户界面的显示例的图。
图13是说明用于通过实施例的用户界面设定可变链接的处理的流程图。
图14是表示实施例的链接的设定对话框的图。
图15是表示基于固定链接的布局结果例的图。
图16是表示基于可变链接的布局结果例的图。
图17是表示本实施例的自动布局处理的整体处理流程的流程图。
图18是说明本实施例的布局最优化处理的流程图。
图19是表示在步骤S1802中对在步骤S1801中选择出的容器进行的应用算法的解析(perspective)的流程图。
图20是表示本实施例的布局再计算处理的流程图。
图21A~图21C是说明内容优先的布局调整算法的图。
图22A~图22C是说明容器·内容优先的布局调整算法的图。
图23A~图23C是说明基本设计优先的布局调整算法的图。
图24A~图24C是说明在1个链接组内、对各容器分别设定基本设计优先的布局调整算法和内容优先的布局调整算法时的布局计算处理的图。
图25A~图25G是表示用于设定各种布局调整算法的用户界面(UI)例的图。
图26是说明通过按各单位设定好的布局调整算法、各容器的设定变成什么样的图。
图27是表示用于设定布局调整算法的另一用户界面例的图。
图28是表示用于显示图27的UI的处理的流程图。
图29A~图29D是在1个链接组内、对各容器分别设定容器·内容优先和内容优先时的布局计算例的图。
图30是表示算法信息的存储例的图。
图31是用于说明布局最优化处理的图。
图32是说明内容优先布局的算法的图。
图33是表示用于说明使用了最小二乘法的布局计算方法及结果、和不使用最小二乘法时的布局计算方法及结果的布局例的图。
图34是说明容器·内容优先的布局算法的图。
图35是表示本实施例的布局编辑应用程序121的功能结构的框图。
具体实施方式
下面,参照附图说明本发明的优选实施例。
<系统结构>
首先,参照图1A和图1B说明本实施例的可变打印系统的结构。图1A是表示用于打印可变数据文档的可变打印系统100的结构例的框图。此外,图1B是更详细地表示图1A所示的主计算机101的结构的框图。在本实施例中说明的可变打印处理,由作为布局调整装置的主计算机101(由通用计算机模块构成)执行。可以在系统100上实施的布局编辑应用程序121(本发明的布局调整程序),在主计算机101中,执行该软件的整体或一部分。特别是用于布局编辑的处理、用于打印可变数据文档的处理,利用由主计算机101执行的软件来实现。
布局编辑应用程序121,存储在计算机的可读介质中,从该计算机的可读介质加载到主计算机101的存储器136中并执行。存储有这样的软件或计算机程序的计算机的可读介质是计算机程序产品。通过在计算机中使用该计算机程序产品,提供适于文档的布局编辑和可变打印的装置。
如图1B所示,在主计算机101上通过输入输出接口143,将键盘132、鼠标133那样的指示设备等作为输入装置连接。此外,通过视频接口137连接作为输出装置的显示装置144。还能通过输入输出接口138连接本地打印机145等。此外,输入输出接口138还具有将计算机模块101连接到网络107上的功能。据此,能够通过网络将主计算机101连接到系统100内的其他计算机装置上。作为网络107的典型的例子,可以列举局域网(LAN)或广域网(WAN)。
此外,如图1B所示,主计算机101至少包含一个处理单元135、由例如半导体随机存储器(RAM)和只读存储器(ROM)构成的存储单元136。存储设备139包括:可以与存储程序等的计算机可读介质之间交换数据的硬盘驱动器140和floppy(注册商标)盘驱动器141。另外,虽然未在图1B显示,但还可以将磁带驱动器等作为存储设备139使用。作为非易失性的数据源,提供CD-ROM驱动器142(当然,也可以通过CD-ROM提供计算机程序)。
主计算机101,按照GNU/LINUX或微软公司的windows(注册商标)那样的操作系统或典型的操作系统的形式,或者根据基于在相关技术中已知技术所形成的计算机系统的常规操作模式的方法,利用经由相互连接的总线134进行通信的、计算机模块101的构成要素135~143。即,由上述135~143表示的各结构,经由总线134可通信地连接起来,并由安装在主计算机101中的操作系统利用。
另外,作为图1B所示的主计算机101的例子,可以考虑IBM兼容PC,SUN的Sparcstation,或包括这些计算机的计算机系统。
<布局编辑应用程序的概要>
在本实施例中,布局编辑应用程序121常驻在硬盘驱动器140中,由处理器135控制执行、读入。与硬盘驱动器140相呼应地使用半导体存储器136,存储从布局编辑应用程序121的程序的媒介存储装置和网络107取得的数据。
在一个例子中,布局编辑应用程序121的已编码的程序,存储在CD-ROM或floppy(注册商标)盘上,通过对应的驱动器142、141读入,并被硬盘驱动器140安装。或者,作为其他例子,布局编辑应用程序121,也可以从网络107读入主计算机101内,并被硬盘驱动器140安装。并且,软件还可以从下述介质加载到主计算机101内,即:磁带,ROM,集成电路,光磁盘,在主计算机101与其他设备之间的红外线等无线通信,PCMCIA卡那样的计算机可读卡,以及包含电子邮件通信、带有WEB站点上的记录信息的互联网或企业内部互联网的其他适当的计算机。这些是计算机可读介质的例子,当然,还可以使用其他计算机可读介质。
在图1A中,本发明的布局编辑应用程序121,使计算机进行可变打印(也叫做可变数据打印(VDP))。布局编辑应用程序121包含2个软件组件,即,布局引擎105和用户界面103。布局引擎105是这样的软件组件,即:按照赋予作为局部区域的容器(矩形的范围)的尺寸和位置的限定,从存储在数据库119中的可变数据中,逐个地读入记录,根据所读入的数据和容器的限定,计算插入所读入的数据的容器的大小和位置等。此外,在本实施例中,布局引擎105还进行描绘分配给容器的数据、生成可变数据文档的图像的处理。但本发明不限于此,例如,布局引擎105还可以作为确定各局部区域(容器)的尺寸和位置的应用程序而工作,向图示省略的打印机驱动器输出描绘信息。这时,打印机驱动器进行可变数据文档的图像描绘处理,生成打印数据。用户界面103,可以由用户进行容器的布局和属性设定,使其对用户生成文档模板。此外,用户界面103提供使文档模板内的各容器和数据源建立关联的机制(mechanism)。用户界面103和布局引擎105通过信道123通信。
图1C是说明本实施例的可变数据打印的概要的图。通过布局编辑应用程序121的用户界面模块103(以下,记为用户界面103),按照来自用户的操作指示,在页面上配置多个容器181~183。通过对各容器赋予关于位置和尺寸的限定条件,生成文档模板180。此外,用户界面103,进行文档模板180与数据源190(在图1A中为数据库119)的关联,进而各容器与数据源190内的各数据字段的关联。表示各容器与数据源190内的各数据字段的关联的关联信息,被记述在文档模板内,该文档模板被存储在HDD 140或存储器136中。此外,数据源190是以记录单位记载项目数据(可变数据)的文件,被存储在HDD 140中。布局引擎105,按照来自用户的打印指示或预览指示,将以关联信息建立关联的可变数据,从数据源190读入文档模板的各容器181~183中。然后,将读入的可变数据以记录单位插入(例如,将数据记录1的数据字段A~C插入容器181~183),根据所插入的数据,对各容器的尺寸等进行调整(布局调整)。布局调整的方法将在后面说明。当是预览指示时,生成布局调整后的文档图像,为了作为预览显示,而输出到视频显示器144的画面上。此外,当是打印指示时,将用布局引擎105或打印机驱动器生成的文档图像,作为打印数据向打印服务器109输出。通过依次处理数据记录1、2、3...,实现可变数据打印。
用于文档生成的数据源(190),例如,还可以是由运行着数据库应用程序的其他计算机构成的数据库服务器117上的一般的数据库119。这时,主计算机101,能够通过网络107与数据库服务器117通信,取得数据源。此外,由布局编辑应用程序121生成的、用于可变数据打印的文档模板(180),保存在主计算机101或由其他计算机构成的文件服务器115上。在图1C中,如上所述,布局编辑应用程序121的布局引擎105,生成由与数据合并后的文档模板构成的可变数据文档。这些文档保存在主计算机101的本地文件系统中,或保存在文件服务器115上,或被发送给打印机113进行打印。打印服务器109是用于向没有直接连接到网络的打印机提供网络功能的计算机。打印服务器109和打印机113通过一般的信道111连接。
<其他的系统结构例>
图2是与图1A类似的框图,但追加了引擎服务器227。存储在引擎服务器227中的布局引擎225,是布局引擎105的分离版本(version)。引擎服务器227中使用一般的计算机。为了根据打印或其他目的生成可变数据文档,布局引擎225将保存在文件服务器115中的文档模板和保存在数据库119中的数据结合。这样的操作通过用户界面103来请求。
<布局编辑应用程序的说明>
下面,说明布局编辑应用程序121。
[主窗口]
用户界面103,在操作时在视频显示器144上,显示由图3所示的应用程序窗口301形成的用户界面画面。该窗口301具有菜单栏302、工具栏303、工作区306和选项托板311。菜单栏302和工具栏303可以不显示,或移动到屏幕上的各种地方。此外,工作区306可以通过鼠标133的操作使其移动地方。此外,托板311是可选的,光标/指示设备313表示鼠标133指示的位置。
菜单栏302,作为公知技术如已知那样,具有在菜单选项的层级下扩展的多个菜单项304。
工具栏303,具有可以通过应用程序的特殊模式变成非显示状态或变成显示状态的、多个工具按钮和控件305。
标尺308是可选的,用于显示工作区内的指针、页面、行、边缘引导(margin guide)、容器或对象的位置。
托板311用于访问可变数据文件库那样的追加功能。托板311具有用于进行移动、尺寸调整、关闭的窗口控件312。托板311是可选的,可显示在工作区的前面,或隐藏在对象的背面。托板311被限定只能在应用程序窗口301的范围内显示,或允许在应用程序窗口301的外侧显示其一部分或整体。
在工具栏303上配置有图4所示的、可由用户选择的“按钮”。
(1)选择工具按钮403:用于进行容器的边的选择、移动、尺寸变更、尺寸调整以及锁住/解锁。通过在容器的周围拖动选择框来进行容器的选择。此外,可以一边按住CTRL键,一边对多个容器进行选择操作,从而选择多个容器。
(2)文本容器工具按钮404:用于生成具有静态或可变文本的容器。
(3)图像容器工具按钮405:用于生成具有静态或可变图像的容器。
(4)链接工具按钮406:用于生成在容器之间进行关联的链接,还用于控制链接的距离。
布局编辑应用程序121的如图3所示的应用程序窗口301,能够通过在页面内对各容器和链接进行布局,来确定基本布局。所谓基本布局,就是在可变数据打印中作为基本的布局。当基本布局内的各容器为固定容器时,所有记录的打印结果的布局相同。此外,当基本布局内的至少一个容器为后述的可变容器时,根据按记录单位读入的数据的量和尺寸,在后述的限定的范围内变动各容器的尺寸和位置。由此,由布局编辑应用程序121生成的文档模板,最终确定基本布局,当包括可变容器时,最终的打印品的布局,根据所读入的数据进行布局调整。
[文档模板]
在图3中,工作区306用于显示和编辑文档模板(180:基本布局)的设计。另外,有时也将文档模板简称为模板。它可以在用户设计文档模板的过程中,向用户显示要打印的文档的概貌。由此,用户能够容易地理解与数据源(190)合并后的文档,如何根据可变数据的量和尺寸而变化。
此外,当数据源与文档模板建立了关联时,在布局后的各容器上显示相应的可变文本和图像,以便能够进行当前文档的预览。
进行文档模板中的文档构造和可变数据容器的描写的、可视的线索(容器的框线、锚点、滑块、链接等),总是在生成文档模板时显示。并且,当进行插入可变数据的预览时,在使光标移动到容器上,或选择了容器时,显示视觉上的线索。
工作区306包括滚动条307、可选的标尺308和文档模板309。文档模板309能够表示具有多个页面。此外,文档模板309表示图1C的文档模板180。
所给出的文档模板的页面尺寸,用公知的技术,由用户指定。例如,通过从菜单的“文件”选择“页面设定”,来显示设定页面尺寸的对话框,在那里反映用户指定的页面尺寸。各文档中的实际的页数,有可能根据建立了关联的数据源内的可变数据而变化。这是因为,当在文档模板内像可变表那样设定根据可变数据的量而改变大小的字段的情况下,当读入的可变数据无法容纳在1个页面内时,自动生成追加的页面。
在各页面内显示的边界线310,是表示页面上的可打印的对象的最大宽度的、任意的页边距。
图4是表示能在1个页面的文档模板309上显示的对象的例子的图。作为这样的对象,包括容器407、408,任意使用的锚点图标409,固定的边411、414,未固定的边410,链接412以及滑块413。锚点图标409可以设定在容器的矩形的角、边、或容器的中央。另外,本申请所述的对象,指能够显示在文档模板上的所有内容,在要明确区别各对象时,通过以各自的名称记述来明确。当设定锚点图标409时,所设定的地方的位置固定。即,在图4的例子中,锚点图标409,被设定在容器407的左上角。因此,表示当容器407插入可变数据,可变数据的图像尺寸或文本量多时,能够向右和向下放大。例如,当锚点图标409被设定在任意1个边上时,能够固定该边,而向其余3个边的各方向放大。此外,当锚点图标409被设定在容器中央时,能够固定容器的中央位置,容器矩形的中央位置不变地向4个方向放大。链接412将在后面详细说明,它表示容器407与容器408建立了关联。并且,表示在保持对该链接412设定的长度(可指定范围)的同时,容器408可向右移动(在后述的可变尺寸链接的情况下,根据要插入的数据大小,链接长度在设定好的范围内为可变)。滑块413表示可以在与设定好的边水平的方向上移动。
[容器]
这里,对容器进行说明。容器是将固定或可变的文本/图像,从可变数据文件插入文档模板内并描绘的空间(将其称作局部区域或数据区域)。如图4所示,与其他容器和对象一起对容器进行布局。通过用户界面画面,按照来自用户的操作指示,通过鼠标133的操作,对容器进行移动、尺寸调整和再生成。另外,将插入容器中的数据称作内容或内容数据(可变数据或字段数据)。
更准确地说,容器具有设定的集合、可视的表现以及交互作用(interaction)和编辑动作。以下是对本实施例的容器的定义。
(1)容器具有固定或可变的内容。可变内容是指,从数据源取得的数据有可能在各文档即各记录上不同,可以说是动态(活动)的。但是,作为本实施例的可变内容,做成动画的内容或以其他方法按时间变化的内容,因为不适合打印,所以,不打算在此讨论。同样,固定内容在使用容器生成的所有文档中,相同地表示。但是,当固定内容通过链接与可变内容建立了关联时,受可变内容的影响,固定内容有可能在各文档中位置不同。
(2)容器具有用于内容的背景色、边界、字体风格那样的与文本设定相同的装饰功能。将这样的设定称作容器属性。能对每个容器设定容器属性,但也能够进行是与某容器相同的容器属性的设定。
(3)容器在生成文档时,与来自数据源的数据合并。装饰功能在所打印的输出品中是可视的,这在任何固定内容中也是如此。可变内容提供来自数据源的特定数据的显示。容器的该表现形式,例如能够被打印,或显示在视频显示器144的屏幕上。
(4)如图4所示,容器具有作为可视的线索的用户界面。例如,具有用于容器的编辑和显示设定的交互式图形用户界面(GUI)。GUI的各要素显示在视频显示器144的屏幕上,但不作为文档打印。布局编辑应用程序121的用户界面103,显示背景色和字体那样的容器的若干装饰功能,还具有能够对容器的设定进行编辑和显示功能。
[对容器的限定]
容器具有关于控制如何结合显示在各文档中的内容的限定。这些限定(包括将固定/可变内容与容器结合),是用户通过一个文档模板控制多个文档的主要方法。作为限定的一个例子,有“该容器的内容高度最大为4英寸”。此外,作为其他的限定的例子,有“容器的内容的左边缘(左边),在各文档中必须在相同的水平位置显示”。在此所述的内容,是用于使用GUI,显示、编辑这样的限定的各种方法。
在数字打印技术中,已知有为了具有将图像定义在页面上的地方,而指定固定内容的布置的内容占位符。容器具有位置和尺寸,以在公知的技术中已知的方法编辑、显示它们。因此,在以下的说明中,将焦点对准在可变数据打印方面特殊的方法中的显示和编辑。
通过使用容器,用户可以指定文档的内容的尺寸(描绘尺寸)和位置。由于通过一个文档模板生成多种文档,所以,对容器设定多个可能性和限定,而为了这些设定(指定)和显示,使用预定的用户界面。
一个容器的边,定义在文档内显示建立了关联的内容的、虚拟的边界线。因此,提到容器的左边,与提到在各文档中可显示建立了关联的内容的区域内最左的边是相同的。同样,提到容器的高度,可以理解为在所生成的文档中建立了关联的内容的高度的限定。在本说明书中,当参照用户界面103提到容器的边或大小时,该区别变得清楚。
在以下的记载中,定义用于限定内容的显示的某个值的用语“固定”,在所有文档中都是相同的。
(1)当容器的宽度固定时,分配给关联的内容的宽度,在所有文档中都相同。
(2)当容器的高度固定时,分配给关联的内容的高度,在所有文档中都相同。
(3)当距离(链接的长度)固定时,所指定的距离,为所有文档的限定。
(4)当容器的左右边固定时,意味着关于页面的边的水平位置,在所有文档中都相同。但是,容器的高度或垂直方向的位置有可能变化。例如,当容器的左边固定时,关联的内容的显示位置,在所有文档中其左边的位置为相同的水平位置。但该内容有可能在某文档中显示在页面的上方,而在其他文档中则显示在页面的下方。
(5)当容器的上下边固定时,意味着页面的边的垂直位置在所有文档中都相同。但是,容器的宽度或水平位置有可能根据文档变化。
(6)容器的垂直轴是与容器的右边和左边平行,位于其中间的虚拟的垂直线。如果容器的垂直轴固定,则该容器的左右边的水平位置的中央位置在所有文档中都相同。在该限定下,容器的宽度有可能变化。但是,从左右边离垂直轴最远的容器到最近的容器,垂直轴在所有文档中都处于相同的水平位置。另外,容器的高度和垂直位置不受该限定的影响。
(7)同样地,如果水平轴固定,则容器的上边和下边的平均位置被限定在垂直方向上的同一位置。但是,容器的宽度和水平位置不受该限定的影响。
(8)当水平轴和垂直轴二者均固定时,意味着容器的中心位置被固定。但是,容器的宽度和高度不受该限定的影响。
(9)当容器的角位置、容器的边的中间位置、或容器的中心位置固定时,各位置在所有文档中都处于相同的地方。例如,如果容器的左上角固定,则意味着所配置的容器的左上位置在所有文档中都相同。
(10)垂直边或垂直轴,可以与页面的左边或右边,或左页边距或右页边距,或其他水平位置建立关联而固定。同样地,水平边或水平轴,可以与页面的上边或下边,或上下页边距,或其他垂直位置建立关联而固定。
“固定”的反意词是“可变”,“可变”意味着容器的边、轴、角、中间位置或文档限定可能在文档间(记录间)发生变化。例如,在页面内,希望根据可变数据的尺寸和量动态地变更布局,但对于特定的容器,有时希望固定大小和位置,有时希望使页面的角上的容器的四角固定。因此,在本布局编辑应用程序121中,能够对各容器(局部区域),适当地设定使边、轴、角和中间位置等固定,还是使其可变。由此,当用户确定文档模板180的基本布局时,能够如用户所希望的那样生成基本布局。
[容器的显示和编辑]
新容器的生成方法
容器包括文本容器和图像容器2种。文本容器具有文本和嵌入的图像。图像容器只具有图像。
如图4所示,通过用鼠标133点击文本容器工具404或图像容器工具405,在文档模板309上拖动四边形,从而在该文档模板309上生成新文本容器或图像容器。
或者,还可以在激活适当的工具404、405后,通过在文档模板309上单击来生成容器。这时,按照鼠标133的点击操作,在模板上插入默认尺寸的容器,并且,提供用于设定该新容器的尺寸等的对话框或其他提示符。另外,容器的尺寸也可以自动地提前定义,或者考虑由计算出的分离器(skimmer)生成、配置等各种方法。能够用鼠标等输入装置选择在此生成的容器,通过右击进行属性的指示等操作,从而显示容器的属性对话框,设定容器的限定。在容器的属性对话UI(相当于局部区域设定装置)中,能够设定上述各种限定。此外,在容器的属性对话框中,能够确定容器的尺寸(宽度、高度)和位置。另外,当容器为可变尺寸时,可以设定容器的基本模式(基本尺寸和基准位置),进而设定最大容器尺寸(宽度、高度)和最小容器尺寸(宽度、高度)。
[容器的显示方法]
图5A~图5D举例说明关于容器的边的显示规则。
布局编辑应用程序121,为了表现容器的边的状态,用实线(项目503)或虚线(504)表示边,并且,使用以下内容:锚点(由在边的附近描绘的506、507、509所示的线、形状、图标)、句柄(为了进行移动、修改,在区域的边上或附近描绘的控制点502)、滑块(在边的两侧描绘的短平行线,图4的413)、放大缩小图标(505)以及颜色。
图5A~图5D所示的容器显示方法的规则如下所述。
(1)为了固定各边,用实线描绘。
(2)宽度固定时,用实线描绘左边和右边。
(3)高度固定时,用实线描绘上边和下边。
(4)不描绘轴。
(5)在尚未由(1)~(3)描绘的各边的附近描绘放大缩小图标,以虚线描绘这些边。
(6)在垂直边和水平边,或垂直轴和水平轴的各对中,如果两者固定,则在其相交点描绘锚点。
(7)在各固定边上,如果在边的任意位置都未描绘锚点,则在边的中央描绘滑块。
(8)在垂直边和水平边,或垂直轴和水平轴的各对中,如果尚未描绘锚点和滑块,则在其相交点描绘句柄。
由规则(1)、(2)、(3)定义的线,如上所述,被固定或被限定,因此用实线描绘。像规则(5)那样,可变的边以虚线描绘。由规则(6)、(7)、(8)定义的、固定的点表示锚点,几条固定的边表示滑块,其他表示句柄。
由用户后来所设定的限定优先于上述规则。即,当以后设定了其他限定时,如果上述规则影响到要描绘的边,则变更实线和虚线的描绘内容。
描绘可变的边的地方依赖于容器的内容。如后面将要说明的那样,使用“动态校正处理”,“动态校正处理”的意思是,将内容合并到文档模板中,且在用户界面上是可见的。也可以使用其他手段来确定用户界面上可变的边的描绘位置。例如,也可以使用在所有文档中平均的尺寸的容器(平均的内容区域),来确定描绘可变的边的位置。
这些内容表现,提供表示容器的各边的状态的图解(graphical)手段。该表现的解释如下所述。
(1)如图4的边410那样,虚线意味着根据容器的内容,文档内的边的位置发生变化。
(2)实线意味着为了固定(边414)、或容器的宽度和高度固定(在容器408中,4条边是实线,两者均固定)而限制的边。
(3)锚点意味着边或轴交叉的地方被固定。因此,锚点出现在所有文档的水平、垂直位置。锚点当然被固定。图4的图标409是锚点图标的例子,意味着边414的交叉位置固定。
(4)滑块意味着建立了关联的边的长度固定,但有可能并行移动。例如,在图4中,滑块413表示插入到容器408的内容数据,可能显示在文档内以特定的图表所示的位置的左或右。例如,当插入与容器408建立了关联(设定了链接)的容器407的数据的图像尺寸或文本量少时,容器407的尺寸变小。所以,容器408向左滑动(并行移动)地进行布局并显示。此外,当容器407的尺寸变大时,相反地,容器408向右滑动地进行布局。
根据对哪个工具、哪个容器进行选择、加亮或激活,对这些图标和边的几个或全部进行描绘或不描绘。一般地,容器的边和图标是设计文档模板的工具,所以,在打印品中不描绘。
另外,如上所述,容器的宽度和高度的基本值、最小值、最大值的基本模式的设定,显示在附属对话框中。
在图5A中,容器501的宽度和高度二者均不固定(可变)。固定的边503用实线表示,可变的边504用虚线表示。放大缩小图标505表示相邻的边504可变。也可以代替或追加地使用其他形式的指示器(indicator)。
在图5B中,容器501的宽度和高度二者均可变。为了明确地表示交叉的两条边503的角的位置被固定,而添加锚点图标506。
在图5C中,容器501表示这样的状态,即:容器的宽度和高度二者均可变,以任意的锚点图标507表示的点为中心,均等地扩展周围。即,容器501能够以锚点图标507为中心放大或缩小。这里的放大/缩小是指,锚点图标507的位置总处于容器501的中心点那样地,进行布局调整。
在图5D中,容器501的上边508固定,但宽度和高度二者均可变。位于上边508的中心显示的锚点图标509固定。并且,容器501的左边和右边,在通过锚点图标509垂直地描绘的中心轴(垂直轴)的周围放大、缩小。
[链接]
链接表示容器与容器之间的关联。关联表示容器间的距离,通过链接建立了关联的容器之间,受到相互的布局变更的影响地计算布局。图4的412所示的部分就是链接,在图4中,对容器407与容器408建立了关联。关于链接的设定方法以及通过链接建立了关联的容器的布局计算方法,将在后面说明。
[链接的设定方法]
下面,说明用于在容器之间建立关联的链接的设定。图6是表示链接的设定方法的流程图。此外,图7A~图7C表示设定链接时的用户界面(UI)的变化例。用图6、图7A~图7C说明对容器设定链接的方法。另外,本申请所述的流程图的各步骤的处理,由信息处理装置(主计算机)所具有的处理器135执行。
首先,在步骤S601中,布局编辑应用程序121,在用户界面画面的工作区306上,显示为编辑而选择出的文档模板。为了设定链接,需要在文档模板上生成用于设定链接的容器(最少2个)。图7A~图7C表示在步骤S601生成2个容器并设定链接时的用户界面的变化例。
接着,在步骤S602中,布局编辑应用程序121,判断上述链接工具是否变为选择状态(通过点击图4的按钮406变为选择状态)。如果链接工具不是选择状态,则根据需要执行其他的各种处理(步骤S609),回到步骤S602。
在图7A中,设容器701和702全部由固定的边构成。此外,703和704与图4的409相同,意味着锚点。705意味着鼠标指针。那么,在链接工具为选择状态期间,用户点击设定链接的2个容器中的一个(设为容器701)来选择。按照该操作,布局编辑应用程序121的用户界面103,识别指定了第1容器这一情况(步骤S603),在存储器136中保存指定选择出的容器的信息。此外,在画面上显示与以后的鼠标指针的移动相对应的轨迹(步骤S604)。例如,图7B的线段706,表示将图7A的状态下的点击位置与当前鼠标指针的位置连接起来的线,能够通过该UI向用户表明在哪个位置设定链接。
接着,如图7B所示,用户将鼠标指针移动到另一个容器(容器702)并点击。按照该操作,用户界面103识别指定了第2容器这一情况(步骤S605)。然后,布局编辑应用程序121,在步骤S604中保存的第1容器、和步骤S605中识别出指定的第2容器之间设定链接(步骤S606)。
这样,在由用户选择出的两个容器701、702之间设定链接时,显示链接UI707(步骤S607)。进而,接受该链接设定,容器的显示状态成为图7C的状态(步骤S608)。即,通过设定链接,自动地变更容器的UI。这里,通过链接建立了关联的边为可变,以虚线表示。在图7C中,708是以虚线表示的边,如上所述表示可变的边。
另外,图7C那样的容器的边的状态的变化,是由于设定了链接而需要使容器的边可变,从而自动地执行的。其目的在于,防止发生尽管设定了链接但所有的边却是固定的这样的矛盾。此外,709与图5A~图5D中的505相同,是通过设定链接,对用户可视地表示容器可发生变化的方向的标记。此外,在图7C的例子中,左侧的容器的右边和右侧的容器的左边变为可变的状态,但这只是一个例子,例如,右侧的容器也可以变化为具有图4的413所示的滑块的设定。
<基于布局引擎的布局计算处理>
[布局计算方法(整体流程)]
本实施例的布局编辑应用程序,分为布局模式和预览模式,布局模式使用用户界面103生成容器,在该容器之间进行关联(链接设定)并生成布局;预览模式通过布局引擎105,将数据源的各记录插入所生成的布局,再预览实际插入了记录之后的布局结果。在该预览模式中,插入实际的记录所具有的内容数据并计算布局。其中,预览模式是显示上的布局计算。即使在实际进行打印时,布局引擎105也是在将数据插入到各容器后再计算布局,而此时的计算方法与预览模式相同。另外,在对要插入内容数据的容器设定了优先顺序时,按照上述优先顺序进行布局计算。作为按照优先顺序进行的布局计算的一个例子,考虑尽量以原始的尺寸(原来的数据大小)显示插入到优先顺序高的容器中的内容数据。
图8表示布局计算的流程。首先,选择预览模式(步骤S801)。如果是预览模式,则布局编辑应用程序121,使用户从数据源选择要预览的记录,确定要将选择出的记录的各字段数据插入各容器(步骤S802)。当确定向各容器插入字段数据时,布局编辑应用程序121,进行用于对该记录进行布局的计算,并根据需要进行布局调整(步骤S803)。步骤S803中的布局计算的细节将在后面说明。然后,布局编辑应用程序121,显示在步骤S803中计算出的布局(步骤S804)。布局编辑应用程序121,根据用户的指示判断是否还对其他记录进行预览(步骤S805)。当在步骤S805中判断为不必对其他记录进行预览时,结束预览模式(步骤S807)。当判断为对其他记录进行预览时,布局编辑应用程序121,选择其他记录再次进行布局计算,并进行预览(步骤S806)。
另外,在非预览模式下进行打印时,依次对要打印的所有记录进行布局的计算。因此,步骤S804不存在,步骤S805进行是否已将要打印的记录全部处理完的判断。对在步骤S803中进行布局计算后的结果进行描绘并输出,用打印机驱动器生成为打印数据,并向打印机输出打印数据。此时,在对于所有记录(为了打印而指定出的所有记录)打印数据的输出结束的时刻,结束本处理。
[布局计算方法(细节)]
下面,说明在上述步骤S803进行的布局计算的细节。图9是表示本实施例的未设定布局的优先顺序时的布局计算的方法的流程图。此外,图10A~图10C是表示此时的UI显示例的图。由于图9是仅用于说明布局计算的处理方法的流程图,所以,相当于对可变数据打印的1个记录进行打印/预览时的布局计算方法。当为多个记录时,反复进行以下的处理。
首先,布局编辑应用程序121,求出计算布局的容器的集合(步骤S901)。布局计算将建立了关联的容器作为一个集合进行计算。例如,参照图11,在页面上布置好4个容器,并对各容器设定了关联。此时,容器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对以基本模式设定好的尺寸(宽度、高度)不变更。此外,当判断为不能全部插入时进行尺寸变更。在图11的例子中,容器A通过设定锚点而高度固定,因此,向横向延伸。这里,布局编辑应用程序121,计算容器A的宽度变为多少才能插入计算出的数据量的字符,并算出容器A的尺寸。
接着,布局编辑应用程序121进行布局的最优化,使得要布局的容器尺寸与实际的内容尺寸的差尽量小(步骤S903)。布局的最优化这样进行,以使可动态改变尺寸地建立了关联的容器中,分别插入的内容的尺寸与要布局的尺寸的差尽可能相同。布局编辑应用程序121,求出在步骤S902计算出的容器的集合的尺寸,即,容器A、容器B及链接1106(这里为固定链接)的合计尺寸。然后,求出该合计尺寸与基本布局中的该容器的集合的尺寸(在图11的例子中,相当于容器A与容器B的各自的锚点图标的距离)的差。当在前面步骤中计算出容器A或容器B的宽度增大时产生差值。布局编辑应用程序121,通过将该差值平均分配给容器的集合中的各要素,来进行布局调整。
布局编辑应用程序121进行布局的最优化,当违反了规则时,再次进行计算使得不违反规则(步骤S904)。这里所说的规则,是在布局生成时由用户设定的限定,是容器的尺寸的可变范围、位置的限定,在为可变链接时是链接长度的变化的限定等。如果没有违反规则地计算了布局,则该集合的布局完成。然后,布局编辑应用程序121,对页面上的所有集合实施步骤S902~S904的处理,计算页面整体的布局(步骤S905)。
图10A~图10C是在未设定优先顺序的情况下进行布局时的UI例。
图10A表示某记录已被插入、布局已被确定的状态。1001和1002表示锚点,1003和1004表示固定的边,1005表示可变的边,1006表示指示可变的边的变化方向的箭头,1008表示链接。在该状态下,变更记录,插入不同尺寸的内容。图10B表示将新内容的尺寸重叠于图10A的状态上。1009表示在各自的容器中所插入的内容尺寸。然后,进行布局的计算。图10C表示进行布局计算后的结果。进行计算,使得计算后的各容器的尺寸与实际插入的内容尺寸同等地具有差异,且不违反上述规则。如图10C所示,图10B所示的要插入的内容尺寸(1009)与计算后的内容尺寸(1010),两者具有同等的差异。
当如图10A~图10C那样仅在横向进行布局计算时,仅通过以同等差异地进行布局计算的处理不会产生问题。但是,当如图31所示必须进行考虑到纵向和横向的布局计算时,仅通过以同等差异地进行布局计算的处理可能会无法应对。
在处理横向和纵向的二维布局的图31的情况下,采用图9的布局计算方法,首先对横向进行调整,然后对纵向进行调整。即,在容器3101和3102之间,按照上述顺序进行布局调整以使其在设定值D之内,然后,在容器3102和3103之间进行布局调整,以使其在设定值G之内。
但是,采用对横向进行调整后对纵向进行调整的调整方法,可以预想会成为偏离了用户所希望的基本布局的布局结果。
因此,对于各容器进行布局,以使其尽量不偏离基本模式(设计布局时的容器尺寸和容器的纵横比例等)。为此,例如可以者虑以下方法。求出基本模式的宽度与布局调整后的宽度的差的平方、和基本模式的高度与布局调整后的高度的差的平方的和,对于所有的容器都要计算该和。然后,布局编辑应用程序121,计算各容器的宽度和高度后再进行布局调整,使得各容器的平方和(横向+纵向)的合计值最小。这样,通过采用最小二乘法进行布局调整,不会距用户当初设定好的基本布局有大的偏离,能够确定作为整体取得了平衡的最终布局。
另外,由于在容器之间设定了后述的可变链接,因此,如后面将要说明地那样,按照要插入的内容数据的大小来变更链接尺寸。由于本申请所述的布局编辑应用程序具有这样的布局调整单元,因此,可以按照所分配的数据大小,调整多个局部显示区域(容器)的配置位置。
此外,在上述记载中,作为布局调整算法的一个例子列举了采用最小二乘法,但也可以通过预定的操作切换三乘或四乘等布局调整算法。
[长度可变的链接的设定]
图12表示用于设定可变链接的用户界面。与图4相同,具有应用程序窗口301和工具栏303。在图12的状态下,在文档模板309上存在容器1203和容器1204。容器1203包括锚点图标1201和固定的边1205;容器1204包括锚点图标1202和固定的边1206。在容器1203与1204之间具有可变尺寸的链接1209,连接着容器1203与容器1204。因为在容器1203与容器1204之间设定了链接,所以,容器1203的右边1207和容器1204左边1208用虚线表示。因此,指示器1210和指示器1211显示在各容器上,分别表示边1207和边1208可变。
此外,图14是链接设定装置中的用户界面画面,是用于设定链接1209的信息的对话框1401的例子。该对话框由标题栏1402、工具按钮1403、进行对话框的开关的按钮1404、设定各种信息的区域1409构成。在该对话框中,可以进行链接类型是可变长度(1407)的链接,还是固定长度(1406)的链接的择一性选择。当链接类型可变时,可以设定链接长度的最小值(最小距离1410)、最大值(最大距离1412)以及基准值(基准距离1411)。图14的对话框1401,例如在下述情况下显示:通过用图6、图7A~图7C说明的链接的设定操作,在2个容器之间设定了链接之后,通过点击等操作选择该所设定好的链接。或者,也可以在刚设定了链接之后,自动显示关于该链接的对话框1401。这里,各容器之间的距离的基准值1411,是在插入了数据时各容器的尺寸没有变更的情况下所使用的链接的长度。
图13是说明利用本实施例的用户界面103进行的可变链接的设定顺序的流程图。例如,当在图11的容器A与容器B之间,以用图6、图7A~图7C说明的顺序设置链接时,首先设置固定尺寸的链接。然后,选择该链接执行图13所示的处理,从而能够使该链接从固定尺寸的链接1106(图11)的状态,向可变尺寸的链接1209(图12)变化。
首先,用鼠标将所需要的链接(例如,链接1106)设置成选择状态,进行用于显示链接属性的预定操作。于是,布局编辑应用程序121的用户界面103,将其识别为链接属性的显示指示的输入(步骤S1301)。当识别为链接属性的显示指示后,显示与选择状态的链接(以下,称作对象链接)相对应的属性对话框1401(图14)。接着,用户界面103显示链接属性(步骤S1302)。另外,作为链接的选择操作,与设定容器的基本模式时相同,也可以是鼠标的右击或键盘特定键的操作等中的任意一种。
在步骤S1302显示的对话框1401上,显示选择出的链接的当前状态。在本例子中,因为选择了链接1106,所以,在该阶段链接尺寸固定,在链接类型1405中,选择了表示固定长度的固定长度1406。
为了在该对话框1401中将链接从固定尺寸变更为可变尺寸,而在链接类型1405中选择用于将链接尺寸设定为可变的可变长度1407。由此,配置在链接距离1408内的最大距离1412、最小距离1410、基准距离1411变为有效,可以进行数值的设定。为了设定链接的可变尺寸,用户在最大距离1412中设定该链接长度的最大值,在最小距离1410中设定最小值,在基准距离1411中设定当前值。
当结束设定时,用户通过一般的对话框开关按钮1404指示该设定的应用。用户界面103,在检测到该指示后,使处理从步骤S1303向步骤S1304以后进展,使该对象链接反映上述设定状态。
即,首先在步骤S 1304中,布局编辑应用程序121判断对象链接是固定尺寸还是可变尺寸。如果指定了固定尺寸则进入步骤S1308,将对象链接设定为“固定尺寸”,在步骤S1307中,使对象链接的显示状态为表示“固定链接”的“实线”。
另一方面,在步骤S1304,如果指定了可变尺寸则进入步骤S1305,布局编辑应用程序121,将对象链接设定为“可变尺寸”。然后,在步骤S1306中,注册通过上述对话框1401设定好的对象链接的当前值(基准值)、最大值和最小值。然后,在步骤S1307中,使对象链接的显示状态为表示“可变链接”的“虚线”。结果,链接的UI显示变化为图12的链接1209所示的状态(步骤S1306)。以上的对话框1401的设定信息存储在存储器中。
另外,还可以在设定于基准距离1411的当前值中,将作为当前布局而配置的容器之间的距离,作为缺省值自动地输入。
图15表示在使用了固定尺寸的链接时、在图12所示的基本布局中插入了内容的布局结果。另外,设想图12的链接1209是可变链接,但也可以设定固定链接。布局计算方法如上所述地进行。
例如,在图12中,考虑在容器1203和容器1204上,分别插入了不同尺寸的图像数据(1504和1505)的情况。
此时假设将各容器的数据大小视为最佳,且容器1203在要接近与所插入的图像尺寸相同的框1504(最佳容器尺寸)时向右变更尺寸。同样,容器1204在要接近与所插入的图像尺寸相同的框1505(最佳容器尺寸)时向左变更尺寸。
但是,容器1203由于锚点1201不能移动左边1212,容器1204由于锚点1202不能移动右边1213,如果要像上述那样变更尺寸,则只有缩小两者的间隔。但是,在容器间设定了固定尺寸的链接1503,为了在计算布局时维持其长度,容器1203和容器1204的尺寸将变更。
结果,容器1203和容器1204,无法确保符合数据的纵横比例的最佳的尺寸,最终如图15所示,变得比最佳尺寸(框1504、框1505)小。即,由于链接1503的尺寸固定,因此,容器1501和容器1502无法达到最佳尺寸(在图15中,以各容器内的点划线表示的范围是数据所具有的纵横比例)。
另一方面,图16表示在与图15相同的状态下、将链接设为可变尺寸的情况。这时,在上述例子中,在容器1203与容器1204之间,如图所示地设置有可变尺寸的链接1209。因此,在变更容器1203和容器1204的尺寸时,通过缩小链接尺寸,能够使容器1203和容器1204的尺寸大于图15的例子。结果,能够达到符合要插入的数据大小的最佳尺寸,或者能够设定更加接近插入数据大小(最佳尺寸)的容器的框。图16表示该结果,可变链接1209为布局计算的结果,即成为可变链接1603所示的尺寸状态。这时,容器1203和容器1204分别为最佳尺寸(符合数据大小的尺寸)。
[使用了多种布局计算方法的自动布局处理]
<整体流程>
下面,说明本实施例的使用了多种布局计算方法的自动布局处理。
在本实施例中,说明按照插入到多个容器的每一个中的内容数据,自动变更具有这些容器的文档模板的布局的自动布局处理。图17是表示本实施例的自动布局处理的整体处理流程的流程图。首先,在步骤S1701中求出要计算布局的容器的集合。这里所说的容器的集合,是以通过链接直接或间接地相互联结起来的所有容器为要素的集合体,也称作链接组,是指如前所述地通过链接建立了关联的容器组。这样,在步骤S1701中,进行查找存在于布局整体的链接组的处理。
接着,在步骤S1702中,从在步骤S1701中求出的链接组中选择1个链接组。然后,在步骤S1703中,对在步骤S1702中选择出的1个链接组进行布局的最优化。在步骤S1703中进行的布局的最优化等同于进行布局计算,关于该处理,将在“布局的最优化流程”中参照图18详细说明。
接着,在步骤S1704中对是否未违反规则进行检查。这里所说的规则是指偏移规则(offset rule),偏移规则是对布局的约束。对布局的约束是以容器或可变链接的最大值、最小值,以及页面框的位置等为对象的,是在进行布局计算时不准破坏的规则。换言之,布局计算要在不破坏偏移规则的范围内进行。当在步骤S1704中判断为违反了规则时返回步骤S1703,再次进行布局的最优化。当判断为没有违反规则时,从步骤S1704前进到步骤S1705。在步骤S1705中,判断对于在步骤S1701中查找到的所有链接组,上述处理(布局的最优化)是否都已结束。如果有未处理的链接组则返回步骤S1702,选择其他的链接组,继续进行布局的最优化。当对于所有容器集合计算都已结束时,结束布局整体流程。
这样,当布局整体流程完成后,如图8的步骤S804所示作为预览进行显示,或者作为用于打印输出的数据输出到外部。
[布局最优化流程]
图18是说明本实施例的布局最优化处理的流程图。下面,参照图18说明本实施例的布局最优化处理。
首先,在步骤S1801中,布局编辑应用程序从在步骤S1702中选择出的链接组(集合)中选择1个容器。详细地说,就是经由输入输出接口143识别用鼠标等选择出的容器,从而可以识别选择了文档模板上的哪个容器。另外,在步骤S1801中选择出的容器,暂时保存在存储器136中。
接着,在步骤S1802中,布局编辑应用程序121,取得应用于在步骤S1801中选择出的容器的布局调整算法。这是通过解析由存储器136或存储设备139所保存的算法信息而取得的。布局调整算法信息,用后面将要利用图25等说明的用户界面来设定,并如图30(后面将要说明)所示保存在存储器136或存储设备139中。这里,搜索这样的布局调整算法信息、并将其确定为对步骤S1801中选择出的容器进行布局计算所要应用的布局调整算法。另外,关于步骤S1802的处理,将在“应用算法的解析流程”中参照图19详细说明。
在步骤S1803中,布局编辑应用程序121,按照步骤S1802中布局调整算法的搜索结果对处理进行分支。当判断为要用于在步骤S1801中选择出的容器的布局调整算法是“内容优先”时,将处理从步骤S1803前进到步骤S1804。在步骤S1804中,将布局调整算法设定为,插入到在步骤S1801中选择出的容器中的内容(来自数据库的插入数据)的尺寸是该容器的计算用的基准尺寸,暂时保存在存储器136中。例如,如果是图像,则设该图像数据所具有的尺寸为计算用的基准尺寸。此外,如果是文本数据,则根据字符数、和要插入该文本数据的容器的属性(反映文本数据时的字体类型、字体大小等字符属性),确定计算用的基准尺寸。
此外,布局编辑应用程序121,在判断为应用于在步骤S1801中选择出的容器的布局调整算法是“容器·内容优先”时,使处理进入步骤S1805。在步骤S1805中,将步骤S1801中选择出的容器本身在设计时(进行基本布局时)的容器尺寸,设定为容器的计算用的基准尺寸。然后,与插入到该容器中的内容(来自数据库的插入数据)的尺寸一起,将设定好的计算用的基准尺寸暂时保存在存储器136中。
此外,布局编辑应用程序121,在判断为应用于在步骤S1801中选择出的容器的布局调整算法是“基本设计优先”时,使处理进入步骤S1806。在步骤S1806中,将在步骤S1801中选择出的容器的设计尺寸(进行基本布局时的容器尺寸),设定为该容器的计算用的基准尺寸,暂时保存在存储器136中。另外,在本申请中,有时也代替计算用的基准尺寸而称之为目标形状。
在步骤S1804~S1806结束之后进入步骤S1807,判断是否已解析完对所有容器应用的布局调整算法。当存在没有进行解析的容器时,返回到步骤S1801,从该链接组中选择其他的容器,对选择出的容器的应用布局调整算法进行解析。当判断为对于链接组内的所有容器解析都已结束时进入步骤S1808,进行布局再计算处理。布局再计算处理,是按照所应用的布局调整算法进行各链接组内的布局计算的处理。关于步骤S1808的处理,将在后面的“布局再计算处理流程”中详细说明。
布局编辑应用程序121,从多个布局调整算法中选择要应用于数据区域的布局调整算法。
然后,布局编辑应用程序121,按照选择出的布局调整算法执行布局处理。
[应用布局调整算法的解析流程]
图19是表示在步骤S1802中,对在步骤S1801中选择出的容器进行的应用布局调整算法的解析的流程图。首先,在步骤S1901中,布局编辑应用程序121,将文档指定算法设定为容器的应用布局调整算法。即,作为默认的设定,先将对文档所设定的布局调整算法设定为该容器的应用算法。例如,在图30那样的布局调整算法信息中,设定对文档层所设定的“内容优先”那样的布局调整算法。
接着,在步骤S1902中,布局编辑应用程序121,检查是否有对容器直接指定好的布局调整算法。详细地说,就是可以在存储器136中保存容器属性,通过参照该存储器136,来判断是否有直接指定好的布局调整算法。
布局编辑应用程序121,当在步骤S1902中判断为有对容器直接指定好的布局调整算法时,进入步骤S1903,对该容器设定该指定算法,结束本解析处理。
当没有对该容器直接指定好的布局调整算法时,使处理进入步骤S1904。在步骤S1904中,布局编辑应用程序121,检查是否对包括该容器的区域(某一定的范围)指定了布局调整算法。这里所说的区域,可以指用户任意选择的范围、或者指用图18说明的链接组(集合)。布局编辑应用程序121,当判断为有对区域指定好的布局调整算法时,进入步骤S1905,对该区域内的该容器设定该指定算法,结束本解析处理。另外,当对区域指定了布局调整算法时,将这些信息也保存在存储器136等中,因此,布局编辑应用程序121,能够通过参照存储器136进行步骤S1904的判断。
当没有对区域指定好的布局调整算法时,进入步骤S1906。在步骤S1906中,布局编辑应用程序121,检查在包含要插入到该容器的内容数据的记录中是否指定了要使用的布局调整算法。可以按记录单位变更用于布局计算的布局调整算法,例如,在记录1中使用这个布局调整算法,在记录2中使用这个布局调整算法。当指定了用于记录单位的布局调整算法时,这些信息也保存在存储器136等中。因此,布局编辑应用程序121,能够通过参照存储器136执行步骤S1906的判断。
如果有对记录指定好的布局调整算法则进入步骤S1907,对容器设定当前记录的指定算法,结束解析处理。
当没有对记录指定好的布局调整算法时进入步骤S1908。在步骤S1908中,布局编辑应用程序121,检查是否指定了在包括该容器的页面内使用的布局调整算法。在此所说的页面内,是指应用于页面上的所有容器的设定,并可指定按页面单位不同的布局调整算法。另外,当指定了按页面单位使用的布局调整算法时,由于这些信息也保存在存储器136等中,因此,布局编辑应用程序121,能够通过参照存储器136进行步骤S1908的判断。如果有对页面所指定的布局调整算法则进入步骤S1909,对容器设定当前页面的指定算法,结束解析处理。当在步骤S1908中判断为没有对页面所指定的布局调整算法时,通过步骤S1902、S1904、S1906、S1908的判断处理,全部被判断为“否”。此时,布局编辑应用程序121,将在步骤S1901中设定好的文档指定算法用于文档内的容器,结束流程。
通过以上的解析处理,优先将对图30所示的分层结构的下层所设定的状态设定于容器。
[再计算处理流程]
图20是表示本实施例的布局再计算处理(步骤S1808)的流程图。
首先,在步骤S2001中,布局编辑应用程序121选择标记。标记是指容器框线,为了确定移动容器的哪条边而进行选择。在此选择出的框线,是容器的可移动的边。
然后,在步骤S2002中,布局编辑应用程序121计算应力(tension)。应力对应于计算用的基准尺寸与当前的容器尺寸的差。另外,计算用的基准尺寸和当前的容器尺寸的差的计算方法,在每个布局调整算法中不同。在布局计算中,通过不断缩小该差(不断减小应力)来不断确定布局。此外,如上所述,计算用的基准尺寸根据应用的布局调整算法而变化,被暂时保存在存储器136中。进而,由于当前的容器尺寸也暂时保存在存储器136中,因此,布局编辑应用程序,可以在步骤S2002中通过参照存储器136进行应力的计算。
在步骤S2003中,布局编辑应用程序121根据在步骤S2002中计算出的应力来移动标记。另外,移动后的位置信息(坐标值等)和标记的移动已经结束这一情况被保存在存储器136中。
在步骤S2004中,检查是否选择了所有标记。所有标记是指所有容器的边(框),进行链接组内所有容器的应力计算,并对是否进行了标记移动进行检查。由于移动处理结束这一情况已被保存在存储器136中,因此,布局编辑应用程序能够通过参照存储器136,判断在步骤S2003中进行标记的移动处理的情况。另外,如果存在未选择的标记则进入步骤S2001,反复进行选择未选择的标记及步骤S2002以后的处理。当选择完所有标记时结束流程。
[各种布局调整算法的计算方法]
接着,说明在步骤S2002、S2003执行的几个布局调整算法的计算方法。在以下的记载中沿1个方向(横向)对容器进行布局调整,但在沿纵向进行布局调整时也与之相同。另外,当然也可以扩展为沿2个方向(纵向横向)对容器进行布局调整的处理,作为1个算法的计算方法可以列举采用上述的最小二乘法的计算方法。此外,用于调整容器布局的布局调整算法不限于本实施例所示的算法。
图21A~图21C是说明内容优先的布局调整算法的图。如图21A所示,存在容器2101和容器2102,它们通过链接2103建立了关联。各容器中存在从数据库插入的数据(内容),容器2101中被插入了内容2104,容器2102中被插入了内容2105。当前的容器2101的宽度尺寸(插入内容2104之前容器的宽度尺寸)为5,当前的容器2102的宽度尺寸(插入内容2105之前容器的宽度尺寸)为7。内容2104的宽度尺寸为8,内容2105的宽度尺寸为4。
在内容优先的布局调整算法中,基于这些信息进行布局计算。如上所述,在内容优先的布局调整算法中,将内容尺寸视为计算用的基准尺寸,不断对容器尺寸进行布局调整。在布局计算中,通过对当前的容器进行布局调整,以使当前的容器尺寸(容器2101、容器2102)与计算用的基准尺寸(内容2104、内容2105)的差(应力)缩小,从而使之接近计算用的基准尺寸。
图21B表示应力的计算处理。如图21B所示,容器2101的应力T1为8-5=3,容器2102的应力T2为7-4=3。由此,该链接组的应力合计为6。
为了减小该应力而进行了标记移动的结果如图21C所示。这里,容器2101的尺寸变成8,容器2102的尺寸变成4,都达到了计算用的基准尺寸(内容2104的尺寸8和内容2105的尺寸4)。即,基于布局计算的布局结果的应力变成0。由此,在使用了内容优先的布局调整算法时,优先考虑内容的大小以确定容器尺寸。
图22A~图22C是说明容器·内容优先的布局调整算法的图。设计是指用户在布局生成模式下生成了容器和链接时的状态(基本布局)。设计尺寸是生成这些对象时(设计时)的尺寸。
如图22A所示,存在容器2201和容器2202,它们通过链接2203建立了关联。各容器中存在从数据库插入的数据(内容),容器2201中插入了内容2204,容器2202中被插入了内容2205。当前的容器2201的宽度尺寸(插入内容2204之前容器的宽度尺寸)为5,当前的容器2202的宽度尺寸(插入内容2205之前容器的宽度尺寸)为7。内容2204的宽度尺寸为8,内容2205的宽度尺寸为4。此外,还存在设计时的容器尺寸2206和2207。
即,在图22A的例子中,作为基本布局用户将容器2201和容器2202的宽度尺寸设定为6。然后,在例如插入了最初的记录中的内容数据之后进行布局计算,将容器尺寸变更为当前的尺寸(容器2201为5,容器2202为7)。
在该状态下,接着使用容器·内容优先的布局调整算法执行布局计算,要插入这样的记录的状态示于图22A。
在容器·内容优先的布局调整算法中,考虑内容尺寸、当前的容器尺寸以及设计时(基本布局时)的容器尺寸进行布局计算。如上所述,在容器·内容优先的布局调整算法中,除了内容尺寸外,还将设计尺寸视为计算用的基准尺寸,不断对容器尺寸进行布局调整。即,在布局计算中,通过对当前的容器进行布局调整,以使当前的容器尺寸(容器2201、容器2202)与内容尺寸(内容2204、内容2205)的差(应力),以及当前的容器尺寸(容器2201、容器2202)与设计尺寸(设计尺寸2206、设计尺寸2207)的差缩小,从而使之接近计算用的基准尺寸。
图22B表示应力的计算处理。各容器的应力如下所述。
关于容器2201,内容尺寸与当前的容器尺寸的应力(T1)为|8-5|=3,设计尺寸与当前的容器尺寸的应力(T3)为|5-6|=1。此外,关于容器2202,内容尺寸与当前的容器尺寸的应力(T2)为|4-7|=3,设计尺寸与当前的容器尺寸的应力(T4)为|6-7|=1。由此,该链接组的应力合计为3+1+3+1=8。
为了减小该应力而进行了标记移动的结果,是图22C所示的状态。
这里,容器2201的尺寸为7,容器2202的尺寸为5。由此,进行完布局的应力,关于容器2201,与内容尺寸的应力(T1)变成|8-7|=1,与设计尺寸的应力(T3)变成|6-7|=1。此外,关于容器2202,与内容尺寸的应力(T2)为|4-5|=1,与设计尺寸的应力(T4)为|6-5|=1。由此,该链接组的应力合计为1+1+1+1=4。此时,没有达到应力为0的状态,但由于至此已没有减小应力的计算方法,因此,结束布局计算。
这样,内容尺寸、设计尺寸一般是不同的尺寸,在为了使其满足内容尺寸和设计尺寸两者而对容器进行布局调整时,应力一般不为0。因此,移动标记以使应力最小,并将其作为布局结果。由此,在使用了容器·内容优先的布局调整算法时,能够取得斟酌了内容的大小和设计时的容器尺寸这两者的布局结果。
图23A~图23C是说明基本设计优先的布局调整算法的图。在本实施例中,基本设计优先,是仅将设计时的尺寸作为计算用的基准尺寸进行布局计算的方法。
如图23A所示,存在容器2301和容器2302,它们通过链接2303建立了关联。各容器中存在从数据库插入的数据(内容),容器2301中被插入了内容2304,容器2302中被插入了内容2305。当前的容器2301的宽度尺寸(插入内容2304之前容器的宽度尺寸)为5,当前的容器2302的宽度尺寸(插入内容2305之前容器的宽度尺寸)为7。内容2304的宽度尺寸为8,内容2305的宽度尺寸为4。此外,还存在设计时(基本布局)的容器尺寸2306和2307。设计时的容器尺寸2306和2307为6。
在基本设计优先的布局调整算法中,基于这些尺寸中的当前的容器尺寸和设计尺寸的信息,进行容器的布局调整。由此,在布局计算中,对当前的容器进行布局调整,以使当前的容器尺寸(容器2301、容器2302)与计算用的基准尺寸(设计尺寸2306、设计尺寸2307)的差(应力)缩小,从而使之接近计算用的基准尺寸。
图23B表示进行应力计算的状态。容器2301与计算用的基准尺寸的应力(T3)为6-5=1。容器2312与计算用的基准尺寸的应力(T4)为7-6=1。由此,该链接组的应力合计为1+1=2。
图23C说明了为了减小上述应力而进行了标记移动的结果,示出容器2301、容器2302以及内容2304、内容2305的调整后的状态。这里,容器2301的尺寸变成6,容器2302的尺寸变成6。由此,布局调整后,容器2301与计算用的基准尺寸的应力为6-6=0,并且,容器2302与计算用的基准尺寸的应力为6-6=0。由此,该链接组的应力合计为0+0=0。即,通过该布局结果达到了计算用的基准尺寸。
另外,在使用了基本设计优先的布局调整算法时,不管内容的大小如何,都优先考虑用户进行设计时的大小来确定容器尺寸。
但是,由于该布局调整算法完全与内容的大小无关,因此,便没有布局计算中的可变要素。即,容器总是设计时的大小。由此,基本设计优先的布局调整算法,在链接组内通过与其它布局调整算法一起使用来发挥作用。
图24A~图24C是说明在1个链接组内、分别对各容器设定基本设计优先的布局调整算法和内容优先的布局调整算法时的布局计算处理的图。
如图24A所示,存在容器2401和容器2402,它们通过链接2403建立了关联。另外,对容器2401设定了基本设计优先,对容器2402设定了内容优先。各容器中存在从数据库插入的数据(内容),容器2401中插入了内容2404,容器2402中插入了内容2405。当前的容器2401的宽度尺寸为|a-b|=5,当前的容器2402的宽度尺寸为|e-h|=7。内容2404的宽度尺寸为|a-d|=8,内容2405的宽度尺寸为|g-h|=4。此外,还存在设计时的容器尺寸2406和2407。设计时的容器尺寸2406和2407均为6。
如图24B所示,对容器2401所设定的布局调整算法是基本设计优先。因此,在布局计算中使用当前的容器尺寸(容器2401)与设计尺寸(设计尺寸2406)的差(应力T1)。另外,由于对容器2402设定了内容优先的布局调整算法,因此,使用当前的容器尺寸(容器2402)与内容尺寸(内容2405)的差(应力T2)。通过使这些应力减小,对当前的容器进行布局调整,从而使之接近计算用的基准尺寸。
在图24B中,容器2401的应力,为容器2401的设计尺寸(6)与当前的容器尺寸(5)的应力T1=|b-c|=1。另外,容器2402的应力,为当前的容器尺寸(7)与内容尺寸(4)的应力T2=|e-g|=3。由此,该链接组的应力合计为T1+T2=|b-c|+|e-g|=4。
图24C表示为了减小上述应力而进行了标记移动的结果。这里,容器2401的尺寸变成|a-b|=7,容器2402的尺寸变成|e-h|=5。由此,在布局结果中,容器2401的应力变成设计尺寸(6)与当前的容器尺寸(7)的应力T1=|b-c|=1。此外,容器2402的应力变成当前的容器尺寸(5)与内容尺寸(4)的应力T2=|e-g|=1。由此,该连接组的应力合计为T1+T2=2。此时,没有达到应力为0的状态,但由于至此已不能再减小应力,因此,结束布局计算。这样,就使图24C中的容器2401的尺寸(7)接近设计时的尺寸(6)、使图24C中的容器2402的尺寸(5)接近所插入的内容的尺寸(4)地完成了布局。
这样,基本设计优先的布局调整算法在与其它布局调整算法一起使用时会发挥作用。此外,能够对各容器应用各种布局调整算法,从而能够满足用户提出的各种布局需求。另外,在前面说明了基本设计优先和内容优先的组合,当然也可以是其它组合。此外,当链接组中存在至少3个容器时,按照上述2个容器时的计算处理来进行处理即可。
接着,说明各布局算法的计算方法。对可变容器设定该布局算法。由于固定容器不管应用哪种布局算法都根本不会发生容器尺寸的变更,因此,即使应用本申请的布局算法也不能执行布局变更处理。固定容器的布局位置,在通过链接与可变容器相连接时有可能会发生变更。
[第1布局算法(考虑内容尺寸)]
用图32说明第1布局算法。第1布局算法,因为以内容尺寸为计算用的基准尺寸进行计算,因此,为“内容优先布局的算法”。在图32中,3201~3203是设计时的基本容器。3205~3207是插入到各容器中的内容。此外,3204是对各容器建立关联的链接,设图32的链接为固定链接。3208~3210表示应用了第1布局算法(内容优先布局的算法)的结果。
3201~3203所示的容器A、B、C通过固定链接3204建立了关联。各容器和链接的水平方向的尺寸如图所示,在水平方向具有合计为57的尺寸。在该布局中容器A的左边和容器C的右边的位置被设定为固定。因此,水平方向的合计57的值是固定的。当在该布局中向各容器插入3205~3207所示的内容A′、B′、C′时,产生应力(布局的负荷)。
各内容都具有实际尺寸。假设各内容的实际尺寸如图所示(A′为17、B′为13、C′为27)。在内容是文本时,根据对作为数据的插入目的地的容器所设定的字体大小、纵横尺寸的可变/固定、最大值/最小值等,确定计算用的基准尺寸。此外,在内容是图像时,该图像数据的尺寸(纵横像素数)就是实际尺寸。为了在将该内容插入到容器中之后以实际尺寸对所有内容进行布局,需要使水平尺寸为17+5+13+7+27=69,但该布局的水平尺寸被固定为57。因此,69-57=12成为该布局的应力。
接着,向各容器分配上述应力。在本申请的布局算法中,进行计算以使该应力在各容器中均匀,此时所采用的方法的一个例子是最小二乘法。首先,第1布局算法中各容器的应力的计算方法为:
T=|布局后的尺寸-内容尺寸| ...(1)
由于应力的值未必限于正值,因此,需要使用绝对值。
进而,使用式(1)对各容器所计算出的T的合计,为作为当前对象的集合的合计应力。在此,用图32进行说明。
当设各容器的计算后的尺寸为a、b、c时,为了适当分配由各容器产生的应力,最后进行以下的计算处理:
t=(a-17)2+(b-13)2+(c-27)2 ...(2)
其中,t是用于计算各容器的应力的平均值的变量。当该变量t取最小值时,为各容器的应力均匀的状态。
图32的布局,是单纯的布局且没有进行优先度的设定,因此,即使不使用式(2),也能将变量t为最小值的条件表示为:
|a-17|=|b-13|=|c-27| ...(3)
进而,根据计算后的布局的尺寸,
a+5+b+7+c=57 ...(4)
由式(3)和式(4)可以求出各容器的计算后的尺寸。在此,计算出a=13,b=9,c=23。由此,计算内容与计算结果的差,则各容器的差成4。即,各容器产生的应力为4,计算后的各容器(3208~3210)A”、B”、C”的尺寸如图所示。
但是,由于在图32的情况下利用式(3)和式(4)进行了计算,因此,即使不使用由式(2)记述的最小二乘法也能计算布局结果。这是因为图32的布局是单纯的布局。即,取决于所生成的模板,有时最好使用式(2)的最小二乘法。使用图33说明该例子。
在图33那样的布局中,说明使用了最小二乘法的计算方法及结果、和不使用上述最小二乘法时的计算方法及结果。另外,在图33中,假设对容器A输入尺寸为15的内容,对容器B输入尺寸为25的内容,对容器C输入尺寸为5的内容。设当前的容器A和容器B的尺寸为10、容器C的尺寸为9。由于在以下的说明中以第1布局算法为对象,因此,计算用的基准尺寸为内容尺寸。此外,设3302与3301的距离为23。另外,在图33中,假定容器A的左边和容器B的右边的位置被设定为固定,因此,3302与3301的距离固定。设对各容器建立了关联的固定链接3307的尺寸为1。
(1)不使用最小二乘法的情况
在不使用最小二乘法时,判断对各容器进行了布局计算之后的容器尺寸是否大于计算用的基准尺寸。在图33的情况下,需要考虑各容器的布局位置和约束条件(3301和3302固定)以及内容尺寸。由于容器A的左边固定右边可变,因此,可以向右变更尺寸并进行移动。进而,插入到容器A3303和容器B3304中的内容尺寸的合计值(=35)大于上述约束条件(3301~3302的距离=23)。即,可以判断为必须缩小插入到容器A和容器B中的各内容数据。由此,可以判断为布局计算后的容器A的尺寸a小于计算用的基准尺寸(=15)。同样地,通过对容器B进行解析,可以判断为容器B也小于计算用的基准尺寸(=25)。
另一方面,仅根据当前的布局位置和约束条件以及内容尺寸,无法预测容器C的布局计算后的容器尺寸。由此,在图33的布局中,在容器C的计算后的尺寸大于计算用的基准尺寸(容器C的尺寸=5)时、和小于计算用的基准尺寸的情况下,需要进行布局计算。
首先,假定容器C的计算后的尺寸大于计算用的基准尺寸的情况。此外,各容器的应力的计算式,使用|布局结果-计算用的基准尺寸|。另外,分别设各容器的布局后的值为a、b、c。进而,在图33中设3306为轴。由此,在图33的布局的情况下,本布局引擎,根据以该轴3306为界限在位于左侧的容器A和容器C中产生的应力、与在位于右侧的容器B中产生的应力相等的时刻的信息,计算布局结果。当按照以上方法生成计算式时,变成以下那样。
|a-15|+|c-5|=|b-25|(条件:c>5) ...(5)
在图33的布局中,容器A的布局后的尺寸与1个固定链接的尺寸的和,等于容器C的布局后的尺寸与2个固定链接的尺寸和。并且,3302与3301的距离固定。按照上述要求产生以下的约束条件:
a+1=1+c+1 ...(6)
1+a+1+b+1=23 ...(7)
当按照上述条件对式(5)进行计算处理时,
15-a+c-5=25-b
15-a+(a-1)-5=25-(-a+20)
a=4
当使用计算结果和式(6)、式(7)时,计算得b=16,c=3。但是,式(5)的条件为c>5。即,计算结果c(=3)不满足式(5)的条件,因此式(5)被破坏。
接下来,首先假定容器C的计算后的尺寸小于计算用的基准尺寸。此时也需要以该轴3306为界限使在左边和右边产生的应力相等,因此可以使用式(5),但条件不同。其式子如式(8)所示。
|a-15|+|c-5|=|b-25|(条件:c<5) ...(8)
在此,当按照式(6)、式(7)对式(8)进行计算处理时,
15-a+5-c=25-b
15-a+5-(a-1)=25-(-a+20)
a=5.3...
进而,当使用计算结果和式(6)、式(7)时,计算出b=14.6...,c=4.3...。此时,由于满足了式(8)的条件(c<5),因此,通过式(8)计算出的值成为布局结果。在本申请中,将舍去小数点第1位以后的值作为布局结果,但不限于此。
(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)是关于a的二次函数。斜率(inclination)为正的二次函数的最小值是顶点的值。即,相当于斜率为0的直线与式(10)相切的值。由此,设斜率为0,以a对式(10)进行微分,使下述计算式成立:
0=2(a-15)-2(-a-5)+2(a-6)
求解该计算式得到a=5.3。将计算结果a代入(6)、式(7),计算出b=4.3,c=14.7。
即,使用最小二乘法计算出的布局结果和不使用最小二乘法计算出的布局结果相同。但是,在不使用最小二乘法时要分情况进行计算处理,因此,关于布局计算的处理负担增加。而在使用了最小二乘法时无需分情况进行计算处理,因此,可以容易地计算布局结果。这样,当对图33那样的复杂布局计算布局结果时,使用最小二乘法更有意义。此外,在图33中,由于轴3306为1个,因此能够分2种情况计算布局结果,但随着轴的增加,区分情况的条件也增加,由此,最小二乘法的有效性增加。
此外,通过使用内容优先布局的算法执行布局处理,以使各容器尺寸尽量接近内容尺寸,因此,内容优先布局的算法在要使用内容的实际尺寸进行布局处理时发挥作用。
[第2布局算法(考虑基本容器尺寸和内容尺寸)]
接下来,使用图34说明第2布局算法。其初始条件与图32相同。3401~3403是设计时的容器。3405~3407是插入到各容器中的内容。3404是对各容器建立关联的链接,设其为固定链接。此外,3408~3410是通过将第2布局算法应用于图34而计算出的布局计算结果。此外,第2布局算法,因为考虑到基本容器尺寸和内容尺寸,因此,设定为“容器·内容优先布局的算法”。
首先,第2布局算法中计算用的基准尺寸,是将各容器的尺寸和插入到各容器中的内容尺寸的和除以2而得到的值。
由此,容器A的计算用的基准尺寸为“16”,容器B的计算用的基准尺寸为“11.5”,容器C的计算用的基准尺寸为“23.5”
各容器的应力的计算方法为:
T=|布局后的尺寸-[(内容尺寸+基本容器尺寸)/2]|...(11)
然后,使用式(11)对各容器所计算出的T的合计,为作为当前对象的集合的合计应力。在此,用图34进行说明。
当设各容器的计算后的尺寸为a、b、c时,为了适当分配由各容器产生的应力,最好使用下式进行计算处理:
t=(a-16)2+(b-11.5)2+(c-23.5)2 ...(12)
图34的布局是单纯的布局且未设定优先度,因此,变量t最小的条件可以表示为:
|a-16|=|b-11.5|=|c-23.5| ...(13)
进而,利用计算后的布局的尺寸,可以表示为:
a+5+b+7+c=57 ...(14)
由式(13)和式(14)可以求出考虑到内容和基本容器时的各容器的计算后的尺寸,计算出a=14,b=9.5,c=16.5。由此,计算后的各容器(3408~3410)A”、B”、C”的各尺寸如图所示。
与第1布局算法相同在图34那样的布局的情况下,即使不使用最小二乘法也可以计算布局结果。但是,当对图33那样的布局应用第2布局算法时,也最好使用最小二乘法。
使用最小二乘法的计算方法,在将[(内容尺寸+基本容器尺寸)/2]的计算结果代入到计算用的基准尺寸之后,与内容优先布局的算法相同地进行处理即可,因此省略详细说明。
通过使用该第2布局算法,能够计算出考虑到基本容器尺寸和内容尺寸这两者的布局结果,因此,能够反映模板制作者的意图和内容制作者的意图。
[第3布局算法(考虑设计时的容器尺寸)]
在本申请中,除了上述第1布局算法、第2布局算法还有第3布局算法。该第3布局算法,在对通过链接与设定了第3布局算法的容器建立了关联的容器设定了第1布局算法或第2布局算法时,执行布局变更,以使插入到各容器中的内容尺寸接近设计时的基本容器尺寸。因此,第3布局算法,为基本设计优先布局算法。当对1个集合中包含的所有容器设定了第3布局算法时,进行尺寸变更,以使插入到各容器中的内容尺寸与基本容器尺寸一致。即,即使不进行第1布局算法、第2布局算法那样的计算处理,也可以计算出布局结果。但是,当在1个集合中设定了第3布局算法和其他布局算法时,必须进行计算处理。关于该计算处理使用图33进行说明。
由于图33的初始条件已经说明过故而省略。在此,对容器A、容器B设定了第1布局算法,对容器C设定了第3布局算法。另外,使用最小二乘法时的有效性已经在上面说明。由此,为了使该有效性发挥作用,在以下的说明中也围绕使用最小二乘法的情况进行说明。
容器A、容器B的计算用的基准尺寸为插入到各容器中的内容尺寸(容器A的计算用的基准尺寸为15,容器B的计算用的基准尺寸为25)。而由于对容器C设定了第3布局算法,因此,计算用的基准尺寸为基本容器尺寸(容器C的计算用的基准尺寸为9)。
结果,计算用于使各容器的应力均匀地分配的变量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)
根据与式(10)相同的理由,以a对式(16)进行微分,则
0=2(a-15)-2(-a-5)+2(a-10)
a=6.7 ...(26)
进而,利用计算结果和式(6)、式(7),计算出b=13.3,c=5.7。
由此,通过在1个集合中,应用例如内容优先布局的算法和基本设计优先布局的算法,能够对每个容器计算布局结果,使其接近内容尺寸或基本容器尺寸。即,能够计算出按每个容器反映了模板制作者或内容尺寸制作者的意图的布局结果。
这样,基本设计优先布局的算法,通过在1个集合中组合使用其他布局算法来发挥其效果。
[UI设定例(之一)]
图25A~图25G是表示用于设定上述各种布局调整算法的用户界面(UI)例的图。
首先,按照用户的预定操作,显示用于指定应用布局调整算法的范围的对话框2500。根据在对话框2500中所选择的内容,显示对话框2501~2541所对应的对话框。
在图25A中,当在图25F的对话框2500中选择了“文档”时,为了选择应用于每个文档的布局调整算法而显示对话框2501。用户能够使用对话框2501选择对文档内的容器的布局调整算法。在对话框2501上,存在内容优先的布局2502、容器·内容优先的布局2503、基本设计优先2504的选项,用户选择任意的选项。在对话框2501上不存在图25B~图25E所示的“无指定”的选项,这是由于必须预先确定要作为文档的默认值使用的布局调整算法。这一点如以下说明的那样,是由应用策略(policy)决定的,在此,为了简便将无指定的选项排除在选择项之外。在对话框2501中选择出的布局调整算法对文档整体产生影响,但在实际进行布局计算时是否应用于文档内的所有容器,由应用策略来决定。关于“应用策略”,将在后述的“应用策略顺序”中详细说明。
在图25B中,显示在对话框2500中选择了“页面”时、用于指定要应用算法的页面或页面的范围的页面设定画面。当通过该页面设定画面设定页面和页面范围时,为了选择应用于每个页面的布局调整算法而显示对话框2511。
用户可以使用对话框2511对页面内的容器选择布局调整算法。
在对话框2511上,存在无指定2512、内容优先的布局2513、容器·内容优先的布局2514、基本设计优先2515的选项,用户能够选择任意的选项。
在对话框2511中选择出的布局调整算法,对打开该设定对话框时所指定的页面产生影响。在图25B中选择了无指定。
在图25C中,显示在对话框2500中选择了“区域”时、用于选择应用于每个区域的布局调整算法的对话框2521。另外,当对区域选择布局调整算法时,必须通过对话框2500,在选择了区域之后所显示的文档模板上指定区域。
用户能够用对话框2521对区域内的容器选择布局调整算法。在对话框2521上,存在无指定2522、内容优先的布局2523、容器·内容优先的布局2524、基本设计优先2525的选项,用户能够选择任意的选项。
在对话框2521中选择出的布局调整算法,对打开该设定对话框时所指定的区域内的容器产生影响。在图25C中选择了无指定。在实际进行布局计算时是否将该对话框2521的设定应用于区域内的所有容器,由后述的应用策略来决定。
在图25D中,显示在对话框2500中选择了“记录”时、用于选择记录的记录选择画面。为了选择应用于在该记录选择画面中所指定的每个记录的布局调整算法而显示对话框2531。用户能够用对话框2531对记录内的容器选择布局调整算法。在对话框2531上,存在无指定2532、内容优先的布局2533、容器·内容优先的布局2534、基本设计优先2535的选项,用户能够选择任意的选项。在对话框2531中选择出的布局调整算法,对打开该设定对话框时所指定的记录内的所有容器产生影响。
在图25D中选择了无指定。在实际进行布局计算时是否应用于与记录相关的所有容器,由后述的应用策略来决定。
在图25E中,显示在对话框2500中选择了“容器”时、用于选择容器的容器选择画面。为了选择应用于在该容器选择画面中选择出的每个容器的布局调整算法而显示对话框2541。用户能够用对话框2541对任意的容器选择布局调整算法。在对话框2541上,存在无指定2542、内容优先的布局2543、容器·内容优先的布局2544、基本设计优先2545的选项,用户能够选择任意的选项。在此选择出的布局调整算法,对打开设定对话框时所指定的容器产生影响。
在图25E中选择了无指定。在实际进行布局计算时是否将所指定的布局调整算法应用于该容器,由后述的应用策略来决定。当在对话框2500中选择了“容器组”时,显示用于选择容器组的容器组选择画面。为了选择应用于在该容器组选择画面中选择出的每个容器组的布局调整算法而显示图25G的对话框2551。由于关于对话框2551的选择处理等与上述相同,故而省略详细的说明。此外,容器组是指本申请中的通过链接建立了关联的集合。
如上所述,在图25A~图25E中所指定的布局调整算法,作为表示在文档、页面、区域、记录、容器等各范围内设定的布局调整算法的布局调整算法信息,保存在存储器136、存储设备139等中。由此,布局编辑应用程序,能够通过参照存储器136或存储设备139执行流程图19的判断处理。
当利用以上那样的图25A~图25G的UI设定布局调整算法时,以图30所示的分层结构设定好的布局调整算法,被存储在存储器136或存储设备139中。
[应用策略]
如在应用布局调整算法的解析流程(图19)中说明的那样,应用策略按照文档的设定、页面的设定、记录的设定、区域的设定、容器的设定的顺序进行应用。即,应用布局调整算法的单位越小,优先顺序被设定得越高,越优先用于布局计算。此外,就图30的分层结构而言,层级越低设定内容的优先顺序越高,越优先用于布局计算。
图26表示在某文档中、利用按各单位设定好的布局调整算法、最终各容器的设定将变成什么样。
该设定内容是由图30的分层结构得到的。如图30所示,在该文档中设定了“内容优先”。由此,对该文档内的所有容器,将“内容优先”的布局调整算法设定为默认值。
接着,在页面单位中,可以清楚对第1页面2611设定“容器·内容优先”,对第2页面2621和第3页面2631设定“内容优先”。在第1页面2611中没有用比它还小的单位进行的布局计算设定,因此,第1页面内的所有容器(容器2612、容器2613、容器2614)的应用布局调整算法为“内容优先”。
在第2页面2621内,对多个记录进行了布局调整算法的设定。在第2页面内,采用了向1个页面内插入多个记录的内容数据的多记录功能。即,向第2页面的链接组2622插入第1记录的内容数据,向链接组2623插入第2记录的内容数据,向链接组2624插入第3记录的内容数据。
然后,对插入了第1记录的链接组2622和插入了第3记录的链接组2624设定“内容优先”,对链接组2623设定“容器·内容优先”。
在第2页面2621内不存在比记录单位更小的单位的设定。因此,对链接组2623内的所有容器应用“容器·内容优先”,而对链接组2622、2624内的所有容器应用“内容优先”。
接着,在第3页面2631上存在用户所指定的选择区域2637,并对该选择区域2637指定了“基本设计优先”。进而,对选择区域内的容器2635直接指定了与选择区域2637不同的布局调整算法(“内容优先”)。由此,对选择区域2637内的容器2634、容器2636应用“基本设计优先”,对容器2635应用“内容优先”。此外,对第3页面2631中存在的选择区域2637以外的容器2632、容器2633,应用对该页面所设定的“内容优先(2639)”。
通过以上说明可以清楚,优先应用在图30中设定在下层的布局调整算法。
[UI设定例(之二)]
图27是表示用于设定布局调整算法的另一用户界面例的图。例如,明确表示了以下的布局调整算法:根据图30所示的算法信息取得对各容器设定好的布局调整算法,如图27所示通过使用多种网格来对各容器进行设定。利用这样的UI,对各容器所设定的布局调整算法将一目了然,此外,能够容易地对各容器指定布局调整算法。
在具有标题栏2802和工具栏2803的典型的窗口2801上,显示位于主窗口2804的页面2805和在其上布局好的容器。此外,还显示了页面内的边缘区域2806的线。而且,存在托板2811,能够用托板2811指定主窗口上的容器的布局调整算法。例如,当要对容器B应用内容优先的布局调整算法时,进行将标记2812拖拽到容器B内并放下的作。同样地,在容器·内容优先的布局调整算法的情况下使用标记2814,在基本设计优先的布局调整算法的情况下使用标记2818。在各容器的显示中,按照设定好的布局调整算法的种类使容器的网格种类不同,因此,一眼就能判断各容器使用哪种布局调整算法。
当然,还可以指定区域后再设定布局调整算法。例如,通过鼠标
作在UI上描绘仅将容器C、D、E包括在内的矩形,从而容器C、D、E变为选择状态。然后,应于所希望的布局调整算法的标记(2812、2814、2818)拖拽变为选择状态的多个容器中的任意一个中并放下。通过这样的作能够统一地对选择区域内的所有容器设定布局调整算法。另外,通过区域的指定得到的图30的分层结构的区域的部分,按照变更后的结构变更。此外,如果对属于某个区域的容器,进行布局调整算法指定,或者进行使属于某个区域的容器属于另一区域的区域指定,则该容器所属的区域的捆绑被解除。
此外,在图27的UI中,指定了内容优先的布局调整算法的容器,列表显示在列表框2813内。此外,指定了容器·内容优先的布局调整算法的容器,列表显示在列表框2817内,指定了基本设计优先的布局调整算法的容器,列表显示在列表框2819内。此外,在容器·内容优先的布局调整算法中,存在输入设计影响力(power)2815和内容影响力2816的编辑框,对此将在后述的“算法优先度”中详细说明。用户能够一边观察这样的画面,一边简便地对各容器确定布局调整算法。
图28是表示用于显示图27的UI的处理的流程图。首先,在步骤S2701中,布局编辑应用程序121,识别来自用户的布局调整算法设定画面的显示指示,显示图27所示的布局调整算法设定画面。
接着,布局编辑应用程序121,检索对各容器所设定的布局调整算法(S2702)。具体而言,图30那样的分层信息保存在存储器136等中,因此,布局编辑应用程序121可以通过参照存储器136实现S2702的处理。
在步骤S2703中,布局编辑应用程序121,根据对各容器所设定的布局调整算法,显示各容器的网格、要填写的列表2813、2817、2819。这样,完成图27所示的界面显示。此外,用图27的UI对每个容器所设定的布局调整算法的信息,作为算法信息保存在存储器136、存储设备139等中。
[算法优先度]
容器·内容优先的布局调整算法,除了可以通过逐渐减小当前的容器尺寸与内容尺寸的差来导出布局结果外,还可以通过逐渐减小当前的容器尺寸与设计时的容器尺寸(设计尺寸)的应力来导出布局结果。由此,通过对各应力设定权重值,能够确定更接近内容尺寸和设计尺寸中的哪一个地进行布局。
在图29A~图29D中,说明在对容器2901和容器2902应用容器·内容优先的布局调整算法时,如何通过设定优先度来进行布局计算。
如图29A所示,存在容器2901和容器2902,通过链接2903对它们建立了关联。各容器中存在从数据库插入的数据(内容),容器2901中插入了内容2904,容器2902中插入了内容2905。
当前的容器2901的宽度尺寸为|a-b|=7,当前的容器2902的宽度尺寸为|e-h|=6。内容2904的宽度尺寸为|a-d|=8,内容2905的宽度尺寸为|g-h|=5。此外,还存在设计时的容器尺寸2906和2907。
对容器2901和容器2902设定了“容器·内容优先”。由此,在布局计算中使用当前的容器尺寸(容器2901)与内容尺寸(内容2904)的差(应力T1),以及当前的容器尺寸(容器2901)与设计尺寸(设计尺寸2906)的差(应力T3)。
此外,对容器2902设定了“容器·内容优先”,因此,使用当前的容器尺寸(容器2902)与内容尺寸(内容2905)的差(应力T2),以及当前的容器尺寸(容器2902)与设计尺寸(设计尺寸2907)的差(应力T4)。通过减小这些应力的合计,对当前的容器进行布局调整,来使之接近计算用的基准尺寸。
图29B表示出进行应力计算的状态。在容器2901的应力中,存在当前的容器尺寸(7)与内容尺寸(8)的应力T1=|b-d|=1,以及当前的容器尺寸(7)与设计尺寸(5)的应力T3=|b-c|=2。
此外,在容器2902中,存在当前的容器尺寸(6)与内容尺寸(5)的应力T2=|e-g|=1,以及设计尺寸(8)与当前的容器尺寸(6)的应力T4=|f-e|=2。
在此,如图29D所示,在属性2931和属性2934中,能够设定分别对容器A和容器B所设定的容器·内容优先的布局调整算法中的、设计影响力和内容影响力。在此所说的影响力具有与权重值相同的意思,是使之接近某尺寸的力。指的是例如使之接近设计尺寸的力,或者使之接近内容尺寸的力。在此设通常的影响力(权重值)为100%,如果值比100%大则影响力变强,即使之接近该尺寸的力增加。相反,如果值比100%小则影响力变弱,即使之接近该尺寸的力减弱。在布局计算的过程中,通过使影响力与应力相乘来实现布局计算。即,以该影响力的值(权重值)为基础使应力的比重发生变化,从而执行容器的布局调整。
在容器A中将设计影响力2932设定为100%,将内容影响力2933设定为50%,在容器B中同样将设计影响力2935设定为100%,将内容影响力2936设定为50%。即,在图29A~图29D的连接组中,使容器尺寸接近生成基本布局时的设计尺寸的力,有使之接近内容尺寸的力2倍强。
由此,该链接组的应力的合计为1/2×(T1+T2)+T3+T4=1/2×(|b-d|+|e-g|)+|b-c|+|f-e|=1/2×2+2+2=5。
图29C表示为了减小这样计算出的应力而进行了标记的移动的结果。在图29C中,容器2901的尺寸变成|a-b|=6,容器2902的尺寸变成|e-h|=7。由此,布局后的应力变成1/2×(T1+T2)+T3+T4=1/2×(|b-d|+|e-g|)+|b-c|+|f-e|=1/2×4+1+1=4。此时,无法达到应力为0的状态,但由于已经不能再减小应力了,因此结束布局计算。
如上所述,在上述例子中,以比内容尺寸更接近设计尺寸的形状对容器A、容器B进行了布局。这样就能够对布局调整算法应用优先度(也称作影响力或权重值),从而能够应对用户所提出的多种布局需求。
图35表示以上说明的自动布局系统(布局编辑应用程序121)的功能结构。在图35中,布局编辑应用程序121,执行按照在数据区域所描绘的内容数据自动变更具有该数据区域的模板的布局的布局处理。为了执行该布局处理,取得单元,从保存要用于数据区域的多个布局调整算法的保存单元中,取得要用于数据区域的布局调整算法。布局调整单元,在向数据区域插入内容数据时,按照由取得单元所取得的布局调整算法,调整数据区域的布局。然后,输出单元,在由布局调整单元调整后的数据区域,对内容数据进行布局并输出。
如以上说明的那样,根据上述实施例,在自动布局系统中,可以对各容器设定各种布局计算方法的布局调整算法。因此,即使在对多个容器建立了关联,一边相互施加影响一边使布局变化的情况下,也可以通过对各容器进行基于用户所希望的布局调整算法的尺寸计算,来生成用户想要的各种布局。进而,由于能够可视地表示设定好的布局调整算法,因此,用户将容易预测自动布局后的布局结果。
此外,在上述实施例中,多种计算方法算法的每一个,对数据区域进行布局调整以使数据区域与目标形状的差异变小,差异的计算过程因各布局调整算法而不同。由此,可以灵活进行反映了用户意图的布局调整。此外,即使在对建立了关联的多个容器进行布局调整时,也可以对容器进行布局调整,以使应用各布局调整算法而得到的差异(应力)的合计变小。 因此,容易应用于多个容器间的协商(negotiation)处理。
另外,本发明当然还可以通过以下方式实现,即:向系统或装置提供存储有实现上述实施例的功能的软件的程序代码的存储介质(或记录介质),该系统或装置的计算机(或CPU、MPU)读取并执行存储在存储介质中的程序代码。
这时,从存储介质读取的程序代码本身,实现上述实施例的功能,存储有该程序代码的存储介质构成本发明。此外,不仅有通过计算机执行所读取的程序代码实现上述实施例的功能的情况,当然还包括以下情况,即:按照该程序代码的指示,在计算机上运行的 作系统(OS)等进行实际处理的一部分或全部,通过该处理实现上述实施例的功能。
当然还包括以下情况:在将从存储介质读出的程序代码写入插入计算机的功能扩展卡或连接在计算机上的功能扩展单元所具备的存储介质后,按照该程序代码的指示,该功能扩展卡或功能扩展单元所具备的CPU等进行实际处理的一部分或全部,通过该处理实现上述实施例的功能。
另外,本发明当然还可以通过以下方式实现,即:通过网络分发实现上述实施例的功能的软件的程序代码,从而将其存储在系统或装置的硬盘、存储器等存储装置,或CD-RW、CD-R等存储介质中,该系统或装置的计算机(或CPU、MPU),读取并执行存储在该存储装置或该存储介质中的程序代码。
根据本发明,从多个布局调整算法中选用要应用的布局调整算法,调整数据区域的内容数据,因此,即使在处理多种内容数据的可变打印中,也可以取得用户所希望的输出结果。
在不脱离本发明的精神和范围的情况下,可以对本发明进行种种变更,本发明并不限于上述特殊的实施例,而由所附的权利要求来限定。
Claims (18)
1.一种布局处理方法,根据在数据区域中描绘的内容数据,动态地变更具有该数据区域的模板的布局,所述布局处理方法包括:
选择步骤,从多个布局调整算法中,选择要应用于上述数据区域的布局调整算法;
布局调整步骤,在向数据区域插入内容数据时,按照由上述选择步骤选择出的布局调整算法,调整上述数据区域的布局;以及
输出步骤,根据由上述布局调整步骤调整后的数据区域,布置上述内容数据并输出,
上述多个布局调整算法的每一个,调整数据区域的布局,使得数据区域和目标形状的差异减小,
上述多个布局调整算法包括以下算法中的至少两个,
第1算法,将依照在数据区域中描绘的内容数据的内容形状,作为上述目标形状,计算上述差异;
第2算法,将作为设计上述布局时的数据区域的形状的布局形状,作为上述目标形状,计算上述差异;以及
第3算法,将作为数据区域与上述内容形状的差异的第1差异、和作为数据区域与上述布局形状的差异的第2差异的合计,作为上述数据区域与目标形状的差异。
2.根据权利要求1所述的布局处理方法,其特征在于:
上述布局调整步骤,在调整通过链接建立了关联的多个数据区域的每一个的布局时,
对上述建立了关联的多个数据区域,分别按照由上述选择步骤选择出的布局调整算法计算上述差异,并调整该建立了关联的多个数据区域的每一个的布局,使得这些计算出的差异的合计为最小。
3.根据权利要求1所述的布局处理方法,其特征在于:
上述布局调整步骤,根据分别对上述第3算法中的上述第1差异和上述第2差异设定的权重值,调整数据区域的布局。
4.根据权利要求1所述的布局处理方法,其特征在于:
还包括提示步骤,显示用于对数据区域设定布局调整算法的用户界面,
将按照通过上述提示步骤所提示的上述用户界面的输入,对上述数据区域所设定的布局调整算法,保存在保存装置中。
5.根据权利要求4所述的布局处理方法,其特征在于:
上述用户界面,能够以预定范围为单位指定布局调整算法,
以各预定范围为单位设定上述布局调整算法,上述预定范围包括文档、构成该文档的页面、包含在该页面内的区域、数据区域。
6.根据权利要求5所述的布局处理方法,其特征在于:
上述选择步骤,按照每个上述预定范围的优先顺序,选择要应用于上述数据区域的布局调整算法。
7.根据权利要求6所述的布局处理方法,其特征在于:
上述用户界面具有以下功能:显示页面上的数据区域的布局状态,使用户对从所显示的数据区域中指定的数据区域设定所希望的布局调整算法。
8.根据权利要求4所述的布局处理方法,其特征在于:
上述用户界面,向用户可视地表示对数据区域所设定的布局调整算法。
9.根据权利要求1所述的布局处理方法,其特征在于:
还包括设定步骤,能对每个数据区域设定任意的布局调整算法。
10.一种信息处理装置,根据在数据区域中描绘的内容数据,动态地变更具有该数据区域的模板的布局,所述信息处理装置包括:
取得装置,从保存要应用于上述数据区域的多个布局调整算法的保存装置中,取得要应用于上述数据区域的布局调整算法;
布局调整装置,在向数据区域插入内容数据时,按照由上述取得装置所取得的布局调整算法,调整上述数据区域的布局;以及
输出装置,根据由上述布局调整装置调整后的数据区域,布置上述内容数据并输出,
上述多个布局调整算法的每一个,调整数据区域的布局,使得数据区域和目标形状的差异减小,
上述多个布局调整算法包括以下算法中的至少两个,
第1算法,将依照在数据区域中描绘的内容数据的内容形状,作为上述目标形状,计算上述差异;
第2算法,将作为设计上述布局时的数据区域的形状的布局形状,作为上述目标形状,计算上述差异;以及
第3算法,将作为数据区域与上述内容形状的差异的第1差异、和作为数据区域与上述布局形状的差异的第2差异的合计,作为上述数据区域与目标形状的差异。
11.根据权利要求10所述的信息处理装置,其特征在于:
上述布局调整装置,在调整通过链接建立了关联的多个数据区域的每一个的布局时,
对上述建立了关联的多个数据区域,分别按照由上述取得装置所取得的布局调整算法计算上述差异,并调整该建立了关联的多个数据区域的每一个的布局,使得这些计算出的差异的合计为最小。
12.根据权利要求10所述的信息处理装置,其特征在于:
上述布局调整装置,根据分别对上述第3算法中的上述第1差异和上述第2差异设定的权重值,调整数据区域的布局。
13.根据权利要求10所述的信息处理装置,其特征在于:
还包括提示装置,提示用于对数据区域设定布局调整算法的用户界面,
将按照通过上述提示装置所提示的上述用户界面的输入,对上述数据区域所设定的布局调整算法,保存在上述保存装置中。
14.根据权利要求13所述的信息处理装置,其特征在于:
上述用户界面,能够以预定范围为单位指定布局调整算法,
以各预定范围为单位设定上述布局调整算法,上述预定范围包括文档、构成该文档的页面、包含在该页面内的区域、数据区域。
15.根据权利要求14所述的信息处理装置,其特征在于:
上述取得装置,按照每个上述预定区域的优先顺序,取得要应用于上述数据区域的布局调整算法。
16.根据权利要求15所述的信息处理装置,其特征在于:
上述用户界面具有以下功能:显示页面上的数据区域的布局状态,使用户对从所显示的数据区域中指定的数据区域设定所希望的布局调整算法。
17.根据权利要求13所述的信息处理装置,其特征在于:
上述用户界面,向用户可视地表示对数据区域所设定的布局调整算法。
18.根据权利要求10所述的信息处理装置,其特征在于:
还包括设定装置,能对每个数据区域设定任意的布局调整算法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061063 | 2005-03-04 | ||
JP061063/2005 | 2005-03-04 | ||
JP048014/2006 | 2006-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1828518A CN1828518A (zh) | 2006-09-06 |
CN100389384C true CN100389384C (zh) | 2008-05-21 |
Family
ID=36946936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100583528A Expired - Fee Related CN100389384C (zh) | 2005-03-04 | 2006-03-03 | 布局处理方法及信息处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100389384C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117290B (zh) * | 2009-12-30 | 2015-03-18 | 北京搜狗科技发展有限公司 | 一种展现网页中页面元素的方法及系统 |
US10154163B2 (en) | 2011-06-29 | 2018-12-11 | Markem-Imaje Holding | Dynamic user interface |
JP2014527921A (ja) * | 2011-06-29 | 2014-10-23 | マーケム−イマージュ ホールディング | 動的ユーザインタフェース |
CN102982358A (zh) * | 2011-09-05 | 2013-03-20 | 北大方正集团有限公司 | 输出条码图像的方法和装置 |
CN102360274A (zh) * | 2011-09-30 | 2012-02-22 | 上海慧谋网络科技有限公司 | 一种可变数据打印的模板实现装置及其应用方法 |
KR102193821B1 (ko) * | 2012-08-29 | 2020-12-22 | 세이코 엡슨 가부시키가이샤 | 기록 장치 및 데이터 생성 방법 |
CN105260351B (zh) * | 2015-09-10 | 2018-05-01 | 武汉改图网技术有限公司 | 一种基于自适应模版的印刷品在线自助设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845303A (en) * | 1994-12-06 | 1998-12-01 | Netpodium, Inc. | Document processing using frame-based templates with hierarchical tagging |
US5953733A (en) * | 1995-06-22 | 1999-09-14 | Cybergraphic Systems Ltd. | Electronic publishing system |
JP2004015215A (ja) * | 2002-06-04 | 2004-01-15 | Seiko Epson Corp | レイアウト制御装置およびそのプログラム並びにレイアウト制御方法 |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
-
2006
- 2006-03-03 CN CNB2006100583528A patent/CN100389384C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845303A (en) * | 1994-12-06 | 1998-12-01 | Netpodium, Inc. | Document processing using frame-based templates with hierarchical tagging |
US5953733A (en) * | 1995-06-22 | 1999-09-14 | Cybergraphic Systems Ltd. | Electronic publishing system |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
JP2004015215A (ja) * | 2002-06-04 | 2004-01-15 | Seiko Epson Corp | レイアウト制御装置およびそのプログラム並びにレイアウト制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1828518A (zh) | 2006-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100392653C (zh) | 信息处理装置及其控制方法 | |
CN100407195C (zh) | 布局处理方法、信息处理装置 | |
CN100545798C (zh) | 布局调整方法和装置 | |
CN100407125C (zh) | 布局控制装置和布局控制方法 | |
CN100389384C (zh) | 布局处理方法及信息处理装置 | |
JP4332480B2 (ja) | レイアウト調整方法及び装置並びにプログラム | |
KR100818860B1 (ko) | 정보 처리 장치와 그 제어 방법 및 기록 매체 | |
KR100725889B1 (ko) | 가변 데이터 문서들의 생성 및 편집을 위한 사용자인터페이스 | |
CN100458780C (zh) | 布局处理方法、装置以及程序 | |
US8332743B2 (en) | Layout decision method, apparatus, and program | |
CN100421103C (zh) | 信息处理装置和信息处理方法 | |
US7831909B2 (en) | Information processing apparatus, control method therefor, and program with display based on change amount of field areas | |
KR100721496B1 (ko) | 레이아웃 제어 방법 및 레이아웃 제어 장치 | |
JP4208858B2 (ja) | レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム | |
JP4912139B2 (ja) | 情報処理装置 | |
JP2006277727A (ja) | レイアウト処理方法、情報処理装置及びコンピュータプログラム | |
EP1560125A2 (en) | Automatic document layout | |
JP2007048003A (ja) | 情報処理装置及びその制御方法、プログラム | |
JP2006050445A (ja) | レイアウト調整方法及び装置並びにプログラム | |
CN1959678B (zh) | 信息处理方法及其设备 | |
CN1991740B (zh) | 打印系统、打印数据提供装置、其控制方法 | |
JP4250577B2 (ja) | 情報処理装置、情報処理方法、ならびにプログラム | |
JP4241551B2 (ja) | 情報処理装置、情報処理方法、ならびにプログラム | |
JP2006074225A (ja) | レイアウト調整方法及び装置並びにプログラム | |
JMP et al. | Essential Graphing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CI02 | Correction of invention patent application |
Correction item: Priority Correct: 2006.02.24 JP 048014/2006 False: Lack of priority second Number: 36 Page: The title page Volume: 22 |
|
COR | Change of bibliographic data |
Free format text: CORRECT: PRIORITY; FROM: MISSING THE SECOND ARTICLE OF PRIORITY TO: 2006.2.24 JP 048014/2006 |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080521 |
|
CF01 | Termination of patent right due to non-payment of annual fee |