CN100409169C - 文档处理装置和文档处理方法 - Google Patents
文档处理装置和文档处理方法 Download PDFInfo
- Publication number
- CN100409169C CN100409169C CNB2006100582493A CN200610058249A CN100409169C CN 100409169 C CN100409169 C CN 100409169C CN B2006100582493 A CNB2006100582493 A CN B2006100582493A CN 200610058249 A CN200610058249 A CN 200610058249A CN 100409169 C CN100409169 C CN 100409169C
- Authority
- CN
- China
- Prior art keywords
- data
- content
- layout
- document
- subtemplate
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 title claims description 200
- 238000000034 method Methods 0.000 claims description 97
- 230000008859 change Effects 0.000 claims description 69
- 238000007639 printing Methods 0.000 claims description 42
- 238000000605 extraction Methods 0.000 claims description 33
- 238000005204 segregation Methods 0.000 claims description 25
- 238000000926 separation method Methods 0.000 claims description 12
- 230000008676 import Effects 0.000 claims description 11
- 230000036961 partial effect Effects 0.000 claims description 11
- 230000014509 gene expression Effects 0.000 abstract description 50
- 230000000875 corresponding effect Effects 0.000 description 60
- 230000008569 process Effects 0.000 description 55
- 230000006870 function Effects 0.000 description 40
- 238000004364 calculation method Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 21
- 238000011282 treatment Methods 0.000 description 17
- 230000000295 complement effect Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000002203 pretreatment Methods 0.000 description 11
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011369 optimal treatment Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000005549 size reduction Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47D—FURNITURE SPECIALLY ADAPTED FOR CHILDREN
- A47D13/00—Other nursery furniture
- A47D13/04—Apparatus for helping babies to walk; Baby walkers or strollers
- A47D13/043—Baby walkers with a seat
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62B—HAND-PROPELLED VEHICLES, e.g. HAND CARTS OR PERAMBULATORS; SLEDGES
- B62B7/00—Carriages for children; Perambulators, e.g. dolls' perambulators
- B62B7/04—Carriages for children; Perambulators, e.g. dolls' perambulators having more than one wheel axis; Steering devices therefor
- B62B7/042—Steering devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62B—HAND-PROPELLED VEHICLES, e.g. HAND CARTS OR PERAMBULATORS; SLEDGES
- B62B2301/00—Wheel arrangements; Steering; Stability; Wheel suspension
- B62B2301/08—Wheel arrangements; Steering; Stability; Wheel suspension comprising additional wheels to increase stability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
一种文档处理装置和文档处理方法,其具有按记录改变布局的对应于多记录的自动布局功能。基于模板上设置的流动区域中定义的条件式,确定应当排列内容数据的子模板。如果不能将排列内容数据的子模板布置在该流动区域内,则复制具有预定流动区域的页面。
Description
技术领域
本发明涉及一种文档处理装置和文档处理方法,该文档处理装置和文档处理方法使用自动布局功能通过在预定位置处布置例如数据库中登记的记录的字段来完成文档。
背景技术
近年来,因为由于商品种类的增多而造成的商品生命周期的缩短、由于广泛使用互联网消费者对定制服务的倾向性、以及其它因素,已经注意到对客户关系管理(customer relationshipmanagement,CRM)和一对一营销(one-to-one marketing)的需求。这些方法的目的在于增加客户的满意度,并获得和留住客户。
客户关系管理是通过根据基于客户数据库的各自需求采取措施来提高客户满意度,从而提高公司利润的一种方法。一对一营销是一种数据库营销,即将个人属性信息例如客户的年龄、性别、兴趣、爱好和购买历史组织为数据库、分析这些信息内容并根据客户需求提出建议的一种营销技术。该技术的应用的典型例子是可变打印。随着近来桌面印刷(desktop publishing,DTP)技术的发展和数字打印装置使用的普及,已经开发出能够按客户定制文档并输出所定制的文档的可变打印系统,而且对准备以最优的方式布置不同客户的不同内容量的文档的需求已上升。而且已出现对制作如下文档的需求,在该文档中,以最优方式对不同客户布置不同量的内容。
以前,在可变打印系统中,在文档上形成布局框(也称为“容器”),并将满足一定条件的数据库中的记录或字段作为容器的内容与每一容器相关联。通过该方式在布局和数据库之间建立关联以实现可变打印。
然而,在该传统可变打印系统中,文本和图像容器的大小是固定的,因此,如果数据量大于容器的大小,则当将来自数据库的数据插入容器中时,发生文本的重叠和图像的剪裁。另外,如果数据量小于容器的大小,则剩下空间。
日本特开平7-129658号公报公开了一种当某个字符区域大小增大时减小与该字符区域相邻的区域的大小的技术,作为用于解决这些问题的技术。在该文献中描述了一种随着将字符输入到字符区域中,增大该字符区域的大小并减小与该字符区域相邻的区域的大小的方法。
如上所述,存在能够根据输入文本量动态改变布局框(容器)的大小的传统自动布局技术。
日本特开2000-48216号公报(段落0025~0055,图2和11)公开了一种在页面的布局区域中布置多项商品信息(商品记录)的技术。
根据该技术,准备提前设置布局(商品名、图像、价格等的布局)的主组件(对应于本发明中的子模板),并对关于商品信息项应当使用哪个主组件进行设置。通过布置在所设置的主组件的预定区域中,将包括在商品信息中的数据(商品名、图像、价格等)顺序布置在页面中指定的布局区域中。在本说明书中,根据子模板来布置一个记录中的信息、并在流动区域(flow area)中顺序布置多个子模板的功能被称为多记录功能,并将该操作称为“在流动区域中排列子模板”。
在日本特开平7-129658号公报中公开的技术的说明包括随文本的输入而扩大字符区域的说明。然而,当增大字符区域的大小时,为了维持这些区域之间的间隔,减小了相邻区域。因此,存在随着所输入的文本量的增加,使相邻区域越来越小的问题。
日本特开平7-129658号公报没有公开有关可变打印系统的思想,例如上述在将数据库和布局区域相互关联的同时排列内容数据,以准备按客户定制的文档。
在日本特开2000-48216号公报中公开的技术需要事先设置对每一记录应当使用哪个主组件。如果例如记录的数量非常大,则随着记录的数量的增加,对该设置的操作数量也非常大,从而导致用户可操作性的降低。
考虑一些用户想要对具有相互相同的数据属性的记录使用相同的主组件。例如,在通过使用记录1~10准备文档、并且对记录2和5设置相同的价格数据的情况下,用户可能想要通过对记录中具有相同属性的记录2和5使用相同的主组件来准备文档。
在这种情况下,在日本特开2000-48216号公报中公开的技术需要提前设置对每一记录应当使用哪个主组件。对用户而言,需要在存储器中保持用于记录2的主组件,并且在对记录5设置主组件时根据他/她的记忆来选择主组件。然而,在准备普通小册子或目录册时,可假想记录的数量非常大,且使用数量增加的主组件。在这种情况下,不能说用户仅根据他/她的记忆选择主组件的过程是最适当的。
在日本特开2000-48216号公报中公开的技术在可靠性方面是不令人满意的,利用该技术,根据在布局区域中布置的记录的数量,将记录容纳在所指定的布局区域中。根据该技术,当仅设置一个页面的布局区域时,可以通过将记录移动到下一候选布局位置来布置该记录。然而,在目本特开2000-48216号公报中,没有给出在不能执行移动到下一候选布局位置的情况下的处理的说明。作为其结果,不能避免发生布置数据失败的问题。
作为在不能布置所有记录的情况下执行的一般处理,可以想到将待布置的数据按比例缩小的方法。然而,如果改变待布置的数据的大小,则存在不能获得根据用户需要的布局大小的可能性。
在用户准备用户的客户喜欢的小册子、目录册等的情况下,虽然提供改进的用户可操作性,但限于传统技术的技术在准备满足各种客户爱好的文档时也不是有效的。
另外,在传统多记录打印(通过在一个文档中布置多个记录来打印文档的功能)中,只能执行简单的一层级分隔(one-hierarchical-level division),即仅当改变记录中的特定项时才分隔文档。例如,当改变“客户姓名”项的内容时,关于“客户姓名”项的内容即按客户来分隔文档。另外,当改变“商品名”项的内容时,关于“商品名”项即按商品来分隔文档。在这种多记录打印中,不能在所期望的位置处例如在需要按商品插入分页(page break)的情况下,插入分隔文档(也称为换文档)。即,准备整齐的文档或具有所期望的分隔的文档是很困难的。
发明内容
考虑到上述问题,本发明的目的在于提供一种文档处理方法和装置,为了在维持适当的用户可操作性的同时,根据客户的爱好获取各种输出结果,该文档处理方法和装置具有对模板上的区域设置条件式(conditional expression)、布置基于该条件式提取的多种子模板记录数据、并在预定区域中布置子模板的自动布局功能。
本发明的另一目的在于提供一种文档处理方法和装置,为了在不缩小待布置的数据大小的情况下,根据用户需求获取输出结果,该文档处理方法和装置具有自动布局功能,该自动布局功能在不能将所提取的记录布置在相同类型的区域内的情况下,自动生成具有区域的页面。
本发明的另一目的在于提供一种文档处理方法和装置,该文档处理方法和装置具有多记录兼容的自动布局功能,例如能够提高插入换文档的自由度,从而实现整齐的布局或者反映用户意愿的布局。
为了实现上述目的,根据本发明提供一种文档处理装置,其能够根据待布置的内容数据动态改变在具有区域的模板上的布局,该区域设置有用于从数据库中提取内容数据的提取条件,该装置具有:获取单元,用于从该数据库中获取满足该提取条件的内容数据;确定单元,用于根据关于内容数据组和用于内容数据的布局的多个子模板之间的关联性的关联信息,确定该多个子模板中的应当布置由该获取单元获取的内容数据组的一个和多个子模板;以及布局单元,用于通过在由该确定单元确定的该一个和多个子模板上布置该内容数据组,将该内容数据组布置在区域中,从而产生输出结果。
在上述配置中,数据库对应于图2所示的数据库119,获取单元、确定单元和布局单元对应于布局编辑应用程序121。特别地,获取单元对应于由布局编辑应用程序121执行的图16A中的步骤1601。另外,确定单元对应于图16A中的步骤1602和由布局编辑应用程序121执行的图16B中的程序。布局单元对应于由布局编辑应用程序121执行的图16A中的步骤1605~1607。
根据本发明,还提供一种文档处理装置,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,该区域设置有用于从数据库中提取内容数据的提取条件,该装置具有:获取单元,用于从该数据库中获取满足该提取条件的内容数据;以及生成单元,用于在不能将由该获取单元获取的内容数据布置在该区域中的情况下,新生成具有区域的页面。
在上述配置中,数据库对应于图2所示的数据库119,获取单元和生成单元对应于布局编辑应用程序121。特别地,获取单元对应于由布局编辑应用程序121执行的图16A中的步骤1601。另外,生成单元对应于由布局编辑应用程序121执行的图22B中的步骤2215。在图22B的步骤2215中,丢弃页面。这好像与生成装置不兼容。然而,在步骤2215中丢弃的页面是具有完成了的布局的页面。丢弃该页面上的内容以确保生成新页面的空白页面。
根据本发明,还提供一种文档处理装置,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,该区域设置有用于从数据库中提取内容数据的提取条件和分隔方法,该装置具有:获取单元,用于从该数据库中获取满足该提取条件的内容数据;设置单元,用于设置多个分隔方法中的一个;以及布局单元,当将内容数据布置在该区域中时,该布局单元用于通过由该设置单元设置的分隔方法之一分隔文档来布置由该获取单元获取的内容数据,从而生成文档数据。
在上述配置中,数据库对应于图2所示的数据库119,获取单元、确定单元和布局单元对应于布局编辑应用程序121。特别地,获取单元对应于由布局编辑应用程序121执行的图27A中的步骤2701。另外,设置单元对应于由布局编辑应用程序121的UI模块执行的图26中的UI。布局单元对应于由布局编辑应用程序121执行的图27A中的步骤2706~2714。
根据本发明,还提供一种文档处理方法,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件,该文档处理方法包括:获取步骤,用于从该数据库中获取满足该提取条件的内容数据;确定步骤,用于根据与内容数据组和用于内容数据的布局的多个子模板之间的关联性有关的关联信息,来确定该多个子模板中应当在其上布置在该获取步骤中获取的内容数据组的一个或多个子模板;以及布局步骤,用于通过在该确定步骤中确定的该一个或多个子模板上布置该内容数据组,来将该内容数据组布置在该区域中,从而产生输出结果。
根据本发明,还提供一种文档处理方法,当通过使用具有如下区域的模板来布置内容数据时,该文档处理方法能够根据该内容数据动态改变该内容数据的布局,所述区域设置有用于从数据库中提取待布置的内容数据的提取条件,该文档处理方法包括:获取步骤,用于从该数据库中获取满足该提取条件的内容数据;以及生成步骤,用于在不能将在该获取步骤中获取的内容数据布置在该区域中的情况下,新生成具有该区域的页面。
根据本发明,还提供一种文档处理方法,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件和分隔方法,该文档处理方法包括:获取步骤,用于从该数据库中获取满足该提取条件的内容数据;设置步骤,用于设置多个分隔方法中的一个;以及布局步骤,当将内容数据布置在该区域中时,该布局步骤用于通过在该设置步骤中设置的该分隔方法中的一个分隔方法分隔文档来布置在该获取步骤中获取的内容数据,从而生成文档数据。
根据本发明,对模板上的区域设置条件式,将基于该条件式提取的记录数据布置在多种子模板上,并将该子模板布置在预定区域中,从而使可能在维持适当的用户可操作性的同时,根据客户爱好制作各种输出结果。
根据本发明,在不能将所提取的记录布置在区域内的情况下,自动生成具有相应区域的页面,从而使可能在不缩小待布置的数据大小的情况下,根据用户需要准备所布置的文档。
另外,提高插入换文档的自由度,以实现整齐的布局或者反映用户意愿的布局。
通过以下结合附图的说明,本发明的其它特征和优点是显而易见的,其中,相同的附图标记在全部附图中表示相同或相似的部分。
附图说明
包含在说明书中并构成说明书的一部分的附图,示出了本发明的实施例,并与说明书一起,用来解释本发明的原理。
图1A是示出根据本发明实施例的计算机系统的结构的图;
图1B是示出根据本发明实施例的计算机系统的结构的图;
图2是示意性示出根据本发明实施例的计算机模块的图;
图3是示出具有菜单栏、工具栏、工作区和浮动板的典型应用程序的主窗口以及具有容器间的链接的典型容器的例子的图;
图4是示出基于根据本发明实施例的界面的例子的容器的表现的16个图案的例子的图;
图5A是示出根据本发明实施例的典型容器规则的例子的图;
图5B是示出根据本发明实施例的典型容器规则的例子的图;
图5C是示出根据本发明实施例的典型容器规则的例子的图;
图6A是示出根据本发明实施例用于形成链接的UI的例子的图;
图6B是示出根据本发明实施例用于形成链接的UI的例子的图;
图6C是示出根据本发明实施例用于形成链接的UI的例子的图;
图7A是示出根据本发明实施例的布局的计算流程的例子的图;
图7B是示出根据本发明实施例的布局的计算流程的例子的图;
图8A是示出根据本发明实施例与图7中的流程相对应的UI的例子的图;
图8B是示出根据本发明实施例与图7中的流程相对应的UI的例子的图;
图8C是示出根据本发明实施例与图7中的流程相对应的UI的例子的图;
图9是示出根据本发明实施例的多记录的概要的图;
图10是示出在本发明的第一实施例中的整个流程的图;
图11是示出在本发明的第一实施例中与图10相对应的UI的例子的图;
图12是示出在本发明第一实施例中的流动区域设置对话框的UI的例子的图;
图13是示出在本发明第一实施例中的子模板的布局的例子的图;
图14是示出在本发明第一实施例中的子模板的布局的流程的例子的图;
图15是示出在本发明的第一实施例中用于设置条件式的UI的例子的图;
图16A是示出在本发明第一实施例中利用条件式进行判定的流程的例子的图;
图16B是示出在本发明第一实施例中利用条件式进行判定的流程的例子的图;
图17是示出在本发明第一实施例中的流动区域中的布局的计算流程的例子的图;
图18A是示出在本发明第一实施例中的子模板的布局的例子的图;
图18B是示出在本发明第一实施例中的子模板的布局的例子的图;
图19是示出用于设置扩展到多页的流动区域的UI的例子的图;
图20是示出用于改变流动区域的位置和大小的UI的例子的图;
图21A是示意性示出重复的流动区域和将数据插入流动区域中的状态的图;
图21B是示意性示出重复的流动区域和将数据插入流动区域中的状态的图;
图22A和22B是示出在扩展到多页的流动区域中的子模板的布局的流程的例子的图;
图23是示出模板数据的结构的例子的图;
图24是示出多记录模板数据的结构的例子的图;
图25A是用于说明在本发明第一实施例中的布局编辑系统的操作的图;
图25B是用于说明在本发明第一实施例中的布局编辑系统的操作的图;
图25C是用于说明在本发明第一实施例中的布局编辑系统的操作的图;
图26是示出在本发明第三实施例中用于设置条件式的UI的例子的图;
图27A是在本发明第三实施例中的布局处理的流程的图;
图27B是在本发明第三实施例中用于确定模板的处理的流程的图;
图28是示出在本发明第三实施例中的子模板的布局的流程的图;
图29是示出在本发明第三实施例中的Break处理的例子的图;
图30是示出在本发明第四实施例中的能够外部参考的条件式的格式的图;
图31是示出在本发明第四实施例中用于读取外部条件式的处理的流程的图;
图32是用于说明布局计算时的容器组的图;
图33是用于说明布局最优化处理的图;
图34是示出可变打印的例子的图;
图35是示出在本发明第三实施例中的Break处理的例子的图;以及
图36是示出用于基于布局编辑应用程序进行布局编辑处理的功能结构的例子的框图。
具体实施方式
第一实施例
实施例的概述
将对适当实现本发明的本发明的优选实施例进行说明。首先概述本发明。本实施例涉及一个计算机软件,用于通过计算机来实现形成文档的功能,即,被称为可变打印的功能,在该文档中,根据在文档模板(简称为模板)中定义的容器(排列数据并被称为字段区的部分区域),布置数据库等中的记录。可执行地加载该软件的计算机起到自动布局系统(或者文档处理装置)的作用。特别地,在本实施例中,公开了一个软件,该软件具有以下功能(多记录功能):通过根据模板形成部分文档、并将该部分文档插入到在该模板中分别定义的区域(被成为流动区域)中,来完成文档的功能;以及根据该模板布置数据的功能。对于一个流动区域可插入的文档部分的数量不局限于一个。还公开了一种在模板中定义有多个流动区域的情况下,以一定条件按流动区域分配所形成文档的一部分的技术。在流动区域中布置的模板被特别称为子模板。另外,包括流动区域的模板被特别称为主模板。
本实施例中的自动布局系统具有两个功能特征。第一个功能特征是例如在记录的数量非常大的情况下,如果一个页面不能容纳整个记录,则通过在新的页面上布置该记录来自动生成具有多个页面的文档的功能。第二个功能特征是通过使用与该记录相匹配的表格(子模板)来布置每一记录以增加文档布局的自由度的功能。现在将对本发明所适用的本实施例中的计算机系统的结构和应用程序结构进行说明。
系统结构
图1A示出用于打印可变数据文档的系统100。通过执行下面参考图1B详细说明的通用计算机模块101中的预定程序来实现本说明书中所述的方法。在计算机模块101中将图1A所示的处理作为软件例如可在系统100上执行的布局编辑应用程序121的全部或部分来执行。特别地,根据来自计算机101执行的软件的指令,执行布局编辑和打印步骤,该计算机101是根据本发明的文档处理装置。该软件被存储在例如包括下述存储器的计算机可读介质中。将该软件从计算机可读介质载入计算机中以由计算机101执行。具有该软件的计算机可读介质或者记录在其上的计算机程序是计算机程序产品。计算机使用该计算机程序产品以起到能够执行文档布局编辑和可变数据打印的装置的作用。
输入设备例如指示设备如键盘132和鼠标133与计算机模块101连接。包括显示器144和根据环境需要还包括本地打印机145的输出设备也与计算机模块101连接。输入/输出接口138能够通过网络连接107连接计算机模块101和系统100中的另一计算机单元。网络连接107的典型例子是局域网(LAN)或广域网(WAN)。
计算机模块101通常至少包括:一个处理器单元135;存储器单元136,例如由半导体随机存取存储器(RAM)和半导体只读存储器(ROM)构成;输入/输出(I/O)接口,包括视频接口137;以及用于连接键盘132和鼠标133的I/O接口143。
存储器设备139通常包括硬盘驱动器140和软盘驱动器141。还可以使用图1B中未示出的磁带驱动器。提供CD-ROM驱动器142作为非易失性数据源。计算机模块101使用包括在计算机模块101中、并在操作系统例如GNU/LINUX(注册商标)或Microsoft公司的Windows(注册商标)的控制下或者通过使用用于计算机系统的传统操作模式的方法通过相互连接总线134相互通信的组件(由附图标记135~143来表示)。
图1A所示的布局编辑应用程序121通常常驻在图1B所示的硬盘驱动器140中,并通过处理器135来执行、读取和控制它。在某些情况下,布局编辑应用程序121被在CD-ROM或软盘上编码,并通过兼容的软盘驱动器142或CD-ROM驱动器141读取以将其提供给用户。可选地,用户可根据另一方法通过网络连接107读取应用程序121。此外,可将软件从适当大小的不同的计算机可读介质中加载到计算机模块101中,该计算机可读介质包括磁带、ROM、集成电路、磁光盘、无线通信、计算机模块101和另一设备之间的红外通信、计算机可读的卡例如PCMCIA卡、E-mail通信、网站上具有记录信息的因特网介质、或者内部网介质。上述介质仅仅是相关计算机可读介质的例子。可以使用其它计算机可读介质。
布局编辑应用程序121具有执行可变数据打印(VDP)的指令,并且包括两个软件组件(software component)。第一个软件组件是布局引擎105。它是用于根据对矩形容器给出的限定和大小来计算构成容器的矩形和线的位置的软件组件。布局引擎105还能够计算例如容器之外的对象的位置。布局引擎105用作确定每一部分区域(例如,容器)的大小和位置的应用程序,以向附图中未示出的打印机驱动器输出绘制信息,从而使打印机驱动器能够对可变数据文档执行图像绘制处理并生成打印数据。
第二个组件是用户界面103,该用户界面103使用户能够准备文档模板,并提供与文档模板中的数据源相关联的机构。文档模板是形成文档样式的数据,在该样式上布置标准形式的句子和文档上的上述容器。将数据例如取自数据库的文本和图像排列在文档模板的预定区域例如容器中以完成文档。
用户界面103和布局引擎105通过通信通道123相互进行通信。用于生成文档的数据源通常是由运行数据库应用程序的不同计算机构成的数据库服务器117上的普通数据库119。主计算机101通过网络连接107与数据库服务器117进行通信。布局编辑应用程序121生成存储在主计算机101中或由不同计算机构成的文件服务器115中的文档模板。布局编辑应用程序121还生成由与数据合并后的文档模板构成的文档。将由布局编辑应用程序121生成的文档存储在主计算机101的本地文件系统中、存储在文件服务器115中或者直接由打印机113进行打印。打印服务器109是在未直接与网络连接的打印机中提供网络功能的计算机。打印服务器109和打印机113通过普通通信通道111相互连接。
模板数据131也被称为文档模板,即文档的样式数据,在该样式数据中,定义被称为容器的区域、将从数据库读出的记录嵌入在什么地方、以及固定数据等。下面将参考图23和24来说明该数据的结构。
图34是用于概述根据本实施例的可变数据打印的图。布局编辑应用程序121的用户界面(模块)103根据用户的操作指令,在一个页面上布置多个容器345~347,并对每个容器的位置和大小施加限制条件,从而生成文档模板344。
用户界面103建立文档模板344和数据源340之间的关联,并进一步建立容器和数据源340中的数据字段之间的关联。在文档模板中描述关于容器和数据源340中的数据字段之间的关联的信息,并将文档模板存储在HDD 140或存储器单元136中。
数据源340是按记录来描述项目数据(可变数据)的文件。数据源340被存储在HDD 140中。布局引擎105根据用户的打印指令或预览指令,从数据源340中读取相关的可变数据;按记录将数据排列在文档模板的容器345~347中(例如,在容器345~347中排列数据记录1的数据字段A~C);并例如根据待排列的数据大小调整每一容器的大小(布局调整)。下面将说明布局调整的方法。
当提供预览指令时,生成布局调整后的文档图像并将其输出,以作为预览显示在视频显示器144的屏幕上。当提供打印指令时,将通过使用布局引擎105或打印机驱动器生成的文档图像作为打印数据输出到打印服务器109。顺序处理数据记录1、2、3、…,以实现可变数据打印。
用于文档生成的数据源(340)可以是例如由运行数据库应用程序的不同计算机构成的数据库服务器117上的普通数据库119。在这种情况下,主计算机101可以通过经由网络107与数据库服务器117进行通信来获取数据源。将由布局编辑应用程序121生成的用于可变数据打印的文档模板(344)存储在主计算机101或由不同计算机构成的文件服务器115中。如上参考图1A所述,布局编辑应用程序121的布局引擎105生成由与数据合并后的文档模板构成的可变数据文档。将由布局编辑应用程序121生成的文档存储在主计算机101的本地文件系统中、存储在文件服务器115中或者传输给打印机113进行打印。打印服务器109是在未直接与网络连接的打印机中提供网络功能的计算机。打印服务器109和打印机113通过普通通信通道111相互连接。
图2示出用于使引擎服务器227能够执行与图1A所示的配置独立设置的布局引擎225的结构。引擎服务器227是普通计算机。存储在文件服务器115中的文档模板可通过布局引擎225与存储在数据库119中的数据耦合,以生成待打印的或用于其它目的的文档。通过用户界面103请求这种操作,或者请求只打印特定的记录。
应用程序结构图
主窗口
参考图3,用户界面103包括操作时由显示在视频显示器144上的应用程序窗口301形成的用户界面。窗口301的特征在于包括菜单栏302、工具栏303、位置可根据鼠标133的位置和操作而移动的工作区306、可选工具板311和光标/指示设备313。
菜单栏302是已知的技术。菜单栏302具有在菜单选项的层级下展开的多个菜单项304。
工具栏303具有工具(widget)305例如许多工具按钮,其中根据应用程序的特殊模式可以显示或禁止显示各工具按钮。可选标尺308可用于指示指针、页面、线条、页边空白引导(marginguide)、布局框(即,容器)或工作区中的对象的位置。工具板311用于访问附加功能例如用于读取和显示可变数据的库。工具板311具有用于移动、调整大小和关闭的窗口控件312。
工具栏区303具有至少以下用户可选择的“按钮”。
(1)选择工具按钮403,用于选择容器的边,进行移动,进行改变大小,或者执行调整大小、锁定或解除锁定。可通过围绕容器拖动选择框或通过在选择容器的同时持续按下CTRL键来选择多个容器。
(2)图像容器工具按钮405,用于建立具有静态(固定)或可变图像的容器。
(3)文本容器工具按钮404,用于建立具有静态(固定)或可变文本的容器。
(4)链接工具按钮406,用于建立容器之间的关联的链接,并控制被链接的容器的距离。
与已知技术相同,这些按钮中的每一个被实现为根据操作状况而改变的图标的工具条(tool tip)。
图3所示的布局编辑应用程序121的应用程序窗口301能够通过在页面中布置容器和链接来确定基本布局。基本布局是可变数据打印所基于的布局。如果基本布局中的每个容器是固定容器,则所有记录的打印结果在布局上彼此相同。如果基本布局中的每个容器是下述可变容器,则根据按记录读取的数据量或数据大小,容器的大小和位置在根据下述限定的范围内改变。因此,由布局编辑应用程序121创建的文档模板仅用于确定基本布局。如果包含可变容器,则根据所读取的数据调整最终打印的布局。
文档模板
工作区306用于显示和编辑文档模板设计。通过使用工作区306,用户可以设计在准备步骤中打印的文档的轮廓,并且可以理解合并后的文档怎样基于可变数据的量或大小而改变。
如果将外部数据源(例如,数据库等中的记录)链接到模板,则在容器中显示可变文本和图像,以使该文档能够被预览。
当光标移动到容器上或者当选择容器时,总是显示可以是对文档的结构和可变数据的容器进行说明的视觉提示的对象。
工作区306的特征在于滚动条307、可选标尺308和文档模板309。文档模板309可示出有多个页面。
用户使用已知的技术指定给定文档模板的页面大小。例如,当从菜单“文件”选择“页面设置”时,显示用于设置页面大小的对话框。在该对话框中反映用户所指定的页面大小。有可能在每一文档中的实际页数随可变数据而改变。如果不能在一个页面内设置容器,并且如果基本布局不包括对在预定薄片大小的页面内设置容器的限制,则自动形成附加页。每页中的边界线是表示在页面上可打印对象的最大宽度的可自由选择的页边距310。
图3还示出可显示在单页文档模板309上的对象的例子。该对象具有多个容器407和408、不固定的边410、链接412和滑块(slider)413。下面将说明每一对象的功能。
容器
容器是通过在文档模板中排列固定的或可变的文本或图像而描绘的空间,并在与其它容器或对象相互作用的同时而被布置。在图3所示的用户界面中显示容器,通过使用指针313移动、调整大小和重新创建该容器。操作指示设备133来使用指针313。
准确地说,容器具有一组设置、视觉表现、以及相互作用和编辑操作。将对容器的定义进行说明。
(1)在容器中排列固定的或可变的内容。从数据源(例如,数据库中的记录)获取可变内容。对于根据不同数据组的不同文档中的内容,容器大小是可变的,从这个意义上说,可变内容是动态的。可变内容不包括通过动画而形成的内容或者通过不同方法形成的关于时间可变的内容,因为这样的内容不适于打印。固定内容以相同的方式显示在通过使用一个模板形成的所有文档中。然而,在固定内容和可变内容之间设置有链接的情况下,有可能包含固定内容的容器在文档中的位置根据包含可变内容的容器的位置或大小的改变而改变。
(2)容器具有装饰功能例如进行文本设置的功能,如应用于内容的背景色、边界设置或字体设置。这样的设置被称为容器属性。可按容器设置容器属性。然而,也可以设置成使得某些容器具有相同的容器属性。
(3)当生成文档时,将容器与来自数据源的数据进行合并。从数据源获取可变内容作为特定数据,并对其进行显示和打印。包含在容器中的内容被例如打印、显示在屏幕144上或通过打印和显示输出。
(4)容器具有用户界面。例如,容器具有用于编辑容器和用于显示设置的交互式图形用户界面(GUI)。用户界面的要素通常被显示在屏幕144上。用户界面103显示设置装饰要素例如背景色和字体的功能中的若干个,并且还具有编辑容器设置的功能和显示容器的功能。用户界面功能的目标的例子有:边界、以对话框的方式用于改变和显示容器的大小和位置的角图标、或者当将来自数据源的数据与容器进行合并时用于表示容器的操作的阴影的数量、线、图标和文本。然而,在文档中不打印这些要素。
容器的限制
容器具有控制如何将在每一文档上显示或打印的内容容纳在容器中的限制(即,容器是可定义的)。这些限制是将固定的和可变的内容连接到容器并使用户能够通过一个文档模板来控制许多文档的主要方式。限制的例子如“容器中的这些内容的高度最大为4英寸”。限制的另一例子如“容器中的内容的左边缘必须被显示在文档中相同的水平位置处”。在此说明的内容是用于通过使用GUI显示和编辑这种限制的各种方法。
指定固定内容的布局以使图像在页面上具有所定义的位置的内容占位符(placeholder)在数字打印技术领域中是众所周知的。在以下说明中,容器具有位置和大小,并可以通过已知技术领域中已知的方法对其进行编辑和显示。下面通过将重点放在可变数据打印中的显示和编辑来进行说明。
用户可以通过指定容器的位置、大小和限制,来指定文档中的内容的大小和位置。由于从一个文档模板生成多个文档,因此需要使用用户界面来指定和显示容器的可设计的设置和限制。每个容器还可被用作这样的用户界面。
模板生成模式(容器显示/编辑)
以可变打印的方式生成待打印文档的过程可被分成两个阶段:模板生成处理(模板生成模式),用于生成模板;文档生成处理,用于通过将内容插入所生成的模板中来生成文档(被特别称为关于文档的预览显示的预览模式)。首先说明文档生成模式。
生成新容器的方法
容器被描述为两类:“文本容器”和“图像容器”。文本容器具有(包含)文本和嵌入的图像。图像容器仅具有(包含)图像。如上所述,“可变的”表示“按记录可变”。
通过利用文本容器工具404或图像容器工具405拖动矩形区域,在文档模板309上生成各新的文本容器和新的图像容器,其中通过利用鼠标133点击,从工具305中选择该文本容器工具404或图像容器工具405。
可选地,可通过在激活合适的工具404或405之后,在文档模板309上点击来简单地生成容器。在这种情况下,可插入缺省大小的容器或提供用于设置新的容器大小的对话框。可以构想提供容器的其它不同方法。当将文档模板作为文档模板文件进行存储时,用户在用户界面上指定的矩形的位置和大小被直接作为模板上的容器的位置和大小存储在硬盘等中。
容器显示方法
在显示文档中的内容时,容器的边定义相关内容的虚拟边界。当将容器用作用户界面时,容器的左边缘被看作相关内容在任何文档中所能显示的最左边。类似地,容器的高度可被理解为对相关内容可以在所生成的文档中显示的高度的限制。根据本发明,假定通过用户界面103改变容器的边和大小。
用户界面的定义
接着将说明用户界面和用于限制内容布局的布局之间的关系的几个规则的定义。根据定义还显示附图中所示的布局的例子。
(1)如果容器的左边缘和右边缘是实线,则该容器的宽度是固定的。如果容器的宽度是固定的,则指定给相关内容的宽度在所有文档中是恒定的。然而,容器的高度有可能改变。
(2)如果容器的顶边和底边是实线,则该容器的高度是固定的。如果该容器的高度是固定的,则指定给相关内容的高度在所有文档中是恒定的。
(3)如果在距离方面的限制是固定的,则所指定的距离在所有文档中被设置为恒定。
(4)如果通过使用下述链接使容器的实线边和另一容器相互关联,则具有实线边的容器有可能通过被所链接的该另一容器推动而改变位置。通过顶边和底边上的链接引起垂直方向上的位置改变,而通过左边和右边上的链接引起水平方向上的位置改变。与“固定的”相反的是“可变的”,表示有可能在文档中改变边、位置或文档限制。以下是用于实现变化的用户界面和布局之间的关系的规则的例子。
(5)如果容器的左边和右边是虚线,则该容器的宽度是可变的。如果该容器的宽度是可变的,则指定给相关内容的宽度在文档中是可变的。
(6)如果容器的顶边和底边是虚线,则该容器的高度是可变的。如果该容器的高度是可变的,则指定给相关内容的高度在文档中是可变的。
(7)如果在距离方面的限制允许变化,则在文档中有可能改变所指定的距离。在距离方面的限制的设置使能够在最大和最小限制内调整容器之间的距离的同时进行布局。
(8)如果通过使用下述链接使容器的虚线边和另一容器相互关联,则有可能在推动通过链接关联的另一容器(或者由通过链接关联的另一容器推动)的同时改变具有虚线边的容器的位置。通过顶边和底边上的链接引起垂直方向上的位置改变,而通过左边和右边上的链接引起水平方向上的位置改变。
图4示出基于上述规则的容器的边的状态。在通常情况下,由于容器的边是作为设计文档模板的辅助而显示的要素,因此在印刷物上不显示其状态。在辅助对话框窗口311(图3)中显示被设置作为容器的限制的宽度和高度的最大和最小设置值。
从使用用户界面的用户的观点说明了用户界面上的显示和容器本身的限制或容器之间的限制。从用于实现用户界面而执行的程序的观点,因果关系与上述关系相反。下面从程序的观点重写上述规则。
(1)如果将数据设置成使得容器的宽度是固定的,则容器的左边和右边被显示为实线。
(2)如果将数据设置成使得容器的高度是固定的,则容器的顶边和底边被显示为实线。
(3)将指定为固定值的距离在所有文档中设置为恒定。
(4)如果将数据设置成使得容器的宽度或高度是固定的,并且如果相对于相应的固定边设置到另一容器的距离(容器的限制),则根据包括另一容器的大小的条件来确定宽度或高度固定的容器的位置。
(5)如果将数据设置成使得容器的宽度是可变的,则该容器的左边和右边被显示为虚线。
(6)如果将数据设置成使得容器的高度是可变的,则该容器的顶边和底边被显示为虚线。
(7)如果将数据设置成使得在容器之间的距离方面的限制允许变化,则在最大和最小限制内调整容器之间的距离的同时进行布局。
(8)如果将数据设置成使得容器的宽度或高度是可变的,并且如果相对于相应的可变边设置到另一容器的距离(容器的限制),则根据宽度或高度可变的容器的宽度或高度来确定另一容器的位置。
参考图5A,容器501的宽度是可变的。在这种情况下,边503用实线来表示,而可变边504用虚线来表示。放大/缩小图标505是可选指示器,表示与该图标相邻的边504是可变的。参考图5B,容器501在宽度方向和高度方向上都是可变的。参考图5C,容器501在宽度方向和高度方向上也都是可变的,并且在用户界面上还显示用于操作边的操作器(handle)502。
文档模板上的数据的例子
图23示出文档模板(被称为模板数据)131的数据的例子。参考图23,将模板数据存储在存储器136或硬盘140中。模板数据包括下述要素。
(1)整体大小2302
该数据表示整个模板的页面大小。例如通过水平和垂直尺寸或标准纸张大小来表示该大小。
(2)容器信息2303
对于布置在模板上的每个容器,该信息包括:用于识别容器的识别信息、容器的基准位置(位置信息)、垂直和水平边的长度(大小信息)、以及构成容器的边和点的属性(属性信息)、关于与容器有关的内容的信息等。在根据通过图4所示的用户界面指定准备模板时,定义位置信息和大小信息。位置信息是用户在准备容器时设置的容器的基准位置。在容器位置可变的情况下,根据容器中所排列的内容的大小(图像大小、文本量)改变大小,并且根据该容器和其它容器的大小动态改变位置。位置固定的容器具有固定的位置信息。例如,如果位置固定的容器具有其对角线点的位置信息,则可以确定其位置和大小。不用说,可以提供模板上的所有点的位置信息。可选地,可以提供模板上的一个点的位置信息和其它点相对于该一个点的位置的位置信息。即,可以通过一个点和容器的大小来定义该容器。另外,当通过模板上的位置定义固定位置时,可通过相对于该固定位置的位置来定义可变点。
如上参考图3和5A~5C所述,属性信息表示容器的边和轴及其交点等的属性。例如根据位置和大小来确定一个容器的顶边、底边、左边、右边、水平轴、垂直轴、角点、中心点、宽度和高度。通过属性信息来定义关于各要素是可变的还是固定的的定义。在通过图4所示的用户界面准备文档模板的情况下,操作者在选择容器的边、点或轴之后,选择显示在工具板311中的菜单项“固定”和“可变”等中所期望的一个。从而与所选择的点或边一致,将属性“固定的”和“可变的”中的一个写入容器信息2303中。例如在生成容器之后立即使所有缺省值为“可变的”。在该例子中,关于一侧或轴“固定的”是指不是该侧或轴的纵向上的长度或位置、而是与纵向垂直的方向上的位置是固定的。如果根据点或边的属性设置自动确定另一点或边的属性,则也写入该自动确定的属性。例如,给出使角点“固定”的指示,则包含该角点的边也是固定的。反之亦然。另外,例如,如果给出使中心点的位置“固定”的指示,则将“固定”作为中心点的属性写入,也将“固定”作为水平和垂直轴的属性写入。在这种情况下,如果宽度和高度是可变的,则维持宽度和高度的“可变”属性。
关于相关内容的信息(内容相关信息)包括,例如:表示关于内容是文本容器还是图像容器的种类的信息;以及相关信息例如容器中所插入的数据源的标识符,例如数据库名、记录名、字段名等的部分或全部,以及用于提取内容的条件式。对于文本容器,内容相关信息包括:关于字体的信息,例如字体的种类和大小;字符修饰信息,例如颜色、斜体、黑体和下划线。保持与文档模板上设置的容器数相对应的多组容器信息2303。
(3)链接信息2304
链接是用于容器之间的关联的对象,并且是容器的限制之一。链接信息是关于使通过链接连接的两个容器之间的距离恒定(固定链接)或者使该距离可变(可变链接)的信息。链接信息包括,例如:关于水平和垂直方向,两个容器的标识符;表示存在设置在彼此相对的容器的边之间的链接的信息;以及在沿链接方向上的容器之间的距离。对于每个所定义的链接保持链接信息。作为链接信息的形式,可以分别保持水平和垂直方向上的容器的边的位置。另外,可以保持表示存在设置在边之间的链接的信息。
(4)固定信息2305
该信息包括用于定义可变部分以外的固定部分的信息。例如,可以定义对通过应用模板而生成的所有文档(所有记录)所共用的句子、图像等。对于句子或图像,可以定义只有关于该句子或图像的位置的信息,而不包括该句子或图像本身的数据。不用说,该信息包括用于定义在模板上布置该句子或图像的位置的信息。
图24示出用于多记录功能的模板数据131’的例子。当然,该数据被存储在存储器等中。参考图24,在文档模板中,定义被称为流动区域、并且可以排列其它模板作为子模板的区域。在一个流动区域中排列与多个记录相对应的许多子模板。图24所示的模板数据131’包括流动区域信息2401。在模板数据中保持与包含在模板中的许多流动区域相对应的流动区域信息项。流动区域信息2401包括下述要素。
(5)流动区域属性信息2402,表示整个的位置和大小、流动类型等。
位置和大小为如上参考图23所述。流动类型是定义在流动区域中排列子模板的样式的符号。流动区域中排列的子模板的数量通过多个记录的关键字段(key column)来确定,并且其是可变的。因此,根据排列在流动区域中的子模板的数量,将流动类型作为定义流动区域中的子模板的布局的信息来提供。
(6)子模板信息2403
子模板信息2403包括表示布置在子模板上的内容和流动区域之间的关联的布局信息,在该流动区域中排列根据子模板布置的内容(在本说明书中被称为布局内容)。例如,子模板信息2403是用于识别插入到流动区域中的子模板的信息。该信息包括例如模板数据的文件(模板文件)名。子模板信息2403还可以包括用于布置布局过的内容的布局条件和用于指定应当以什么顺序插入所布置的内容的流动类型。作为布局条件,保持搜索数据库的条件(搜索式)以及其他条件,其中从该数据库获得根据子模板布置的对象。在备选类型例如Z型、N型和V型中指定流动类型,并保持表示所指定的流动类型的标识符。可选地,可以将布局内容插入到与布局条件值相对应的流动区域中,该布局条件值与数据库的记录中提供的布局信息字段的值相符。
作为本实施例所特有的信息,包括用于确定将被插入到流动区域中的子模板的条件信息2403a。例如,根据其中一个子模板相关联的数据库的记录中的特定字段的值使不同子模板相对应的条件信息2403a作为子模板信息来保持。该信息使与该字段的值相对应的子模板能够被用于相应的记录。
(7)多记录信息2404
多记录信息2404包括标识符例如与流动区域相关联的数据库的名称和每个记录中的字段名。从布置在一个流动区域中的数据库中获取(读取)与所指定的字段名具有相同值的记录。在一些情况下,所获取的记录的数量相对于流动区域的大小是非常大的。于是将该流动区域扩展到多页以布置该记录。
链接设置方法
图6A~6C示出根据链接设置方法的用户界面(UI)的例子。首先,为了设置链接,准备在其之间设置链接的(至少两个)容器。以下是准备两个容器并设置链接的情况的例子。随后,选择上述链接工具。图6A~6C示出从所准备的容器存在并且选择了链接工具的状态开始设置链接的操作。接着参考图6A~6C来说明。
图6A中的线条601和602表示与以上参考图3所述的边407和408相同的固定边。图标603表示鼠标指针。首先,通过点击选择其中一个将在其上设置链接的容器。随后,如图6B所示,将鼠标指针移动到另一容器并进行点击。在图6B中,由604来表示连接点击鼠标指针的位置和被移动的鼠标指针移动到的位置的线。该UI向用户示出设置链接的位置。在图6B所示状态下第二次点击之后,由605表示的链接UI被显示在所设置的位置,并且容器处于图6C所示的状态。与以上虚线相同,虚线表示可变边606。在该设计中,左容器601向右的大小是可变的。另外,右容器602向左的大小是可变的。它们之间的链接使能够操作左容器和右容器,使得在维持它们之间的距离的同时可变地调整其大小。
从图23所示的数据处理的观点出发再次说明该处理。例如,通过准备容器来定义容器信息2303。然后布局编辑应用程序121存储表示已经在所选择的两个容器之间建立了链接的链接信息,并且如果需要,改变所链接的两个容器的彼此相对的边的属性。例如,如果彼此相对的其中一个边是可变的,则无需改变边的属性。然而,两个边都是固定的,就失去了设置链接的意义。因此,使至少一个边是可变的。在图6A~6C所示的例子中,使两个边都是可变的。如果改变边的属性,则布局编辑应用程序121在容器信息2303中重写对应于其属性改变后的边的属性信息。
尽管在以上说明中使用表述“彼此相对”,但是如果从表示边的线扩展出来的线彼此相对而边线没有彼此相对,则与边线彼此相对的情况一样,也可以在延长线之间设置链接。在本说明书中,即使在只有延长线彼此相对的情况下,对通过链接彼此关联的容器仍使用表述“彼此相对”。即,也可以在例如放置在模板的对角位置的小容器之间设置链接。
因此,在通过链接相互关联的容器的彼此相对的一个边可变而另一个边固定的情况下,有可能根据内容的大小移动可变边。根据可变边的移动量平移固定侧上的容器本身(在不存在固定点(anchor)的情况下)。维持由链接定义的容器之间的距离(在沿链接方向的距离)。如果两个边是可变的,则两个容器中的每个的大小可根据内容的大小而改变。在这种情况下也维持容器之间的距离。
预览模式(布局计算)
图7A示出预览模式下的布局计算的流程。布局计算是用于当将实际数据插入容器中时,根据文档模板中的容器的数据大小和其它因素,重新计算容器大小和容器布局的处理。参考图7A,由于示出了在选择预览模式情况下的处理的例子,因此通过将内容插入模板中而生成的文档被显示在显示器144上。然而,当选择打印模式时,代替预览显示进行文档的打印输出。由信息处理装置(主计算机)中的处理器135来执行根据本发明的流程图中所示的处理步骤。
参考图7A,布局编辑应用程序121首先识别出选择了预览模式(步骤701)。根据本实施例中的自动布局系统的操作模式包括:布局设置模式,用于生成文档模板,在该文档模板中,通过准备容器和建立容器之间的关联来定义布局;以及预览模式,用于将记录插入所生成的布局(模板)中,并在实际插入记录后预览布局结果。
在预览模式下,插入实际记录并计算布局。预览模式下的处理是显示器上可以看到的布局的计算。另外在实际打印布局结果的情况下,也是在插入记录后计算布局。实际打印情况下的计算方法与预览模式下的计算方法相同。
在选择了预览模式后,布局编辑应用程序121识别出已选择了要预览的记录(步骤702)。可以选择操作者指定的记录或者可以从指定的数据库中连续选择记录。在选择记录后,布局编辑应用程序121根据模板执行记录布局的计算(步骤703)。如果流动区域包含在模板中,则布局编辑应用程序121对该流动区域根据子模板布置数据(步骤704)。布局编辑应用程序121根据步骤703和704中的计算结果布置记录,显示所布置的记录(步骤705)并判断是否应当对其它记录执行预览(步骤706)。可以根据操作者的指令进行该判断,或者可以对是否完成了关于提前指定的范围的预览进行判断。如果布局编辑应用程序121在步骤706判定无需对任何其它记录执行预览,则结束预览模式下的处理(步骤707)。
如果应当对其它记录执行预览,则布局编辑应用程序121选择其它记录,再次执行布局计算,布置记录并执行布局结果的预览(步骤708)。在打印而不是预览模式的情况下,由于记录是连续选择的,因此对待打印的所有记录执行布局计算。在这种情况的处理中不包括步骤701和707。在步骤706,对是否完成了待打印的所有记录的打印进行判断。
布局计算过程
图7B是示出图7A所示的步骤703中的布局计算的详情的流程图。图8A~8C是示出与计算有关的UI显示的例子的图。通过图1A、1B或2中所示的计算机来执行包括图7B的流程图中所示的处理。
布局编辑应用程序121首先获取将对其执行布局计算的容器组(步骤710)。通过将通过链接相互关联的容器看作一个组来执行布局计算。例如,参考图32,在页面上布置四个容器,并建立容器之间的关联。在这种情况下,容器A和B通过链接相互关联,容器C和D也通过链接相互关联。因此,容器A和B被看作组1,而容器C和D被看作组2。即,参考图23所示的模板数据链接信息2304,并将通过链接关联的一群容器判定为一个容器组。
随后,布局编辑应用程序121选择在步骤710获得的其中一个容器组,以对所选择的容器组执行布局计算(步骤711)。可以例如根据在模板数据链接信息中出现的顺序来选择容器组。布局编辑应用程序121对所选择的容器组执行布局计算。在该处理中,执行布局优化,以使得每个所布置的容器的大小尽可能地接近容器中的内容的实际大小(步骤712)。
对于相互关联以便能动态改变其大小的容器,执行布局优化,以使得在插入了内容的每个容器中,所插入的内容的大小和容器的大小相互更加接近。在容器大小固定的情况下,当将内容设置在容器中或者将部分内容设置在容器中时,放大或缩小内容的大小。另外在容器组中包括三个或多个容器的情况下,计算根据内容大小的容器大小(即可变边的长度),并将与边的中点相距链接信息中定义的距离处的位置确定为边的位置。对于使其固定边被链接的容器,根据相关容器的相应边的移动来移动容器的位置。
因此,通过链接关联的容器被当作一群,大小可变的容器的大小被确定,并且位置可变的容器的位置被确定。
以上述方式执行布局优化计算。如果在计算结果和规则之间出现不一致,则布局编辑应用程序121再次执行计算,使得与规则达到一致(步骤713)。规则是用户在准备模板时设置的限制,例如对容器的大小和位置以及链接的长度的限制。通过包括在模板数据中的容器信息中的边和点等的属性的信息和链接信息来定义该限制。特别地,属性信息中具有“固定”值的项和链接信息是对布局的限制。在完成了步骤712中的布局计算之后,对具有定义为“固定”的属性的计算后的容器的边和点的位置和大小及其它项,进行计算结果和模板数据中的容器信息之间的比较。如果在某些项中存在不一致,则判定违反了限制。另外,如果包括在链接信息中的链接长度(容器之间的距离)和在其之间已设置了链接的容器在步骤712中的布局计算后的距离相互不同,则判定违反了对于该链接的限制。
如果计算布局以避免与规则的不一致,则完成容器组的布局。布局编辑应用程序121对页面上的所有容器组执行步骤711~713,从而计算整个页面的布局(步骤714)。
在模板数据中包括流动区域信息的情况下,在步骤704的布局计算中需要执行流动区域中的子模板的布局。下面将参考图10、14、16A和16B以及其它图来说明该处理。这些图示出了不是在预览模式下而是在模板生成模式下的处理。然而,在模板生成模式下也执行相应的预览显示,以执行与预览显示相同的处理。
图8A~8C示出在布局计算时的UI的例子。图8A示出插入了某记录以确定布局的状态。附图标记801和802表示固定边;附图标记803表示可变边;以及附图标记804和805表示指示可变边移动的方向的箭头;附图标记806表示链接。在该状态下,改变记录并插入不同大小的内容。在图8B中,通过在图8A所示的状态上重叠示出新内容的大小。线条807表示分别插入到容器中的内容的大小。在插入内容后执行布局计算。图8C示出布局计算的结果。计算容器的大小,使其根据实际插入的内容的大小而相互不同,并且避免与规则例如如上所述的规则的不一致。如图8C所示,保持与图8B所示的插入内容的内容大小807之间的差异相同的差异,作为计算后的内容大小808之间的差异。
然而,如果通过保持该相同的差异来简单地改变容器大小,尽管如在图8A~8C所示的布局中仅对水平方向进行布局计算时没有问题,但在如图33所示的布局情况那样、需要考虑垂直和水平方向执行布局计算的情况下,有可能不能适当地改变容器,在图33所示的水平和垂直方向上的二维布局的情况下,首先通过使用图7B所示的布局计算方法执行水平方向上的调整,之后通过使用相同方法执行垂直方向上的调整。即,可通过上述过程执行容器3301和3302之间的布局调整,使得容器位于由设置值D所定义的范围内,之后可执行容器3302和3303之间的布局调整,使得这些容器位于设置G内。然而,通过首先执行水平方向上的调整、之后执行垂直方向上的调整的方法进行的布局被认为偏离了根据用户需求的基本布局。
因此可以采取用于对每一容器最小化与基本图案(纵横比)的偏离的方法,其中对所有容器获取基本图案的宽度和布局调整后的宽度之间的差的平方与基本图案的高度和布局调整后的高度之间的差的平方的和,并且布局编辑应用程序121通过计算容器的宽度和高度来执行布局调整,使得容器的平方和的总和最小。
通过使用该最小二乘(least squares)法的布局调整,可以确定平衡性很好的最终布局,而不会与用户最初设置的基本布局有很大的偏离。由于在容器之间设置下述灵活的链接,因此根据所排列的内容数据的大小改变链接的大小如下所述。本说明书中所述的布局编辑应用程序具有这样的布局调整单元,使有可能根据所分配的数据大小调整多个局部显示区域(容器)的布置位置。
多记录(多数据)功能
将对多记录进行概要说明。尽管一个记录对应于普通文档模板上的一个文档,但子模板相兼容的多记录在基准项发生改变的分隔符之前排列多个记录。因此多记录是包括多个记录的一个文档。因此,期望准备包含与普通文档模板相对应的可变数据的数据库和包含与子模板相对应的可变数据的多记录数据库。
图9示出多记录的例子和用于布置多记录的方法的概述。附图标记901表示文档;附图标记902表示页面;附图标记903表示子模板;附图标记904表示数据库。示出由904所表示的数据库的表包含1~7号的数据群。在一个记录对一个文档的可变打印的情况下,由于有7个记录,因此生成7个文档。然而,在以多记录对一个文档的形式支持多记录的可变打印中,执行下述处理。首先,用户任意指定用于指定多记录的列。在例如准备模板时执行该指定。将用于识别该所指定的字段的信息作为图24所示的多记录信息2404的一部分进行存储。假定在该例子中指定“姓名”。然后判定具有与所指定字段的值相同的值的记录将被布置在一个文档上。通过使用分别指定的子模板来布置这些记录(存储在图24所示的子模板信息中),以将其排列在一个流动区域中。在图9所示的例子中,1~4号记录的字段“姓名”的值是“Tom”,因此将1~4号记录排列在一个流动区域中,并将其布置在一个文档上。5~7号记录的字段“姓名”的值是“Nancy”,因此将5~7号记录布置在不同的文档上,同时使用与对“Tom”所使用的模板相同的模板。即,首先完成文档“Tom”,之后完成文档“Nancy”。由此,生成新的文档,以响应在指定列的数据中的改变。
更具体地,例如在根据模板数据中的设置向文档“Tom”添加页脚(未示出)等之后,进行分页。从而完成文档“Tom”。随后,通过使用相同的模板数据向新的页面添加文档“Nancy”的页眉(未示出)等。另外,通过使用还被设置为在模板中定义的流动区域中的子模板信息和排列的子模板,来布置具有姓名字段值“Tom”的记录。这就是普通的多记录。
尽管在本实施例中对Nancy和Tom使用相同的模板数据,但是无需对各记录使用相同的子模板。可选地,可以根据分别指定的条件使用子模板。
模板生成模式下的处理的整体流程
图10和11示出根据本发明的布局编辑系统中的模板生成模式下的处理的流程,以及与该处理相关的说明性UI。参考图11的UI图来说明图10所示的流程中的步骤。执行布局编辑应用程序121,用户输入生成新模板的指令。从而显示图11所示的屏幕上的图像(不包括矩形1104、1106和1105)。图10所示的程序是根据来自用户的指令从该状态执行的布局编辑应用程序中的程序。
布局编辑应用程序121首先识别到点击了图11所示的图标1103,从而转换为流动区域生成模式(S1001),并通过根据用户利用鼠标的拖动操作在页边空白的区域1102中绘制矩形作为流动区域(S1002)。布局编辑应用程序121将所绘制矩形的位置和大小作为流动区域1106的位置和大小,并作为模板数据的一部分存储在存储器单元136中(S1003)。容器1104和1105是在流动区域1106外定义的文本容器和图像容器。这些容器与用于在流动区域中排列内容的处理无关。然而,它们可能被作为例如页眉和页脚来提供。还将所输入的这些容器的位置和大小作为模板数据的一部分存储在存储器单元136中。使流动区域1106的矩形UI的特性例如颜色或线型不同于其它容器的特性,以使用户可以容易地从视觉上识别流动区域1106。
随后,布局编辑应用程序121将多记录字段和所生成的流动区域关联起来(S1004)。即,例如,是用于输入与流动区域相关联的标识符例如数据库的名称和记录中的字段名称的处理。用于该处理的操作有,例如,通过点击流动区域确定目标流动区域,并根据一定的操作流程输入这些必要的信息。将该信息存储在存储器单元136中作为图24所示的模板数据中的多记录信息。可以与步骤1006和1007中输入的属性同时输入该信息。
之后布局编辑应用程序121判断是否对所生成的流动区域进行各种设置(S1005)。在设置属性的情况下,布局编辑应用程序121识别例如流动区域上的鼠标指针的点击,并显示属性对话框(S1006)。然后布局编辑应用程序121识别通过使用所显示的属性对话框进行的设置,并设置相应的属性(S1007)。下面将详细说明属性对话框和设置方法。各种设置信息项被存储在存储器单元136中。在完成流动区域生成和设置以后,布局编辑应用程序121检查是否应当预览布局(S1008)。如果预览,则布局编辑应用程序121转换到预览模式,并执行布局计算(S1009)。该布局计算与图7B中所示的流程相同。
布局编辑应用程序121对所设置的流动区域执行布局计算(S1010)。将参考图17对该处理进行详细说明。布局编辑应用程序121最后显示布局结果(S1011)。步骤1009、1010和1011对应于图7A中的步骤703、704和705。
流动区域属性设置
图12示出用于进行流动区域的各种设置(属性设置)的设置对话框的例子。在图10的流程图的步骤1006中显示该对话框。这是对话框UI的例子,通过该对话框UI在S1007中反映设置的细节。在说明流程图之后,下面对子模板和条件式进行说明。
用户首先通过单选按钮1202选择子模板或条件式作为与流动区域关联的项。如果选择子模板的关联,则用户从列表框1203中指定在流动区域中使用的子模板。可选地,如果选择条件式的关联,则用户从列表框1204中指定用于流动区域的条件式。可以通过特殊的UI装置,在基于文档模板编辑期间的该文档模板中或模板外的预定位置分别生成子模板和条件式。另外,可以通过以下参考图15所述的UI生成条件式。还可以使用不同的方法,其中将条件式存储在独立的文件中,并且可以从设置对话框指定该文件,以能够从该文件中进行选择。在本实施例中,可以对文档模板中的流动区域生成多个子模板和多个条件式。然而,还由于从列表框中进行选择的特有原因,应当将子模板和条件式设计成使其具有唯一的名称从而可相互区分。通过设置对话框,还从选择部分1205选择将子模板排列在流动区域中的流动方向(即,排列内容的方向)。可以用垂直方向的设置部分1206和水平方向的设置部分1207设置内容之间的间隔。
为了接受如上所述做出的设置,点击确定按钮1208。当点击确定按钮1208时,将当前做出的设置存储在存储器单元136中作为图24所示的流动区域信息2401。例如,将关于目标流动区域是与子模板还是与条件式相关联的标志信息以及表示与该标志信息相对应的子模板名称或条件式名称(条件式文件的名称)、流动方向和间隔的信息作为子模板信息2403和属性信息2402进行存储。如果点击取消按钮1209,则取消所有指定的设置,而不进行存储。
子模板的布局的例子
将对上面提到的子模板进行概要说明。图13示出子模板的布局的例子(“子模板的布局”是通过使用子模板做出的数据的布局,下同)。子模板是关于按期望所选择的一定数量的图像容器和一定数量的文本容器的布局、以及关于分配记录中的数据(字段)的设置的数据,该数据被存储为模板。在一个文档中多次使用一个布局的情况下,这样的子模板是方便的。在子模板中布置的容器与上述图像和文本容器相同,并且可以在容器之间设置链接。因此,图7B所示的布局计算方法可被应用于布置在子模板中的容器从而以最优方式改变布局大小。
图13示出子模板的布局的例子。附图标记1302和1305表示图像容器;附图标记1303和1306表示文本容器;附图标记1307表示链接。
参考图13,分别排列于在子模板1301和1304中布置的容器中的图像和文本的大小相互不同。因此,通过对每一记录计算最优布局来改变布局。因此,尽管使用相同的子模板,但是子模板1301和1304中的布局具有不同的容器(局部显示区域)位置和大小。在子模板中的布局方法中,通过使用以上参考图7B所述的处理来执行布局调整。
子模板条件式
子模板条件式能够对一个流动区域选择性地分配多种子模板。条件式还是用于从数据库中提取满足条件的内容的表达式。因此,在本发明中,可将其称为提取条件,并生成具有被设置该条件式(提取条件)的流动区域的模板。可将子模板和条件式中的一个与流动区域关联起来。如果子模板与流动区域相关联,则将所获得的记录排列在该相关的子模板中。也可以采用以下方法:在关联子模板时设置条件式,并仅将满足该条件式的记录排列在与流动区域相关联的子模板中。
条件式包括用于识别条件满足时使用的子模板的信息。图15示出用于设置条件式的UI的例子。将满足对流动区域设置的条件式的记录与和该条件式相关的子模板关联起来,并将该记录排列在容器中。排列记录的子模板被布置在流动区域中。
该输入区域至少具有命名条件式的文本框1502以及作为构成最基本的条件判定的要素的IF语句1503和ELSE语句1504对。用于IF语句的输入区域包括:列表框1505,用于在条件判定中从检查的字段中进行选择;列表框1506,用于设置判定用的逻辑表达式;文本框1507,用于输入判定用的值;THEN_USE处理语句1508,用于确定操作,即当条件判定结果为正确时,确定用于插入相应记录的子模板;以及ELSE_USE语句1504,用于当条件判定结果为不正确时,确定用于插入相应记录的子模板。作为用于判定的逻辑表达式1506,备有各种条件例如“EQUAL”、“NOT_EQUAL”、“LESS_THAN”、“LARGER_THAN”、“START_WITH”和“END_WITH”。
为了设置复杂的条件式,提供用于在IF语句中设置复合条件的AND/OR连接语句组合框1509。如果在该组合框中选择AND或OR复合条件,则在IF语句中添加一个条件行。在AND情况下,仅当所有多个条件都正确时,或者在OR情况下,当其中一个条件正确时,IF语句判定的结果为真。为了设置更复杂的条件分支,提供ELSE_IF语句添加按钮1510。当点击按钮1510时,在上述IF语句和ELSE语句之间新添加并插入ELSE_IF语句。ELSE_IF语句的内容和操作与IF语句的内容和操作相同。如下所述依次执行判定处理。当IF语句的判定结果是不正确时,执行紧随后的ELSE_IF语句的判定。当利用该语句的判定结果是不正确时,执行再随后的ELSE_IF语句的判定。重复执行该操作,最后执行ELSE语句的判定。附图标记1511表示用于删除所选择的ELSE_IF语句的删除按钮。在增加ELSE_IF语句的数量的情况下,可以通过使用滚动条1512显示条件列表。如果IF和ELSE_IF语句之一的判定结果是真,则执行相应的USE处理语句。向USE处理语句输入(选择)子模板名称。因此,可通过条件式对具有各种值的每个记录自动选择满足条件的子模板,并且可通过一个条件式实现不同的布局。该条件式与流动区域相关联,以使具有不同布局的多种子模板能够被布置在一个流动区域中。
用户输入条件,并最后点击确定按钮1514。当点击确定按钮1514时,表示在UI中设置的子模板条件的信息作为子模板信息2403的一部分被存储在存储器单元136中。作为该子模板条件式,能够确定条件和满足该条件时的子模板的信息例如文本文件可能就足够了,在该文本文件中,图15所示的UI中所述的(所选择的)文本按其原样进行存储。在图15所示的例子的情况下,将“IFfield01 EQUAL value01 AND field02 EQUAL value02 THENUSE子模板01 ELSE IF field01 EQUAL value03 AND field02EQUAL value04 THEN USE子模板02 ELSE USE子模板03”作为表示子模板条件式的信息进行存储。由于按照简单语法来说明该信息,并且由于通过例如图15所示的UI输入该信息,因此即使按其原样对其进行存储,也不易受语法错误等的影响。因此,可以通过简单程序来解析条件的描述,以确定满足条件的子模板。
因此,将用于从数据库中提取待布置的内容数据的条件以及如果满足该条件则使用的子模板相互关联包括在条件式中。因此将该条件式作为关于应当将所提取的内容数据布置在哪个子模板中的关联信息保持在存储器单元136中。另外,由于如上所述可以设置多个条件式,因此存在分别与所提取的内容数据项相关联的子模板。结果,在流动区域中布置多种子模板,其中在该子模板中布置了内容数据项。
流动区域布局方法
图17示出布局编辑应用程序121对流动区域中的布局进行计算的流程。在图10所示的步骤1010和图7A所示的步骤704中执行图17所示的程序。将对设置一个流动区域的情况进行说明。对于设置了多个流动区域的模板,对每个流动区域可以重复从S1701到S1715的程序。
布局编辑应用程序121从与流动区域相关的数据库中获取用于布局的数据(S1701),并用待布置的记录数代替n(S1702)。更具体地,作为构成布局编辑应用程序的其中一个模块的用户界面与包含待布置的记录的数据库进行通信,以识别待布置的记录数。
如果待布置的记录数是0,则无需布局处理,因此处理立即结束(S1703)。随后,布局编辑应用程序121用1代替用于检查记录的变量k,以从第一个记录开始检查记录(S1704)。布局编辑应用程序121还用1代替用于待布置的子模板数的变量Num(S1705)。然后布局编辑应用程序121从数据库中读出第k个记录中的数据(S1706)。将读出的记录中的内容数据临时存储在存储器单元136中。
布局编辑应用程序121通过参考与目标流动区域相关的流动区域信息2401判断是关联子模板还是关联条件式(S1707)。如果条件式被关联,则布局编辑应用程序121按照子模板基于下述图16A的流程图布置第k个记录(S1708)。根据图16A中所示的程序,如果子模板与流动区域相关联,则读出相应的子模板信息。如果条件式被关联,则在步骤1708对其进行评价,读出由此获得的子模板,并按照所读出的子模板布置第k个记录。另一方面,如果判定不是条件式与流动区域相关联,则根据图14所示的流程图,按照与流动区域相关的子模板,布置第k个记录(S1709)。在流动区域中排列在步骤1708或1709中按照子模板布置的数据之前,将其存储在存储器单元136中。存储作为布局计算的结果而获得的、排列内容后的容器之间的相对位置关系以及容器的大小和内容。例如,在子模板上确定适当的坐标原点,并存储关于在该坐标系上表示的容器的位置和大小的信息。为了容纳在容器中,将关于相同坐标系上的内容的位置和被布置在相应位置处的数据的信息与关于容器位置和大小的信息一起进行存储。这些信息项将被称为布置过内容的子模板信息。
在子模板中的布局完成以后,布局编辑应用程序121使变量Num加1(S1710),并使变量k加1以进入处理下一数据的处理(S1711)。然后布局编辑应用程序121比较k和所记录的数据组数n(S1712)。如果k小于n,则处理进入步骤1706,以重复对第k个数据的处理。如果k等于或大于n,则完成对子模板的布局,并且处理进入用于布置在流动区域中布置的子模板的处理。
为了在流动区域中布置子模板,布局编辑应用程序121从流动区域信息2401中获取流动区域的大小(S1713),并获取待布置的子模板的大小(S1714)。更具体地,由于通过下述图16A和16B的流程图所示的处理来确定应当在其上布置内容数据的每一子模板,并且由于将用于优化子模板中的布局的处理的执行结果存储在存储器单元136中,因此可以获得待布置的子模板的大小。在本实施例中,通过子模板中的容器大小来确定每一子模板的外部框的大小。即,因为每一子模板中的自由布局的处理,所以在子模板中的布局之后的子模板的大小依记录的内容而变化。由于如上所述将排列在子模板中的记录的布局结果保持在存储器单元136中,因此布局编辑应用程序121可以获得待布置的子模板的大小。一些用户可能想要使子模板的外部框大小恒定。因此可以通过预定的处理使能够进行关于子模板的外部框的大小是固定的还是可变的选择。
布局编辑应用程序在流动区域中布置具有内容数据的布局过的子模板,该子模板是通过应用在流动区域信息2401中设置的流动方向和流动间隔而布置的(S1715)。流动方向是布置子模板的方法,流动间隔是子模板之间的间隔。根据在步骤1708和步骤1709中存储的布置过内容的子模板信息执行流动区域中的布局。即,更具体地,将相对于每一布置过内容的子模板中的坐标系定义的容器的位置和大小以及内容的位置和细节转换为流动区域的坐标系中的坐标。这时,如果在流动区域中不能容纳一个或更多布置过内容的模板,则需要进行子模板的大小缩小转换。如果不期望进行子模板的大小缩小转换,则可以使用下述页面重复功能,以避免缩小转换。
子模板的布局(没有条件式)
图14示出在步骤1709中执行的用于子模板的布局的处理的流程。参考图14,布局编辑应用程序首先从数据库中获取用于布局的数据(S1401),并获取将在子模板的每一容器中布置的内容数据的大小(S1402)。更具体地,作为构成布局编辑应用程序121的其中一个模块的用户界面执行用于与数据库进行关联的处理,以使能够参考数据库中的数据。通过解释数据可以获得大小等。可以相互同时执行步骤1401和1402中的操作。在步骤1402的处理中,布局编辑应用程序121分析步骤1401中获得的数据中的信息。将所获得的内容数据的大小保持在存储器单元136中。
布局编辑应用程序基于步骤1402中获得的数据大小,对每一容器执行布局计算(S1403)以使布局最优化(S1404)。如上所述,通过使用图7A所示的处理执行最优化的方法。
布局编辑应用程序121确定步骤1404中最优化的布局(S1405),排列待布置的数据(S1406),并显示所布置的数据(S1407)。将步骤1405中确定的布局临时存储在存储器单元中。如果在完成文档时执行步骤1407中的显示,则步骤1407是没有必要的。
子模板的布局(利用条件式)
图16A和16B是示出在对图17的步骤1708中的流动区域设置条件式的情况下,通过执行条件判定选择插入来自数据库的记录的子模板的处理的流程图。
参考图16A,布局编辑应用程序121首先从数据库中获取用于布局的数据(S1601)。
随后,布局编辑应用程序121确定在其上布置数据的子模板(S1602)。如果当前检查的记录中的内容数据不满足对于流动区域设置的条件,则不布置前一记录,而检查下一数据。即,将具有满足条件式的内容数据的记录看作待布置的记录。下面将参考图16B来详细说明该步骤。
随后,布局编辑应用程序121传送将在每一容器中布置的数据的大小(S1603)。更具体地,布局编辑应用程序分析在步骤1601获得的数据,以识别待布置的数据大小,并将数据大小与容器相关联,从而执行步骤1603中的处理。
布局编辑应用程序121基于步骤1603中传送的数据大小,执行每一容器中的布局计算(S1604)以使布局最优化(S1605)。执行与上述相同的最优化方法,以根据内容数据的大小执行调整。
布局编辑应用程序121确定最优的布局(S1606),排列待布置的数据(S1607),在流动区域中布置数据并显示数据(S1608)。如果在完成文档时执行显示,则步骤1608是没有必要的。
图16B是示出作为确定子模板的步骤的图16A所示的步骤1602中的处理细节的流程图。
布局编辑应用程序121基于关于目标流动区域的流动区域信息2401读取子模板条件式文件,提取条件式的第一IF语句(S1611),并从步骤1601中接收到的记录中提取利用IF语句进行判定的字段的值。通过执行与数据库的通信,可以获得从数据库获得的每一记录的该字段的值。可选地,可将每一记录的该字段的值保持在存储器单元136中,并且通过布局编辑应用程序参考存储器单元136来提取该值。
布局编辑应用程序121判断步骤1612中所提取的每一字段的值是否满足步骤1611中所提取的条件(S1613)。即,由于条件式被保持在存储器单元136中,因此布局编辑应用程序121可通过参考存储器单元利用具体的字段值进行评价,从而执行如步骤1613所述的判定处理。
如果布局编辑应用程序121判定对流动区域设置的条件式与作为判定目标而提取的字段值彼此相符,即,评价结果为真,则布局编辑应用程序121选择与该条件相对应的USE处理,并将在此所述的子模板名称存储在存储器单元136(子模板信息2403)中(S1614)。通过该处理,关联并保持其上应当布置当前检查并判定满足该条件式的记录中的内容数据的子模板。该关联信息还作为上述关联信息项中的一项被保持在存储器单元中。
如果布局编辑应用程序121在步骤1613判定不相符,则其判断另一IF语句是否存在(S1615)。如果另一IF语句存在,则布局编辑应用程序121进入步骤1611中的处理,以继续利用IF语句进行判定。对于不满足直到最后一个IF语句中的任何一个的记录,选择ELSE语句的USE处理,并存储相应的子模板名称(S1616)。
在图16B所示的处理中,因为存在步骤1616,所以不满足该条件的记录也排列在子模板中。然而,如果在ELSE语句中没有指定要使用的子模板,则可以禁止将不满足该条件的记录排列在任何子模板中。即,不指定在ELSE情况下使用的子模板具有以下效果:将排列在子模板中的记录限制为满足对流动区域设置的条件式的记录。
在设置有能够使用多个子模板的条件式的情况下,通过上述处理在流动区域中布置多种布置过内容的子模板。此外,可以想到能够在以下二者之间进行选择的条件式:在子模板中排列所有所获得的记录和在子模板中仅排列满足条件式的记录。
图18A示出流动区域中的子模板的布局的例子。在图18A中,附图标记1801表示页边空白;附图标记1802和1803表示固定容器;附图标记1804表示流动区域;附图标记1805表示子模板;附图标记1806表示水平流动间隔;附图标记1807表示垂直流动间隔。在该流动区域中布置四个子模板。从位于该流动区域的左上角的开始点布置子模板,同时留出在上述流动区域设置对话框中设置的适当的流动间隔。
作为使用条件式处理的结果,获得在流动区域中使用的每一子模板。由于排列在子模板中的记录中的内容数据的大小不同,因此子模板中的详细布局设计具有不同的布局结果。
图18B示出在基于这种条件式而获得的各种子模板的流动区域中流动的状态。在1804所示的流动区域中,示出由1805所示的子模板中的详细布局。因此,流动区域的大小是固定的,而与布置在流动区域中的子模板数的数量无关。如果存在所布置的大小例如超出了流动区域的大小的子模板,则剪掉并且不显示超出的部分。最后显示布局结果并且处理结束(S1716)。
如果判定子模板超出流动区域,则可以想到缩小子模板的大小,使得可将子模板放置在流动区域内。因此,当判定子模板超出流动区域时,可以显示用于指定是执行修剪处理还是执行缩小处理的对话框。图18B示出布置四种布置过内容的子模板的状态。
通过上述程序,根据记录中所期望的字段的值,可以指定用于在流动区域中布置的记录的布局的所期望的子模板。因此,提高了文档中的对象的布局的自由度,从而能够准备高质量的文档。
另外,由于可以使用条件式对流动区域进行应当排列所有记录还是仅排列满足条件式的记录的设置,因此可以容易地获得用户所需要的布局。
图25A~25C示出具体的例子。在定义有图25A所示的流动区域的模板2502a中,条件式2501与流动区域相关联。条件式2501被作为子模板信息2403进行存储。根据该条件式2501,如果记录中的字段数据A是1,则对该记录使用子模板2503,如果字段数据A是2,则对该记录使用子模板2504,在其它情况下,对该记录使用子模板2505。记录2506和2507被包含在布局对象数据库中。
如图25B所示,首先获取记录2506。在这种情况下,根据图17、16A和16B中所示的过程执行处理。即,首先评价条件式“字段数据A=1”。因为该条件为不为真,然后评价“字段数据A=2”。该条件也为非真。因此,在这种情况下根据USE语句通过使用子模板2505来布置记录2506。这是布局2502b的例子。然而,根据图17所示的过程,在布置所有记录后,执行流动区域中的子模板的排列。因此不产生例如图25B所示的预览显示。
随后,获取记录2507。在这种情况下条件式“字段数据A=1”为真。因此根据与该情况相对应的USE语句通过使用子模板2503来布置记录2507。
从而完成用于对记录2506和2507的判定的处理,以确定应当排列记录的子模板。然后通过在子模板的相关容器中调整实际包含在记录中的内容数据的布局获得布局2502c。因此,基于用户设置的条件式,可以使用可按记录而改变的子模板。
第二实施例
传统上,流动区域被限制为一个页面的范围,用于通过执行在一个页面的范围内设置子模板的处理,实现根据空间有限的文档例如明信片的布局结果。因此,没有考虑在多个页面上布置子模板。然而,可能有这样一种情形:根据按客户准备文档的需要,准备具有根据客户的兴趣范围随意改变而不限于固定数目的页数的文档。
本发明第二实施例将对包括以下方法的自动布局系统进行说明:如果当在流动区域中布置子模板时该子模板超出该流动区域,则自动生成具有流动区域的新页面,并在该新页面上连续布置该子模板的超出部分。这种功能将被称为页面重复功能。
该方法的优点在于如果定义了一个流动区域,则可以处理与该流动区域相关联的数据库中的所有记录以根据该流动区域的定义进行布置,并将其组合为一个文档。将省略对第二实施例与第一实施例相同的部分(图和图的说明)的说明。
多个页面中的重复页面
图19示出用于在模板生成模式下在具有多个页面的文档中插入流动区域时激活的设置对话框的UI的例子。从单选按钮1902选择流动区域的打开/关闭。在打开的情况下,在文本框1903中设置布置流动区域的页面的页码。该UI具有以下输入限制:开始页码为1或者任一随后页码和最后页码等于或小于文档的最大页数。
此外,在文本框1904中设置重复页面范围,其中通过在所布置的流动区域中重复生成实例(instance)使子模板在该重复页面范围上流动。下面将说明重复的页面。该UI具有以下输入限制:用于重复页面的开始页码大于用于流动区域的开始页码,用于重复页面的最后页码等于或小于用于流动区域的最后页码。该UI还具有以下输入限制:必须存在至少一个重复页面。上述限制的原因是可能在文档的开头和结尾部分包含不适合于页面重复的页眉和页脚。
即,在从流动区域开始页面到重复页面设置中紧接在开始页面之前的页面的范围中至少存在一个非重复的页面。另外,在从重复页面设置中的最后页面随后的页面到流动区域的最后页面的范围中至少存在一个非重复的页面。
当在设置对话框中点击确定时,根据所设置的页面范围在每一页面中插入流动区域,并将关于该状态的信息存储在存储器单元136中作为关于将多个页面组合为一组的多页面模板的信息。
例如,通过在模板信息中提供用于识别组的信息,可将一组页面看作一个组。将表示所设置的单选按钮1902的流动区域重复标志和各种页面设置存储在存储器单元136中作为按页面的流动区域信息2401的一部分。然而,除流动区域位置外,属性信息、子模板信息和多记录信息对每个页面是相同的。因此,在除流动区域位置外的信息中,对属于一个组的模板参考例如对第一个页面设置的信息。
流动区域的位置的控制
在多个页面上布置的流动区域可在每个页面上占据其位置和大小。图20示出用于调整每个页面上的流动区域的位置和大小的UI的例子。附图标记2001表示页边空白区域。由2004表示的流动区域以不同于普通容器的某种线条和颜色的方式来显示,以便如上所述可容易地进行区分。然而,可以通过大小改变操作器2003改变流动区域的大小,该大小改变操作器2003是如图20的布局编辑区域中的图像绘制软件中的众所周知的普通要素。将流动区域可以存在的区域限制在页边空白区域是适当的。当改变流动区域大小时,将改变后的大小作为流动区域信息存储在存储器单元136中。
重复页面
图21A~21B是示意性示出通过一个文档的多个页面来布置流动区域的状态、以及当将实际数据插入流动区域中时生成布置过内容的页面的状态的图。
图21A中的附图标记2102表示待重复的页面。附图标记2101和2103表示不是待重复的页面、但其上存在流动区域的页面。附图标记2104表示流动区域。即,根据图19所示的例子形成图21A所示的模板。附图标记2105和2106表示普通容器。这些普通容器与流动区域无关。普通容器具有与其相关联的内容,并且不经过多记录处理。
流动区域2104在多个页面上扩展,但布局处理应用程序将其看作一个连续的区域。即,参考共有的除流动区域的位置和大小以外的流动区域信息。即,当指示重复流动区域时,用户需要定义与所指定的页面相对应的多页面模板。这时,除流动区域的位置外的属性是该多个页面所共有的。
根据该配置,通过使用在图21A所示的例子中在三个页面2101~2103上扩展的整个流动区域,来布置作为实际数据插入的数据库中的所有记录。
图21B示出通过将实际数据插入如图21A所示设置的流动区域中获得布置过内容的文档的状态。附图标记2107表示子模板的类型。为了易于图示,省略了实际流动的子模板和容器的某些细节。图21B示出将如图21A所示的第二个页面2102指定为重复的页面、并根据记录数自动生成和重复该第二个页面2102的状态。即,参考图21A和21B,尽管21个记录将在流动区域上流动,但仅在图21A所示的页面2101~页面2103的流动区域中不能容纳布置该21个记录的子模板。因此,自动生成指定为待重复的页面的页面2102,直到将所有记录布置到流动区域中为止。
尽管对于提前指定待重复的页面的情况说明了本实施例,但是可以自动指定待重复的页面。在这种情况下,例如,将具有用于流动区域的最大面积的页面指定为待重复的页面。这是因为将布置在其中的子模板数目最大的页面(即,具有用于流动区域的最大面积的页面)指定为待重复的页面在避免重复生成浪费页面方面是有效的。
在如上所述流动区域存在于多个页面的情况下,根据页面特性能够选择将哪个页面设置为待重复的页面的方法具有改善文档表现力的效果。在图21A和21B中所示的例子的情况下,可以想到以下的排列:在第一页的流动区域中放置对客户的问候,同时在普通容器中输入客户姓名;之后将多记录中的记录数据显示在流动区域中;在重复的页面上处理大量记录数据项;在第三页的流动区域中放置销售代表姓名和信尾客套话。因此,当采取在多个页面上布置多个相同的记录数据项的文档形式时,该多个页面中的一些可以具有多样化的内容。
布局处理的流程
图22A和22B是示出根据第二实施例当将所布置的内容排列在流动区域中时的处理的流程图。如第一实施例中图17所示的步骤1715执行图22A和22B所示的处理。在该流程图中,示出在多个页面上的流动区域中布置子模板的方法。
布局编辑应用程序121首先获取要在流动区域中布置的子模板的数目,并用所获得的数目代替n(S2201)。该数目为在图17所示的步骤1712中确定的k或n。如果n为0(S2202),则无需在流动区域中进行布局,因此在不执行布局处理的情况下处理结束(S2203)。这些步骤中的处理细节与上述相同,并省略其说明。
之后布局编辑应用程序121将变量k初始化为1(S2204),并获取关于在文档开头是否存在一个或一组不是待重复的页面且其上存在流动区域的页面的信息。如果存在这样一组非重复的页面,则布局编辑应用程序121从模板数据中读出与文档开头的非重复页面相对应的模板信息。布局编辑应用程序121用该组非重复页面中的开始页面的页码代替s,并用该组非重复页面中的最后页面的页码代替e(S2205)。根据通过图19所示的UI的用户输入,从存储在存储器单元136中的流动区域信息中读出关于这些页面的信息。
之后布局编辑应用程序121根据所读出的模板数据中的流动区域信息,从头开始依次将可包含在目标页面(页面s~e)中的子模板流动到页面s~e中(S2206),获取包含在页面s~e中的子模板数,并将该数目设置为t(S2207)。这时,布局编辑应用程序121用t代替k(S2208),并对k和n进行相互比较(S2209)。将k的值临时存储在存储器单元136中。如果k小于n,则未将所有子模板布置在流动区域中。因此处理进入步骤2210。如果k等于n,则确定已经将所有子模板布置在流动区域中,处理结束。
布局编辑应用程序121在存储器单元136中临时存储当前所布置的页面数p(S2210)。之后布局编辑应用程序121从模板数据中读出与结尾处的文档的非重复部分相对应的模板信息。布局编辑应用程序121获取包括文档的末尾并在其上存在流动区域的非重复页面的页码(从紧接在所指定的重复页面范围之后的页面到最后的页面),用该组非重复页面中的开始页面的页码代替s,并用该组非重复页面中的最后页面的页码代替e(S2211)。根据通过图19所示的UI的用户输入,还从存储在存储器单元136中的流动区域信息中读出关于这些页面的信息。
布局编辑应用程序121根据所读取模板的流动区域信息,从头开始依次将可包含在页面s~e中的子模板流动到页面s~e中(S2212),获取包含在页面s~e中的子模板数,并将该数目设置为t(S2213)。然后布局编辑应用程序121对k+t和n进行相互比较(S2214)。如上所述,将k的值临时存储在存储器单元136中。因此布局编辑应用程序121可以识别k的值。如果k+t小于n,则处理进入步骤2215。如果k+t等于n,则确定已将所有子模板布置在流动区域中,而不使用任何重复页面,处理结束。
如果即使在完成到步骤2214的处理之后,仍没有完成图22A和22B的流程图中所示的处理,则判定不能将待布置的所有记录(布置过内容的子模板)容纳在包括开头处的非重复页面和结尾处的非重复页面的文档中。
然后布局编辑应用程序121丢弃在步骤2212中已完成了流动的页数p之后的已布置过的页面(所布置的数据)的实例(S2215)。即,执行步骤2215中的处理以在重复页面中排列在步骤2212中完成了流动的页数p之后所布置的实例(从紧接在所指定的重复页面范围后的页面到最后的页面所布置的实例)。
布局编辑应用程序121从存储器单元136中读出与重复页面相对应的模板信息,获取在文档的重复流动区域中的页码,并将开始页码设置为s,将最后页码设置为e(S2216)。还从存储在存储器单元136中的流动区域信息2401中读出关于这些页面的信息。
布局编辑应用程序121将可包含在流动区域中的子模板(所布置的实例)流动到重复页面s~e上(S2217),获取包含在重复页面s~e中的子模板数,并用该数目代替t(S2218),对k加上t,再次用k+t代替k(S2219),并对k和n进行相互比较(S2220)。如果布局编辑应用程序121在步骤S2220中判定为“否”,即,可以排列在步骤S2201中获得的所有子模板,则结束图22A和22B的流程图中所示的处理。
如果布局编辑应用程序121在步骤2220判定为“是”,则再次将处理移到步骤2210。在进入步骤2210中的处理之后,布局编辑应用程序121执行从步骤2211到步骤2213中的处理。如果布局编辑应用程序121在步骤2214再次判定为“是”,则其判定即使当使用开头处的非重复页面上的流动区域、第一个重复页面和结尾处的非重复页面时,仍不能容纳步骤2201中获得的所有子模板(已布置的实例)。因此,处理再次移到步骤2215,以生成包括重复流动区域的页面。重复上述处理,直到在步骤2220中判定为“否”为止,从而自动生成重复页面,直到可以通过使用重复页面排列所有子模板为止。该生成处理可以是复制预定页面。
参考图21A和21B更具体地详细说明上述处理。首先,根据步骤2201中获得的子模板(已布置的实例)来排列可容纳在页面2101上的流动区域中的子模板。到该阶段的处理对应于步骤2201~2208。
随后,如果判定还没有排列所有所获得的子模板(S2209),则将剩余的子模板排列在页面2103上的流动区域中。到该阶段的处理对应于步骤2210~2213。
如果判定即使当使用页面2101和2103上的流动区域时,仍不能排列所有所获得的子模板(S2214),则删除排列在页面2103中的子模板,并将该子模板排列在作为重复页面的页面2102上的流动区域中。到该阶段的处理对应于步骤2215~2219。作为上述处理的结果,将在步骤2201中获得的子模板连续排列在页面2101和2102上的流动区域中。
在步骤2220,对是否已容纳在步骤2201中获得的所有子模板进行判断(S2220)。如果判定还没有包含所有子模板,则再次排列超出页面2103上的流动区域的子模板。如果判定即使通过到该阶段的处理,仍不能排列所有子模板(S2214-是),则处理再次移到步骤2215,生成作为待重复的页面的页面2102,并将子模板排列在所生成的页面2102上的流动区域中。如图21B所示,重复上述处理,以仅重复复制(生成)待重复的页面,即页面2102,直到容纳所有子模板为止。
在将多个页面指定为待重复的页面的情况下,根据所获得的子模板数,有可能生成空白页面。例如,在选择一组三个页面作为待重复的页面的情况下,当不能包含所获得的子模板时,生成该组三个页面。生成重复页面。然而,有可能将所获得的子模板容纳在限于新生成的重复页面中的第二页的区域中,而所指定的重复页面的第三页保持空白。在这种情况下,根据用户设置自动删除该空白页面。
因此,在本实施例中,当不能将模板容纳在流动区域中时,自动生成新页面,从而使不能被完全容纳在一个页面上的流动区域中的子模板能够连续流动。该方法的目的在于在没有页面限制的情况下准备文档。由于所生成的新页面是用户提前指定的重复页面,因此可以提供反映用户意图的页面构造。而且,如果如上所述自动设置重复页面,则可以改善用户可操作性。
如果通过使用紧接在重复页面之前的页面和重复页面可以布置所有布置过内容的子模板(S2220-是),则图22B的流程图中所示的处理结束。然而,如果指定底页面(footer page),并且如果有输出到该底页面的内容数据,则在添加底页面之后终止处理。
通过将注意力放在在多个页面上定义一个连续的流动区域的效果说明了本实施例,还没有特别提及在一个文档中的多个流动区域的布局。不用说,也可能在多个页面上布置多个流动区域中的每一个。
根据本发明,选择根据从数据库中提取的记录数据的内容(值)的不同子模板,并将记录插入在所选择的子模板中。另外,对每一记录重复用于该插入的处理,以获得各子模板和记录相互关联的局部布局。将布置过记录的子模板连续流入流动区域,以实现不能由传统排列实现的、重复进行复杂的布局改变的流动的布局。
在作为流动多种记录的结果,子模板超出一个流动区域的情况下,自动生成并添加包括布局区域(流动区域)的页面,以使能够制作具有以高自由度选择的页数的文档。该效果在准备通过排列数目没有提前固定、在某种程度上相互类似但在详细的布局结构中有变化的局部布局来表示的文档例如目录册时是非常有利的。
第三实施例
本发明的第三实施例是根据第一和第二实施例的发展。将说明能够在例如子模板之间以及流动区域和容器之间进行分隔、以及能够在多个页面上简单地扩展流动区域的布局编辑应用程序。本实施例将对第二实施例关于与第一实施例的不同点的样式进行说明,而省略本实施例与第一和第二实施例之间的共同部分的说明。
子模板条件式
子模板条件式是用于向一个流动区域分配多种子模板的装置。可将子模板和条件式中的一个与流动区域相关联。图26示出用于设置条件式的UI的例子。这与第一实施例中的相同。然而,在本实施例中,可以输入作为子模板信息存储的条件式,同时包括具有与用于子模板的条件相同的条件的定界信息。
图26示出用于设置条件式的UI的例子,该条件式用于通过接收来自数据库的一个记录来执行处理。该输入区域至少具有:文本框2602,在该文本框2602中命名条件式;以及IF语句2603和ELSE语句2604对,其是构成最基本条件判定的要素。
用于IF语句的输入区域包括:列表框2605,用于在条件判定中从检查的字段中进行选择;列表框2606,用于设置用于判定的逻辑表达式;文本框2607,用于输入用于判定的值;THEN_USE处理语句2608,用于确定操作,即当条件判定结果是正确时,确定用于插入相应记录的子模板;WITH处理语句2609,用于当改变子模板时选择伴随该子模板的Break处理(文档分隔处理);以及ELSE_USE语句2604,用于当条件判定结果是不正确时,确定用于插入相应记录的子模板。
作为用于判定的逻辑表达式2606,备有各种条件例如“EQUAL”、“NOT_EQUAL”、“LESS_THAN”、“LARGER_THAN”、“START_WITH”和“END_WITH”。在指定字段值例如“FieldNN(字段NN)”作为用于利用逻辑表达式2606进行判定的判定值2607的情况下,对在2605输入的字段值和在2607输入的字段值进行判定,从而当诸如在多记录发生改变等记录种类发生改变时,能够执行用于生成新文档的多记录打印。
此外,也可以将“change(改变)”设置为用于判定的逻辑表达式。在每次某字段值中数据值改变时设置下述Break处理的情况下,用于判定的逻辑表达式“change”是有效的。将通过例子来具体说明设置判定表达式“change”的有效的地方。
例如,假定通过使用大量记录信息来执行伴有换文档的布局处理。需要对假定为“field01”的数据项通过用户设置的条件式,例如“IF field01 EQUAL value01 with DocumentBreak”、“IFfield01 EQUAL value02 WITH DocumentBreak”和“IF field01EQUAL value03 WITH DocumentBreak”,重复设置处理。如果假定的数据项的数目较大,则条件式的数目增加,并导致更复杂的处理。在这种情况下,如果使用上述“change”,只有一个条件式就足够了。即,设置“IF field01 change value withDocumentBreak”以在每次改变字段值1的数据时执行换文档。这样消除了对设置与所假定的数据项的数目相对应的条件式的要求,从而改善了用户可操作性。
作为WITH处理语句,准备四种Break处理:DocBreak(换文档),用于中断当前的记录布局处理,打印底页面,之后从新的顶页面(header page)开始打印新记录;PageBreak,用于中断当前的记录流动,生成新的页面,之后开始新的记录流动;LineBreak,用于从下一流动区域重新开始记录流动;以及NoneBreak(继续),用于在不执行Break处理的情况下继续流动。
为了设置复杂的条件式,提供用于在IF语句中设置复合条件的AND/OR连接语句组合框2610。如果在该组合框中选择AND或OR复合条件,则在IF语句中添加一个条件行。在AND情况下,仅当全部多个条件都正确时,或者在OR情况下,当其中一个条件正确时,IF语句判定的结果为真。
为了设置更复杂的条件分支,提供ELSE_IF语句添加按钮2611。当点击按钮2611时,在上述IF语句和ELSE语句之间新添加并插入ELSE_IF语句。ELSE_IF语句的内容和操作与IF语句的内容和操作相同。如下所述依次执行判定处理。当利用IF语句的判定结果为不正确时,执行利用紧随其后的ELSE_IF语句的判定。当利用该语句的判定结果为不正确时,执行利用再随后的ELSE_IF语句的判定。重复执行该操作,最后执行利用ELSE语句的判定。附图标记2612表示用于删除所选择的ELSE_IF语句的删除按钮。在增加ELSE_IF语句的数量的情况下,可以通过使用滚动条2613显示条件列表。
如果利用IF和ELSE_IF语句之一的判定结果为真,则执行相应的USE处理语句和WITH处理语句。因此,可利用条件式对具有不同值的记录中的每一个自动选择满足条件的子模板,并且可利用一个条件式通过同时使用伴随所选择的子模板的Break处理实现各种布局。
该条件式与流动区域相关联,以使具有各种布局的多种子模板能够被布置在一个流动区域中。
用户通过图26所示的UI输入条件,并最后点击确定按钮2615。当点击确定按钮2615时,表示在UI中设置的子模板条件的信息(子模板条件式)作为子模板信息2403的一部分被存储在存储器单元136中。作为该子模板条件式,能够确定条件和满足该条件时的子模板的信息例如文本文件可能就足够了,其中,图26所示的UI中所述的(所选择的)文本按其原样存储在该文本文件中。在图26所示的例子的情况下,将“IF field01 EQUAL value01AND field02 EQUAL value02 THEN USE子模板01 WITHPageBreak ELSE IF field01 EQUAL value03 AND field02EQUAL value04 THEN USE 子模板02 WITH PageBreakELSE USE子模板03 WITH PageBreak”作为表示子模板条件式的信息进行存储。由于按照简单语法来说明该信息,并且由于通过例如图26所示的UI输入该信息,因此即使按其原样对其进行存储,也不易受语法错误等的影响。因此,可以通过简单程序来解析条件的描述,以确定满足条件的子模板。
布局处理
图27A是示出通过在对流动区域设置了条件式的模板中进行条件判定,根据该条件式(提取条件和分隔处理)执行布局处理的流程图。图27A所示的处理包括第一实施例的图7A所示的步骤703和704以及图10所示的步骤1009和1010。
下面将对由顶页面、包括流动区域的待重复的页面和底页面构成的模板的例子进行说明。参考图27A,布局编辑应用程序121首先从数据库中获取待布置的数据(S2701),并判断是否已处理了最后的记录(S2702)。由于布局编辑应用程序121在临时保持关于当前正处理哪个记录的信息的同时执行处理,因此可以在步骤2702中进行判断。如果布局编辑应用程序121在步骤2702中判定已经处理了最后的记录,则处理进入步骤2713,以执行底页面布局处理,并结束图27A的流程图所示的处理。如果在步骤2701中获得的待布置的记录数为0,则不能执行布局处理。然后布局编辑应用程序121在不执行底页面布局处理的情况下结束图27A的流程图所示的处理。
接着,布局编辑应用程序121判断当前处理的记录是否是第一个记录(S2703)。如果当前处理的记录是第一个记录,则布局编辑应用程序121执行顶页面布局处理(S2704)。更具体地,该布局处理是用于通过使用所获得的记录中的预定的内容数据生成顶页面的处理。以与上述参考图7A和14的流程图的第一实施例的说明中用于最优化子模板中的布局的处理相同的方式执行该顶页面布局处理。这意味着象在普通模板的情况下那样,布局定义子模板以在排列来自数据库的内容时执行布局最优化处理。
布局编辑应用程序121根据所获得的记录中的内容数据和对于流动区域设置的条件式,判断是否可以布置所获得的记录中的内容数据。如果其判定应该布置该内容数据,则其基于该条件式确定子模板和Break处理(S2705)。更具体地,布局编辑应用程序121读出作为流动区域信息存储在存储器单元136中的子模板条件式,并识别该条件式和包含在所获得的记录中的内容数据,以识别满足该条件式的子模板名和Break(分隔)处理的细节。
之后布局编辑应用程序121基于所识别的信息判断Break处理的定义是否存在,以及Break处理是否发生(S2706)。为了判断Break处理的定义是否存在,布局编辑应用程序121可以判断Break处理设置是否存在,因为其在步骤2705确定Break处理。
通过临时存储在当前处理的记录之前的记录中的内容数据,并通过将该内容数据与当前处理的记录中的内容数据进行比较,对Break处理是否发生进行判断。更具体地,如果为执行Break处理而指定的字段值(数据项)中的值已改变,则判定Break发生。
如果作为步骤2706中判断的结果,判定“不存在Break设置”和“Break没有发生”中的一个,则将当前处理的记录中的内容数据布置在子模板上,如上所述执行子模板中的布局调整,并将子模板布置在流动区域中(S2714)。即,将布置过内容的子模板布置在流动区域中,同时留出在流动区域信息中指定的空间。
如果布局编辑应用程序121在步骤2706中判定Break设置存在并且Break处理发生,则其判断是否已经指定DocBreak(换文档)(S2707)。作为在步骤2707中的判断处理,可以通过确定步骤2705中的Break处理,对设置哪个Break处理进行判断。即,布局编辑应用程序121可通过读出流动区域信息来判断Break处理。
如果布局编辑应用程序121在步骤2707判定指定了DocBreak(换文档),则其中断在流动区域中排列记录,以便临时完成到当前时间点为止获得的输出结果,新生成底页面,并执行布局处理(S2708)。为了避免重复相同的处理,需要提前清除Break设置。然而,如果清除了包括在流动区域信息中的子模板条件式中的Break设置,则改变了设置本身。为此,提供并设置表示用于对所识别的记录插入换文档的分隔处理完成的Break完成标志。如果设置了该Break完成标志,则消除对重复步骤2705和2706中的处理的需要。
因此,布局编辑应用程序121还在步骤2706判断是否没有设置Break完成标志。即使当布局编辑应用程序121识别出分隔设置时,如果设置了该Break完成标志,则布局编辑应用程序121仍判定为“否”。之后布局编辑应用程序121使处理进入步骤2714,在子模板上布置当前处理的记录,并在目标页面的流动区域中布置子模板。在完成所识别的记录的布局之后,复位分隔完成标志。
与在顶页面布局处理中一样,执行步骤2708中的底页面布局处理,其中该顶页面布局处理以与上述参考图7A和14的流程图的第一实施例的说明中用于最优化子模板中的布局的处理相同的方式来执行。
之后布局编辑应用程序121将处理返回顶页面布局处理(S2704),并重复用于新准备文档的处理。当在完成步骤2708中的页脚布局处理之后处理返回步骤2704时,由于提前清除了Break设置(即,设置了Break完成标记),因此不会重复相同的处理。判定不存在Break定义(S2706)。因此,执行普通布局,并将存储在记录中的内容布置在页面上(S2711)。因此,在记录处理期间发生换文档,从而实现多记录打印。
当布置了待布置的内容数据时,上述换文档设置使能够插入换文档。因此每次数据属性改变时,生成新的文档。
如果布局编辑应用程序121在步骤2707判定不存在换文档设置,则其判断是否存在PageBreak(换页)设置(S2709)。在步骤2709中的判断处理与步骤2707中的判断处理相同。因此不重复对该处理的详细说明。
如果布局编辑应用程序121判定PageBreak(换页)设置存在,则其中断当前流动并新生成页面(S2710)。在通过插入换页来生成包括流动区域的新页面之后,布局编辑应用程序121获取关于该新页面上的流动区域的当前处理的数据中的内容数据的大小,执行普通布局,并将存储在记录中的内容布置在页面上(S2714),从而重新开始布置过内容的子模板的流动,作为流动区域中的新流动。
因此,每次数据属性改变时,生成新的页面。如果例如当向用户建议多个商品时的自定义目录中以这种方式生成页面,则可以将相同种类的一组商品排列在一个页面上。另外对于PageBreak,以与DocBreak有关的相同方式使用Break完成标志。Break完成标志可以具有表示其与DocBreak或PageBreak的关系的Break属性信息。
如果布局编辑应用程序121在步骤2709中判定不存在PageBreak设置,则其判断是否存在LineBreak(换行)设置(S2711)。步骤2711中的判断处理与步骤2707中的判断处理相同。因此不重复对该处理的详细说明。
如果布局编辑应用程序121判定LineBreak(换行)设置存在,则其将布局开始点从当前流动区域移动到与下一行相对应的流动区域中的流动区域位置的左端(S2712)。更具体地,作为构成布局编辑应用程序121的其中一个模块的布局引擎可以识别出内容数据布局位置。布局引擎识别出布置上一记录的子模板的位置,临时存储在存储器单元中,从其与子模板高度相对应的距离处插入换行,并将布局开始点移动到左端,从而实现步骤2712中的处理。
之后,执行普通布局,并将存储在记录中的内容布置在页面上的流动区域中(S2714)。布局编辑应用程序121在完成步骤2714中的处理之后,执行用于继续获取待处理的下一记录的处理,返回步骤2701,并开始用于获取下一记录的处理。
因此,在流动区域中的流动期间发生换行,这种情况下的换行是移动与布置在子模板中的记录的高度相对应的距离。另外对于LineBreak,以与DocBreak有关的相同方式使用Break完成标志。
当布置具有不同数据属性的内容数据时,上述换行设置使能够插入换行。因此可以在相应行布置具有共同数据属性的子模板数据。
如上所述,可以通过由条件式定义的各种Break处理,随意改变由顶页面、流动区域和底页面构成的文档的构造。根据对于流动区域设置的Break处理,通过插入换文档来分隔文档,以生成布置内容数据的新的文档,或者通过插入换页来分隔文档,以生成布置内容数据的新的页面,从而在多记录打印时获得各种输出结果。
图27B是示出在图27A所示的处理中用于确定子模板的处理S2705的细节的流程图。布局编辑应用程序121提取条件式中的第一个IF语句(S2721),并从在步骤2701中接收到的记录中提取利用IF语句对其进行判定的字段的值(S2722)。由于如上所述将条件式作为流动区域信息存储在存储器单元中,因此布局编辑应用程序121通过参考存储器单元可以执行步骤2721和2722中的处理。
随后,布局编辑应用程序121判断当前处理的记录中的字段的值是否满足步骤2721中提取的条件式(S2723)。更具体地,布局编辑应用程序将当前处理的记录中的内容数据临时存储在存储器单元136中,并对该内容数据和作为流动区域信息保持的条件式进行比较,从而能够执行步骤2723中的处理。
如果布局编辑应用程序确定在判定中要检查的字段值满足在步骤2121中提取的条件式,则其根据条件式中的条件语句选择USE处理,以确定子模板(S2725)。当确定了将要使用的子模板时,布局编辑应用程序将当前处理的记录和将要使用的子模板进行关联,并将其存储在存储器单元136中。
如果布局编辑应用程序确定在判定中检查的字段值不满足在步骤2121中提取的条件式,则其判断是否有另一条件式(S2724)。在步骤2724中的判断处理与步骤2723中的判断处理相同。如果布局编辑应用程序在步骤2724中判定存在另一条件式,则类似地通过使用该另一条件式执行步骤2723中的判断。
如果布局编辑应用程序判定当前处理的记录中的内容数据不满足任何条件式,则其选择ELSE语句的USE处理,以确定子模板(S2726)。在一些情况下,用户不设置ELSE语句。如果条件式不存在ELSE语句,则省略步骤2726中的处理。
最后,布局编辑应用程序121获得由WITH语句定义的Break处理,并将其存储在存储器单元136(S2727)。
子模板
将参考图28来说明作为图27A所示的步骤2714中的子模板布局处理而执行的布局处理的流程。
布局编辑应用程序121首先获取每一容器中布置的数据的大小(S2801),基于步骤2801中获得的数据大小执行每一容器中的布局的计算(S2802),并使布局最优化(S2803)。本实施例中布局计算处理和布局最优化的方法与第一实施例的相同。
布局编辑应用程序121通过上述处理确定最优化的布局(S2804),并排列待布置的数据(S2805)。该处理也与第一实施例中的相同。
之后布局编辑应用程序121获取用于在流动区域中布局子模板的流动区域的大小(S2806),并获取待布置的子模板的大小(S2807)。如上所述,流动区域的大小和模板的大小被存储在存储器单元136中,因此可以获得它们。在本实施例中,每一子模板的外框的大小可能根据排列在子模板的容器中的记录的内容是可变的,或者可能与排列记录无关,是固定的。
布局编辑应用程序121在应用所设置的流动方向和流动间隔的同时,在流动区域中布置子模板(S2808),最后显示布局结果,并结束处理(S2809)。可通过调用图28中所示的处理的程序来执行最后的显示处理,因此,可省略最后的步骤。
步骤2801~2805与图14中所示的步骤1402~1406相同,步骤2806~2809与图17所示的步骤1713~1716相同。
流动区域中的Break的例子
将参考图29和35来具体说明图27所示的处理。图29示出通过DocBreak(换文档)处理来生成多个文档的例子。
参考图29,设置排列子模板的流动区域2901。对于该流动区域,设置有使用子模板2902、2903和2904中的一个的条件式。在该条件式中,进行设置以当记录的目标字段(数据A)为“1”时执行THEN USE“子模板2902”WITH“DocBreak”。还进行设置以当记录的目标字段(数据A)为“2”时执行THEN USE“子模板2903”WITH“DocBreak”。此外,进行设置以当记录的目标字段为“3”时执行THEN USE“子模板2904”WITH“DocBreak”。
即,根据数据A的项的改变来执行换文档。
将参考图27A和29来具体说明处理的流程。布局编辑应用程序121获取存在于数据中的“记录1”。由于记录1是第一个记录,因此根据相关信息将包含在记录1中的数据A的“1”布置在顶页面上的容器中。到该阶段的处理对应于图27中的步骤2701~2704。
布局编辑应用程序121识别记录1的“数据A=1”,并参考存储器单元136中的条件式以识别(如果记录的目标字段(数据A)为“1”,则THEN USE“子模板1”WITH“DocBreak”)。因此,对于记录1确定使用子模板1,还识别出换文档设置。
然而,在处理记录1中,Break处理不会发生,该Break处理可能通过与前面的记录相比在预定字段值中的改变而发生。因此,处理进入步骤2714中的处理,其中将记录1中的内容数据排列在子模板中。该处理对应于图27A中的步骤2706。如上所述,将记录1中的内容数据临时保持在存储器单元136中。
布局编辑应用程序121在步骤2714后返回步骤2701,并通过将下一记录2作为待处理的记录继续进行处理。由于处理记录2的情况与已经处理了最后的记录的情况以及处理第一个记录的情况不同,因此处理进入步骤2705。然后,当记录2的内容数据为“数据A=2”并且当条件式“记录的目标字段(数据A)为“2”时,布局编辑应用程序121根据THEN USE“子模板2”WITH“DocBreak”判定记录2使用的子模板为子模板2,并且还识别出存在换文档设置。
此外,布局编辑应用程序121比较临时保持的记录1中的内容数据和记录2中的内容数据,以识别出已经发生从记录1中的“数据A=1”到记录2中的“数据A=2”的改变。因此,当排列记录2时,Break处理发生。
由于以上缘故,布局编辑应用程序在步骤2706的处理中识别出“Break处理设置存在”和“Break处理发生”,因此使处理进入步骤2707。由于在与记录2相对应的条件式中设置了“换文档”,因此布局编辑应用程序生成用于记录1的底页面2907。这里使用的内容数据是在记录1中所包含的内容数据。此外,布局编辑应用程序121设置上述Break完成标志。
通过到该阶段的处理,生成图29所示的文档(a)的部分2905、2906和2907。之后布局编辑应用程序121使处理进入步骤2704,以生成用于记录2的顶页面2908。由于设置了上述Break完成标志,因此省略步骤2705中的处理,并且步骤2706中判定的结果是“否”。结果,将记录2中的内容数据布置在子模板2上,并将其布置在作为新文档的文档(b)的页面2909上的流动区域中。
随后,对记录3和4执行相同的处理。记录3和4具有与记录2中的数据A相同的“数据A=2”。因此,Break处理不会发生。因此,布局编辑应用程序121使处理进入步骤2714,以将记录3和4中的内容数据布置在文档(d)的流动区域中。在通常情况下,还应当将记录4中的内容数据布置在文档(b)的页面2909上的流动区域中。然而,待排列的内容数据量很大,以致不能将数据设置在一个流动区域中。为此,通过页面重复功能新生成页面2910。
因此,可以随子模板的改变而改变文档。
接着将参考图27A、27B和35来说明PageBreak(换页)的具体例子。例如,假定排列包含在数据3500中的记录的情况。
参考图35,设置排列子模板的流动区域3501。对于该流动区域,设置用于使用子模板3502、3503和3504中的一个的条件式。该条件式的第一要素是如果数据A改变则执行WITH “DocBreak”的设置。即,关于数据A的改变执行换文档。该条件式的第二个要素是如果数据B是“X”则执行THEN USE“子模板3502”WITH“PageBreak”的设置。此外,进行设置以便如果数据B为“Y”则执行THEN USE“子模板3503”WITH“PageBreak”,进行设置以便如果数据B为“Z”则执行THEN USE“子模板3504”WITH“PageBreak”。即,根据数据B的数据值中的改变来执行换页。
将参考图27A和35具体说明处理的流程。布局编辑应用程序121获取存在于数据3500中的“记录1”。由于记录1是第一个记录,因此根据相关信息将包含在记录1中的数据A的“1”布置在顶页面上的容器中。
布局编辑应用程序121识别出记录1的“数据A=1”和“数据B=X”,并参考存储器单元136中的条件式以识别(如果数据B为“X”,则THEN USE“子模板3502”WITH“PageBreak”)。因此,对于记录1确定使用子模板3502,并且还识别出换页设置。然而,在处理记录1中,Break处理不会发生。因此,处理进入步骤2714中的处理,其中将记录1中的内容数据排列在子模板3502中。如上所述,将记录1中的内容数据临时保持在存储器单元136中。
布局编辑应用程序121在步骤2714后返回步骤2701,并通过将下一记录2作为待处理的记录继续进行处理。由于处理记录2的情况与已经处理了最后的记录的情况以及处理第一个记录的情况不同,因此处理进入步骤2705。然后布局编辑应用程序121识别出记录2的“数据B=Y”以及(如果数据B为“Y”则THEN USE“子模板3503”WITH“PageBreak”),以判定记录2使用的子模板为子模板3503,并且还识别出存在换页设置。
此外,布局编辑应用程序121对临时保持的记录1中的内容数据和记录2中的内容数据相互进行比较。记录1具有“数据A=1”,记录2也具有“数据A=1”。因此,不会发生任何换文档。然而,当记录1具有“数据B=X”时,记录2具有“数据B=Y”。因此Break处理(换页处理)发生。即,布局编辑应用程序121在步骤2706的处理中识别出“Break设置存在”和“Break处理发生”,因此使处理进入步骤2707,以确定对记录2执行Break处理。
如上所述,用于记录2的条件式是(如果数据B是“Y”则THENUSE“子模板3503”WITH“PageBreak”)。因此可以确定执行换页。因此,布局编辑应用程序121在步骤2709中判定为“是”,并生成新的页面3507。
布局编辑应用程序121在用于步骤2710中新生成的页面3507上的布局的子模板3503上布置记录2中的内容数据。
记录3和4具有“数据A=1”和“数据B=Y”。因此,不执行换文档和换页。因此布局编辑应用程序121在页面3507上的流动区域中布置记录3和4中的内容数据。在通常情况下,还应当将记录4中的内容数据布置在页面3507上的流动区域中。然而,待排列的内容数据量很大,以致不能将数据设置在一个流动区域中。为此,通过页面重复功能新生成页面3508。
对记录5也执行上述处理。记录5具有内容数据:“数据A=1”和“数据B=Z”。因此,不执行换文档,而执行换页处理。
因此,布局编辑应用程序121通过将记录5中的内容数据布置在子模板3504上,来布置记录5中的内容数据,该子模板3504用于通过换页处理新生成的页面3509上的流动区域中的布局。
布局编辑应用程序121通过将记录7作为待处理的记录继续进行处理。记录7具有内容数据:“数据A=2”,其与记录1~6中的数据值中的数据A不同。因此,条件式1:data A change WITH“DocBreak”用于确定换文档。即,布局编辑应用程序对于记录7识别出“Break处理设置存在”和“Break处理发生”,因此处理进入步骤2707。
此外,因为所设置的Break处理是换文档,所以布局编辑应用程序121生成底页面3510,并设置上述Break完成标志。
因此,布局编辑应用程序通过使用记录1~6生成由页面3505~3510构成的一个文档,并从记录7开始用于生成新文档的处理。当将换行设置作为Break处理时,执行与上述处理相同的处理。
在通过分隔来分隔流动区域的情况下,对假定具有相同属性信息的每一所分隔的流动区域执行布局处理和其它处理。
第四实施例
将本发明的第四实施例作为当将模板中定义的条件式用作能够改写的外部条件式文件时的处理进行说明。以符合XML的格式例如如图30所示描述模板中的条件式。模板本身的定义是采用符合XML的标签格式。模板本身的格式与本发明无关,将不对其进行说明。
图30示出作为外部条件式文件形成的条件式文件的格式。该文件的格式对应于存储有图26所示的条件式设置UI中的详细设置的表单。标签格式正确地反映屏幕上UI的内容。该格式的条件式由<CONDITIONAL>标签、<IF>标签、<ELSEIF>标签和<ELSE>标签构成。<IF>标签包括用于描述判定式的<FIELD>标签和用于描述判定结果的<USE>标签。在<USE>标签中,以WITH标识符描述Break的种类。在<CONDITIONAL>标签中描述用于识别条件式的名称。在<IF>标签中的<FIELD>标签中定义一组Field名、判定语句和判定值。如果存在多个判定语句,则可通过AND标识符或OR标识符连接这些语句。以与<IF>标签相同的方式来描述<ELSEIF>标签。<ELSEIF>标签是<IF>标签的分支目的地。最后,<ELSE>标签是当没有判定语句被满足时的分支目的地。在<ELSE>标签中仅描述<USE>标签。
图31是示出改写外部条件式文件的处理的流程图。在第三实施例中图27A所示的处理的开始处执行图31所示的处理。
作为构成布局编辑应用程序的其中一个模块的布局引擎225从存储器136读取利用输入参数指定的模板(S3101)。因为通过符合XML文件格式的数据来表示该模板,所以布局引擎225解析该模板文件,以将该模板文件展开为XML对象树(S3102)。接着,布局编辑应用程序121判断是否存在输入参数的外部条件式文件(S3103)。该判断可例如通过提供特殊的扩展名或者外部条件式文件的名称来实现。如果布局编辑应用程序121判定外部条件式存在,则则其将该条件式读到存储器136中(S3104),并解析该条件式,将该条件式展开为条件式对象树(S3105)。接着,布局编辑应用程序121利用由外部参考读取的条件式对象树改写在步骤3101中读取的模板上所描述的条件式对象树(1906)。由于对象树是符合XML的,故通过已知的技术能够进行按对象的置换处理。之后,执行参考图27A如上所述的Break处理(S3107),以使在模板上设置的条件式能够在打印时动态改变,并使子模板改变条件能够根据流入的可变数据而改变。结果,可以实现各种可变打印。
可以通过利用堆栈机根据树结构执行运算符来实现条件式树的评价。在上述程序中,可以在未解析状态下利用原样XML格式的条件式改写之后解析该条件式。
如果如上所述来构成该条件式,则可以通过例如由文本编辑器等进行编辑对其进行设置。
根据本发明任一实施例中的布局编辑系统,根据从数据库中提取的记录数据的内容(字段值)来选择不同的子模板中的一个,并将该记录插入到所选择的子模板中。对每一记录重复该插入处理,以获得连接各种类型的子模板和记录的局部布局。将各种类型的局部布局连续流入布局区域中,从而实现流动的布局,在该流动的布局中重复不能由传统排列实现的复杂的布局变化。
可以将各种局部布局理解为装订中的章节,通过换页处理对上述布局进行页面控制。这样,可以形成文档例如小册子。另外,对形成页眉或页脚的模板执行换文档处理的方法通过对多记录使用一个模板,确保了可以同时生成按客户的文档。
在执行按需打印以一次生成如自定义的目录那样的分别吸引客户的不同商品种类的文档时,这是非常有效的。
上述自动布局系统(布局编辑应用程序121)的功能结构是例如如图36所示的结构。
参考图36,布局编辑应用程序121能够根据待布置的内容数据,动态改变具有如下区域的模板上的布局,该区域设置有用于从数据库中提取内容数据的提取条件。
获取单元3601从数据库中获取满足提取条件的内容数据。确定单元3602根据关于内容数据组和用于布局内容数据的一个或多个子模板之间的关联性的关联信息,确定多个子模板中应当在其上布置获取单元所获取的内容数据组的一个或多个子模板。
布局单元A 3603通过在由确定单元3602确定的一个或多个子模板上布置内容数据组,来布置内容数据组,从而产生输出结果。
布局调整单元3604在子模板中布置由获取单元3601获取的内容数据,并调整内容数据的布局。
生成单元3605在不能将由获取单元3601获取的内容数据布置在区域中的情况下,新生成具有区域的页面。
设置单元3606设置多个分隔方法中的一个。
当将内容数据布置在区域中时,布局单元B 3607通过由设置单元3606设置的其中一个分隔方法分隔文档,来布置由获取单元3601获取的内容数据,从而生成文档数据。
尽管在图36中示出了构成布局编辑应用程序121的组件,但是布局编辑应用程序121可能具有获取单元3601、确定单元3602和布局单元A 3603以实现本发明的目的。可选地,布局编辑应用程序121可能具有获取单元3601和生成单元3605以实现本发明的目的。可选地,布局编辑应用程序121可能具有获取单元3601、设置单元3603和布局单元B 3607以实现本发明的目的。
其它实施例
注意,本发明可应用于包括单个设备的装置或由多个设备构成的系统。
而且,本发明可这样实现:直接或间接向系统或装置提供实现上述实施例的功能的软件程序,使用该系统或装置的计算机来读取所提供的程序代码,然后执行该程序代码。在这种情况下,只要该系统或装置具有程序的功能,实现的方式无需依赖于程序。
因此,由于本发明的功能由计算机实现,则安装在计算机上的程序代码本身也实现了本发明。换句话说,本发明的权利要求还覆盖用来实现本发明的功能的计算机程序。
在这种情况下,只要系统或装置具有程序的功能,该程序就可以以任何形式来执行,例如目标代码、由解释程序执行的程序、或向操作系统提供的脚本数据。
能用来提供程序的存储介质的例子包括:软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、CD-RW、磁带、非易失型存储卡、ROM、以及DVD(DVD-ROM和DVD-R)。
关于提供程序的方法,客户计算机可以使用客户计算机的浏览器连接到因特网上的网站,本发明的计算机程序或该程序的自动安装压缩文件可被下载到记录介质例如硬盘上。此外,本发明的程序可通过将构成该程序的程序代码分为多个文件,并从不同网站下载该文件来提供。换句话说,本发明的权利要求也覆盖将通过计算机实现本发明的功能的程序文件下载到多个用户的WWW(World Wide Web,万维网)服务器。
此外,还可以在例如CD-ROM的存储介质上加密并存储本发明的程序,将该存储介质分发给用户,允许满足一定要求的用户通过因特网从网站下载解密密钥信息,并允许这些用户使用该密钥信息来解密加密的程序,从而将程序安装在用户计算机中。
而且,除了通过由计算机执行所读取的程序来实现根据实施例的上述功能的情况之外,运行在计算机上的操作系统等可执行全部或部分实际处理,从而上述实施例的功能可由该处理来实现。
而且,在将从存储介质中读取的程序写入到插入计算机中的功能扩展板、或与计算机连接的功能扩展单元所配备的存储器之后,安装在功能扩展板或功能扩展单元上的CPU等执行全部或部分实际处理,从而上述实施例的功能可由该处理来实现。
由于在不脱离本发明的精神和范围的情况下,可以做出很多明显不同的本发明的实施例,因此应该理解,除由所附权利要求书定义外,本发明不局限于特定的实施例。
Claims (22)
1. 一种文档处理装置,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件,该文档处理装置包括:
获取单元,用于从该数据库中获取满足该提取条件的内容数据;
确定单元,用于根据与内容数据组和用于内容数据的布局的多个子模板之间的关联性有关的关联信息,来确定该多个子模板中应当在其上布置由该获取单元获取的内容数据组的一个或多个子模板;以及
布局单元,用于通过在由该确定单元确定的该一个或多个子模板上布置该内容数据组,来将该内容数据组布置在该区域中,从而产生输出结果。
2. 根据权利要求1所述的文档处理装置,其特征在于,该文档处理装置还包括布局调整单元,该布局调整单元用于在子模板中布置由该获取单元获取的内容数据,并执行布局调整,
其中该布局调整单元根据该内容数据的数据大小来执行布局调整。
3. 根据权利要求2所述的文档处理装置,其特征在于,每一子模板具有用于输入该内容数据的局部显示区域,以及
该布局调整单元根据该内容数据的数据大小,来调整在子模板中该局部显示区域的布置位置和该局部显示区域的大小。
4. 根据权利要求2所述的文档处理装置,其特征在于,该布局单元通过在该区域中排列由该布局调整单元进行了布局调整的布局调整后的子模板,来布置该布局调整后的子模板。
5. 根据权利要求1所述的文档处理装置,其特征在于,该文档处理装置还包括用于生成模板的模板生成单元。
6. 根据权利要求1所述的文档处理装置,其特征在于,该文档处理装置还包括显示单元和打印单元中的至少一个,其中该显示单元用于当在该区域中布置由该获取单元获取的内容数据时,显示布置有内容数据的文档数据,该打印单元用于当在该区域中布置内容数据时,打印该文档数据。
7. 一种文档处理装置,当通过使用具有如下区域的模板来布置内容数据时,该文档处理装置能够根据该内容数据动态改变该内容数据的布局,所述区域设置有用于从数据库中提取待布置的内容数据的提取条件,该文档处理装置包括:
获取单元,用于从该数据库中获取满足该提取条件的内容数据;以及
生成单元,用于在不能将由该获取单元获取的内容数据布置在该区域中的情况下,新生成具有该区域的页面。
8. 根据权利要求7所述的文档处理装置,其特征在于,该生成单元重复生成具有该区域的页面,直到容纳由该获取单元获取的内容数据为止。
9. 根据权利要求7所述的文档处理装置,其特征在于,该生成单元复制具有该区域的预定页面。
10. 一种文档处理装置,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件和分隔方法,该文档处理装置包括:
获取单元,用于从该数据库中获取满足该提取条件的内容数据;
设置单元,用于设置多个分隔方法中的一个;以及
布局单元,当将内容数据布置在该区域中时,该布局单元通过由该设置单元设置的该分隔方法中的一个分隔方法分隔文档来布置由该获取单元获取的内容数据,从而生成文档数据。
11. 根据权利要求10所述的文档处理装置,其特征在于,在分隔方法中定义换文档、换页和换行中的一个,并且如果该分隔方法是换文档,则当布置由该获取单元获取的内容数据时,该布局单元执行用于完成一个文档单位的分隔处理,如果该分隔方法是换页,则当布置由该获取单元获取的内容数据时,执行用于插入换页的分隔处理,如果该分隔方法是换行,则当布置由该获取单元获取的内容数据时,执行用于插入换行的分隔处理,该布局单元按照分隔处理后的模板来布置待布置的内容数据。
12. 一种文档处理方法,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件,该文档处理方法包括:
获取步骤,用于从该数据库中获取满足该提取条件的内容数据;
确定步骤,用于根据与内容数据组和用于内容数据的布局的多个子模板之间的关联性有关的关联信息,来确定该多个子模板中应当在其上布置在该获取步骤中获取的内容数据组的一个或多个子模板;以及
布局步骤,用于通过在该确定步骤中确定的该一个或多个子模板上布置该内容数据组,来将该内容数据组布置在该区域中,从而产生输出结果。
13. 根据权利要求12所述的文档处理方法,其特征在于,该文档处理方法还包括布局调整步骤,用于在子模板中布置在该获取步骤中获取的内容数据,并执行子模板中的布局调整,
其中该布局调整步骤包括根据内容数据的数据大小来执行布局调整。
14. 根据权利要求13所述的文档处理方法,其特征在于,子模板具有用于输入内容数据的局部显示区域,该布局调整步骤包括根据内容数据的数据大小,来调整在子模板中该局部显示区域的布置位置和局部显示区域的大小。
15. 根据权利要求13所述的文档处理方法,其特征在于,该布局步骤包括:通过在该区域中排列在该布局调整步骤中进行了布局调整的布局调整后的子模板,来布置该布局调整后的子模板。
16. 根据权利要求12所述的文档处理方法,其特征在于,该文档处理方法还包括用于生成模板的模板生成步骤。
17. 根据权利要求12所述的文档处理方法,其特征在于,该文档处理方法还包括显示步骤和打印步骤中的至少一个,其中该显示步骤用于当在该区域中布置在该获取步骤中获取的内容数据时,显示布置有内容数据的文档数据,该打印步骤用于当在该区域中布置该内容数据时,打印该文档数据。
18. 一种文档处理方法,当通过使用具有如下区域的模板来布置内容数据时,该文档处理方法能够根据该内容数据动态改变该内容数据的布局,所述区域设置有用于从数据库中提取待布置的内容数据的提取条件,该文档处理方法包括:
获取步骤,用于从该数据库中获取满足该提取条件的内容数据;以及
生成步骤,用于在不能将在该获取步骤中获取的内容数据布置在该区域中的情况下,新生成具有该区域的页面。
19. 根据权利要求18所述的文档处理方法,其特征在于,该生成步骤包括重复生成具有该区域的页面,直到容纳在该获取步骤中获取的内容数据为止。
20. 根据权利要求18所述的文档处理方法,其特征在于,该生成步骤包括复制具有该区域的预定页面。
21. 一种文档处理方法,其能够根据待布置的内容数据动态改变具有如下区域的模板上的布局,所述区域设置有用于从数据库中提取内容数据的提取条件和分隔方法,该文档处理方法包括:
获取步骤,用于从该数据库中获取满足该提取条件的内容数据;
设置步骤,用于设置多个分隔方法中的一个;以及
布局步骤,当将内容数据布置在该区域中时,该布局步骤用于通过在该设置步骤中设置的该分隔方法中的一个分隔方法分隔文档来布置在该获取步骤中获取的内容数据,从而生成文档数据。
22. 根据权利要求21所述的文档处理方法,其特征在于,在分隔方法中定义换文档、换页和换行中的一个,该布局步骤包括:如果该分隔方法是换文档,则当布置在该获取步骤中获取的内容数据时,执行用于完成一个文档单位的分隔处理,如果该分隔方法是换页,则当布置在该获取步骤中获取的内容数据时,执行用于插入换页的分隔处理,如果该分隔方法是换行,则当布置在该获取步骤中获取的内容数据时,执行用于插入换行的分隔处理,该布局步骤按照分隔处理后的模板来布置待布置的内容数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005054534 | 2005-02-28 | ||
JP2005054534A JP4095617B2 (ja) | 2005-02-28 | 2005-02-28 | 文書処理装置及び文書処理方法及びコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1828517A CN1828517A (zh) | 2006-09-06 |
CN100409169C true CN100409169C (zh) | 2008-08-06 |
Family
ID=36586011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100582493A Expired - Fee Related CN100409169C (zh) | 2005-02-28 | 2006-02-28 | 文档处理装置和文档处理方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20060193008A1 (zh) |
EP (1) | EP1696337A3 (zh) |
JP (1) | JP4095617B2 (zh) |
KR (1) | KR100840863B1 (zh) |
CN (1) | CN100409169C (zh) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500186B2 (en) * | 2004-08-30 | 2009-03-03 | Microsoft Corporation | Systems and methods for efficiently generating table layouts using moveable items |
JP4095617B2 (ja) * | 2005-02-28 | 2008-06-04 | キヤノン株式会社 | 文書処理装置及び文書処理方法及びコンピュータプログラム |
GB2430060A (en) * | 2005-09-08 | 2007-03-14 | Hewlett Packard Development Co | Flows for variable data printing |
US11715067B2 (en) * | 2006-07-28 | 2023-08-01 | Messagepoint Inc. | System and method for customer touchpoint management |
GB2443448B (en) * | 2006-10-31 | 2011-06-08 | Hewlett Packard Development Co | Variable data printing |
JP2008129702A (ja) * | 2006-11-17 | 2008-06-05 | Canon Inc | 情報処理装置および制御方法および制御プログラム |
JP4912139B2 (ja) * | 2006-12-22 | 2012-04-11 | キヤノン株式会社 | 情報処理装置 |
JP4915237B2 (ja) * | 2006-12-27 | 2012-04-11 | 大日本印刷株式会社 | バリアブル印刷方法 |
US20080162539A1 (en) * | 2006-12-28 | 2008-07-03 | Sap Ag | Dynamic cockpit creator |
US20080250394A1 (en) * | 2007-04-04 | 2008-10-09 | Microsoft Corporation | Synchronizing external documentation with code development |
US7720885B2 (en) * | 2007-04-04 | 2010-05-18 | Microsoft Corporation | Generating a word-processing document from database content |
US7720814B2 (en) * | 2007-04-04 | 2010-05-18 | Microsoft Corporation | Repopulating a database with document content |
JP2008310525A (ja) * | 2007-06-13 | 2008-12-25 | Canon Inc | 情報処理装置、情報処理方法、及び、情報処理プログラム |
JP2009110391A (ja) | 2007-10-31 | 2009-05-21 | Canon Inc | 情報処理装置および制御方法および制御プログラム |
JP4631915B2 (ja) * | 2008-02-14 | 2011-02-16 | 富士ゼロックス株式会社 | 画像形成装置、サーバ装置、画像形成システム及びプログラム |
US8499247B2 (en) * | 2008-02-26 | 2013-07-30 | Livingsocial, Inc. | Ranking interactions between users on the internet |
JP5228569B2 (ja) * | 2008-03-28 | 2013-07-03 | 大日本印刷株式会社 | ウェブを利用したバリアブルプリント方法、ウェブを利用したバリアブルプリントシステムおよび入稿データ加工装置 |
US8225198B2 (en) * | 2008-03-31 | 2012-07-17 | Vistaprint Technologies Limited | Flexible web page template building system and method |
US20090249192A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Creating a view from multiple templates |
US8037101B1 (en) * | 2008-04-08 | 2011-10-11 | United Services Automobile Association (Usaa) | Systems and methods for creating documents from templates |
US10282391B2 (en) | 2008-07-03 | 2019-05-07 | Ebay Inc. | Position editing tool of collage multi-media |
US8893015B2 (en) | 2008-07-03 | 2014-11-18 | Ebay Inc. | Multi-directional and variable speed navigation of collage multi-media |
US8365092B2 (en) * | 2008-07-03 | 2013-01-29 | Ebay Inc. | On-demand loading of media in a multi-media presentation |
JP2010097564A (ja) * | 2008-10-20 | 2010-04-30 | Canon Inc | 情報処理装置及びレイアウト処理方法 |
CN101393647B (zh) * | 2008-10-23 | 2012-03-07 | 浙江大学 | 一种基于友好用户交互的文档排版方法 |
JP2010200062A (ja) * | 2009-02-26 | 2010-09-09 | Oki Data Corp | 画像形成装置 |
US8181106B2 (en) * | 2009-03-18 | 2012-05-15 | Microsoft Corporation | Use of overriding templates associated with customizable elements when editing a web page |
JP2011008352A (ja) * | 2009-06-23 | 2011-01-13 | Canon Inc | 文書処理装置、文書処理方法、及びプログラム |
US11257112B1 (en) | 2009-10-15 | 2022-02-22 | Livingsocial, Inc. | Ad targeting and display optimization based on social and community data |
US8468448B2 (en) * | 2009-10-28 | 2013-06-18 | Hewlett-Packard Development Company, L.P. | Methods and systems for preparing mixed-content documents |
US20130014008A1 (en) * | 2010-03-22 | 2013-01-10 | Niranjan Damera-Venkata | Adjusting an Automatic Template Layout by Providing a Constraint |
US20120102386A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Customization of Display Templates |
US9218323B2 (en) * | 2010-10-30 | 2015-12-22 | Hewlett-Parkard Development Company, L.P. | Optimizing hyper parameters of probabilistic model for mixed text-and-graphics layout template |
JP2012156797A (ja) * | 2011-01-26 | 2012-08-16 | Sony Corp | 画像処理装置及び画像処理方法 |
JP2012203783A (ja) * | 2011-03-28 | 2012-10-22 | Fuji Xerox Co Ltd | 画像処理装置およびプログラム |
CA3081068C (en) * | 2011-04-29 | 2023-10-17 | American Greetings Corporation | Systems, methods and apparatuses for creating, editing, distributing and viewing electronic greeting cards |
US9396167B2 (en) * | 2011-07-21 | 2016-07-19 | Flipboard, Inc. | Template-based page layout for hosted social magazines |
CN102270193A (zh) * | 2011-07-24 | 2011-12-07 | 珠海金山办公软件有限公司 | 对文档中选定区域进行可预览设置的装置及方法 |
CN103034624B (zh) * | 2011-09-29 | 2015-12-16 | 北京大学 | 一种页面对象的精确定位方法和系统 |
US9269323B2 (en) * | 2011-10-28 | 2016-02-23 | Microsoft Technology Licensing, Llc | Image layout for a display |
US8910035B2 (en) * | 2011-12-12 | 2014-12-09 | Facebook, Inc. | Display dialogs |
US11308227B2 (en) | 2012-01-09 | 2022-04-19 | Visa International Service Association | Secure dynamic page content and layouts apparatuses, methods and systems |
US10223348B2 (en) | 2012-03-06 | 2019-03-05 | Hewlett-Packard Development Company, L.P. | Hierarchical probabilistic document model based document composition |
US20130332804A1 (en) * | 2012-06-06 | 2013-12-12 | Conrad Delbert Seaman | Methods and devices for data entry |
US10289661B2 (en) | 2012-09-12 | 2019-05-14 | Flipboard, Inc. | Generating a cover for a section of a digital magazine |
JP5954691B2 (ja) * | 2012-09-28 | 2016-07-20 | ブラザー工業株式会社 | テンプレート処理プログラム及びテンプレート処理方法 |
US9460056B2 (en) * | 2013-01-22 | 2016-10-04 | Xerox Corporation | Dynamic image layout for personalized packages |
US9830304B1 (en) * | 2013-02-22 | 2017-11-28 | Swoop Inc. | Systems and methods for integrating dynamic content into electronic media |
US10007933B2 (en) * | 2013-02-22 | 2018-06-26 | Swoop Inc. | Systems and methods for integrating dynamic content into electronic media |
US10621274B2 (en) | 2013-05-23 | 2020-04-14 | Flipboard, Inc. | Dynamic arrangement of content presented while a client device is in a locked state |
US9880994B1 (en) * | 2013-06-21 | 2018-01-30 | Nativo, Inc. | Detecting compatible layouts for content-based native ads |
CN105393246A (zh) * | 2013-06-28 | 2016-03-09 | 微软技术许可有限责任公司 | 用属性组选择和编辑视觉元素 |
US9529790B2 (en) | 2013-07-09 | 2016-12-27 | Flipboard, Inc. | Hierarchical page templates for content presentation in a digital magazine |
US9489349B2 (en) | 2013-07-09 | 2016-11-08 | Flipboard, Inc. | Page template selection for content presentation in a digital magazine |
US9483444B2 (en) | 2013-07-09 | 2016-11-01 | Flipboard, Inc. | Dynamic layout engine for a digital magazine |
US10990924B2 (en) | 2013-08-30 | 2021-04-27 | Messagepoint Inc. | System and method for variant content management |
CA2863748C (en) | 2013-09-19 | 2023-06-27 | Prinova, Inc. | System and method for variant content navigation |
WO2015042901A1 (en) | 2013-09-29 | 2015-04-02 | Microsoft Technology Licensing, Llc | Media presentation effects |
US9082069B1 (en) | 2014-04-02 | 2015-07-14 | Xerox Corporation | Relocation of blank pages in booklet making |
US10075610B2 (en) | 2014-04-30 | 2018-09-11 | Hewlett-Packard Development Company, L.P. | Providing print dimensions from a printer |
US20160048605A1 (en) * | 2014-08-14 | 2016-02-18 | International Business Machines Corporation | Integrating image renditions and page layout |
US9378461B1 (en) * | 2014-09-26 | 2016-06-28 | Oracle International Corporation | Rule based continuous drift and consistency management for complex systems |
US20160110321A1 (en) * | 2014-10-17 | 2016-04-21 | Karol Kalisz | Application customization through linked embedded areas |
CN105677267B (zh) * | 2014-11-19 | 2018-11-16 | 珠海金山办公软件有限公司 | 一种页面显示方法及装置 |
CN105740217B (zh) * | 2014-12-08 | 2019-08-30 | 珠海金山办公软件有限公司 | 一种基于文档模板的文档生成方法及装置 |
US10204095B1 (en) * | 2015-02-10 | 2019-02-12 | West Corporation | Processing and delivery of private electronic documents |
KR101647765B1 (ko) * | 2015-03-20 | 2016-08-12 | (주)솔트웍스 | 문서 통합 관리 시스템 |
US10235417B1 (en) * | 2015-09-02 | 2019-03-19 | Amazon Technologies, Inc. | Partitioned search of log events |
US10853359B1 (en) | 2015-12-21 | 2020-12-01 | Amazon Technologies, Inc. | Data log stream processing using probabilistic data structures |
JP6558339B2 (ja) * | 2016-10-06 | 2019-08-14 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置及び画像処理プログラム |
US10713430B2 (en) | 2016-11-30 | 2020-07-14 | Google Llc | Systems and methods for applying layout to documents |
US10270934B2 (en) * | 2016-12-01 | 2019-04-23 | Kyocera Document Solutions Inc. | Image processing apparatus and image forming apparatus |
US9971963B1 (en) | 2017-01-31 | 2018-05-15 | Xerox Corporation | Methods, systems, and devices for individualizing N-up raster images with background forms |
JP6288597B2 (ja) * | 2017-03-21 | 2018-03-07 | 株式会社スタディスト | 電子マニュアルの配信・進捗管理システム |
JP6819399B2 (ja) * | 2017-03-24 | 2021-01-27 | 富士ゼロックス株式会社 | 操作画面生成装置及び操作画面生成プログラム |
US10409895B2 (en) * | 2017-10-17 | 2019-09-10 | Qualtrics, Llc | Optimizing a document based on dynamically updating content |
US10402320B1 (en) * | 2018-02-27 | 2019-09-03 | Oracle International Corporation | Verifying the validity of a transition from a current tail template to a new tail template for a fused object |
JP6977661B2 (ja) * | 2018-05-14 | 2021-12-08 | コニカミノルタ株式会社 | 印刷制御装置、印刷制御プログラム及び印刷制御方法 |
CN108897728B (zh) * | 2018-06-27 | 2023-04-07 | 平安科技(深圳)有限公司 | 短信拼接处理方法、装置、计算机设备和存储介质 |
US10795690B2 (en) | 2018-10-30 | 2020-10-06 | Oracle International Corporation | Automated mechanisms for ensuring correctness of evolving datacenter configurations |
US10892961B2 (en) | 2019-02-08 | 2021-01-12 | Oracle International Corporation | Application- and infrastructure-aware orchestration for cloud monitoring applications |
CN111612003A (zh) * | 2019-02-22 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 一种提取图片中的文本的方法和装置 |
CN111832261B (zh) * | 2019-03-29 | 2024-07-23 | 珠海金山办公软件有限公司 | 一种文档样式选择方法、装置及电子设备 |
CN110210455B (zh) * | 2019-06-18 | 2022-03-01 | 石家庄捷弘科技有限公司 | 一种打印内容格式化提取方法 |
US12058089B2 (en) | 2019-08-01 | 2024-08-06 | Shift5, Inc. | Systems, methods, and data structures for serial data collection and compression |
US11341324B2 (en) | 2019-11-18 | 2022-05-24 | Docusign, Inc. | Automatic template generation with inbuilt template logic interface |
US11087124B1 (en) * | 2020-09-24 | 2021-08-10 | Fmr Llc | Systems and methods for digital document field location identification |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000048216A (ja) * | 1998-07-24 | 2000-02-18 | Dainippon Screen Mfg Co Ltd | 画像部品ブロックのレイアウト処理方法及び装置、並びに、コンピュータ読み取り可能な記憶媒体 |
WO2000075768A1 (en) * | 1999-06-07 | 2000-12-14 | Hewlett-Packard Company | An agent and method for dynamically scheduling publication in an automated document delivery system |
CN1519750A (zh) * | 2002-12-20 | 2004-08-11 | 佳能株式会社 | 文档处理方法及装置 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2855797B2 (ja) * | 1990-06-15 | 1999-02-10 | 富士ゼロックス株式会社 | 文書処理装置 |
US5381523A (en) * | 1992-04-06 | 1995-01-10 | Fuji Xerox Co., Ltd. | Document processing device using partial layout templates |
JPH07129658A (ja) * | 1993-11-02 | 1995-05-19 | Toppan Printing Co Ltd | レイアウトデザイン装置 |
US5845303A (en) * | 1994-12-06 | 1998-12-01 | Netpodium, Inc. | Document processing using frame-based templates with hierarchical tagging |
US6243172B1 (en) * | 1995-01-18 | 2001-06-05 | Varis Corporation | Method and system for merging variable text and images into bitmaps defined by a page description language |
US6327599B1 (en) * | 1995-06-07 | 2001-12-04 | R. R. Donnelley & Sons Company | Apparatus for controlling an electronic press to print fixed and variable information |
US5956737A (en) * | 1996-09-09 | 1999-09-21 | Design Intelligence, Inc. | Design engine for fitting content to a medium |
US6596032B2 (en) * | 1996-10-15 | 2003-07-22 | Fujitsu Limited | Document processing apparatus storing and modifying data using effect data |
US7302438B1 (en) * | 1997-07-18 | 2007-11-27 | Tesseron Ltd. | Method and system for flowing data to an arbitrary path defined by a page description language |
JP3712320B2 (ja) | 1998-02-13 | 2005-11-02 | 大日本スクリーン製造株式会社 | 可変文書作成システム、可変文書出力装置及び可変原稿作成装置 |
US7039863B1 (en) * | 1999-07-23 | 2006-05-02 | Adobe Systems Incorporated | Computer generation of documents using layout elements and content elements |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
WO2001057689A1 (en) * | 2000-02-03 | 2001-08-09 | Xmpie Inc. | A system and method for creating customized documents for cross media publishing |
BR0108067A (pt) * | 2000-02-09 | 2004-01-06 | Moore North America Inc | Formação de imagens de documentos possuindo conteúdo estático e dados variáveis |
WO2001071549A1 (fr) * | 2000-03-17 | 2001-09-27 | Fujitsu Limited | Support enregistre lisible par ordinateur sur lequel est enregistre un programme de creation de documents, et systeme et procede de creation de documents |
US6816615B2 (en) * | 2000-11-10 | 2004-11-09 | Microsoft Corporation | Implicit page breaks for digitally represented handwriting |
EP1244310A1 (en) * | 2001-03-21 | 2002-09-25 | Canal+ Technologies Société Anonyme | Data referencing system |
JP3835193B2 (ja) * | 2001-03-30 | 2006-10-18 | セイコーエプソン株式会社 | ディジタルコンテンツ作成システム及びディジタルコンテンツ作成プログラム |
US20040205602A1 (en) * | 2001-07-25 | 2004-10-14 | Douglas Croeni | Page layout design using geometric interference schema |
JP4070643B2 (ja) * | 2002-03-29 | 2008-04-02 | 株式会社リコー | 表示用データ生成装置、表示用データ生成システム、データ管理装置、表示用データ生成方法、プログラム及び記録媒体 |
US7375842B2 (en) * | 2002-04-09 | 2008-05-20 | Eastman Kodak Company | Variable data printing using variants |
US20030189727A1 (en) * | 2002-04-09 | 2003-10-09 | Nexpress Solutions Llc | Method and apparatus for using fields of data to organize variable data print jobs |
US7454699B2 (en) * | 2003-03-24 | 2008-11-18 | Microsoft Corporation | Smart content insertion |
US7325196B1 (en) * | 2003-06-16 | 2008-01-29 | Microsoft Corporation | Method and system for manipulating page control content |
US7380202B1 (en) * | 2003-06-16 | 2008-05-27 | Microsoft Corporation | Method and system for customizing and personalizing page control content |
US7325197B1 (en) * | 2003-06-16 | 2008-01-29 | Microsoft Corporation | Method and system for providing page control content |
US7554689B2 (en) * | 2003-10-15 | 2009-06-30 | Canon Kabushiki Kaisha | Document layout method |
GB2407677A (en) * | 2003-10-31 | 2005-05-04 | Hewlett Packard Development Co | Post-rendering document space based on rules |
JP2005276161A (ja) | 2004-02-26 | 2005-10-06 | Seiko Epson Corp | レイアウトシステム、レイアウト装置、レイアウトプログラム、テンプレート選択プログラム、レイアウトプログラムを記憶した記憶媒体およびテンプレート選択プログラムを記憶した記憶媒体、並びにレイアウト方法 |
US20060023238A1 (en) * | 2004-07-30 | 2006-02-02 | Eastman Kodak Company | Select reprint of records in variable data printing |
US7656543B2 (en) * | 2004-11-12 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Albuming images |
WO2006055751A2 (en) * | 2004-11-16 | 2006-05-26 | Compography, Inc. | Display/layout methods and apparatuses including content items and display containers |
US7383499B2 (en) * | 2004-12-30 | 2008-06-03 | Microsoft Corporation | System and method for dynamically creating a destination template |
US8245131B2 (en) * | 2005-02-10 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Constraining layout variations for accommodating variable content in electronic documents |
JP4095617B2 (ja) * | 2005-02-28 | 2008-06-04 | キヤノン株式会社 | 文書処理装置及び文書処理方法及びコンピュータプログラム |
US7434159B1 (en) * | 2005-05-11 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Automatically layout of document objects using an approximate convex function model |
JP4732029B2 (ja) * | 2005-06-29 | 2011-07-27 | キヤノン株式会社 | レイアウト決定方法および情報処理装置およびレイアウト決定プログラム |
GB2430060A (en) * | 2005-09-08 | 2007-03-14 | Hewlett Packard Development Co | Flows for variable data printing |
GB2430061A (en) * | 2005-09-08 | 2007-03-14 | Hewlett Packard Development Co | Templates for variable data printing |
US7949948B2 (en) * | 2007-05-09 | 2011-05-24 | Microsoft Corporation | Constraint and rule-based page layout |
-
2005
- 2005-02-28 JP JP2005054534A patent/JP4095617B2/ja not_active Expired - Fee Related
-
2006
- 2006-02-15 EP EP06101713A patent/EP1696337A3/en not_active Withdrawn
- 2006-02-21 US US11/358,884 patent/US20060193008A1/en not_active Abandoned
- 2006-02-27 KR KR1020060018739A patent/KR100840863B1/ko not_active IP Right Cessation
- 2006-02-28 CN CNB2006100582493A patent/CN100409169C/zh not_active Expired - Fee Related
-
2011
- 2011-09-26 US US13/245,470 patent/US8578269B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000048216A (ja) * | 1998-07-24 | 2000-02-18 | Dainippon Screen Mfg Co Ltd | 画像部品ブロックのレイアウト処理方法及び装置、並びに、コンピュータ読み取り可能な記憶媒体 |
WO2000075768A1 (en) * | 1999-06-07 | 2000-12-14 | Hewlett-Packard Company | An agent and method for dynamically scheduling publication in an automated document delivery system |
CN1519750A (zh) * | 2002-12-20 | 2004-08-11 | 佳能株式会社 | 文档处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20060193008A1 (en) | 2006-08-31 |
EP1696337A3 (en) | 2009-06-10 |
JP2006243805A (ja) | 2006-09-14 |
JP4095617B2 (ja) | 2008-06-04 |
US20120036427A1 (en) | 2012-02-09 |
EP1696337A2 (en) | 2006-08-30 |
US8578269B2 (en) | 2013-11-05 |
KR20060095505A (ko) | 2006-08-31 |
CN1828517A (zh) | 2006-09-06 |
KR100840863B1 (ko) | 2008-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100409169C (zh) | 文档处理装置和文档处理方法 | |
CN101048728B (zh) | 文档管理系统及其方法 | |
KR100889906B1 (ko) | 전자화 서비스 매뉴얼 생성 방법, 부가 데이터 생성 방법, 전자화 서비스 매뉴얼 생성 장치, 부가 데이터 생성 장치, 전자화 서비스 매뉴얼 생성용 프로그램 및 부가 데이터 생성용 프로그램이 기록된 기록 매체 | |
CN101278252B (zh) | 数据库应用程序用户界面提供功能的方法及其界面部署的方法 | |
CN100405282C (zh) | 文档处理装置和文档处理方法 | |
CN100380321C (zh) | 用于将动作与电子文档中的语义标签相关联的方法和系统 | |
Travis et al. | The SGML implementation guide: a blueprint for SGML migration | |
US6035308A (en) | System and method of managing document data with linking data recorded on paper media | |
JP4053100B2 (ja) | 文書情報管理システムおよび文書情報管理方法 | |
CN1525357B (zh) | 用于显示数据格式化文档中未标注文本节点的方法和设备 | |
CN101840321B (zh) | 作业管理装置及控制方法 | |
CN101183353B (zh) | 信息处理装置和控制方法 | |
EA006060B1 (ru) | Способ и система для автоматизации составления заявки на выдачу патента и оценки технического решения | |
US20070234204A1 (en) | Information processing apparatus and method | |
CN117391053A (zh) | 个性化编辑出版方法 | |
JP4549379B2 (ja) | 文書処理装置及び文書処理方法及びプログラム | |
US20030090723A1 (en) | Method and device for producing a printing pattern | |
JPH08153104A (ja) | ハイパーメディアシステムおよびハイパーメディア文書作成・編集方法 | |
KR20000049713A (ko) | 인터넷신문의 저작시스템 및 저작방법 | |
JP3712320B2 (ja) | 可変文書作成システム、可変文書出力装置及び可変原稿作成装置 | |
Davis-Brown et al. | Cataloging at the Library of Congress in the digital age | |
CN117829128A (zh) | 一种智能制造标准提取系统 | |
KR20030069629A (ko) | 웹문서 저작시스템 및 저작방법 | |
JP2007035055A (ja) | 文書情報出力装置および文書情報出力方法 | |
Schlosser | Tool-support for perspective-based views on software requirements documents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080806 Termination date: 20180228 |