Document layout method
First Claim
1. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
- setting a link between at least two objects for defining cooperative movement thereof, wherein said setting step comprises detecting an operation to modify a position of at least one edge of at least one said object;
allotting variable input data to each object; and
performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, wherein said performing step comprises;
(i) identifying rules of association, distinct from said links between edges of said objects having a corresponding orientation to said one edge;
(ii) modifying a position of at least said edge while observing said rules of association between all of said correspondingly oriented edges; and
(iii) minimizing an objective function derived from the rules of association between the correspondingly oriented edges to thereby balance a layout of the objects in at least the dimension of modification,wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data is input, pushes against the set link.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for variable document printing are disclosed in which a graphical user interface is configured to allow user manipulation of layout rules associated with content containers within a template for variable document generation. One method involves laying out (626) container objects (407, 408) forming part of a template (624) intended for a variable data document. The objects each have a rectangular boundary in two-dimensional space, and the method comprises detecting an operation (628, 2800) to modify a position of at least one edge of at least one of the objects. Then, rules of association between edges of the objects having a corresponding orientation to the one edge are identified. A position of at least the one edge is then modified whilst observing the rules of association between all the correspondingly oriented edges. Finally an objective function derived from the rules of association between the correspondingly oriented edges is minimized (3009) to thereby balance a layout of the objects in at least the dimension of modification. Other methods involve maintaining the objective function for a group of edges, the addition and removal of constraints in respect of correspondingly oriented edges, the removal, addition and then removal of constraints in modifying the width of a container, the calculation of text container sizes, and the creation of tables, particularly for text containers.
57 Citations
34 Claims
-
1. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
-
setting a link between at least two objects for defining cooperative movement thereof, wherein said setting step comprises detecting an operation to modify a position of at least one edge of at least one said object; allotting variable input data to each object; and performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, wherein said performing step comprises; (i) identifying rules of association, distinct from said links between edges of said objects having a corresponding orientation to said one edge; (ii) modifying a position of at least said edge while observing said rules of association between all of said correspondingly oriented edges; and (iii) minimizing an objective function derived from the rules of association between the correspondingly oriented edges to thereby balance a layout of the objects in at least the dimension of modification, wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data is input, pushes against the set link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
-
setting a link between at least two objects for defining cooperative movement thereof; allotting variable input data to each object; and performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, comprising; (a) identifying a group of edges that can be moved to reduce an objective function associated with a set of rules defining relationships between said edges; (b) moving the edges within said group by a distance so as not to infringe said set of rules; and (c) repeating steps (a) and (b) for a further group of said edges until step (a) fails to identify a suitable group of said edges, wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data is input, pushes against the set link. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
-
setting a link between at least two objects for defining cooperative movement thereof, said setting comprising; (a) selecting an edge of an object of said layout to move and unfixing a position of said edge; and (b) adding constraints to said selected edge and correspondingly oriented edges of objects in said layout; and allotting variable input data to each object; and performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, said performing step comprising; (c) modifying the position of said selected edge; (d) fixing the modified position of said selected edge; (e) removing said constraints from said selected edges and said correspondingly oriented edges; and (f) recalculating said layout, wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data is input, pushes against the set link. - View Dependent Claims (24, 25)
-
-
26. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
-
setting a link between at least two objects for defining cooperative movement thereof; allotting variable input data to each object; and performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, (a) determining a difference between a current width of said object and a desired width of said object; (b) removing constraints on the width of said object whilst adding constraints according to a relationship between said object and other objects in said layout influenced by the width of said object; (c) modifying one of the right or left edge of said object whilst respecting said added constraints; (d) determining from said difference and a present width of said object a remaining change required; (e) modifying the other of the right or left edge of said object whilst respecting said added constraints; (f) fixing the modified width of the object; (g) removing said added constraints; and (h) recalculating said layout wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data in input, pushes against the set link. - View Dependent Claims (27)
-
-
28. A method of laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said method comprising the steps of:
-
setting a link between at least two objects for defining cooperative movement thereof; allotting variable input data to each object; and performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, wherein said performing step comprises; (a) identifying text content to be placed in at least one object of said layout; (b) manipulating said text content to calculate a set of fixed sizes for said object to accommodate said text content; and (c) subject to rules of association between objects of said layout and modifications to said layout, selecting one of said fixed sizes from said set for said object in said layout, wherein, in said dynamic layout step, the size and position of each object is determined by the effect that each object, to which variable data is input, pushes against the set link. - View Dependent Claims (29, 30, 31, 32)
-
-
33. A computer readable medium having a computer program recorded thereon and adapted to make a computer execute a procedure to lay out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said program comprising:
-
code for setting a link between at least two objects for defining cooperative movement thereof, wherein said setting of a link comprises detecting an operation to modify a position of at least one edge of at least one said object; code for allotting variable input data to each object; and code for performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, wherein said performing of a dynamic layout comprises; (i) identifying rules of association, distinct from said links between edges of said objects having a corresponding orientation to said one edge; (ii) modifying a position of at least said edge while observing said rules of association between all said correspondingly oriented edges; and (iii) minimizing an objective function derived from the rules of association between the correspondingly oriented edges to thereby balance a layout of the objects in at least the dimension of modification, wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that each object, to which variable data is input, pushes each against the set link.
-
-
34. Computer apparatus for laying out objects forming part of a template intended for a variable data document, said objects each having a rectangular boundary in two-dimensional space, said apparatus comprising:
-
means for setting a link between at least two objects for defining cooperative movement thereof, by detecting an operation to modify a position of at least one edge of at least one said object; means for allotting variable input data to each object; and means for performing a dynamic layout for determining a size and a position of each object allotted in said allotting step based on the link setting set in said setting step, wherein said performing means operates by; (i) identifying rules of association, distinct from said links between edges of said objects having a corresponding orientation to said one edge; (ii) modifying a position of at least said edge while observing said rules of association between all said correspondingly oriented edges; and (iii) minimizing an objective function derived from the rules of association between the correspondingly oriented edges to thereby balance a layout of the objects in at least the dimension of modification, wherein, in said dynamic layout step, the size and the position of each object is determined by the effect that the each object, to which variable data is input, pushes each against the set link.
-
Specification