US20080155469A1 - Apparatus and method for processing information, and program and storage medium - Google Patents

Apparatus and method for processing information, and program and storage medium Download PDF

Info

Publication number
US20080155469A1
US20080155469A1 US12/034,931 US3493108A US2008155469A1 US 20080155469 A1 US20080155469 A1 US 20080155469A1 US 3493108 A US3493108 A US 3493108A US 2008155469 A1 US2008155469 A1 US 2008155469A1
Authority
US
United States
Prior art keywords
setting
data fields
constraint
link
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.)
Abandoned
Application number
US12/034,931
Inventor
Takayuki Uchida
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to US12/034,931 priority Critical patent/US20080155469A1/en
Publication of US20080155469A1 publication Critical patent/US20080155469A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents

Definitions

  • the present invention relates to an information processing technique for setting control conditions for the layout of a plurality of objects on a document in an information processing apparatus which generates a document by pouring data into the objects and controlling the layout of the objects under predetermined control conditions according to the data.
  • CRM Customer Relationship Management
  • One-to-One marketing This is because decreases in the lifetimes of products result from an increase in the number of product types and because customers' orientation toward customized services attributed to the prevalence of the Internet.
  • the above techniques are very effective in accomplishing objects to improve customers' satisfaction and to get and hold new customers.
  • One-to-One marketing is a kind of database marketing in which customers' individual attribute information such as ages, sexes, habits, tastes, and purchase histories is stored in a database so that the contents of the information can be analyzed to make proposals meeting the customers' needs.
  • a representative technique for one-to-one marketing is variable print. With the recent development of the DTP (Desk Top Publishing) technique and prevalence of digital printing apparatuses, a variable print system has been developed which outputs a customized document for each customer. It has thus become necessary to optimally lay out contents the amount of which varies with customers.
  • the container is an object that is a partial region (sometimes referred to as a field region) in which contents (drawn contents) from the database are drawn. That is, a customized document is created by laying out containers and associating the database with the containers (associating the contents of the database with the containers).
  • the sizes of containers for texts and images are fixed. Accordingly, when data from the database is inserted into a container, if the amount of data is larger than the size of the container, text overlapping or image clipping may occur. If the data amount is smaller than the container size, a gap may disadvantageously be formed in the container.
  • the automatic layout system dynamically changes the layout of containers using contents.
  • the automatic layout system can set a flexible container size according to the amount of data in an inserted text or image.
  • the automatic layout system can vary the size of containers and increases the size of containers to be laid out according to the amount of data inserted.
  • the automatic layout system can vary the sizes of fonts in containers and reduces the size of containers to be laid out according to the amount of data inserted. Thus, even if a text having a data amount exceeding the capacity of a container is inserted into the container, the entire text can be displayed in the container.
  • a container with a large data amount may be laid on top of another container on the same document.
  • a text with a large data amount may result in an excessively reduced font size in the layout.
  • the automatic layout system comprises a link function for associating adjacent containers with each other (function for associating adjacent objects so that the layout of an object obtained by pouring data into the objects is based on the layout of another object adjacent to this object).
  • An object of the present invention is to allow a user of a layout system to efficiently set links associating containers with one another, by automatically setting a link if a plurality of objects are contained within a predetermined distance preset by the user.
  • a method for processing information according to the present invention has the following configuration.
  • a method for processing information to set links that join a plurality of object on a document in an information processing apparatus comprising control unit configured to use the links to control a layout of the objects when data is poured into the objects, the method comprising:
  • a link creating step of, if the link is determined to be created, creating the link between the first and second objects.
  • the present invention enables the automatic setting of links associating a plurality of objects with one another. This allows the user to perform efficient operations in the automatic layout system.
  • FIG. 1A is a diagram showing the configuration of an automatic layout system comprising a host computer according to an embodiment of the present invention
  • FIG. 1B is a block diagram showing in further detail the configuration of the automatic layout system comprising the host computer according to an embodiment of the present invention
  • FIG. 2 is a diagram showing the configuration of an automatic layout system comprising a host computer according to an embodiment of the present invention
  • FIG. 3 is a diagram showing a main window of a layout editing application program
  • FIG. 4 is a diagram showing the main window of the layout editing application program
  • FIG. 5 is a diagram showing an example of a user interface displayed if a layout editing process is executed using a layout editing application comprising an automatic link function;
  • FIG. 6 is a flowchart showing the flow of a link setting process
  • FIGS. 7A to 7C are diagrams showing an example of a UI for link setting
  • FIG. 8 is a diagram showing an example of a dialog window used to set the distance between objects in operating the automatic link function
  • FIG. 9 is a diagram showing an example of a UI for object selection
  • FIG. 10 is a diagram showing an example of a UI change made to a selected object
  • FIG. 11 is a flowchart showing the flow of a general process of the automatic link function executed if a new object is created
  • FIG. 12 is a flowchart showing the flow of a general process of the automatic link function executed if an object is moved;
  • FIG. 13 is a diagram showing how a selected object is moved by using a mouse pointer to drag it;
  • FIG. 14 is a diagram showing an example of a UI that indicates to a user that the moved object has at most a set distance
  • FIG. 15 is a flowchart showing the details of a link creating process executed when a new object is created
  • FIG. 16A is a flowchart showing the detailed flow of a link setting process
  • FIG. 16B is a flowchart showing the detailed flow of the link setting process
  • FIG. 17 is a diagram showing an example of a dialog window displayed if a created or moved object overlaps another object
  • FIG. 18 is a diagram showing a region to be subjected to link creation
  • FIG. 19 is a diagram showing that links has been created between objects
  • FIG. 20 is a diagram showing an example in which an object has been created at a position where it overlaps another object
  • FIG. 21 is a flowchart showing the details of a link creating process executed when an object is moved
  • FIG. 22A is a flowchart showing the detailed flow of a link setting process
  • FIG. 22B is a flowchart showing the detailed flow of the link setting process
  • FIG. 23 is a diagram showing that an object having a set link has been selected
  • FIG. 24 is a diagram showing an example of the result of movement of an object having an attribute that avoids automatic linkage
  • FIG. 25 is a diagram showing an example of the result of object movement executed if existing link holding has been selected.
  • FIG. 26 is a diagram showing an example of the result of object movement executed if existing link discard has been selected.
  • FIG. 27 is a diagram showing a dialog window used to make setting as to whether or not to automatically link objects
  • FIG. 28 is a diagram showing an example of a display in a user interface provided when a flexible link is used to arrange containers;
  • FIG. 29 is a diagram showing a link setting dialog window according to an embodiment
  • FIG. 30 is a diagram showing an example of the result of layout using a fixed link.
  • FIG. 31 is a diagram showing an example of the result of layout using a flexible link.
  • creation of a document in an automatic layout system can be classified into a layout editing process and an automatic layout process.
  • the former process is used to set control conditions as to how containers are laid out if the containers are arranged on a document and if data is poured into the containers.
  • the latter process is used to generate a document by pouring data into containers and controlling the layout according to the poured-into data under the set control conditions.
  • a conventional layout editing process arranges containers on a document and then sets each link between the corresponding containers.
  • links can be automatically set simply by arranging containers at most a predetermined distance from each other. This sharply reduces the burden imposed on the user in link setting.
  • FIG. 1A is a block diagram showing an example of the configuration of an automatic layout system 100 .
  • FIG. 1B is a block diagram showing in further detail the configuration of a host computer (information processing apparatus) 101 shown in FIG. 1A .
  • the host computer 101 (composed of a general-purpose computer module) executes a layout editing process and an automatic layout process described in the present embodiment.
  • the host computer 101 executes the whole or a part of the software for a layout editing application program 121 that can be implemented on the automatic layout system 100 . This allows the layout editing process and automatic layout process to be implemented.
  • the layout editing application program 121 is stored in a computer readable medium and loaded from the computer readable medium into a memory 136 of the host computer 101 for execution.
  • the computer readable medium housing such software and a computer program is a computer program product. Using the computer program in the computer provides an apparatus that is suitable for creation of a document or printing of the documented created.
  • the host computer 101 connects to a keyboard 132 , a pointing device such as a mouse 133 , and the like via an I/O interface 143 , the keyboard and pointing device serving as input devices.
  • a display device 144 serving as an output device is connected to the host computer 101 via a video interface 137 .
  • a local printer 145 or the like can be connected to the host computer 101 via an I/O interface 138 .
  • the I/O interface 138 also has a function for connecting the computer module 101 to a network 107 . This enables the host computer 101 to be connected to another computer apparatus via the network.
  • Typical examples of the network 107 include a local area network (LAN) and a wide area network (WAN).
  • the host computer 101 includes at least one processor unit 135 and a memory unit 136 composed of, for example, a semiconductor random access memory (RAM) or a read only memory (ROM).
  • a storage device 139 includes a hard disk drive 140 and a floppy (registered trade mark) disk drive 141 which can transmit data to and from a computer readable medium in which programs and the like are stored.
  • a magnetic tape drive or the like can be used as the storage device 139 .
  • a CD-ROM drive 142 serves as a nonvolatile data source (of course, a CR-ROM may be used to provide computer programs).
  • the host computer 101 utilizes components 135 to 143 of the computer module 101 which make communications via an interconnect bus 134 using a conventional operation mode of an operating system such as GNU/LINUX or Microsoft Windows (registered trade mark) or typically a computer system formed so as to follow the operating system or using a known related technique. That is, the arrangements shown by 135 to 143 are communicatively connected via a bus 134 and utilized by the operating system installed in the host computer 101 .
  • a possible example of the host computer 101 is an IBC compatible PC, a SUN Sparcstation, or a computer system including such a computer.
  • the layout editing application program 121 resides in the hard disk drive 140 .
  • the processor 135 controls execution and loading of the layout editing application program 121 .
  • the semiconductor memory 136 is used, in association with the hard disk drive 140 , for data fetched from a medium storage device for the layout editing application program 121 and from the network 107 .
  • an encoded program in the layout editing application 121 is stored on a CD-ROM or a floppy (registered trade mark) disk.
  • the program is loaded through the corresponding drive 142 or 141 and installed in the hard disk drive 140 .
  • the layout editing application program 121 may be loaded from the network 107 into the host computer 101 and then installed in the hard disk drive 140 .
  • the software may be loaded into the host computer 101 from a magnetic tape, a ROM, or an integrated circuit; or a magneto-optic disk, radio communication or the like between the host computer 101 and another device, a computer readable card such as a PCMCIA card, or another appropriate computer including the Internet or intranet having E mail communication or recoded information on WEB sites.
  • a computer readable card such as a PCMCIA card
  • another appropriate computer including the Internet or intranet having E mail communication or recoded information on WEB sites.
  • the layout editing application 121 allows the computer to execute an automatic layout process and a layout editing process.
  • the layout editing application 121 includes two software components, that is, a layout engine 105 and a user interface 103 .
  • the layout engine 105 is a software component that executes the automatic layout process as described below in accordance with settings for the sizes and positions of objects (rectangular ranges, for example, containers) that are partial regions.
  • the layout engine loads each record from the data stored in the database 119 one by one and calculates the sizes and positions of objects into which the loaded data is poured, on the basis of the loaded data and the settings for the objects. Further, in the present embodiment, the layout engine 105 further draws data assigned to the objects to generate an image of a document.
  • the layout engine 105 may operate as an application that determines the size and position of each partial region (object).
  • the layout engine 105 may further output drawing information to a printer driver (not shown) so that the printer driver can execute an image drawing process on the document to generate print data.
  • the user interface 103 enables the user to execute a layout editing process. Specifically, the user creates and moves objects via the interface 103 to create a document template.
  • the user interface 103 provides a mechanism that associates each object in the document template with data.
  • the user interface 103 further enables various settings (including link settings) for each object in the document template.
  • the user interface 103 and the layout engine 105 communicate via a communication channel 123 .
  • FIG. 2 is a block diagram similar to FIG. 1A except for the addition of an engine server 227 .
  • a layout engine 225 stored in the engine server 227 is a separate version of the layout engine 105 .
  • the engine server 227 is composed of a common computer.
  • the layout engine 225 integrates a document template saved to a file server 115 with data saved to the database 119 to generate a document for printing or other purposes. Such an operation is requested via the user interface 103 .
  • the user interface 103 causes the video display 144 to display, during operation, a user interface screen formed of an application window 301 such as the one shown in FIG. 3 .
  • the window 301 has a menu bar 302 , a tool bar 303 , a work area 306 , and an optional pallet 311 .
  • the window 301 enables the menu bar 302 and the tool bar 303 to be set in a non-display state and moved to various positions on the screen. Further, the position of the work area 306 can be moved by operating the mouse 133 .
  • the pallet 311 is optional, and the cursor/pointer device 313 shows a position pointed to by the mouse 133 .
  • the menu bar 302 has a large number of menu items 304 expanded under a menu operation layer as known from the well-known technique.
  • the tool bar 303 has a large number of tool buttons and widgets 305 that can be set in a non-displayed or displayed state using a special mode of the application.
  • a ruler 308 is optional and is used to show the position of a pointer, a page, a line, a margin guide, and an object in a work area.
  • the pallet 311 has a window control 312 used for movement, resizing, and closure.
  • the pallet 311 is optional and is displayed in front of the work area or hidden behind the objects.
  • the pallet 311 may be displayed within the range of the application window 301 or may be partly or entirely displayed outside the application window 301 .
  • buttons such as those shown in FIG. 4 are arranged in the tool bar 303 so that the user can select any of the buttons.
  • Selection tool button 403 Used to select, move, resize, and lock/unlock any side of an object. An object is selected by dragging a selection box around the object. A plurality of objects can also be selected by performing a selecting operation on the objects while depressing a CTRL key.
  • Text object tool button 404 Used to create an object having a static or valuable text.
  • Text object tool button 405 Used to create an object having a static or valuable image.
  • Link tool button 406 Used to create a link between objects which associates the objects with each other and to control the distance of the link.
  • the work area 306 is used to display and edit the design of a document template. This enables the user to design the appearance of a preprinted document.
  • the work area 306 comprises a scroll bar 307 , the optional ruler 308 , and a document template 309 .
  • the document template 309 can show the presence of a plurality of pages.
  • the user specifies a page size for the given document template.
  • the actual number of pages in each document varies depending on the amount of data poured. When the data cannot be fitted into one page, an additional page is automatically created.
  • a boundary line 310 in each page is an arbitrary page margin indicating the maximum width of a printable object on the page.
  • FIG. 4 shows an example of objects that can be displayed on the document template 309 for one page.
  • the template has a plurality of objects 407 and 408 , arbitrarily applicable anchor icons 409 and 412 , and a slider 413 .
  • the object is a space (referred to as a partial region) drawn by pouring a fixed or flexible text/image from a data file into a document template. As shown in FIG. 4 , the object is arranged in the document template together with other objects. The object is moved, resized, and re-created by the user by performing operations on a user interface screen to give instructions, that is, operating the mouse 133 .
  • the object will be defined below according to the present embodiment.
  • the object has a fixed or flexible content.
  • the flexible content is dynamic in a sense that data acquired from a data source may vary with documents, that is, records.
  • the flexible content according to the present embodiment does not include an animated content or a content changing instantaneously using another method.
  • the fixed content is similarly displayed in all the documents generated using objects. However, if any flexible content and link are set, the position of the fixed content may vary with the documents.
  • the object has decorating functions similar to text settings such as a background color, a border, and a font style which are applied to the content. These settings are called object attributes.
  • the object attributes can be set for each object. However, settings can be made such that an object has the same object attributes as those of another.
  • the object is merged with data from the data source when a document is generated.
  • the decorating functions are visible in printout matter as in the case of any fixed contents.
  • the flexible content provides a displays particular data from the data source. This expression of the object may be printed and/or displayed on the screen of the video display 144 .
  • the object has a user interface as a visual clue as shown in FIG. 4 .
  • the object has, for example, an interactive graphical user interface (GUI) used to edit, display, and set objects.
  • GUI graphical user interface
  • the elements of the GUI are displayed on the screen of the video display 144 but are not printed as a document.
  • the user interface 103 of the layout editing application 121 has a function for displaying some of the object decorating functions such as a background color and a font and enabling object settings to be edited and displayed.
  • the user can specify the size and position of an object.
  • the object has control restrictions (conditions) as to how to link contents displayed in each document. These restrictions (including the linkage of fixed/flexible contents with objects) are a major method by which the user controls a large number of documents from one document template.
  • the sides of an object define virtual boundary lines inside which the associated content is displayed in the document. Therefore, discussing the left-hand side of the object corresponds to discussing the leftmost side of an area in which the associated content can be displayed in each document. Likewise, discussing the height of an object corresponds to discussing restrictions on the height of the associated content in the document generated. In the present specification, this distinction will be clarified in the discussion of the sides or size of the object with reference to the user interface 103 .
  • a new text object or image object is created on the document template 309 by using the mouse 133 to click a text object tool 404 or an image object tool 405 and dragging a rectangle onto the document template 309 .
  • an object may be created by activating the appropriate tool 404 or 405 and simply clicking it on the document template 309 .
  • an object of a default size is placed on the template in response to the click operation of the mouse 133 .
  • a dialog box or another prompt is provided which is used to set, for example, the size of the new object.
  • Various methods may be used to create an object; the size of the object may be automatically predefined or a calculated schema may create and place the object.
  • the input device such as the mouse is used to select the object generated.
  • a right click is executed to indicate properties.
  • an object property dialog is displayed so that restrictions on the object can be set. The above various restrictions can be set in the object property dialog UI.
  • the object property dialog enables the size (width and height) and position of the object to be determined.
  • To set a flexible size it is possible to set a basic pattern (basic size and basis position) for the object as well as a maximum object size (width and height) and a minimum object size (width and height).
  • the application 121 displays the sides of an object as solid lines ( 414 ) (however, another method may be used to show the sides).
  • the application 121 also comprises an anchor 409 (a line, shape, or icon drawn close to any of the sides), handles 411 (control points drawn to move or modify the sides), and sliders 413 (short parallel lines drawn on the opposite sides).
  • the link indicates the association between the corresponding objects.
  • Each of the objects associated with each other by the link calculate layout under the influence of a change in the layout of the other.
  • the link is shown at 412 in FIG. 4 and associates the objects 407 and 408 with each other in this figure.
  • FIGS. 7A to 7C are diagrams showing an example of a UI used for link setting. With reference to FIGS. 6 and 7A to 7 C, description will be given of a method for setting a link to an object.
  • FIG. 7A shows two objects ( 701 and 702 ) created.
  • Reference numerals 703 and 704 denote anchors and reference numeral 705 denotes a mouse pointer.
  • step S 602 the link tool button 406 is selected.
  • step S 603 one (in this case, the object 701 ) of the objects for which a link is to be set is clicked and selected using the mouse pointer 705 .
  • step S 604 the object 702 is selected, for which the link with the object 701 , selected in step S 603 , is to be set. Specifically, the mouse pointer 705 is moved and the object 702 is clicked.
  • FIG. 7B is a diagram showing the state after the object 701 is clicked and before the object 702 is clicked. As shown in this figure, a line 706 is displayed which joins the position clicked in step S 603 and the current position of the mouse pointer 705 .
  • step S 604 when the object 702 is selected, a link is displayed between the objects 701 and 702 .
  • FIG. 7C shows that a link 707 has been displayed by clicking the object 702 .
  • FIG. 28 shows a UI used to set a flexible link.
  • containers 2803 and 2804 are present on the document template 309 .
  • Each of the containers includes anchor icons 2801 and 2802 and fixed sides 2805 and 2806 .
  • a link 2809 of a flexible size is provided between the containers 2803 and 2804 to join the containers 2803 and 2804 together. Since the link is set between the containers 2803 and 2804 , a right-hand side 2807 of the container 2803 and a left-hand side 2808 of the container 2804 are expressed by dotted lines. Thus, indicators 2810 and 2811 are displayed for the containers to indicate that the sides 2807 and 2808 are flexible.
  • FIG. 29 shows a UI screen for the link setting means, specifically, an example of a dialog window 2901 used to set information on the link 2809 .
  • the dialog window is composed of a title bar 2902 , tool buttons 2903 , buttons 2904 used to open and close the dialog window, and an area 2909 in which various pieces of information are set.
  • the dialog window enables the selection as to whether the link is of a flexible length ( 2907 ) type or fixed length ( 2906 ) type. If the link type is flexible, it is possible to set the minimum value (Min. Distance 2910 ), maximum value (Max. Distance 2912 ), and reference value (Distance 2911 ) of the link length.
  • this setting is displayed when the set link is selected by an operation such as clicking.
  • the dialog window 2901 for the link may be automatically displayed immediately after the link is set.
  • the reference value 2911 for the distance between the containers is the link length used if the sizes of the containers remain unchanged when data is poured.
  • FIG. 30 shows the result of layout if a link of a fixed size is used.
  • the method for layout calculation is as described above.
  • FIG. 28 it is assumed that image data of different sizes are inserted into the containers 2803 and 2804 .
  • Each container considers the data size to be optimum.
  • the container 2803 attempts to change its size rightward so as to reach a frame 3004 (optimum container size) corresponding to the inserted image size.
  • the container 2804 attempts to change its size leftward so as to reach a frame 3005 (optimum container size) corresponding to the inserted image size.
  • the container 2803 cannot move its left-hand side 2812 owing to the anchor 2801
  • the container 2804 cannot move its right-hand side 2813 owing to the anchor 2802 . Accordingly, the spacing between the two containers must be reduced in order to change the size as described above.
  • a link 3003 of a fixed size has been set between the containers. This length is maintained during layout calculation, so that the sizes of the containers 2803 and 2804 are changed.
  • the containers 2803 and 2804 cannot obtain the optimum sizes corresponding to the aspect ratio of the data.
  • the containers 2803 and 2804 are smaller than their optimum sizes (frames 3004 and 3005 ) as shown in FIG. 30 . That is, the fixed size of the link 3003 precludes the containers 2803 and 2804 from achieving the optimum sizes (in FIG. 30 , the aspect ratio of the data corresponds to the range shown by an alternate long and short dash line in each container).
  • FIG. 31 shows a state similar to that shown in FIG. 30 except that the link has a flexible size.
  • a link of a flexible size has been set between the containers 2803 and 2804 in the above example. Accordingly, when the sizes of the containers 2803 and 2804 are changed, the link size decreases to enable an increase in the sizes of the containers 2803 and 2804 compared to those in the example in FIG. 30 .
  • FIG. 31 shows this result.
  • the flexible link 2809 has such a size as shown by a flexible link 3103 , as a result of layout calculation. In this case, the containers 2803 and 2804 have the optimum sizes (compatible with the data sizes).
  • the host computer 101 comprises not only a function for allowing the user to manually set a link between objects (3 to 6, described above) but also a function for automatically setting a link.
  • a file or display menu in the menu bar is used to cause a UI for the automatic link function to be displayed. Then, settings are made such that automatic linking is to be executed. If the automatic link function is used, the details of the link can be set. This will be described in FIG. 8 in detail. The details of the automatic link function will be described below.
  • FIG. 5 is a diagram showing an example of a user interface displayed when a layout editing process is executed using the layout editing application 121 , comprising the automatic link function.
  • reference numerals 501 and 502 denote an application window and an object, respectively.
  • Reference numerals 503 and 504 denote a link set between the corresponding objects, and a mouse pointer, respectively.
  • the present specification describes the position of the object.
  • the upper left corner of a document is used as an origin
  • a horizontal direction is defined as an X direction
  • a vertical direction is defined as a Y direction.
  • FIG. 8 is a diagram showing an example of a dialog window 801 used to set the distance between objects.
  • the dialog window 801 comprises a title bar 802 , tool buttons 803 , buttons 804 used to open and close the dialog window, and a setting section 807 in which information on the distance between the objects is set.
  • the user sets, in the dialog window 801 , the distance 806 between objects between which a link is to be automatically set ( 806 will be referred to as a “setting distance” below). It is also possible to set Link Length 808 that is the length of the link to be automatically created. If Link Length 808 is not specified, the length of the set link is the distance between the objects.
  • the setting is applied by depressing an OK button of the dialog window opening and closing buttons 804 , the setting information in the dialog window 801 is stored in the memory 136 .
  • the link set in FIG. 8 is assumed to be of the fixed type. However, it is possible to select the link type between the fixed and flexible links. If the setting of a flexible link is selected, a flexible link setting UI in FIG. 29 is displayed.
  • FIG. 11 is a flowchart showing the flow of a general process of the automatic link function executed if a new object is created. The process shown in FIG. 11 is executed under the control of the processor 135 in the host computer 101 .
  • step S 1101 the user creates a new object using the text object tool 404 or the image object tool 405 . Then, the layout editing application 121 stores positional information on the created object in the memory 136 .
  • the layout editing application 121 calculates the distance between the object created and a nearby object.
  • the distance between objects refers to the distance between sides of the target objects which are the closest to each other. If a plurality of objects are present near the object created, the distance between the object created and each of the nearby objects is determined.
  • step S 1103 the layout editing application 121 compares the distance obtained and a preset distance 806 . If the distance obtained is equal to or shorter than the set distance, a link is created between the objects (step S 1104 ). The process is thus finished. On the other hand, if the distance obtained is larger than the set distance, the process is finished without creating any link. The details of the link creating process will be described below.
  • FIG. 12 is a flowchart showing the flow of a general process of the automatic link function executed if any of the laid-out objects are moved. The process shown in FIG. 12 is executed under the control of the processor 135 in the host computer 101 .
  • step S 1201 the user selects an object to be moved. Then, the layout editing application 121 recognizes the object selected by the user.
  • step S 1202 the UI is changed so that the user can view the recognized object.
  • FIG. 9 shows that an object E has been selected.
  • the object can be selected by using a mouse pointer 903 to drag a rectangle 902 so that the object lies inside the rectangle.
  • the object can be selected by using the mouse pointer 903 to depress it.
  • the method for selection is not limited to this but another method may be used.
  • FIG. 10 shows an example in which the display of the object E has been changed in order to clearly show the user the selection of the object E ( 1002 ). In this example, the object is shaded. However, another method may be used to show the selection.
  • step S 1203 the user uses the mouse 133 to drag and move the selected object to a desired position. Then, the layout engine 105 acquires the positional information on the object at the destination.
  • FIG. 13 shows that the object E is being moved by using the mouse pointer 1303 to drag it ( 1302 ).
  • the application 121 calculates the distance between the moved object and a nearby object, as in the case where a new object is created, (step S 1204 ). If a plurality of objects are present near the moved object, the application 121 determines the distance between the moved object and each of the nearby objects.
  • step S 1205 the layout editing application 121 compares the distance obtained with the set distance 806 . If the distance obtained is equal to or shorter than the set distance, the process advances to step S 1206 to display a UI that visually indicates this to the user.
  • FIG. 14 shows an example of a UI that shows the user that the distance to the moved object is equal to or shorter than the set distance ( 1402 ). In this example, the link is shown as a dotted line. However, another method may be used to show the link.
  • step S 1207 when the user drops the mouse 133 with the UI1402 displayed, the layout editing application 121 recognizes that the object has been unselected.
  • step S 1208 the layout editing application 121 creates, according to the processing in step S 1207 , a link between the objects determined to be within the range preset in S 1205 as described in FIG. 16 .
  • FIG. 19 shows that in the state shown in FIG. 14 , the mouse is dropped to change the link UI to an ordinary display 1902 to indicate that the link has been created between the objects. On this occasion, the positional information on the selected object on the memory 136 is updated to the moved position.
  • the layout editing application 121 calculates the distance between the moved object and a nearby object again (that is, the determination in step S 1207 is “No” and the process returns to step S 1204 ).
  • FIG. 15 is a flowchart showing the details of a link creating process (step S 1104 ) executed when a new object is created. The process shown in FIG. 15 is executed under the control of the processor 135 in the host computer 101 .
  • step S 1501 the layout engine 105 first acquires the positional information on the newly created object.
  • the distance between objects refers to the distance between the sides of the objects. Accordingly, the “positional information acquired” is positional information on each side of the object in the X and Y directions.
  • step S 1502 the layout editing application 121 checks whether or not any objects different from the above one have been laid out. If any objects different from the above one have been laid out, the layout editing application 121 acquires information on the number and positions of the objects. The object positional information acquired is stored in a sequence.
  • step S 1503 the layout editing application 121 executes a link setting process.
  • the link setting process is finished and if no other objects have been laid out, the process is finished.
  • FIGS. 16A and 16B are flowcharts showing the detailed flow of the link creating process (step S 1503 ) shown in FIG. 15 .
  • the process shown in FIGS. 16A and 16B is executed under the control of the processor 135 in the host computer 101 .
  • a link is set by extracting a nearby object and setting a link to this object. If the distance between the objects is equal to or shorter than the set distance, a link is set between the objects. If a plurality of objects are found for which the inter-object distances are equal to or shorter than the set distance, links are set for the plurality of containers for which the inter-object distances are equal to or shorter than the set distance.
  • step S 1601 the layout editing application 121 substitutes Dist_AutoLink for the distance 806 between objects between which a link is to be automatically created.
  • the layout editing application 121 then substitutes 1 into i.
  • step S 1602 the application checks whether or not the position of the object created overlaps the position of the i-th object in the Y direction. It is a precondition for the automatic link function according to the present embodiment that the objects between which a link is to be created are located in the same horizontal or vertical direction.
  • FIG. 18 shows a region for which a link is to be created. A link will be created if a part or the whole of an object is present in a region 1808 or 1811 enclosed by a Y-directional side of an object created 1801 and extensions 1807 of X-directional sides of the object 1801 or a region 1809 or 1810 enclosed by a X-directional side of the object 1801 and extensions 1807 of Y-directional sides of the object 1801 .
  • no link is created between another object and any of the extension 1807 of the X-directional sides of the object 1801 or the extensions 1806 of the Y-directional sides of the object 1801 .
  • an object 1803 can be linked to the object 1801 .
  • objects 1802 and 1805 can be linked to the object 1801 .
  • No link is created for an object 1804 .
  • step S 1602 the position of the object created is determined to overlap the position of the i-th object in the Y direction
  • the process advances to step S 1603 to determine whether or not the positions in the Y direction overlap each other. If the position of the object created is not determined to overlap the position of the i-th object in the X direction, the process advances to step S 1614 .
  • step S 1614 the application checks whether or not an anchor has been set on one of the X-directional sides of the i-th object which is closer to the object created. If an anchor has been set on this side, the side is fixed, so that no link will be set. If no anchor has been set on this side, the process advances to step S 1604 to calculate the distance between X-directional sides of the object created and the i-th object which distance is smaller than that between the other X-directional sides of the object created and the i-th object. The result is substituted into DistX.
  • step S 1605 the layout editing application 121 compares the DistX calculated in step S 1604 with Dist_AutoLink in which the set distance at which an automatic link is to be created. If the DistX is smaller than the Dist_AutoLink, that is, the calculated DistX value is determined to be equal to or smaller than the set distance value, the process advances to step S 1606 to create an X-directional link between the objects.
  • step S 1603 if the positions are determined to overlap in step S 1603 , this means that the objects overlap.
  • FIG. 20 shows that an object 2003 has been created at a position where it overlaps an object 2001 .
  • the layout editing application 121 checks in step S 1607 whether or not to set a link for the user (details will be described below).
  • step S 1606 and S 1607 are executed or if the application determines in step S 1614 that an anchor has been set on a side or in step S 1605 that the DistX is larger than the Dist_AutoLink, the process advances to step S 1608 to increment i in order to check the next nearby object.
  • step S 1602 If the application determines in step S 1602 that the positions do not overlap, the process advances to step S 1610 in FIG. 16B .
  • the layout editing application 121 executes a check for a link in the Y direction to determine whether or not the objects overlap in the X direction.
  • step S 1610 the process advances to step S 1615 to check whether or not an anchor has been set one of the Y-directional sides of the i-th object which is closer to the object created. If no anchor has been set on this side, the process advances to step S 1611 to calculate the distance between Y-directional sides of the object created and the i-th object which distance is shorter than that between the other Y-directional sides of the object created and the i-th object. The result is substituted into DistY.
  • step S 1612 the application compares the compares the DistY calculated in step S 1611 with Dist_AutoLink. If the DistY is smaller than the Dist_AutoLink, that is, the calculated DistY value is determined to be equal to or smaller than the set distance value, the process advances to step S 1613 to create a Y-directional link between the objects.
  • step S 1613 After step S 1613 is executed or if the application does not determine in step S 1610 that the positions overlap or determines in step S 1615 that an anchor has been set on a side or in step S 1612 that the DistY is larger than the Dist_AutoLink, the process advances to step S 1608 , and the layout editing application 121 increments i in order to check the next nearby object.
  • step S 1609 the application determines whether or not all the arranged objects have been checked. If not all the objects have been checked, the process advances to step S 1602 to repeat a reading process. If all the objects have been checked, the link setting process is finished. In this manner, when a new object is created and if the application confirms that another object is present within the predetermined distance set by the user, a link is automatically created. Consequently, an increase in the number of objects does not degrade the efficiency of the user's operations.
  • FIG. 21 is a flowchart showing the details of the link creating process (step S 1208 ) executed when any of the objects is moved. The process shown in FIG. 21 is executed under the control of the processor 135 in the host computer 101 .
  • step S 2101 the layout engine 105 acquires the positional information on the selected object.
  • step S 2102 the layout editing application 121 checks whether or not an object is present which is different from the above one. If in step S 2102 , no other objects are laid out, then in step S 2108 , the object is moved to finish the process.
  • step S 2102 determines in step S 2102 that another object is present
  • the process advances to step S 2103 .
  • the application 121 then checks whether or not the selected object has an attribute indicating the avoidance of automatic linking.
  • the attribute indicating the avoidance of automatic linking disables the automatic link function to prevent a link from being created between objects even if the distance between them is equal to or shorter than the set distance 806 .
  • FIG. 27 is a diagram showing a dialog window used to set automatic linking for each object.
  • a property dialog window 2701 is displayed by selecting an object and using the mouse to execute a right click or operating a particular key of the keyboard.
  • the automatic link function can be disabled by selecting an attribute 2705 indicating the avoidance of automatic linking. If the object has the attribute indicating the avoidance of automatic linking, it can be arbitrarily moved without the need to create any link with another object. If a link with another object has already been set, even if movement of the object results in an increase in the predetermined distance specified by the user, the object can be moved while retaining the link and without the need to create a further link.
  • FIG. 23 shows an example in which an object 2302 is selected for which a link 2304 has already been set. If the object 2304 has the attribute indicating the avoidance of automatic linking, even if movement of the object 2302 in FIG. 23 makes the distance between objects 2402 and 2405 equal to or shorter than the set distance 806 as shown in FIG. 24 , no link is created between the objects 2404 and 2405 . On the other hand, if the distance between 2402 and 2406 exceeds the set distance 806 , the link 2404 remains set.
  • FIG. 21 is referred to again. If the object selected in step S 2103 does not have the attribute indicating the avoidance of automatic linking, the process advances to step S 2104 .
  • the layout editing application 121 acquires the number of other laid-out objects and positional information on them. The object positional information acquired is stored in a sequence.
  • step S 2105 the application determines whether the user has selected the retention or discarding of the already set link as an operation performed when the object is moved. Whether to retain or discard the link may be selected by, for example, moving the object while depressing a particular key on the keyboard 132 . However, the present invention is not limited to this method. A different method may be used to select the retention or discarding.
  • step S 2105 the application determines that the user has selected the retention of the existing link, then it moves the object while retaining the existing link information (steps S 2107 and S 2108 ).
  • the layout editing application 121 creates links only for the objects for which links have not been created yet (step S 2109 ).
  • step S 2105 determines that the user has selected the discarding of the existing link, it discards the information on the existing link and then moves the object (steps S 2106 and S 2108 ).
  • the application then creates links for all the laid-out objects (step S 2109 ).
  • FIG. 25 shows an example in which when the object 2302 does not have the attribute indicating the avoidance of automatic linking in FIG. 23 , the user selects the retention of the existing link and moves an object 2502 so that the distance between objects 2502 and 2505 is equal to or shorter than the set distance 806 . Even if the distance between the objects 2502 and 2507 is longer than the set distance 806 , a link 2504 remains set.
  • FIG. 26 shows an example in which when the object 2302 does not have the attribute indicating the avoidance of automatic linking in FIG. 23 , the user selects the discarding of the existing link and moves an object 2602 so that the distance between objects 2602 and 2605 is equal to or shorter than the set distance 806 . Even if the distance between the objects 2602 and 2607 is longer than the set distance 806 , the already set link 2404 is canceled and deleted from the screen. As previously described, if the object is moved, a link is created when the mouse is dropped (step S 2110 ).
  • FIGS. 22A and 22B are flowcharts showing the detailed flow of the link setting process (step S 2109 ) in FIG. 21 .
  • the processing in FIGS. 22A and 22B is executed under the control of the processor 135 in the host computer 101 .
  • the steps are almost similar to those executed in creating a new object. The difference is that in steps S 2206 and S 2213 , a temporary link is created which is required to finally establish a final link in step S 210 in FIG. 21 .
  • the other steps are the same as those executed in creating a new object, so that their description is omitted. If after movement of the object, the distance between the objects is determined to be at most the predetermined distance, a link is automatically created. This prevents the efficiency of the user's operations from being degraded in the edition of objects.
  • FIG. 17 shows an example of a dialog window 1701 displayed if a created or moved object overlaps another (as shown in FIG. 20 ).
  • the dialog window is used to ask the user whether or not to create a link.
  • a link is created by selecting a button 1703 used to continue a common process. No link is created when a button 1704 used to suspend the process is selected.
  • the automatic layout system when the distance between adjacent objects is equal to or shorter than a predetermined distance, a link is automatically created. This prevents the burden for link setting from being increased in spite of an increase in the number of objects. It is thus possible to allow the user to efficiently perform a setting operation in the automatic layout system.
  • the present invention is applicable to a system composed of plural pieces of equipment (for example, a host computer, an interface apparatus, a reader, and a printer) or an apparatus consisting of one piece of equipment (for example, a copier or a facsimile machine).
  • a host computer for example, a host computer, an interface apparatus, a reader, and a printer
  • an apparatus consisting of one piece of equipment for example, a copier or a facsimile machine.
  • the object of the present invention is accomplished by supplying a system or apparatus with a storage medium on which program codes for software that realizes the functions of the above embodiments and allowing a computer (or CPU or MPU) in the system or apparatus to read and execute the program codes stored in the storage medium.
  • the program codes read from the storage medium realize the functions of the above embodiments.
  • the storage medium storing the program codes constitutes the present invention.
  • the storage medium used to supply the program codes may be, for example, a floppy (registered trade mark) disk, a hard disk, an optical disk, a magneto-optic disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, or a ROM.
  • the functions of the above embodiments may be realized as follows instead of using the computer to execute the read program codes.
  • An OS Operating System
  • running on the computer executes a part or the whole of the actual process on the basis of instructions from the program codes.
  • the functions of the above embodiments may also be realized as follows.
  • the program codes read from the storage medium are written to a memory provided in an expansion board inserted into the computer or an expansion unit connected to the computer.
  • a CPU or the like provided in the expansion board or unit then executes a part or the whole of the actual process on the basis of instructions from the program codes.

Abstract

The present invention allows a user to efficiently perform a setting operation in an automatic layout system. To accomplish this object, an information processing apparatus has the following configuration. An information processing apparatus having an automatic layout function includes a function for, in editing containers, measuring a distance between a first container placed on the document and a second container placed on the document (step S1102), determining whether or not the distance is equal to or shorter than a predetermined distance (step S1103), and if the distance is determined to be equal to or shorter than the predetermined distance, automatically setting the link between the first and second containers (step S1104).

Description

    FIELD OF THE INVENTION
  • The present invention relates to an information processing technique for setting control conditions for the layout of a plurality of objects on a document in an information processing apparatus which generates a document by pouring data into the objects and controlling the layout of the objects under predetermined control conditions according to the data.
  • BACKGROUND OF THE INVENTION
  • In recent years, much attention has been paid to the need of CRM (Customer Relationship Management) and One-to-One marketing. This is because decreases in the lifetimes of products result from an increase in the number of product types and because customers' orientation toward customized services attributed to the prevalence of the Internet. The above techniques are very effective in accomplishing objects to improve customers' satisfaction and to get and hold new customers.
  • One-to-One marketing is a kind of database marketing in which customers' individual attribute information such as ages, sexes, habits, tastes, and purchase histories is stored in a database so that the contents of the information can be analyzed to make proposals meeting the customers' needs. A representative technique for one-to-one marketing is variable print. With the recent development of the DTP (Desk Top Publishing) technique and prevalence of digital printing apparatuses, a variable print system has been developed which outputs a customized document for each customer. It has thus become necessary to optimally lay out contents the amount of which varies with customers.
  • In general, when such a customized document is created using a variable print system, containers are laid out on the document. The container is an object that is a partial region (sometimes referred to as a field region) in which contents (drawn contents) from the database are drawn. That is, a customized document is created by laying out containers and associating the database with the containers (associating the contents of the database with the containers).
  • However, with the variable print system, the sizes of containers for texts and images are fixed. Accordingly, when data from the database is inserted into a container, if the amount of data is larger than the size of the container, text overlapping or image clipping may occur. If the data amount is smaller than the container size, a gap may disadvantageously be formed in the container.
  • To solve this problem, an automatic layout system has been proposed. The automatic layout system dynamically changes the layout of containers using contents. The automatic layout system can set a flexible container size according to the amount of data in an inserted text or image.
  • Specifically, the automatic layout system can vary the size of containers and increases the size of containers to be laid out according to the amount of data inserted. For texts, the automatic layout system can vary the sizes of fonts in containers and reduces the size of containers to be laid out according to the amount of data inserted. Thus, even if a text having a data amount exceeding the capacity of a container is inserted into the container, the entire text can be displayed in the container.
  • However, with the flexible container size, a container with a large data amount may be laid on top of another container on the same document. In other cases, when the sizes of containers are fixed with the sizes of fonts varied, a text with a large data amount may result in an excessively reduced font size in the layout.
  • Thus, the automatic layout system comprises a link function for associating adjacent containers with each other (function for associating adjacent objects so that the layout of an object obtained by pouring data into the objects is based on the layout of another object adjacent to this object). This solves the above problem by automatically increasing the size of a container adjacent to a particular container of an increased size (see, for example, Japanese Patent Laid-Open No. 7-129658).
  • However, with the automatic layout system, when a plurality of containers are arranged on a document and associated with one another, a user must manually set each link between the corresponding containers.
  • However, with the one-to-one marketing, catalogs or pamphlets are created according to clients' needs, so that much information is required for some clients. It is thus expected that the number of links associating containers with one another increases consistently with the number of containers into which contents are poured. In this case, an increase in setting burden may disadvantageously result from the manual setting of each link associating containers with one another as with the above technique.
  • SUMMARY OF THE INVENTION
  • The present invention is made in view of the above problems. An object of the present invention is to allow a user of a layout system to efficiently set links associating containers with one another, by automatically setting a link if a plurality of objects are contained within a predetermined distance preset by the user.
  • To accomplish this object, a method for processing information according to the present invention has the following configuration.
  • A method for processing information to set links that join a plurality of object on a document in an information processing apparatus comprising control unit configured to use the links to control a layout of the objects when data is poured into the objects, the method comprising:
  • a calculating step of calculating a distance between a first object placed on the document and a second object placed on the document;
  • a determining step of determining whether or not to create a link on the basis of the distance between the first and second objects calculated in the calculating step and
  • a link creating step of, if the link is determined to be created, creating the link between the first and second objects.
  • The present invention enables the automatic setting of links associating a plurality of objects with one another. This allows the user to perform efficient operations in the automatic layout system.
  • Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1A is a diagram showing the configuration of an automatic layout system comprising a host computer according to an embodiment of the present invention;
  • FIG. 1B is a block diagram showing in further detail the configuration of the automatic layout system comprising the host computer according to an embodiment of the present invention;
  • FIG. 2 is a diagram showing the configuration of an automatic layout system comprising a host computer according to an embodiment of the present invention;
  • FIG. 3 is a diagram showing a main window of a layout editing application program;
  • FIG. 4 is a diagram showing the main window of the layout editing application program;
  • FIG. 5 is a diagram showing an example of a user interface displayed if a layout editing process is executed using a layout editing application comprising an automatic link function;
  • FIG. 6 is a flowchart showing the flow of a link setting process;
  • FIGS. 7A to 7C are diagrams showing an example of a UI for link setting;
  • FIG. 8 is a diagram showing an example of a dialog window used to set the distance between objects in operating the automatic link function;
  • FIG. 9 is a diagram showing an example of a UI for object selection;
  • FIG. 10 is a diagram showing an example of a UI change made to a selected object;
  • FIG. 11 is a flowchart showing the flow of a general process of the automatic link function executed if a new object is created;
  • FIG. 12 is a flowchart showing the flow of a general process of the automatic link function executed if an object is moved;
  • FIG. 13 is a diagram showing how a selected object is moved by using a mouse pointer to drag it;
  • FIG. 14 is a diagram showing an example of a UI that indicates to a user that the moved object has at most a set distance;
  • FIG. 15 is a flowchart showing the details of a link creating process executed when a new object is created;
  • FIG. 16A is a flowchart showing the detailed flow of a link setting process;
  • FIG. 16B is a flowchart showing the detailed flow of the link setting process;
  • FIG. 17 is a diagram showing an example of a dialog window displayed if a created or moved object overlaps another object;
  • FIG. 18 is a diagram showing a region to be subjected to link creation;
  • FIG. 19 is a diagram showing that links has been created between objects;
  • FIG. 20 is a diagram showing an example in which an object has been created at a position where it overlaps another object;
  • FIG. 21 is a flowchart showing the details of a link creating process executed when an object is moved;
  • FIG. 22A is a flowchart showing the detailed flow of a link setting process;
  • FIG. 22B is a flowchart showing the detailed flow of the link setting process;
  • FIG. 23 is a diagram showing that an object having a set link has been selected;
  • FIG. 24 is a diagram showing an example of the result of movement of an object having an attribute that avoids automatic linkage;
  • FIG. 25 is a diagram showing an example of the result of object movement executed if existing link holding has been selected;
  • FIG. 26 is a diagram showing an example of the result of object movement executed if existing link discard has been selected;
  • FIG. 27 is a diagram showing a dialog window used to make setting as to whether or not to automatically link objects;
  • FIG. 28 is a diagram showing an example of a display in a user interface provided when a flexible link is used to arrange containers;
  • FIG. 29 is a diagram showing a link setting dialog window according to an embodiment;
  • FIG. 30 is a diagram showing an example of the result of layout using a fixed link; and
  • FIG. 31 is a diagram showing an example of the result of layout using a flexible link.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • First, the present embodiment will be described in detail. In general, creation of a document in an automatic layout system can be classified into a layout editing process and an automatic layout process. The former process is used to set control conditions as to how containers are laid out if the containers are arranged on a document and if data is poured into the containers. The latter process is used to generate a document by pouring data into containers and controlling the layout according to the poured-into data under the set control conditions.
  • A host computer (information processing apparatus) according to the present embodiment which constitutes an automatic layout system comprises an automatic link function for automatically executes link setting which is a set item of control conditions for the layout editing process in order to allow a user to perform efficient setting operation. Specifically, a conventional layout editing process arranges containers on a document and then sets each link between the corresponding containers. In contrast, with an automatic link function according to the present invention, links can be automatically set simply by arranging containers at most a predetermined distance from each other. This sharply reduces the burden imposed on the user in link setting.
  • 1. Example of Configuration of Automatic Layout System
  • First, with reference to FIGS. 1A and 1B, description will be given of an automatic layout system comprising a host computer (information processing apparatus) according to an embodiment of the present invention. FIG. 1A is a block diagram showing an example of the configuration of an automatic layout system 100. FIG. 1B is a block diagram showing in further detail the configuration of a host computer (information processing apparatus) 101 shown in FIG. 1A.
  • The host computer 101 (composed of a general-purpose computer module) executes a layout editing process and an automatic layout process described in the present embodiment. The host computer 101 executes the whole or a part of the software for a layout editing application program 121 that can be implemented on the automatic layout system 100. This allows the layout editing process and automatic layout process to be implemented.
  • The layout editing application program 121 is stored in a computer readable medium and loaded from the computer readable medium into a memory 136 of the host computer 101 for execution. The computer readable medium housing such software and a computer program is a computer program product. Using the computer program in the computer provides an apparatus that is suitable for creation of a document or printing of the documented created.
  • As shown in FIG. 1B, the host computer 101 connects to a keyboard 132, a pointing device such as a mouse 133, and the like via an I/O interface 143, the keyboard and pointing device serving as input devices. Further, a display device 144 serving as an output device is connected to the host computer 101 via a video interface 137. Moreover, a local printer 145 or the like can be connected to the host computer 101 via an I/O interface 138. The I/O interface 138 also has a function for connecting the computer module 101 to a network 107. This enables the host computer 101 to be connected to another computer apparatus via the network. Typical examples of the network 107 include a local area network (LAN) and a wide area network (WAN).
  • Further, as shown in FIG. 1B, the host computer 101 includes at least one processor unit 135 and a memory unit 136 composed of, for example, a semiconductor random access memory (RAM) or a read only memory (ROM). A storage device 139 includes a hard disk drive 140 and a floppy (registered trade mark) disk drive 141 which can transmit data to and from a computer readable medium in which programs and the like are stored. Although not shown in FIG. 1B, a magnetic tape drive or the like can be used as the storage device 139. A CD-ROM drive 142 serves as a nonvolatile data source (of course, a CR-ROM may be used to provide computer programs).
  • The host computer 101 utilizes components 135 to 143 of the computer module 101 which make communications via an interconnect bus 134 using a conventional operation mode of an operating system such as GNU/LINUX or Microsoft Windows (registered trade mark) or typically a computer system formed so as to follow the operating system or using a known related technique. That is, the arrangements shown by 135 to 143 are communicatively connected via a bus 134 and utilized by the operating system installed in the host computer 101.
  • A possible example of the host computer 101, shown in FIG. 1B, is an IBC compatible PC, a SUN Sparcstation, or a computer system including such a computer.
  • In the present embodiment, the layout editing application program 121 resides in the hard disk drive 140. The processor 135 controls execution and loading of the layout editing application program 121. The semiconductor memory 136 is used, in association with the hard disk drive 140, for data fetched from a medium storage device for the layout editing application program 121 and from the network 107.
  • In one example, an encoded program in the layout editing application 121 is stored on a CD-ROM or a floppy (registered trade mark) disk. The program is loaded through the corresponding drive 142 or 141 and installed in the hard disk drive 140. In another example, the layout editing application program 121 may be loaded from the network 107 into the host computer 101 and then installed in the hard disk drive 140.
  • Moreover, the software may be loaded into the host computer 101 from a magnetic tape, a ROM, or an integrated circuit; or a magneto-optic disk, radio communication or the like between the host computer 101 and another device, a computer readable card such as a PCMCIA card, or another appropriate computer including the Internet or intranet having E mail communication or recoded information on WEB sites. They are examples of the computer readable medium and other computer readable media can apparently be used.
  • In the FIG. 1A the layout editing application 121 allows the computer to execute an automatic layout process and a layout editing process. The layout editing application 121 includes two software components, that is, a layout engine 105 and a user interface 103.
  • The layout engine 105 is a software component that executes the automatic layout process as described below in accordance with settings for the sizes and positions of objects (rectangular ranges, for example, containers) that are partial regions. The layout engine loads each record from the data stored in the database 119 one by one and calculates the sizes and positions of objects into which the loaded data is poured, on the basis of the loaded data and the settings for the objects. Further, in the present embodiment, the layout engine 105 further draws data assigned to the objects to generate an image of a document. However, the present invention is not limited to this. The layout engine 105 may operate as an application that determines the size and position of each partial region (object). The layout engine 105 may further output drawing information to a printer driver (not shown) so that the printer driver can execute an image drawing process on the document to generate print data.
  • On the other hand, the user interface 103 enables the user to execute a layout editing process. Specifically, the user creates and moves objects via the interface 103 to create a document template. The user interface 103 provides a mechanism that associates each object in the document template with data. The user interface 103 further enables various settings (including link settings) for each object in the document template. The user interface 103 and the layout engine 105 communicate via a communication channel 123.
  • 2. Another Example of System Configuration
  • FIG. 2 is a block diagram similar to FIG. 1A except for the addition of an engine server 227. A layout engine 225 stored in the engine server 227 is a separate version of the layout engine 105. The engine server 227 is composed of a common computer. The layout engine 225 integrates a document template saved to a file server 115 with data saved to the database 119 to generate a document for printing or other purposes. Such an operation is requested via the user interface 103.
  • 3. Description of Layout Editing Application
  • Description will be given below of the details of the layout editing process in the layout editing application 121, which is implemented via the user interface 103.
  • 3-1 Main Window
  • The user interface 103 causes the video display 144 to display, during operation, a user interface screen formed of an application window 301 such as the one shown in FIG. 3. The window 301 has a menu bar 302, a tool bar 303, a work area 306, and an optional pallet 311. The window 301 enables the menu bar 302 and the tool bar 303 to be set in a non-display state and moved to various positions on the screen. Further, the position of the work area 306 can be moved by operating the mouse 133. The pallet 311 is optional, and the cursor/pointer device 313 shows a position pointed to by the mouse 133.
  • The menu bar 302 has a large number of menu items 304 expanded under a menu operation layer as known from the well-known technique.
  • The tool bar 303 has a large number of tool buttons and widgets 305 that can be set in a non-displayed or displayed state using a special mode of the application.
  • A ruler 308 is optional and is used to show the position of a pointer, a page, a line, a margin guide, and an object in a work area.
  • The pallet 311 has a window control 312 used for movement, resizing, and closure. The pallet 311 is optional and is displayed in front of the work area or hidden behind the objects. The pallet 311 may be displayed within the range of the application window 301 or may be partly or entirely displayed outside the application window 301.
  • “Buttons” such as those shown in FIG. 4 are arranged in the tool bar 303 so that the user can select any of the buttons.
  • (1) Selection tool button 403: Used to select, move, resize, and lock/unlock any side of an object. An object is selected by dragging a selection box around the object. A plurality of objects can also be selected by performing a selecting operation on the objects while depressing a CTRL key.
  • (2) Text object tool button 404: Used to create an object having a static or valuable text.
  • (3) Text object tool button 405: Used to create an object having a static or valuable image.
  • (4) Link tool button 406: Used to create a link between objects which associates the objects with each other and to control the distance of the link.
  • 3-2 Document Template
  • In FIG. 3, the work area 306 is used to display and edit the design of a document template. This enables the user to design the appearance of a preprinted document.
  • The work area 306 comprises a scroll bar 307, the optional ruler 308, and a document template 309. The document template 309 can show the presence of a plurality of pages.
  • The user specifies a page size for the given document template. The actual number of pages in each document varies depending on the amount of data poured. When the data cannot be fitted into one page, an additional page is automatically created.
  • A boundary line 310 in each page is an arbitrary page margin indicating the maximum width of a printable object on the page.
  • Further, FIG. 4 shows an example of objects that can be displayed on the document template 309 for one page. The template has a plurality of objects 407 and 408, arbitrarily applicable anchor icons 409 and 412, and a slider 413.
  • 3-3 Object
  • Now, the object will be described. The object is a space (referred to as a partial region) drawn by pouring a fixed or flexible text/image from a data file into a document template. As shown in FIG. 4, the object is arranged in the document template together with other objects. The object is moved, resized, and re-created by the user by performing operations on a user interface screen to give instructions, that is, operating the mouse 133. The object will be defined below according to the present embodiment.
  • (1) The object has a fixed or flexible content. The flexible content is dynamic in a sense that data acquired from a data source may vary with documents, that is, records. However, the flexible content according to the present embodiment does not include an animated content or a content changing instantaneously using another method. The fixed content is similarly displayed in all the documents generated using objects. However, if any flexible content and link are set, the position of the fixed content may vary with the documents.
  • (2) The object has decorating functions similar to text settings such as a background color, a border, and a font style which are applied to the content. These settings are called object attributes. The object attributes can be set for each object. However, settings can be made such that an object has the same object attributes as those of another.
  • (3) The object is merged with data from the data source when a document is generated. The decorating functions are visible in printout matter as in the case of any fixed contents. The flexible content provides a displays particular data from the data source. This expression of the object may be printed and/or displayed on the screen of the video display 144.
  • (4) The object has a user interface as a visual clue as shown in FIG. 4. The object has, for example, an interactive graphical user interface (GUI) used to edit, display, and set objects. The elements of the GUI are displayed on the screen of the video display 144 but are not printed as a document. The user interface 103 of the layout editing application 121 has a function for displaying some of the object decorating functions such as a background color and a font and enabling object settings to be edited and displayed.
  • The user can specify the size and position of an object. The object has control restrictions (conditions) as to how to link contents displayed in each document. These restrictions (including the linkage of fixed/flexible contents with objects) are a major method by which the user controls a large number of documents from one document template.
  • The sides of an object define virtual boundary lines inside which the associated content is displayed in the document. Therefore, discussing the left-hand side of the object corresponds to discussing the leftmost side of an area in which the associated content can be displayed in each document. Likewise, discussing the height of an object corresponds to discussing restrictions on the height of the associated content in the document generated. In the present specification, this distinction will be clarified in the discussion of the sides or size of the object with reference to the user interface 103.
  • 3-4 Method for Creating New Object
  • As shown in FIG. 4, a new text object or image object is created on the document template 309 by using the mouse 133 to click a text object tool 404 or an image object tool 405 and dragging a rectangle onto the document template 309.
  • Alternatively, an object may be created by activating the appropriate tool 404 or 405 and simply clicking it on the document template 309. In this case, an object of a default size is placed on the template in response to the click operation of the mouse 133. Further, a dialog box or another prompt is provided which is used to set, for example, the size of the new object. Various methods may be used to create an object; the size of the object may be automatically predefined or a calculated schema may create and place the object. The input device such as the mouse is used to select the object generated. A right click is executed to indicate properties. Then, an object property dialog is displayed so that restrictions on the object can be set. The above various restrictions can be set in the object property dialog UI. The object property dialog enables the size (width and height) and position of the object to be determined. To set a flexible size, it is possible to set a basic pattern (basic size and basis position) for the object as well as a maximum object size (width and height) and a minimum object size (width and height).
  • 3-5 Method for Displaying Object
  • The application 121 displays the sides of an object as solid lines (414) (however, another method may be used to show the sides). The application 121 also comprises an anchor 409 (a line, shape, or icon drawn close to any of the sides), handles 411 (control points drawn to move or modify the sides), and sliders 413 (short parallel lines drawn on the opposite sides).
  • All these icons and sides may or may not be drawn depending on which of the tools or objects is selected, highlighted, or activated. In general, the sides and icons of the object only help design the document template and are thus not drawn on printed matter.
  • 3-6 Link
  • The link indicates the association between the corresponding objects. Each of the objects associated with each other by the link calculate layout under the influence of a change in the layout of the other. The link is shown at 412 in FIG. 4 and associates the objects 407 and 408 with each other in this figure.
  • 3-7 Method for Setting Link
  • Next, description will be given of a method for setting a link used to associate objects with each other. FIGS. 7A to 7C are diagrams showing an example of a UI used for link setting. With reference to FIGS. 6 and 7A to 7C, description will be given of a method for setting a link to an object.
  • First, to set a link, (at least two) objects are created which are required to set the link (step S601). FIG. 7A shows two objects (701 and 702) created. Reference numerals 703 and 704 denote anchors and reference numeral 705 denotes a mouse pointer.
  • In step S602, the link tool button 406 is selected. In step S603, one (in this case, the object 701) of the objects for which a link is to be set is clicked and selected using the mouse pointer 705.
  • In step S604, the object 702 is selected, for which the link with the object 701, selected in step S603, is to be set. Specifically, the mouse pointer 705 is moved and the object 702 is clicked. FIG. 7B is a diagram showing the state after the object 701 is clicked and before the object 702 is clicked. As shown in this figure, a line 706 is displayed which joins the position clicked in step S603 and the current position of the mouse pointer 705.
  • In step S604, when the object 702 is selected, a link is displayed between the objects 701 and 702. FIG. 7C shows that a link 707 has been displayed by clicking the object 702.
  • 3-8 Setting Link of Flexible Length
  • FIG. 28 shows a UI used to set a flexible link. In FIG. 28, containers 2803 and 2804 are present on the document template 309. Each of the containers includes anchor icons 2801 and 2802 and fixed sides 2805 and 2806. A link 2809 of a flexible size is provided between the containers 2803 and 2804 to join the containers 2803 and 2804 together. Since the link is set between the containers 2803 and 2804, a right-hand side 2807 of the container 2803 and a left-hand side 2808 of the container 2804 are expressed by dotted lines. Thus, indicators 2810 and 2811 are displayed for the containers to indicate that the sides 2807 and 2808 are flexible.
  • FIG. 29 shows a UI screen for the link setting means, specifically, an example of a dialog window 2901 used to set information on the link 2809. The dialog window is composed of a title bar 2902, tool buttons 2903, buttons 2904 used to open and close the dialog window, and an area 2909 in which various pieces of information are set. The dialog window enables the selection as to whether the link is of a flexible length (2907) type or fixed length (2906) type. If the link type is flexible, it is possible to set the minimum value (Min. Distance 2910), maximum value (Max. Distance 2912), and reference value (Distance 2911) of the link length. After the link is set between the two containers, this setting is displayed when the set link is selected by an operation such as clicking. Alternatively, the dialog window 2901 for the link may be automatically displayed immediately after the link is set. Here, the reference value 2911 for the distance between the containers is the link length used if the sizes of the containers remain unchanged when data is poured.
  • FIG. 30 shows the result of layout if a link of a fixed size is used. The method for layout calculation is as described above. For example, in FIG. 28, it is assumed that image data of different sizes are inserted into the containers 2803 and 2804. Each container considers the data size to be optimum. The container 2803 attempts to change its size rightward so as to reach a frame 3004 (optimum container size) corresponding to the inserted image size. Likewise, The container 2804 attempts to change its size leftward so as to reach a frame 3005 (optimum container size) corresponding to the inserted image size. However, the container 2803 cannot move its left-hand side 2812 owing to the anchor 2801, whereas the container 2804 cannot move its right-hand side 2813 owing to the anchor 2802. Accordingly, the spacing between the two containers must be reduced in order to change the size as described above. However, a link 3003 of a fixed size has been set between the containers. This length is maintained during layout calculation, so that the sizes of the containers 2803 and 2804 are changed.
  • As a result, the containers 2803 and 2804 cannot obtain the optimum sizes corresponding to the aspect ratio of the data. Finally, the containers 2803 and 2804 are smaller than their optimum sizes (frames 3004 and 3005) as shown in FIG. 30. That is, the fixed size of the link 3003 precludes the containers 2803 and 2804 from achieving the optimum sizes (in FIG. 30, the aspect ratio of the data corresponds to the range shown by an alternate long and short dash line in each container).
  • On the other hand, FIG. 31 shows a state similar to that shown in FIG. 30 except that the link has a flexible size. In this case, a link of a flexible size has been set between the containers 2803 and 2804 in the above example. Accordingly, when the sizes of the containers 2803 and 2804 are changed, the link size decreases to enable an increase in the sizes of the containers 2803 and 2804 compared to those in the example in FIG. 30. As a result, it is possible to achieve the optimum size corresponding to the inserted data size or to set a container frame of a size close to the inserted data size (optimum size). FIG. 31 shows this result. The flexible link 2809 has such a size as shown by a flexible link 3103, as a result of layout calculation. In this case, the containers 2803 and 2804 have the optimum sizes (compatible with the data sizes).
  • 4. Description of Automatic Link Function
  • Next, description will be given of an automatic link function that is characteristic of the layout editing application 121, provided in the host computer 101 according to the present embodiment. The host computer 101 according to the present embodiment comprises not only a function for allowing the user to manually set a link between objects (3 to 6, described above) but also a function for automatically setting a link. For the automatic link function, a file or display menu in the menu bar is used to cause a UI for the automatic link function to be displayed. Then, settings are made such that automatic linking is to be executed. If the automatic link function is used, the details of the link can be set. This will be described in FIG. 8 in detail. The details of the automatic link function will be described below.
  • 4-1 Window Used to Execute Layout Editing Process with Automatic Link Function
  • FIG. 5 is a diagram showing an example of a user interface displayed when a layout editing process is executed using the layout editing application 121, comprising the automatic link function. In FIG. 5, reference numerals 501 and 502 denote an application window and an object, respectively. Reference numerals 503 and 504 denote a link set between the corresponding objects, and a mouse pointer, respectively.
  • The present specification describes the position of the object. For the position of the object, the upper left corner of a document is used as an origin, a horizontal direction is defined as an X direction, and a vertical direction is defined as a Y direction. When the automatic link function is executed, it is a precondition that the objects are flexible. If the objects are fixed by, for example, setting anchors, the automatic link function does not operate.
  • 4-2 Setting Window
  • FIG. 8 is a diagram showing an example of a dialog window 801 used to set the distance between objects. As shown in FIG. 8, the dialog window 801 comprises a title bar 802, tool buttons 803, buttons 804 used to open and close the dialog window, and a setting section 807 in which information on the distance between the objects is set.
  • The user sets, in the dialog window 801, the distance 806 between objects between which a link is to be automatically set (806 will be referred to as a “setting distance” below). It is also possible to set Link Length 808 that is the length of the link to be automatically created. If Link Length 808 is not specified, the length of the set link is the distance between the objects. When the setting is applied by depressing an OK button of the dialog window opening and closing buttons 804, the setting information in the dialog window 801 is stored in the memory 136. The link set in FIG. 8 is assumed to be of the fixed type. However, it is possible to select the link type between the fixed and flexible links. If the setting of a flexible link is selected, a flexible link setting UI in FIG. 29 is displayed.
  • 4-3 Operation of Automatic Link Function if New Object is Created
  • FIG. 11 is a flowchart showing the flow of a general process of the automatic link function executed if a new object is created. The process shown in FIG. 11 is executed under the control of the processor 135 in the host computer 101.
  • In step S1101, the user creates a new object using the text object tool 404 or the image object tool 405. Then, the layout editing application 121 stores positional information on the created object in the memory 136.
  • In step S1102, the layout editing application 121 calculates the distance between the object created and a nearby object. In the present specification, the distance between objects refers to the distance between sides of the target objects which are the closest to each other. If a plurality of objects are present near the object created, the distance between the object created and each of the nearby objects is determined.
  • In step S1103, the layout editing application 121 compares the distance obtained and a preset distance 806. If the distance obtained is equal to or shorter than the set distance, a link is created between the objects (step S1104). The process is thus finished. On the other hand, if the distance obtained is larger than the set distance, the process is finished without creating any link. The details of the link creating process will be described below.
  • 4-4 Operation of Automatic Link Function if Object is Moved
  • FIG. 12 is a flowchart showing the flow of a general process of the automatic link function executed if any of the laid-out objects are moved. The process shown in FIG. 12 is executed under the control of the processor 135 in the host computer 101.
  • In step S1201, the user selects an object to be moved. Then, the layout editing application 121 recognizes the object selected by the user.
  • In step S1202, the UI is changed so that the user can view the recognized object. FIG. 9 shows that an object E has been selected. The object can be selected by using a mouse pointer 903 to drag a rectangle 902 so that the object lies inside the rectangle. Alternatively, the object can be selected by using the mouse pointer 903 to depress it. The method for selection is not limited to this but another method may be used. FIG. 10 shows an example in which the display of the object E has been changed in order to clearly show the user the selection of the object E (1002). In this example, the object is shaded. However, another method may be used to show the selection.
  • In step S1203, the user uses the mouse 133 to drag and move the selected object to a desired position. Then, the layout engine 105 acquires the positional information on the object at the destination. FIG. 13 shows that the object E is being moved by using the mouse pointer 1303 to drag it (1302).
  • In this case, when the moved object is still being dragged by the mouse 133, the application 121 calculates the distance between the moved object and a nearby object, as in the case where a new object is created, (step S1204). If a plurality of objects are present near the moved object, the application 121 determines the distance between the moved object and each of the nearby objects.
  • In step S1205, the layout editing application 121 compares the distance obtained with the set distance 806. If the distance obtained is equal to or shorter than the set distance, the process advances to step S1206 to display a UI that visually indicates this to the user. FIG. 14 shows an example of a UI that shows the user that the distance to the moved object is equal to or shorter than the set distance (1402). In this example, the link is shown as a dotted line. However, another method may be used to show the link.
  • In step S1207, when the user drops the mouse 133 with the UI1402 displayed, the layout editing application 121 recognizes that the object has been unselected. In step S1208, the layout editing application 121 creates, according to the processing in step S1207, a link between the objects determined to be within the range preset in S1205 as described in FIG. 16. FIG. 19 shows that in the state shown in FIG. 14, the mouse is dropped to change the link UI to an ordinary display 1902 to indicate that the link has been created between the objects. On this occasion, the positional information on the selected object on the memory 136 is updated to the moved position.
  • On the other hand, when the mouse 133 is further moved without being dropped, the layout editing application 121 calculates the distance between the moved object and a nearby object again (that is, the determination in step S1207 is “No” and the process returns to step S1204).
  • 4-5 Link Creating Process (In Case where New Object is Created)
  • FIG. 15 is a flowchart showing the details of a link creating process (step S1104) executed when a new object is created. The process shown in FIG. 15 is executed under the control of the processor 135 in the host computer 101.
  • In step S1501, the layout engine 105 first acquires the positional information on the newly created object. As previously described, in the present application, the distance between objects refers to the distance between the sides of the objects. Accordingly, the “positional information acquired” is positional information on each side of the object in the X and Y directions.
  • In step S1502, the layout editing application 121 checks whether or not any objects different from the above one have been laid out. If any objects different from the above one have been laid out, the layout editing application 121 acquires information on the number and positions of the objects. The object positional information acquired is stored in a sequence.
  • In step S1503, the layout editing application 121 executes a link setting process. When the link setting process is finished and if no other objects have been laid out, the process is finished.
  • 4-6 Link Creating Process (In Case where New Object is Created)
  • FIGS. 16A and 16B are flowcharts showing the detailed flow of the link creating process (step S1503) shown in FIG. 15. The process shown in FIGS. 16A and 16B is executed under the control of the processor 135 in the host computer 101. A link is set by extracting a nearby object and setting a link to this object. If the distance between the objects is equal to or shorter than the set distance, a link is set between the objects. If a plurality of objects are found for which the inter-object distances are equal to or shorter than the set distance, links are set for the plurality of containers for which the inter-object distances are equal to or shorter than the set distance.
  • In step S1601, the layout editing application 121 substitutes Dist_AutoLink for the distance 806 between objects between which a link is to be automatically created. The layout editing application 121 then substitutes 1 into i.
  • In step S1602, the application checks whether or not the position of the object created overlaps the position of the i-th object in the Y direction. It is a precondition for the automatic link function according to the present embodiment that the objects between which a link is to be created are located in the same horizontal or vertical direction. FIG. 18 shows a region for which a link is to be created. A link will be created if a part or the whole of an object is present in a region 1808 or 1811 enclosed by a Y-directional side of an object created 1801 and extensions 1807 of X-directional sides of the object 1801 or a region 1809 or 1810 enclosed by a X-directional side of the object 1801 and extensions 1807 of Y-directional sides of the object 1801. In this case, no link is created between another object and any of the extension 1807 of the X-directional sides of the object 1801 or the extensions 1806 of the Y-directional sides of the object 1801. In FIG. 18, in the X direction, an object 1803 can be linked to the object 1801. In the Y direction, objects 1802 and 1805 can be linked to the object 1801. No link is created for an object 1804.
  • If in step S1602, the position of the object created is determined to overlap the position of the i-th object in the Y direction, the process advances to step S1603 to determine whether or not the positions in the Y direction overlap each other. If the position of the object created is not determined to overlap the position of the i-th object in the X direction, the process advances to step S1614.
  • In step S1614, the application checks whether or not an anchor has been set on one of the X-directional sides of the i-th object which is closer to the object created. If an anchor has been set on this side, the side is fixed, so that no link will be set. If no anchor has been set on this side, the process advances to step S1604 to calculate the distance between X-directional sides of the object created and the i-th object which distance is smaller than that between the other X-directional sides of the object created and the i-th object. The result is substituted into DistX.
  • In step S1605, the layout editing application 121 compares the DistX calculated in step S1604 with Dist_AutoLink in which the set distance at which an automatic link is to be created. If the DistX is smaller than the Dist_AutoLink, that is, the calculated DistX value is determined to be equal to or smaller than the set distance value, the process advances to step S1606 to create an X-directional link between the objects.
  • On the other hand, if the positions are determined to overlap in step S1603, this means that the objects overlap. FIG. 20 shows that an object 2003 has been created at a position where it overlaps an object 2001. In this case, the layout editing application 121 checks in step S1607 whether or not to set a link for the user (details will be described below).
  • After steps S1606 and S1607 are executed or if the application determines in step S1614 that an anchor has been set on a side or in step S1605 that the DistX is larger than the Dist_AutoLink, the process advances to step S1608 to increment i in order to check the next nearby object.
  • Description has been given of the process for creating an ink in the X direction. If the application determines in step S1602 that the positions do not overlap, the process advances to step S1610 in FIG. 16B. The layout editing application 121 executes a check for a link in the Y direction to determine whether or not the objects overlap in the X direction.
  • If the positions are determined to overlap in step S1610, the process advances to step S1615 to check whether or not an anchor has been set one of the Y-directional sides of the i-th object which is closer to the object created. If no anchor has been set on this side, the process advances to step S1611 to calculate the distance between Y-directional sides of the object created and the i-th object which distance is shorter than that between the other Y-directional sides of the object created and the i-th object. The result is substituted into DistY.
  • Moreover, in step S1612, the application compares the compares the DistY calculated in step S1611 with Dist_AutoLink. If the DistY is smaller than the Dist_AutoLink, that is, the calculated DistY value is determined to be equal to or smaller than the set distance value, the process advances to step S1613 to create a Y-directional link between the objects.
  • After step S1613 is executed or if the application does not determine in step S1610 that the positions overlap or determines in step S1615 that an anchor has been set on a side or in step S1612 that the DistY is larger than the Dist_AutoLink, the process advances to step S1608, and the layout editing application 121 increments i in order to check the next nearby object.
  • In step S1609, the application determines whether or not all the arranged objects have been checked. If not all the objects have been checked, the process advances to step S1602 to repeat a reading process. If all the objects have been checked, the link setting process is finished. In this manner, when a new object is created and if the application confirms that another object is present within the predetermined distance set by the user, a link is automatically created. Consequently, an increase in the number of objects does not degrade the efficiency of the user's operations.
  • 4-7 Link Creating Process (In Case where Object is Moved)
  • FIG. 21 is a flowchart showing the details of the link creating process (step S1208) executed when any of the objects is moved. The process shown in FIG. 21 is executed under the control of the processor 135 in the host computer 101.
  • In step S2101, the layout engine 105 acquires the positional information on the selected object. In step S2102, the layout editing application 121 checks whether or not an object is present which is different from the above one. If in step S2102, no other objects are laid out, then in step S2108, the object is moved to finish the process.
  • On the other hand, if the application determines in step S2102 that another object is present, the process advances to step S2103. The application 121 then checks whether or not the selected object has an attribute indicating the avoidance of automatic linking. The attribute indicating the avoidance of automatic linking disables the automatic link function to prevent a link from being created between objects even if the distance between them is equal to or shorter than the set distance 806.
  • FIG. 27 is a diagram showing a dialog window used to set automatic linking for each object. A property dialog window 2701 is displayed by selecting an object and using the mouse to execute a right click or operating a particular key of the keyboard. For the setting for automatic linking, the automatic link function can be disabled by selecting an attribute 2705 indicating the avoidance of automatic linking. If the object has the attribute indicating the avoidance of automatic linking, it can be arbitrarily moved without the need to create any link with another object. If a link with another object has already been set, even if movement of the object results in an increase in the predetermined distance specified by the user, the object can be moved while retaining the link and without the need to create a further link.
  • FIG. 23 shows an example in which an object 2302 is selected for which a link 2304 has already been set. If the object 2304 has the attribute indicating the avoidance of automatic linking, even if movement of the object 2302 in FIG. 23 makes the distance between objects 2402 and 2405 equal to or shorter than the set distance 806 as shown in FIG. 24, no link is created between the objects 2404 and 2405. On the other hand, if the distance between 2402 and 2406 exceeds the set distance 806, the link 2404 remains set.
  • FIG. 21 is referred to again. If the object selected in step S2103 does not have the attribute indicating the avoidance of automatic linking, the process advances to step S2104. The layout editing application 121 acquires the number of other laid-out objects and positional information on them. The object positional information acquired is stored in a sequence.
  • In step S2105, the application determines whether the user has selected the retention or discarding of the already set link as an operation performed when the object is moved. Whether to retain or discard the link may be selected by, for example, moving the object while depressing a particular key on the keyboard 132. However, the present invention is not limited to this method. A different method may be used to select the retention or discarding.
  • If in step S2105, the application determines that the user has selected the retention of the existing link, then it moves the object while retaining the existing link information (steps S2107 and S2108). The layout editing application 121 creates links only for the objects for which links have not been created yet (step S2109). On the other hand, if the application determines in step S2105 that the user has selected the discarding of the existing link, it discards the information on the existing link and then moves the object (steps S2106 and S2108). The application then creates links for all the laid-out objects (step S2109).
  • FIG. 25 shows an example in which when the object 2302 does not have the attribute indicating the avoidance of automatic linking in FIG. 23, the user selects the retention of the existing link and moves an object 2502 so that the distance between objects 2502 and 2505 is equal to or shorter than the set distance 806. Even if the distance between the objects 2502 and 2507 is longer than the set distance 806, a link 2504 remains set.
  • FIG. 26 shows an example in which when the object 2302 does not have the attribute indicating the avoidance of automatic linking in FIG. 23, the user selects the discarding of the existing link and moves an object 2602 so that the distance between objects 2602 and 2605 is equal to or shorter than the set distance 806. Even if the distance between the objects 2602 and 2607 is longer than the set distance 806, the already set link 2404 is canceled and deleted from the screen. As previously described, if the object is moved, a link is created when the mouse is dropped (step S2110).
  • 4-8 Link Setting Process (In Case where Object is Moved)
  • FIGS. 22A and 22B are flowcharts showing the detailed flow of the link setting process (step S2109) in FIG. 21. The processing in FIGS. 22A and 22B is executed under the control of the processor 135 in the host computer 101. The steps are almost similar to those executed in creating a new object. The difference is that in steps S2206 and S2213, a temporary link is created which is required to finally establish a final link in step S210 in FIG. 21. The other steps are the same as those executed in creating a new object, so that their description is omitted. If after movement of the object, the distance between the objects is determined to be at most the predetermined distance, a link is automatically created. This prevents the efficiency of the user's operations from being degraded in the edition of objects.
  • 4-9 Error Process
  • FIG. 17 shows an example of a dialog window 1701 displayed if a created or moved object overlaps another (as shown in FIG. 20). The dialog window is used to ask the user whether or not to create a link. A link is created by selecting a button 1703 used to continue a common process. No link is created when a button 1704 used to suspend the process is selected.
  • As is apparent from the above description, according to the automatic layout system according to the present embodiment, when the distance between adjacent objects is equal to or shorter than a predetermined distance, a link is automatically created. This prevents the burden for link setting from being increased in spite of an increase in the number of objects. It is thus possible to allow the user to efficiently perform a setting operation in the automatic layout system.
  • Other Embodiments
  • The present invention is applicable to a system composed of plural pieces of equipment (for example, a host computer, an interface apparatus, a reader, and a printer) or an apparatus consisting of one piece of equipment (for example, a copier or a facsimile machine).
  • Of course, the object of the present invention is accomplished by supplying a system or apparatus with a storage medium on which program codes for software that realizes the functions of the above embodiments and allowing a computer (or CPU or MPU) in the system or apparatus to read and execute the program codes stored in the storage medium.
  • In this case, the program codes read from the storage medium realize the functions of the above embodiments. The storage medium storing the program codes constitutes the present invention.
  • The storage medium used to supply the program codes may be, for example, a floppy (registered trade mark) disk, a hard disk, an optical disk, a magneto-optic disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, or a ROM.
  • The functions of the above embodiments may be realized as follows instead of using the computer to execute the read program codes. An OS (Operating System) running on the computer executes a part or the whole of the actual process on the basis of instructions from the program codes.
  • The functions of the above embodiments may also be realized as follows. The program codes read from the storage medium are written to a memory provided in an expansion board inserted into the computer or an expansion unit connected to the computer. A CPU or the like provided in the expansion board or unit then executes a part or the whole of the actual process on the basis of instructions from the program codes.
  • The present invention is not limited to the above embodiments and various changes and modifications can be made within the spirit and scope of the present invention. Therefore to apprise the public of the scope of the present invention, the following claims are made.
  • CLAIM OF PRIORITY
  • This application claims priority from Japanese Patent Application No. 2004-231426 filed on Aug. 6, 2004, which is hereby incorporated by reference herein.

Claims (13)

1-33. (canceled)
34. An information processing method for setting a constraint that associates a first data field with a second data field of a plurality of data fields on a template, the method comprising:
a first setting step of setting a setting manner of the constraint, wherein when data is input into the first and second data fields on the template, the constraint associates the first data field with the second data fields so that each size of the first and second data fields is determined on the basis of the data;
a second setting step of setting the constraint between the first and second data fields if a user selects just both of the first and second data fields;
a third setting step of setting the constraint between the first and second data fields even if a user does not select just the first and second data fields; and
a determining step of determining whether to execute said second setting step or said third setting step in accordance with the setting manner set in said first setting step.
35. The information processing method according to claim 34, further comprising a forth setting step of setting a condition for setting the constraint, wherein said third setting step determines whether to set the constraint between the first and second data fields in accordance with the condition set in said forth setting step.
36. The information processing method according to claim 35, wherein said forth setting step sets a distance between two of the plurality of data fields as a condition for setting the constraint, and said third setting step derives a distance between the first and second data fields and determines whether to set the constraint between the first and second data fields on the basis of the derived distance and the condition set in said forth setting step.
37. The information processing method according to claim 34, further comprising a fifth setting step of setting a type of constraint to be set between the first and second data fields.
38. An information processing apparatus having a processor and memory comprising a control unit configured to set a constraint that associates a first data field with a second data field of a plurality of data fields on a template, the apparatus comprising:
a first setting unit configured to set a setting manner of the constraint, wherein when data is input into the first and second data fields on the template, the constraint associates the first data field with the second data fields so that each size of the first and second data fields is determined on the basis of the data;
a second setting unit configured to set the constraint between the first and second data fields if a user selects just both of the first and second data fields;
a third setting unit configured to set the constraint between the first and second data fields even if a user does not just select the first and second data fields; and
a determining unit configured to determine whether to execute said second setting unit or said third setting unit in accordance with the setting manner set by said first setting unit.
39. The information processing apparatus according to claim 38, further comprising a forth setting unit configured to set a condition for setting the constraint, wherein said third setting unit determines whether to set the constraint between the first and second data fields in accordance with the condition set in said forth setting step.
40. The information processing apparatus according to claim 39, wherein said forth setting unit sets a distance between two of the plurality of data fields as a condition for setting the constraint, and said third setting unit derives a distance between the first and second data fields and determines whether to set the constraint between the first and second data fields on the basis of the derived distance and the condition set by said forth setting unit.
41. The information processing apparatus according to claim 38, further comprising a fifth setting unit configured to set a type of constraint to be between the first and second data fields.
42. A program stored in a computer-readable medium for causing a computer provided in an information processing apparatus to execute a method for setting a constraint that associates a first data field with a second data field of a plurality of data fields on a template, the program causing the computer to execute:
a first setting step of setting a setting manner of the constraint, wherein when data is input into the first and second data fields on the template, the constraint associates the first data field with the second data fields so that each size of the first and second data fields is determined on the basis of the data;
a second setting step of setting the constraint between the first and second data fields if a user selects just both of the first and second data fields;
a third setting step of setting the constraint between the first and second data fields even if a user does not just select the first and second data fields; and
a determining step of determining whether to execute said second setting step or said third setting step in accordance with the setting manner set in said first setting step.
43. The program according to claim 42, further causing the computer to execute a forth setting step of setting a condition for setting the constraint, wherein said third setting step determines whether to set the constraint between the first and second data fields in accordance with the condition set in said forth setting step.
44. The program according to claim 43, wherein said forth setting step sets a distance between two of the plurality of data fields as a condition for setting the constraint, and said third setting step derives a distance between the first and second data fields and determines whether to set the constraint between the first and second data fields on the basis of the derived distance and the condition set in said forth setting step.
45. The program according to claim 42, further causing the computer to execute a fifth setting step of setting a type of constraint to be set between the first and second data fields.
US12/034,931 2004-08-06 2008-02-21 Apparatus and method for processing information, and program and storage medium Abandoned US20080155469A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/034,931 US20080155469A1 (en) 2004-08-06 2008-02-21 Apparatus and method for processing information, and program and storage medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004231426A JP4095592B2 (en) 2004-08-06 2004-08-06 Information processing apparatus, information processing method, and program
JP2004-231426 2004-08-06
US11/190,872 US7373593B2 (en) 2004-08-06 2005-07-28 Apparatus and method for automatically setting constraints within a document layout
US12/034,931 US20080155469A1 (en) 2004-08-06 2008-02-21 Apparatus and method for processing information, and program and storage medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/190,872 Division US7373593B2 (en) 2004-08-06 2005-07-28 Apparatus and method for automatically setting constraints within a document layout

Publications (1)

Publication Number Publication Date
US20080155469A1 true US20080155469A1 (en) 2008-06-26

Family

ID=35427481

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/190,872 Active US7373593B2 (en) 2004-08-06 2005-07-28 Apparatus and method for automatically setting constraints within a document layout
US12/034,931 Abandoned US20080155469A1 (en) 2004-08-06 2008-02-21 Apparatus and method for processing information, and program and storage medium

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/190,872 Active US7373593B2 (en) 2004-08-06 2005-07-28 Apparatus and method for automatically setting constraints within a document layout

Country Status (5)

Country Link
US (2) US7373593B2 (en)
EP (1) EP1624381A3 (en)
JP (1) JP4095592B2 (en)
KR (1) KR100756803B1 (en)
CN (1) CN100421103C (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037133A1 (en) * 2008-08-07 2010-02-11 Fuji Xerox Co., Ltd. Document processing device, document processing method, and computer readable medium
US20100079798A1 (en) * 2008-10-01 2010-04-01 Canon Kabushiki Kaisha Image processing apparatus, image processing method, program therefor, and medium storing program
USD778286S1 (en) * 2012-06-20 2017-02-07 Microsoft Corporation Display screen with graphical user interface

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4095592B2 (en) * 2004-08-06 2008-06-04 キヤノン株式会社 Information processing apparatus, information processing method, and program
JP4250577B2 (en) * 2004-08-31 2009-04-08 キヤノン株式会社 Information processing apparatus, information processing method, and program
US9141402B2 (en) 2005-04-25 2015-09-22 Aol Inc. Providing a user interface
US7739611B2 (en) * 2005-04-25 2010-06-15 Aol Inc. User interface with connectable elements
US7676744B2 (en) * 2005-08-19 2010-03-09 Vistaprint Technologies Limited Automated markup language layout
US7584424B2 (en) * 2005-08-19 2009-09-01 Vista Print Technologies Limited Automated product layout
JP4321549B2 (en) * 2005-09-28 2009-08-26 セイコーエプソン株式会社 Document creation system, document creation method, program, and storage medium
JP4869093B2 (en) * 2007-02-02 2012-02-01 キヤノン株式会社 Information processing apparatus and control method thereof
AU2007201627B2 (en) * 2007-04-13 2010-11-25 Canon Kabushiki Kaisha Gluing layout containers
US8694518B2 (en) 2007-06-14 2014-04-08 Colorquick, L.L.C. Method and apparatus for database mapping
JP2009169646A (en) * 2008-01-16 2009-07-30 Kyocera Mita Corp Device setting system and device setting program
US20090254809A1 (en) * 2008-04-02 2009-10-08 Colorquick, L.L.C. Objects having usage rules that exist outside of the environment in which the object is used
JP5043769B2 (en) * 2008-07-11 2012-10-10 キヤノン株式会社 Document layout editing apparatus, document layout editing method, and computer program
US20100218090A1 (en) * 2009-02-26 2010-08-26 Universal - Ad Ltd. Sub-page-based page layout system and method thereof
JP5371560B2 (en) * 2009-06-09 2013-12-18 キヤノン株式会社 Layout editing apparatus, layout editing method and program
US20120269434A1 (en) * 2009-10-29 2012-10-25 Clayton Brian Atkins Graphic Object Layout Templates for Arranging Images
US20110179350A1 (en) * 2010-01-15 2011-07-21 Apple Inc. Automatically placing an anchor for an object in a document
US9135223B2 (en) * 2010-01-15 2015-09-15 Apple Inc. Automatically configuring white space around an object in a document
KR101226598B1 (en) * 2012-03-15 2013-01-28 유택상 System and method for building information structure and searching information from information structure for systematic management of information
US8938679B1 (en) * 2013-11-18 2015-01-20 Axure Software Solutions, Inc. Comment system for interactive graphical designs
JP6464862B2 (en) * 2015-03-24 2019-02-06 富士通株式会社 Display program, display method, and display device
KR102392716B1 (en) * 2019-10-23 2022-04-29 구글 엘엘씨 Customize content animation based on viewpoint position

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432897A (en) * 1992-04-30 1995-07-11 Nippon Steel Corporation Method and an apparatus for editing tree structures in display
US5437008A (en) * 1992-06-23 1995-07-25 Adobe Systems Incorporated Method of establishing constraints and links in a distribution frame between graphical elements and resolving the constaints
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
US5845303A (en) * 1994-12-06 1998-12-01 Netpodium, Inc. Document processing using frame-based templates with hierarchical tagging
US5987480A (en) * 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US6052486A (en) * 1997-03-10 2000-04-18 Quickbut, Inc. Protection mechanism for visual link objects
US20020032546A1 (en) * 2000-09-13 2002-03-14 Matsushita Electric Works, Ltd. Method for aiding space design using network, system therefor, and server computer of the system
US20020049702A1 (en) * 2000-02-03 2002-04-25 Jacob Aizikowitz System and method for creating customized documents for cross media publishing
US20030229845A1 (en) * 2002-05-30 2003-12-11 David Salesin System and method for adaptive document layout via manifold content
US6717587B2 (en) * 1998-06-01 2004-04-06 Autodesk, Inc. Positioning and alignment aids for shape objects having authorable behaviors and appearances
US6862598B2 (en) * 2001-03-26 2005-03-01 Fujitsu Limited Link tree forming apparatus, link tree forming method, and link tree forming program
US20050055635A1 (en) * 2003-07-17 2005-03-10 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout
US6883167B1 (en) * 1999-08-04 2005-04-19 Texas Instruments Incorporated Method and system for visual linker
US20050094207A1 (en) * 2003-10-15 2005-05-05 Canon Kabushiki Kaisha User interface for creation and editing of variable data documents
US20050132283A1 (en) * 2003-12-16 2005-06-16 Shridhar Diwan Method of, and system for, adjusting a document configuration
US20050172225A1 (en) * 2004-01-30 2005-08-04 Canon Kabushiki Kaisha Document processing apparatus, document processing method, and document processing program
US20050172226A1 (en) * 2004-01-30 2005-08-04 Canon Kabushiki Kaisha Layout control method, layout control apparatus, and layout control program
US20050179947A1 (en) * 2004-01-30 2005-08-18 Canon Kabushiki Kaisha Document processing apparatus, document processing method, and document processing program
US20060031773A1 (en) * 2004-08-06 2006-02-09 Canon Kabushiki Kaisha Apparatus and method for processing information, and program and storage medium
US7046246B2 (en) * 1999-03-29 2006-05-16 Fujitsu Limited Graphic editing apparatus graphic editing method and storage medium on which is recorded a program for graphic editing
US20060117294A1 (en) * 2002-08-29 2006-06-01 Crossmarx B.V. System and method for executing and building a software application
US7093196B1 (en) * 2000-06-10 2006-08-15 Oracle International Corporation Method and apparatus for aligning items relatively within an electronic document
US7257253B2 (en) * 2002-06-28 2007-08-14 Fujitsu Limited Apparatus and method of analyzing layout of document, and computer product
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
US7743325B2 (en) * 2005-03-15 2010-06-22 Microsoft Corporation Method and computer-readable medium for fitting text to shapes within a graphic

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060170A (en) * 1989-08-09 1991-10-22 International Business Machines Corp. Space allocation and positioning method for screen display regions in a variable windowing system
JPH0628442A (en) * 1992-07-06 1994-02-04 Fujitsu Ltd Graphic processor
JPH0652243A (en) * 1992-07-30 1994-02-25 Toshiba Corp Drawing input processor
JPH06282617A (en) * 1993-03-25 1994-10-07 Nec Home Electron Ltd Graphic preparing device
JPH07129658A (en) 1993-11-02 1995-05-19 Toppan Printing Co Ltd Layout design device
KR100243385B1 (en) 1997-10-28 2000-02-01 정선종 Multimedia presentation working method
JP3396414B2 (en) * 1997-12-15 2003-04-14 株式会社日立製作所 Proximity part search method and search device
WO2001071549A1 (en) 2000-03-17 2001-09-27 Fujitsu Limited Computer-readable recorded medium on which document creating program is recorded, document creating system, and document creating method
KR100403714B1 (en) 2000-06-10 2003-11-01 씨씨알 주식회사 System and method for facilitating internet search by providing web document layout image and web site structure

Patent Citations (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432897A (en) * 1992-04-30 1995-07-11 Nippon Steel Corporation Method and an apparatus for editing tree structures in display
US5437008A (en) * 1992-06-23 1995-07-25 Adobe Systems Incorporated Method of establishing constraints and links in a distribution frame between graphical elements and resolving the constaints
US5577189A (en) * 1992-06-23 1996-11-19 Adobe Systems Incorporated Method of establishing constraints between graphical elements
US5745122A (en) * 1992-06-23 1998-04-28 Adobe Systems Incorporated Method of establishing constraints between master and slave graphical elements
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
US5845303A (en) * 1994-12-06 1998-12-01 Netpodium, Inc. Document processing using frame-based templates with hierarchical tagging
US5987480A (en) * 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US6057842A (en) * 1997-03-10 2000-05-02 Quickbuy, Inc. Display layout generator for graphical representations
US6052486A (en) * 1997-03-10 2000-04-18 Quickbut, Inc. Protection mechanism for visual link objects
US6717587B2 (en) * 1998-06-01 2004-04-06 Autodesk, Inc. Positioning and alignment aids for shape objects having authorable behaviors and appearances
US7046246B2 (en) * 1999-03-29 2006-05-16 Fujitsu Limited Graphic editing apparatus graphic editing method and storage medium on which is recorded a program for graphic editing
US6883167B1 (en) * 1999-08-04 2005-04-19 Texas Instruments Incorporated Method and system for visual linker
US20020049702A1 (en) * 2000-02-03 2002-04-25 Jacob Aizikowitz System and method for creating customized documents for cross media publishing
US7093196B1 (en) * 2000-06-10 2006-08-15 Oracle International Corporation Method and apparatus for aligning items relatively within an electronic document
US20020032546A1 (en) * 2000-09-13 2002-03-14 Matsushita Electric Works, Ltd. Method for aiding space design using network, system therefor, and server computer of the system
US6862598B2 (en) * 2001-03-26 2005-03-01 Fujitsu Limited Link tree forming apparatus, link tree forming method, and link tree forming program
US20030229845A1 (en) * 2002-05-30 2003-12-11 David Salesin System and method for adaptive document layout via manifold content
US7257253B2 (en) * 2002-06-28 2007-08-14 Fujitsu Limited Apparatus and method of analyzing layout of document, and computer product
US20060117294A1 (en) * 2002-08-29 2006-06-01 Crossmarx B.V. System and method for executing and building a software application
US20050055635A1 (en) * 2003-07-17 2005-03-10 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout
US20050094207A1 (en) * 2003-10-15 2005-05-05 Canon Kabushiki Kaisha User interface for creation and editing of variable data documents
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
US20050132283A1 (en) * 2003-12-16 2005-06-16 Shridhar Diwan Method of, and system for, adjusting a document configuration
US20050179947A1 (en) * 2004-01-30 2005-08-18 Canon Kabushiki Kaisha Document processing apparatus, document processing method, and document processing program
US20050172226A1 (en) * 2004-01-30 2005-08-04 Canon Kabushiki Kaisha Layout control method, layout control apparatus, and layout control program
US20050172225A1 (en) * 2004-01-30 2005-08-04 Canon Kabushiki Kaisha Document processing apparatus, document processing method, and document processing program
US20060031773A1 (en) * 2004-08-06 2006-02-09 Canon Kabushiki Kaisha Apparatus and method for processing information, and program and storage medium
US7743325B2 (en) * 2005-03-15 2010-06-22 Microsoft Corporation Method and computer-readable medium for fitting text to shapes within a graphic

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037133A1 (en) * 2008-08-07 2010-02-11 Fuji Xerox Co., Ltd. Document processing device, document processing method, and computer readable medium
US20100079798A1 (en) * 2008-10-01 2010-04-01 Canon Kabushiki Kaisha Image processing apparatus, image processing method, program therefor, and medium storing program
US8553272B2 (en) * 2008-10-01 2013-10-08 Canon Kabushiki Kaisha Image processing apparatus, image processing method, program therefor, and medium storing program
USD778286S1 (en) * 2012-06-20 2017-02-07 Microsoft Corporation Display screen with graphical user interface

Also Published As

Publication number Publication date
KR100756803B1 (en) 2007-09-07
JP4095592B2 (en) 2008-06-04
US20060031773A1 (en) 2006-02-09
KR20060050256A (en) 2006-05-19
JP2006048531A (en) 2006-02-16
CN1731390A (en) 2006-02-08
CN100421103C (en) 2008-09-24
EP1624381A3 (en) 2008-01-16
US7373593B2 (en) 2008-05-13
EP1624381A2 (en) 2006-02-08

Similar Documents

Publication Publication Date Title
US7373593B2 (en) Apparatus and method for automatically setting constraints within a document layout
US7757167B2 (en) Document layout processing using templates
US7555710B2 (en) Method, apparatus and program for determining layout of a page using links between partial areas in the page
KR100821449B1 (en) Layout adjustment method and apparatus
US7805672B2 (en) Layout processing method, layout processing apparatus, and layout processing program that changes the priority of an area for automatic layout
JP4144883B2 (en) Information processing apparatus, control method therefor, and program
US7761791B2 (en) Layout processing using a template having data areas and contents data to be inserted into each data area
US7900139B2 (en) Layout control apparatus, layout control method, and layout control program
JP4510653B2 (en) Layout determining method, apparatus and program
US7707494B2 (en) Information processing apparatus, control method therefor, and program
US7712026B2 (en) Document processing apparatus, method and program for layout of data contents assigned to regions on a template
JP4095558B2 (en) Document processing apparatus, document processing method, and computer program
US7831909B2 (en) Information processing apparatus, control method therefor, and program with display based on change amount of field areas
US7596746B2 (en) Information processing method and apparatus, and computer-readable program
US20050168782A1 (en) Layout adjustment method and apparatus and layout adjustment program
JP4298642B2 (en) Layout processing method, layout processing apparatus, and layout processing program
JP4912139B2 (en) Information processing device
US20060203294A1 (en) Layout processing method, information processing apparatus, and computer program
US7847971B2 (en) Layout processing method, information processing apparatus, and computer program
JP2007011574A (en) Method and apparatus for generating template, and program

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION