AU2005202911A1 - Construction of variable data documents using generalised graphics streams - Google Patents

Construction of variable data documents using generalised graphics streams Download PDF

Info

Publication number
AU2005202911A1
AU2005202911A1 AU2005202911A AU2005202911A AU2005202911A1 AU 2005202911 A1 AU2005202911 A1 AU 2005202911A1 AU 2005202911 A AU2005202911 A AU 2005202911A AU 2005202911 A AU2005202911 A AU 2005202911A AU 2005202911 A1 AU2005202911 A1 AU 2005202911A1
Authority
AU
Australia
Prior art keywords
document
graphics
objects
data
template
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
AU2005202911A
Inventor
Michael Warwick Chipman
James Robert Metcalfe
David Christopher Smith
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
Priority claimed from AU2004905353A external-priority patent/AU2004905353A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU2005202911A priority Critical patent/AU2005202911A1/en
Publication of AU2005202911A1 publication Critical patent/AU2005202911A1/en
Abandoned legal-status Critical Current

Links

Description

S&FRef: 717722
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address of Applicant: Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3-chome, Ohta-ku, Tokyo, 146, Japan Michael Warwick Chipman, David Christopher Smith, James Robert Metcalfe Spruson Ferguson St Martins Tower Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) Construction of variable data documents using generalised graphics streams Associated Provisional Application Details: [33] Country:
AU
[31] Appl'n No(s): 2004905353 [32] Application Date: 16 Sep 2004 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5845c CONSTRUCTION OF VARIABLE DATA DOCUMENTS USING GENERALISED GRAPHICS STREAMS Field of Invention The present invention relates to variable data documents and, in particular, to the creation, editing and printing of variable data documents.
Background Variable data printing (VDP) refers to the generation of a set of customized documents for printing where each document of the set comprises static data and variable data. Static data is common to all documents in the customized document set, while variable data varies between documents. Variable data printing is also known as variable information printing or dynamic document printing.
VDP applications typically generate customized documents from a single variable data document (VDD). VDDs commonly comprise a graphics template and a logic or data component which binds variable dat:a to regions of the graphics template. Graphics templates contain the static images and text used in the production of customized documents, and 'placeholders' for the insertion of this variable data. The variable data, in turn, is typically extracted from one or more data tables defined in the data component of the VDD. Where more than one data table is defined, one table is designated as the primary, or master, data table. Customized documents are normally generated for one or more master data records.
Graphics templates for variable data documents are typically authored with specialpurpose VDP applications, or else in graphics or word-processing applications with variable data functionality. This restricts the template designer to using particular authoring tools for creation of such graphics templates. In some VDP applications, graphics templates can be built from Portable Document Format (PDF) or Encapsulated Postscript (EPS) files, but these templates are usually static entities. That is, elements of these graphics templates cannot be modified for different instances of customized documents produced from the template. In such cases, the template is effectively a 'background', with variable data painted over the background, or in areas of whitespace.
Thus, users are normally restricted to the features provided by particular authoring tools to produce variable data documents. The superior graphics and presentation features of newer, non VDP-capable applications can often not be effectively utilised in variable data documents. Also, users of VDP applications need to gain familiarity with the layout 717722 -2and editing methods peculiar to these different applications. Because VDP applications are generally not used for the production of non-VDP output, users often need to be expert in the use of more than one authoring layout program.
Additional issues arise when generating new versions of variable data documents.
For a start, new graphics templates are generally required to be produced with the original authoring tool. Also, the process of producing revised VDDs is relatively timeconsuming. Some VDP applications do permit 'template sharing', where a new graphics template can replace an existing template in a variable data document. In this way, variable data elements assigned to objects from the existing template can be associated with objects in the new template. Usually, however, this requires that objects common to the two templates have identical names,; assigned by the user.
Summary It is an object of the present invention to substantially overcome or at least ameliorate one or more deficiencies of prior arrangements. Resolution of this object desirably results in users who can use non-VDP authoring application skills to conveniently generate VDP documents with having specific skill with a VDP authoring application.
In accordance with one aspect of the present invention, there is disclosed a method of producing customized documents, said method comprising the steps of: generating a graphics template from a source electronic document, said source electronic document comprising a plurality of identifiable graphical objects and being authored in a software application; constructing a variable data document from said graphics template by designating at least one of said graphical objects of said graphics template as a variable output object; and associating at least one component of a data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document.
In accordance with another aspect of the present invention there is disclosed a method of producing customized documents, said method comprising the steps of: generating a graphics template from a previously created customized document, said previously created customized document having a plurality of identifiable graphical objects; 717722
I
associating said graphics template with an existing variable data document, said graphics template having template objects mapped to variable output objects of said variable data document; using a graphics stream description of at least two previously created customized documents to generate source data expressions of partially specified variable output objects; selecting a plurality of data records such that said source data expressions are simplified and variable output objects made constant; and associating at least one component in each said data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document; and printing said customized documents.
Other aspects of the invention are also disclosed.
Brief Description of the Drawings One or more embodiments of the present invention will now be described with reference to the drawings, in which: Fig. 1 shows a prior art approach for populating documents defined by a target template from documents generated by a source template; Fig. 2 is a functional diagram of the main components of a variable data printing system according to the present disclos;ure;.
Fig. 3 shows the multiplicity of document types and the sources of variable data in the system of Fig. 2; Fig. 4 is a flow diagram of a method of generating customized documents according to the present disclosure; Fig. 5 is a flow diagram of a method of editing a source document for creation of a graphics template; Fig. 6 is a flow diagram showing a method of defining variable output objects; Fig. 7 is a flow diagram showing a method of laying out variable data in a variable data container; Fig. 8 depicts the hierarchy of document types according to the present disclosure and the means of creating each type; Fig. 9 depicts constructing a new variable data document from a set of customized documents produced from an existing variable data document; 717722
I
Fig. 10 shows the method of associating a second template with an existing variable data document; Fig. 11 is a schematic block diagram representation of a computer system upon which the present disclosure may be performed; and Figs. 12A and 12B illustrate the operation of reference markers.
Detailed Description including Best Mode Fig. 1 shows a prior art approach to forming a target document 101 from a target template 102 and a source template :103. The source template 103 is used to create a number of source documents 104 each of which may include source variables 105 and 106. Those variables may, for example, be the name and address, and a photograph, of a person respectively. Each source document 104 represents a source input 107 to a compiler 108 which interprets the variable content therein to form a modified input 109 to the target template 102 in which the source variables 105 and 106 are arranged (ie. presented) as target variables 110 and 111 respectively.
The approach of Fig. 1 is characterised by the establishment of the templates 102 and 103 and the bounds by which variable data may fit within those templates.
Significantly, the source template 103 is typically matched to a corresponding one or a group of like-formed target templates 102, thereby providing increased certainty that all variable data from every source will be property reproduced in the corresponding target document.
The method of data driven variable document printing disclosed herein are preferably practiced using a general-purpose computer system 1100, such as that shown in Fig. 11 wherein the processes of Figs. 2 to 10 may be implemented as software, such as an application program executing within the computer system 1100. In particular, the steps of variable document printing are effected by instructions in the software that are carried out by the computer. The instructions may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part performs the variable document printing methods and a second part manages a user interface between the first part and the user. The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of 717722
I
the computer program product in the computer preferably effects an advantageous apparatus for data driven variable document printing.
The computer system 1100 is formed by a computer module 1101, input devices such as a keyboard 1102 and mouse 1103, output devices including a printer 1115, a display device 11l4 and loudspeakers 11l7. A Modulator-Demodulator (Modem) transceiver device 1116 is used by the computer module 1101 for communicating to and from a communications network 1120, for example connectable via a telephone line 1121 or other functional medium. The modem 1116 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN), and may be incorporated into the computer module 1101 in some implementations.
The computer module 1101 typically includes at least one processor unit 1105, and a memory unit 1106, for example formed from semiconductor random access memory (RAM) and read only memory (ROM). The module 1101 also includes an number of input/output (11O) interfaces including an audio-video interface 1107 that couples to the video display 1114 and loudspeakers 1117, an I/0 interface 1113 for the keyboard 1102 and mouse 1103 and optionally a joys;tick (not illustrated), and an interface 1108 for the modem 1116 and printer 1115. In some implementations, the modem 1116 may be incorporated within the computer module 1101, for example within the interface 1108. A storage device 1109 is provided and typically includes a hard disk drive 1110 and a floppy disk drive 1111. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 1112 is typically provided as a non-volatile source of data. The components 1105 to 1113 of the computer module 1101, typically communicate via an interconnected bus 1104 and in a manner which results in a conventional mode of operation of the computer system 1100 known to those in the relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
Typically, the application program is resident on the hard disk drive 1110 and read and controlled in its execution by the processor 1105. Intermediate storage of the program and any data fetched from the network 1120 may be accomplished using the semiconductor memory 1106, possibly in concert with the hard disk drive 1110. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 1112 or 1111, or alternatively may be 717722 -6read by the user from the network 1120 via the modem device 1116. Still further, the software can also be loaded into the computer system 1100 from other computer readable media. The term "computer readable medium" as used herein refers to any storage or transmission medium that participates in providing instructions and/or data to the computer system 1100 for execution and/or processing. Examples of storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 1101.
Examples of transmission media include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
Presently disclosed is a variable data printing system that creates customized documents from 'source' documents authored in general-purpose software applications, including word-processors, presentation programs, and graphics tools of different kinds.
These source documents are typically static documents, and thus are not normally used in variable data printing.
Conversion of source documents to customized documents is achieved by two software components. The first of these is a 'graphics interception' component which translates source documents to intermediate graphics templates. The second component, a VDP user application, transforms graphics templates to variable data documents. This second component also outputs resultant customized documents.
Fig. 2 depicts the software components of a variable data printing system 200, which include a VDP application 201 and a printer driver 202, the latter being an embodiment of the graphics interception component mentioned above. As indicated, the function of the printer driver 202 is t:o translate print graphics commands of the source electronic document 203 to an encoded graphics stream description 213 which may be saved in memory 1106, 1110 as a graphics template 204. This occurs when source document 203 is 'printed' 206 to the printer driver 202. As already noted, the source document 203 may be a word-processing document, an image file, a spreadsheet, or any of a large number of other file types. Once created by printer driver 202, the graphics template 204 can then be opened 205 by VDP software application 201.
717722 -7- As mentioned, the function of application component 201 is to transform the graphics template 204 to a variable data document 207, and to output resultant customized documents 208. By reading the contents of the graphics template 204, application 201 can display an image of the source documrnent 203 to an output device, typically an LCD or CRT display screen 1114 attached to the computer system 1100 running the application201. In this way, and by means of a suitable input device, such as the keyboard 1102 or mouse 1103, a user is then able to designate template objects as variable output objects. This process creates a variable data document 207.
The VDD 207 can then be saved 209 by application 201 and subsequently opened 210 by the application 201. When satisfied with the design or arrangement of the VDD 207, the user can print customized documents 208 from the application 201 via a print process 211. Finally, any one of these customized documents can be printed 212 to the printer driver 202, giving a new template document 204. This final process is also illustrated in Fig. 8.
In a preferred implementation, the software application 201 and the printer driver 202 read and write Device Driver Interface (DDI) descriptions of source documents produced in applications operating under a Microsoft WindowsTM software environment (Mircrosoft Corp. of In such an implementation the DDI description of a source document is the graphics template 204 from which variable data document 207 is constructed. In this instance, templates are generated by a special purpose WindowsTM printer driver 202. A user prints to this driver by selecting the appropriate device from a list of installed printers in the computer system 1100. The WindowsTM Graphics Engine, forming part of the WindowsTM operating system, then calls the DDI functions implemented by the printer driver 202.
When invoked, the printer driver 202 records the called DDI function type, together with all associated function parameters, and any other data required to perform the appropriate graphics function. This usually involves recording details of data structures returned from various WindowsTM Graphics Device Interface (GDI) service functions. In this way, the printer driver 202 constructs a complete description of the document to be printed. Suitably encoded, this data then becomes the template 204. A fragment of such a template, in text format, is given below: 717722 -8- DrvFil iPath
PATH
bounds 23a0, 17730, 7521, 183b1 fi 0 cCurves pathdata 00: flags f: count 0 00007520, 000183b0 (1874, 6203) 1 00007520, 00017730 (1874, 6003) 2 000023a0, 00017730 (570, 6003) 3 000023a0, 000183b0 (570, 6203) 4 00007520, 000183b0 (1874, 6203) path-end
CLIP
iUniqrclBounds iDComplexity= iFComplexity- 5e960d6 570, 6003, 1875, 6204 0 (DCTIRIVIAL 0 (0 iMode 0 (TCRECTANGLE fjOptions 0 clip-end BRUSH fill iSolidColor 00000000 pvRbrush <null> flColorType,= 2 (BRHOST_1CM brush-end POINTL 0, 0 (brush) mix Odod FILLMODE 2 (winding) S In this example, the recorded I)DI function is the DrvFillPath function. Relevant data recorded here includes the path, brush and clipping region for a simple filled rectangle.
717722 -9- Fig. 3 shows the multiplicity of documents templates, variable data documents and customized documents and the source(s) of variable data in the system 200.
Graphics templates 301 and 302 are generated from an arbitrary first application, App A, 303. Similarly, graphics templates 304 and 305 are generated from an arbitrary second application App B, 306. Any number of different graphics templates can be generated by any number of distinct print-capable applications, as indicated generally by the dashed lines at the left of Fig. 3.
Once generated, the graphics templates ,301, 302, 304 and 305 can be opened by the application 201 via the process 205. The loaded graphics template, being template 301 in this case, becomes a variable data document 307 after graphics objects have been designated as a variable output objects (VOOs), described in detail below. This process is represented by the line 308 and is also illustrated in Fig. 6. Sources of variable data for these objects include databases, such as a database 309, or image repositories, or other data sources.
For the variable data document 307, four variable output objects (VOO) have been defined. These are indicated by its four small rectangles, of which VOO 310 is one. In the context of the present disclosure, VOOs are graphics objects for which colour, or path stroke width, or other graphics properties, can vary according to the value of variable data.
For instance, the colour of a simple polygon VOO might change from red to blue based on the value of a certain variable data field.
The system 200 does not limit the graphics properties settable in this way. For example, an implementation of the VDP application 201 might allow individual pixels to be set in this manner. Also, actual printing of variable output objects may be inhibited according to the setting of a 'print on/off property. By setting a 'fill' property for a graphics object with a closed path, VOOs can be made to behave as fixed-sized clipping masks for variable images, text and graphical data. Graphics objects with this property set are also referred to here as variable data containers. In a preferred implementation, variable data containers can be built fiom compound GDI paths, or bounding boxes for text blocks, or other GDI objects.
With the VDD 307 open within the software application 201, customized documents are produced by the variable data printing process 211, whereby variable data is inserted into the VDD and the resulting document set printed. These customized documents (311, 312, 313) can themselves be printed by the DDI print driver 202 717722 described previously. In this way, additional graphics templates can be generated from a single stock template. This process is shown in Fig. 8.
A flowchart showing an overall method 400 of producing customized documents is given in Fig. 4. Here, the flow of control begins at an entry step 401 and proceeds to step 402 where a user is prompted to decide if a new graphics template is to be created. If so, the user executes the authoring application of choice (eg: a word processing application), loads or creates a source document, and then edits the source document in step 403. Upon detection of a user print command at step 404, the source document is processed by printer driver 202. The resultant graphics template is saved with a name given by the user at step 405.
To generate a VDD from art existing graphics template, a user proceeds from step 402 to step 406 and on to step 407, where the graphics template saved at step 405 is then loaded by the application 201. The process of loading a graphics template involves reading the descriptions of template graphics objects and displaying these objects using an output device, such as the display 111[4. Definition of VOOs then occurs at step 408 and is shown in greater detail in Fig. 6. The variable data document 207 thus created can be saved by the VDP application 201 at step 409. In this way, the user can reedit and print the document at a later time.
The format of the saved variable data document, is not limited to any particular representation. Preferably, a saved VDD comprises two files its parent graphics template 204, and a separate file with a format described below. In another implementation, a VDD may combine the contents of these two files.
To print a variable data document, the user proceeds to step 410 and then loads, at step 411, the variable document saved at step 409. The user then initiates a print request 412, producing the customized documents 208.
If the user at step 410 chooses not to print the VDD, the method 400 ends at step 413.
Fig. 5 shows a method 500 of editing a source document for creation of a graphics template. As such, Fig. 5 expands step 403 from Fig. 4. Here, the flow of control begins with step 501 when the user executes their print-capable application of choice (303, 306, A source document 203 is then created or loaded at step 502, whereupon control proceeds to step 503. If the user decides to edit the contents of document 203, control passes to step 504. If not, the method 500 ends at step 508.
717722 -11- In a preferred implementation, source documents may contain two types of graphics objects. The first type includes graphics, images or text intended to be output in customized documents 208. These are termed 'standard' objects. Such objects can be static objects, constant for all customized documents, or later designated as variable output objects in the manner shown in Fig. 6. The second type of object the reference marker is normally not printed in customized documents. Such markers are intended to act an aid to the VDP application 201. In particular, markers are used to identify individual VOOs, and can aid the method of associating a second graphics template with an existing VDD, as shown in Fig. Referring to Fig. 12A, a source document 1200 is shown which includes two reference markers 1202 and 1204. The reference markers 1202 and 1204 are positioned over corresponding graphic objects 1206 and 1208 intended to be used as variable output fields. In this example the graphics objects are those of the top salesperson for the month and the month text field. An additional VOO being the name of the salesperson does not have an overlaid reference marker. Reference markers are not printed in a customised document generated from the source document 1200. When a customised document 1210 is generated, as seen in Fig. 12B, the corresponding graphic objects 1212 and 1214 are inserted for the graphic objects 1202 and 1204.
In order to set markers to be non-printing, a user of the application 201 simply selects an instance of a marker type for example an arrow of a certain dimension and elects to make all such instances non-printing. In another implementation, markers can be printed or not printed turned on or off on a- per-instance basis. In either implementation, indicated markers are filtered by the application 201 prior to generating customized documents 208. Finally, a user may choose to leave markers unfiltered when generating VDDs or graphics templates from customized documents. These processes are described in Fig. 8, Fig. 9 and Fig. Standard objects are added or removed or otherwise edited at step 505 from Fig. This step can be bypassed when control passes from step 504 to step 506 as shown, when editing a standard object is not required. For every added standard object, and provided the authoring application supports such an operation, the user can insert a reference marker over the object. The decision to add or remove such a marker is made at step 506, with the process of adding or removing the marker being performed at step 507. The added marker denotes the nearest underlying object as a variable output object. When the user has 717722 12finished editing the source document and has added or removed as many reference markers as desired, the control flow of Fig. 5 terminates at step 508.
Fig. 6 describes step 408 from Fig. 4 in additional detail. Here, the process of defining variable output objects starts at 601 with template 204, being loaded and its contents displayed. This done, a user of application 201 then selects one or more graphics objects to mark as variable output objects. This occurs at step 602. Compound selection of objects is possible by choosing to select additional objects at step 603 and returning to step 602.
With one or more graphics objects selected, control can pass from 603 to step 604, where the user defines a source expression for the objects selected. The VDD later saved at step 409 (see Fig. 4) records these expressions, together with the list of referenced graphics objects. In a preferred implementation, this results in VDDs with the following logical format: SOURCE expression TEMPLATE offset TEMPLATE offset SOURCE expression TEMPLATE offset In this implementation, template offsets are simply pointers to graphics objects recorded in the corresponding graphics template, while source expressions define the variable properties of these referenced objects. As already mentioned, graphics properties might include fill type, colour and stroke width, where these properties have meaning for the particular objects referenced by the associated template offset fields. The fill type property, for example, is used to 'fill' the associated object with variable image, textual or graphical data. In this way, the graphics object acts as a clipping mask for inserted variable data. Such variable output objects are also referred to as variable data containers.
A fragment of a VDD with format as described follows:
<SOURCE
717722 -13- Division "Sales" Location "Rowville"
<TRUE
<PROPERTY Color (10, 25, 130}, Stroke Width 8/>
<FALSE
<PROPERTY Color {100, 122, 88}/> <OFFSET 156, 248
<SOURCE
Division "Manufacturing"
<TRUE
<PROPERTY Fill type \factorylogo. jpg/>
<FALSE
<PROPERTY Fill type \company_default. jpg/> <OFFSET 482 In this example, two source expressions have been defined. The first sets the colour of VOOs according to the values of 'Division' and 'Location' data elements.
Furthermore, if 'Division' 'Sales' and 'Location' 'Rowville', the stroke width of referenced VOOs is set to 8 units. The appropriate VOOs here are at file offsets 156 and 248 in the VDD's corresponding graphics template. The second source expression defines a variable data container with masked contents set to the image '\factory_logo. jpg' if 'Division' 'Manufacturing', or '\company_default. jpg' otherwise. The relevant variable data container is located at file offset 482 in the corresponding graphics template.
Source expressions can be more formally written as follows: B({var}) {xe a M] propTx {val}} ye b M] I propFy {val}}, 717722 -14where M is the total number of set:able properties for the referenced VOO(s), and the ternary conditional operator has a meaning identical to that for the equivalent operator from the C programming language. Here, B({var}) is a Boolean expression combining properties of the variable data elements associated with the document. Where this expression evaluates to TRUE, the set of object properties {propTx {val} is associated with the graphics objects referenced by the following template offset fields. Where B({var}) evaluates to FALSE, {propFy {val}} is associated with the same graphics objects. VDDs with source expressions in this form are referred to as 'fully-specified' variable data documents.
With VOO(s) defined in this way, the application 201 can then layout, or preview, variable output objects for the current data record at step 605. As with existing VDP applications, the application 201 allows the user to preview a customized document for an individual master data record, either by selecting the desired record from a list, or by entering a key value. From step 605, control passes to 606, and then back to step 602 if additional variable data is to be added. Note that graphical objects already designated as variable output objects can be reselected at step 602. For example, a simple stroked shape may have its 'contents' set by one source expression, and the colour of its stroked path set by another expression.
Fig. 7 shows the method of laying out variable data from step 605 in additional detail. In particular, this figure deals with graphics objects marked, as variable data containers, or clipping masks. Other VOOs are laid out in the same manner as static graphics objects, except that the variable properties of the object are updated according to the current data record, or other data as appropriate. For variable data containers, the process of displaying associated variable image, text or graphical data starts at step 701 and proceeds directly to step 702. If the source expression for the container sets the container fill type to text, control pass;es from step 702 to step 704. Otherwise, control flows to step 703.
For variable text data, the selected container can be set to "overwrite" or "insert" modes, where insert mode can be specified provided the object container is built from a text block. For insert mode, a merged text stream is constructed at step 709. Here, variable text is merged with original container text at the insertion point indicated by the user. Overwrite mode simply draws variable data to the container as is, with existing text being deleted. Whether or not insert mode is specified, control moves from step 704 to 717722 step 711, where the user of application 201 defines the text flow order for containers comprised of multiple objects. For a set of three such objects A, B and C with defined flow order B, A, and C, text is written first to object B, then to A and finally to C. The actual laying out of text is then performed at step 712.
For variable image or graph data, control passes from step 703 to steps 705 or 707 respectively. In each case, an image or graph transform is then defined. This governs the appearance of the image or graph with respect to the container's clipping path. The variable image or graph is then laid out at steps 706 or 708.
In one implementation, laying out variable images with respect to a variable data container involves defining a point relative to the container and a point relative to the image. These points are aligned and the image optionally scaled in some manner. The points for container and image might be user-defined, the image or container centre, or centroid, or some other algorithmical]ly determined point. This mechanism thus allows a collection of variable images to be matched to a container so that the features of interest in each image are displayed in resultant customized documents 208, whatever the image. A single default rule for the specification of alignment points and scaling of variable images might be appropriate for most images, but a user of application 201 would be able to override these, for any image or subset of images.
Fig. 8 summarises the hierarchy of document types according to the present disclosure. Here, each document symbol represents a class of documents constructed in a particular way. The rounded boxes 801 and 802 additionally show the sets of all graphics templates and all fully-specified VDD)s. The solid arrows in Fig. 8 represent the usual means of producing documents of each type, while the dotted arrows show additional methods of generating graphics templates and VDDs. Starting with a source document 803, created in a print-capable application (303, 306, a graphics template 804 is generated by the process 805 of printing to the printer driver 202. The VDD 811 is produced from a graphics template by VDP application 201 via the process 808 of designating graphics objects as variable output objects. Application 201 produces customized documents 817 from fully specified VDDs via the variable print process 211.
A graphics template 806 and variable data documents 812, 810, and 809 represent templates and VDDs generated via the additional methods. VDD 812, for example, is produced by the method of associating a graphics template with an existing fully-specified 717722 -16variable data document. Processes 807 and 813, whereby a graphics template and existing VDD are combined in this way, are further illustrated in Fig. In the described implementations, variable data documents can take two forms.
Ordinarily, variable data documents are fully specified. These VDDs have source expressions of the form previously given: B({var}) {xE a M] I propTx {val}} y b M] I propFy {val}}.
VDDs can also be 'partially specified'. Such VDDs list only the variable properties of one or more of their variable output objects. That is, these documents have one or more source expressions of the form: {x e a M] I propx} Partially specified VDDs must be converted to a fully specified form before the VDD can be properly printed. This can be achieved manually by a user of the VDP application 201, or automatically by associating the newly created VDD (having partial source expressions) with an existing fully-specified VDD, much like the method depicted in Fig. 10. A partially specified version of the sample VDD listed previously is shown below:
<SOURCE
<PROPERTY Color <OFFSET 156, 248
<SOURCE
<PROPERTY Fill type <OFFSET 482 With reference to Fig. 8, variable data document 810 is generated from a fullyspecified VDD where a subset of master data records is selected. In many cases, this can produce a simplified VDD, as VOOs are demoted to static graphics objects, or not output at all. In any event, the resultant VDD is fully specified. For the set of data records 717722 -17selected, VDD source expressions may reduce to a simplified form, possibly giving a constant representation for individual graphics objects. In this way, variable output objects can become static objects.
Consider the example VDD given previously. If a set of data records did not contain any record with Division "Manufacturing", the fragment of the VDD shown above would reduce to:
<SOURCE
Division "Sales" Location "Rowville"
<TRUE
<PROPERTY Color (10, 25, 130), Stroke Width 8/>
<FALSE
<PROPERTY Color (100, 122, 88}/> <OFFSET 156, 248
<SOURCE
<PROPERTY Fill type \company_default. jpg/> <OFFSET 482 Here, the graphics object with offset 482 has been converted from a variable data container to an object with a constant fill. Note that the VDD's template could be updated to contain the contents of graphics file "\company_default. jpg", and this second source expression discarded. One use of this method might be to generate a VDD more appropriate for new or updated source data. A variation of this method may allow particular source expressions (and associated offset records) to be copied to the new VDD without modification, irrespective of the set of data records currently selected. If all such source expressions were copied, VDD 810 becomes an exact copy of the source VDD.
Variable data document 809 is generated by examining the stream representations of a subset of customized documents 817, as indicated by the dotted arrow 815. In a 717722 18preferred implementation, VDD 809 will be only partially specified, since source expressions are not present in the graphics stream descriptions of customized documents.
Finally, the graphics template 806 represents templates created from single customized documents via a print command issued to printer driver 202. This is indicated by the dotted arrow 816.
Fig. 9 and Fig. 10 give further detail of two of the methods for generating VDDs shown in Fig. 8. Fig. 9 illustrates a method 900 of constructing a VDD from a subset of customized documents, while Fig. 10 shows a method 1000 of associating a graphics template with an existing VDD.
In Fig. 9, variable data document 905 has four VOOs defined: 901, 902, 903, and 904. When printed by the VDP application 201, document 905 generates a total of five customized documents: 906, 907, 908, 909, and 910. These are constructed from the five records in a master data table 913 for the VDP print run. Three of these customized documents (906, 907, 910) are used by VDP application 201 to generate variable data document 911, as shown. Another two documents (908, 909) are used to generate variable data document 912.
As is evident from the arrangement ofVOOs, a variable output object is missing in each output VDD 906-910. In this case, source expressions for VOOs 901 and 904 inhibit their display when records 1, 2, and 5 and 3 and 4 respectively are printed. The stream representations of customized documents 906, 907, and 910, for example, thus contain no record for VOO 901.
By comparing the stream contents for each customized document, graphics objects constant for all documents can be readily determined by the VDP application 201. The descriptions of these static objects are simply copied to the graphics template for the new VDD. Other objects are then marked as variable output objects, and the common parts of these copied to the VDD's graphics template. For a variable data container with a variable image fill, for example, only a stroked path outline need be copied, with some default fill property assigned. A further implementation may allow a user of the application 201 to specify a variable object customization to use by default. This data would be copied to the graphics template for the new VDD.
Consider VDD 911 from Fig. 9. This document has three VOOs defined, corresponding to source VOOs 902, !903, and 904. Because the original variable data document 905 was not directly used in generating VDDs 911 or 912, these resultant VDDs 717722 -19are only partially specified in the preferred implementation. In an alternate implementation, source expressions and corresponding graphics template offsets from source VDD 905 may be encoded in the representations of customized documents themselves. In this case, VDDs 911 and 912 may then be fully specified.
Turning now to the method 1000 of Fig. 10, a user of the VDP application 201 is able to automatically generate a variable data document from a new graphics template by associating the graphics template with an existing VDD. Here, variable data document 1001 is built from graphics template 1003, which itself is generated from a source file produced by application 1002. Source expressions for the four variable output objects from document 1001 are constructed from named data elements in the three databases at the right of Fig. 10, one of which being database 1005.
With variable data document 1001 fully specified, the graphics template 1008 can then be 'associated' with this VDD 1001, giving a new fully specified VDD 1007.
Significantly, the template 1008 is generated from a source document produced in another application 1004. A such, templates can be matched to existing VDDs even when the source documents for template and existing VDD are generated in different applications.
With this, users can produce revised templates in new authoring applications and still be able to utilise the automatic designation of VOOs.
Template-VDD association works in the following way. Firstly, the VDP application 201 attempts to match objects from graphics template 1008 with the variable output objects defined for VDD 1001. The application 201 does this by iterating through the list of VOOs defined in VDD 1001. For each such graphics object, a list of relevant parameters is extracted and written to a 'match record' for the object. These match records are then grouped in ordered lists according to object type. Types may include closed paths, open paths, bitmaps, text and other graphics structures. Match records are inserted into the appropriate ordered list according to a user-defined metric. Each object type has a different metric, with each metric ranking like 'match records' according to a measure of the corresponding graphics object's significance. For instance, a metric for bitmaps might give a higher ranking for large bitmaps than small bitmaps. In this way, match records for bitmaps would be ordered largest to smallest.
Once ordered lists of match records have been built, the application 201 attempts to 'match' each record with a graphics object from graphics template 1008. With m match records for a given graphics type, the m closest matching objects from the graphics 717722
I
template 1008 need to be found. If there are n m such objects in graphics template 1008, then the remaining m n objects from VDD 1001 have no equivalent VOOs in VDD 1007. These remaining objects correspond to the lowest ranked match records for objects of the given type.
In a preferred implementation, matching of variable output objects is achieved via a single traversal of objects defined for the graphics template 1008. Until a graphics template object has been allocated to each match record for a given object type, objects are assigned, in order, to the record giving the best fit between objects. After reading k objects of a given type, the first k match records have been assigned. This process takes (k 1) k/ 2 comparison operations. With an object assigned to each match record, remaining template objects of the given type are checked against the current assigned object for each record. If a new object is a better match than the existing object, the existing object is displaced and checked against remaining match records in the list. At the end of the process, (2p k 1) k 2 object comparisons have been made, where p k is the total number of objects of the given type in graphics template 1008. A single bestmatch object from template 1008 is assigned to each match record.
Various object properties can be used in object comparison functions. These include: the count of line segments in paths; the style of line segments straight or curved; the area of closed paths; the position of object bounding boxes; and the presence of overlaid reference markers.
The combination of these properties can give a correlation value to use when comparing two objects A and B with a third object C.
Once objects are matched, the application 201 simply copies source expressions for VDD 1001 to VDD 1007, and creates the appropriate template offsets for each copied source expression. The matching and copying process for each variable output object is indicated in Fig. 10 by the dotted line 1006.
At the conclusion of this process, it may be that variable output objects from VDD 1001 have no equivalent objects assigned in VDD 1007. This can result when there are fewer graphics objects of the relevant type in graphics template 1008. Alternatively, the application 201 may have made an inappropriate automatic assignment, or one not 717722 -21intended by the author of graphics template 1008. In this case, the user of the application 201 can simply override any of the automatic assignments made, and make the appropriate assignments manually, in the manner of processes 602, 603, 604, 605 and 606.
The main purpose of the method described in Fig. 10 is to automate the process of designating variable output objects and assigning source expressions, so that new versions of variable data documents can be quickly created.
Industrial Applicability It is apparent from the above that the arrangements described are applicable to the.
computer and data processing industries and particularly where large volumes of functionally similar documents are to be generated from similarly organised data base information.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings.
717722

Claims (24)

1. A method of producing customized documents, said method comprising the steps of: generating a graphics template from a source' electronic document, said source electronic document comprising a plurality of identifiable graphical objects and being authored in a software application; constructing a variable data document from said graphics template by designating at least one of said graphical objects of said graphics template as a variable output object; and associating at least one component of a data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document.
2. A method according to claim 1 wherein said source electronic document is reproducible by printing.
3. A method according to claim I wherein said associating comprises assigning said component to a corresponding said variable output object.
4. A method according to claim 1 wherein step comprises assigning source data expressions to said designated graphical objects, and step comprises interpreting each said data record according to said source data expressions.
5. A method according to claim 4 wherein said interpreting of one said data record results in removal of a variable output object from said corresponding customized document.
6. A method as claimed in claim 1, wherein said graphics template comprises a graphics stream description of the source electronic document. 717722 23
7. A method according to claim 6 wherein said graphics stream description is formed by a stream interception driver, said driver being operable to translate print graphics commands of said source electronic document to an encoded graphics stream description.
8. A method according to claim 7 further comprising the step of displaying said graphics template to a user via an output device, to thereby enable user selection of said graphical objects.
9. A method as claimed in claim 1, wherein each said variable data document: comprises graphics template contents and source data expressions; and designates selected objects from said graphics template as variable output objects.
A method as claimed in claim 1, wherein said graphics template comprises reference markers authored in the source electronic document, said reference markers being reproducible in said customized documents.
11. A method according to claim 10 further comprising the step of user selection of one or more instances of said reference markers in said variable data document to thereby omit said selected markers from said customized documents.
12. A method according to claim 6 wherein said source electronic document comprises at least one said customized document.
13. A method as claimed in claim 6, wherein step comprises the sub-steps of: (ba) associating said graphics template with a previously created variable data document, whereby graphical objects of said template are mapped to variable output objects in said previously created variable data document; (bb) combining the graphics stream descriptions of two or more customized documents derived from said previously created variable data document such that differences in said steam descriptions generate partially specified variable output objects; and 717722 1 -24- (bc) selecting a plurality of said data records such that said source data expressions are simplified and said variable output objects made constant.
14. A method as claimed in claim 12, wherein said graphics template is formed by processing a single customized document via said stream interception driver.
A method as claimed in claim 13, wherein a 'best-match' mapping of graphical objects of said template to existing variable data objects is achieved by a correlation function utilising a combination of representative graphics properties, said properties being selected from the group consisting of: a count of line segments in graphic object path elements; a style of said line segments selected from the group consisting of straight and curved; an area and position of a bounding box of each said graphical object; and a presence of overlaid reference markers.
16. A method according to any one of the preceding claims further comprising the step of printing said customized documents.
17. A method of producing customized documents, said method comprising the steps of: generating a graphics template from a previously created customized document, said previously created customized document having a plurality of identifiable graphical objects; associating said graphics template with an existing variable data document, said graphics template having template objects mapped to variable output objects of said variable data document; using a graphics stream description of at least two previously created customized documents to generate source data expressions of partially specified variable output objects; selecting a plurality of data records such that said source data expressions are simplified and variable output objects made constant; and 717722 associating at least one component in each said data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document; and printing said customized documents.
18. A computer readable medium having a computer program recorded thereon and adapted to a make a computer execute a procedure to produce customized documents, said program comprising: code for generating a graphics template from a source electronic document, said source electronic document comprising a plurality of identifiable graphical objects and being authored in a software application; code for constructing a variable data document from said graphics template by designating at least one of said graphical objects of said graphics template as a variable output object; and code for associating at least one component of a data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document.
19. A computer readable medium having a computer program recorded thereon and adapted to a make a computer execute a procedure to produce customized documents, said program comprising: code for generating a graphics template from a previously created customized document, said previously created customized document having a plurality of identifiable graphical objects; code for associating said graphics template with an existing variable data document, said graphics template having template objects mapped to variable output objects of said variable data document; code for using a graphics stream description of at least two previously created customized documents to generate source data expressions of partially specified variable output objects; code for selecting a plurality of data records such that said source data expressions are simplified and variable output objects made constant; and 717722 26 code for associating at least one component in each said data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document; and code for printing said customized documents.
Apparatus for producing customized documents, said apparatus comprising: means for generating a graphics template from a source electronic document, said source electronic document comprising a plurality of identifiable graphical objects and being authored in a software application; means for constructing a variable data document from said graphics template by designating at least one of said graphical objects of said graphics template as a variable output object; and means for associating at least one component of a data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document.
21. Apparatus for producing customized documents, said apparatus comprising: means for generating a graphics template from a previously created customized document, said previously created customized document having a plurality of identifiable graphical objects; means for associating said graphics template with an existing variable data document, said graphics template having template objects mapped to variable output objects of said variable data document; means for using a graphics stream description of at least two previously created customized documents to generate source data expressions of partially specified variable output objects; means for selecting a plurality of data records such that said source data expressions are simplified and variable output objects made constant; and means for associating at least one component in each said data record to a corresponding one of said variable output objects to thereby produce, for each said data record, a corresponding said customized document; and means for printing said customized documents. 717722 -27-
22. A method for producing customised documents substantially as described herein with reference to the drawings.
23. A computer readable medium having a computer program recorded thereon and adapted to perform the method of claim 22.
24. Apparatus adapted to perform the method of claim 22. Dated this 30th day of JUNE 2005 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant Spruson&Ferguson 717722
AU2005202911A 2004-09-16 2005-06-30 Construction of variable data documents using generalised graphics streams Abandoned AU2005202911A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2005202911A AU2005202911A1 (en) 2004-09-16 2005-06-30 Construction of variable data documents using generalised graphics streams

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2004905353A AU2004905353A0 (en) 2004-09-16 Construction of variable data documents using generalised graphics streams
AU2004905353 2004-09-16
AU2005202911A AU2005202911A1 (en) 2004-09-16 2005-06-30 Construction of variable data documents using generalised graphics streams

Publications (1)

Publication Number Publication Date
AU2005202911A1 true AU2005202911A1 (en) 2006-03-30

Family

ID=36120166

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2005202911A Abandoned AU2005202911A1 (en) 2004-09-16 2005-06-30 Construction of variable data documents using generalised graphics streams

Country Status (1)

Country Link
AU (1) AU2005202911A1 (en)

Similar Documents

Publication Publication Date Title
US7934154B2 (en) Document processing apparatus, document processing method, and document processing program
US7634725B2 (en) Layout adjustment method, apparatus and program for the same
US7688459B2 (en) Document processing method
RU2387010C2 (en) Coloured preliminary image data of templates
US7707494B2 (en) Information processing apparatus, control method therefor, and program
US7882432B2 (en) Information processing apparatus having font-information embedding function, information processing method therefor, and program and storage medium used therewith
US7831909B2 (en) Information processing apparatus, control method therefor, and program with display based on change amount of field areas
US7757167B2 (en) Document layout processing using templates
US9298676B2 (en) Layout determination method, layout determination apparatus, and layout determination program
US8578269B2 (en) Information processing apparatus for performing a layout processing of sub-templates, information processing method and computer-readable medium
US8089653B2 (en) Document processing apparatus, method and program for variable printing with document file dividing
AU719368B2 (en) Font sharing system and method, and recording medium storing program for executing font sharing method
US7430718B2 (en) Configurable interface for template completion
KR100725195B1 (en) Information processing apparatus and method, and recording medium for recording print control program
JP4522280B2 (en) Information processing apparatus, control method therefor, and program
US7379950B2 (en) Document processing method, program and apparatus for processing a document file in pages
US20070291308A1 (en) Information processing apparatus, information processing method, and information processing program
US20100318899A1 (en) Design editing apparatus and method and design editing program
JP2006048533A (en) Information processor, and control method and program thereof
US20040078786A1 (en) System and method for editing computer-generated documents independently of the creater software application
US6922807B1 (en) Object editing apparatus and method, and recording medium storing computer-readable program
JP2005190426A (en) Data processing method, data processor, and computer program
JP4179977B2 (en) Stamp processing apparatus, electronic approval system, program, and recording medium
AU2005202911A1 (en) Construction of variable data documents using generalised graphics streams

Legal Events

Date Code Title Description
MK1 Application lapsed section 142(2)(a) - no request for examination in relevant period