Abstract:
A method and apparatus for printing a project of documents containing variable data. Print requests are received for documents and fixed and variable data required to fulfill the requests is obtained. A record is manipulated for each set of variable data in a project and correlated to the variable data. The fixed data and the variable data are combined to compose the documents and the documents in the project are printed by combining the fixed data and the appropriate variable data. An identifier can be printed on each document to permit verification that a document corresponding to each record was printed.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention relates generally to printing of documents and more specifically to a method and apparatus for variable data document printing.  
         BACKGROUND OF THE INVENTION  
         [0002]    Printing of both fixed data and variable data is often a requirement in many printing applications. The phrase “fixed data,” as used herein, refers to data that remains constant over a plurality of documents in a project. The phrase “variable data,” as used herein, refers to data which varies between documents in a project. Examples of projects containing both fixed and variable data include projects for personalized direct mailing documents, business forms, custom calendars, personalized checks, and the like.  
           [0003]    A personalized project includes variable data documents composed of a number of copies, where each copy can be uniquely customized for the intended recipient. The pages are composed of text, graphics, and images which can be unique to just that copy, identical on every copy, or used on some copies of the document but not on others. For example, in a customized product brochure, unique elements can include the recipient&#39;s name and address, while the product company name and logo are identical on every document, and the picture of the specific product that the recipient is interested in is found on some documents of the project, but not on others.  
           [0004]    In view of the combinations of images and text, the need for personalization, and the desirability of high quality, the workflow of projects having both variable data and fixed data, i.e. variable data projects, especially projects containing full color documents, can become quite complex. Therefore, conventional systems for printing variable data projects are plagued by the inability to print complex projects reliably, the inability to predict production time, and poor color quality. Further, conventional systems require manual inspection of output to verify that all documents were printed successfully.  
         SUMMARY OF THE INVENTION  
         [0005]    A first aspect of the invention is a system for printing a project of documents containing variable data. The system comprises a printer component and an operations management component configured to receive print requests for documents in a project, create a project for printing by the printer component, and create a record for each set of variable data in the project. The system also comprises a fixed data capture component operative to capture fixed data, a variable data source component operative to receive variable data from a variable data source, a repository component configured to store the variable data and fixed data for each project, a variable data composition component operatively coupled to the repository component and being configured to combine the fixed data and the variable data into documents for the project, and an integrity component operatively coupled to the operations management component and configured to verify that each document of the project is printed by the printer component.  
           [0006]    A second aspect of the invention is a method for printing a project of documents containing variable data. The method comprises receiving print request for the project, capturing fixed data to be used in the documents, culling variable data from a variable data source creating a record for each set of variable data in the project, storing the variable data and the fixed data in a repository, combining the fixed data and the variable data to thereby compose the documents, printing the documents in the project, and verifying that a document corresponding to each record was printed.  
           [0007]    A third aspect of the invention is computer readable media having instructions recorded thereon for controlling printing of a project of documents containing variable data. The instructions comprise instructions for receiving a print request for the project, instructions for capturing fixed data to be used in the documents, instructions for culling variable data from a variable data source instructions for creating a record for each set of variable data in the project, instructions for storing the variable data and the fixed data in a repository, instructions for combining the fixed data and the variable data to thereby compose the documents, instructions for printing the documents in the project, and instructions for verifying that a document corresponding to each record was printed. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0008]    The invention is described through an embodiment and the attached drawings in which;  
         [0009]    [0009]FIG. 1 is a conceptual representation of a printing system in accordance with the embodiment;  
         [0010]    [0010]FIG. 2 is a block diagram of a computer system in accordance with the embodiment; and  
         [0011]    [0011]FIG. 3 is a flow chart of the printing process of the embodiment. 
     
    
     DETAILED DESCRIPTION  
       [0012]    [0012]FIG. 1 illustrates the various components of a system for variable data document printing in accordance with an embodiment of the invention. Note that FIG. 1 is a conceptual representation broken down by functionality and thus the illustrated components need not necessarily correspond to any specific hardware and/or software. Operations management component  32  tracks print projects and coordinates the necessary steps and components of the system  10  (shown in FIG. 2) to complete printing of documents in the project including supervising the messaging tasks described below. Note that a “project” refers to one or more documents having the same fixed data. A “document” refers to one or more pages in a project corresponding to a set or record of variable data. Variable data used to personalize each document is received from variable data source component  34  which can be the customer IT system or any other storage or generation device for providing variable data. Integration component  36  provides integration with data source component  34  and can utilize file transfer, direct integration with customer databases, or any other method of transferring the desired variable data. Further, integration component  36  can use any type of communication channel, such as a Local Area Network (LAN), the Internet, or a serial connection for transferring data.  
         [0013]    Data stream conversion component  38  processes the variable data and converts the variable data into a desired format, if necessary, for processing by the system. Image capture component  50  receives images for use as fixed data and can include a scanning device, camera, or any other device for capturing, creating, or importing data. Design layout component  48  creates a layout for the project that determines the appearance of the documents and stores the layout as a template used for printing of documents. Repository component  44  stores elements of the document during construction and production (see description below) including the templates, image elements, fonts, variable data records, and other resources. Composition component  40  creates variable documents to be printed by combining fixed data with variable data records guided by the design layout and outputs the documents to printer component  42  for printing. Printer component  42  typically includes a digital color printer having a Digital Front End (DFE) that receives data from composition component  40 , and a color marking engine for rendering the documents. Color management component  46  insures that the color data (fixed and variable) is rendered as the correct colors by the printer using conventional techniques. For example, color management component can use the commercially available GRETAG MCBETH™ system.  
         [0014]    When printing variable documents, such as personalized documents, each document may be unique. Accordingly integrity component  52  serves to verify that each document in a project has been printed (and printed only once) and to provide feedback to operations management component  32  in the manner described below.  
         [0015]    [0015]FIG. 2 illustrates computer system  10  in accordance with the embodiment. In FIG. 2, various hardware and software corresponds to the functional components illustrated in FIG. 1 and described above. The variable printing process runs on server  20  in the embodiment. However, the process can run on any type of computer, such as a personal computer, a mainframe, a microcomputer, a programmable controller, various devices coupled over a network, or any other device or devices capable of carrying out the described functions. Accordingly, the term “computer”, as used herein, refers broadly to any data processing or logic device, or a combination of plural data processing or logic devices. For example, the invention can be accomplished using a plurality of networked devices, such as personal computers, terminals servers and the like. Server  20  includes central processing unit (CPU)  24  running an operating system, such as WINDOWS NT™, WINDOWS 2000™, UNIX, or the like. CPU  24  also runs control program  30  stored in memory device  22 , such as a hard drive, CD-ROM, or the like. Also, a portion of memory device  22  is used as repository  144  for storing fixed data, variable data, and other resources as described above with respect to repository component  44 . In the embodiment, memory device  22  is illustrated as a single device. However, memory device  22  can be comprised of plural memory devices in a single computer or in plural computers.  
         [0016]    Control program  30  includes instructions for accomplishing the primary functionality of system  10  and can be written in any appropriate programming language, such as Basic, C++, or the like and compiled into machine code or interpreted for execution by CPU  24 . Control program  30  includes operations management module  132  for effecting the function of operations-management component  32 , composition module  140  for effecting the function of composition component  40 , integrity module  152  for effecting the function of integrity component  52 , and design and layout module  148  for effecting the function of design and layout component  48 . By way of example only, operations management module  132  can incorporate FORTE™ software sold by Sun Corporation and DOCUMAIL™ software and composition module  140  can incorporate QUARKEXPRESS™ software sold by Quark Corporation. Operations management module  132  also includes instructions for effecting the functions of integration component  36  and data stream conversion component  38 , as well as any other functionality required to query sources of variable data and format variable data for incorporation into documents.  
         [0017]    Input device  160  can include a display, a keyboard, mouse, trackball, keypad, display, touchscreen, or the like to permit server  20  to display a user interface and to permit a user to input all menu selections, layout commands, and the like as is necessary. Printer  142  is coupled to server  20  to print the documents and is constructed as described above with respect to printing component  42 . For example, printer  142  can be a printer manufactured by XEROX™ Corporation and sold under the tradename DOCUCOLOR 2060™ . Once again, system  10  can include plural computers and each computer can have the requisite input device. Scanner  150 , such as a color raster scanner, serves as an image capture device of image capture component  50 . Integrity scanner  153  serves as a sensor and can be a bar code scanner, a camera (such as an SONY™ camera) or any type of device for reading the integrity symbol, i.e. indicia, described below to provide input to integrity module  152 .  
         [0018]    [0018]FIG. 3 is a flowchart of the process for printing variable data document projects in accordance with the embodiment. The process can be divided into two distinct phases. The first phase is the creation phase (to the left of the dotted line) and the second phase is the production phase (to the right of the dotted line). Referring to FIGS. 1 and 2, each component communicates with operations management component  32  to permit operations management component  32  to maintain a real-time status of each project. For example, such communication can be in an HTTP compliant format using XML messaging in the manner described below. The process begins in step  200  in which a project is created by operations management component  32 . In step  202 , a file structure and directory structure for the project is set up in repository  140  in accordance with an assigned identification, such as a customer ID and a job ID. The ID is used as metadata to permit tracking and reporting of status and other variables. The file structure, ID and other project specific data can be stored as a configuration file for the project.  
         [0019]    Resources for the project, such as images, fonts, and graphics, are acquired in step  204 . Also, in step  204 , the resources for the project are stored in folders, i.e. directories, in accordance with the configuration file and tagged with appropriate metadata tags to identify the resources and associate the resources with the proper project and documents. In step  206 , test data is acquired. Test data can be any set of data corresponding to expected variable data, such as a single representative record from a database to be used for variable data. In step  208 , a counter is added to the file to provide a unique sequence number to each record of the project.  
         [0020]    In step  210 , a markup of the page layout design is imported into repository  44  and a static portion of the print job is created as a template. In step  212 , conventional design tools are used to resize and/or rearrange images of the static portion if necessary and in step  214 , updates are stored in repository  44 . Steps  210 ,  212 , and  214  can be accomplished in a repeated manner until the image resources are correctly sized and arranged. All resources and template pages are tagged and stored to correspond to the project in the most recent updated form. At this time, the operator may want to schedule a proof run to verify that the job is ready for printing. In such a case, the operator selects “proof run” from a menu or other user interface on a display of server  20 . In such a case, a proof run is accomplished in a manner similar to a production run described below.  
         [0021]    If a proof run is satisfactory or not required, the operator selects “schedule print run” and the process proceeds to step  216  in which a print run is scheduled. Scheduling includes validating that all resources required for the project are available based on the resources acquired in step  204 . In step  218 , all resources are compiled to a work area in repository  144 . Keep in mind that all resources have been tagged with metadata for quick retrieval. In step  220 , the print job is prepared by importing variable data, such as personalized data from a customer, and the variable data is integrated into the fixed data template. For example, the system can have direct database access to a customer database via IT integration component  36  using Structural Query Logic (SQL). Alternatively, IT integration component  36  can access data generated from Web site selections, such as literature requests. The project is composed into documents and submitted to printer component  42  in step  222 .  
         [0022]    In step  224 , the documents of the project are printed by printer  142 . Step  224  includes printing indicia of the document on at least some pages of the document. Such indicia can include a bar code, DATALGYPHS™, or other visible or non visible indicia. In step  226 , integrity scanner  153  reads all indicia and reports the same to integrity module  152 . In step  228 , operations management module  132  compares the indicia read by integrity scanner  153  with records of the project to verify the integrity of the print run, i.e. that a document corresponding to each record was printed. If any documents have not been printed, the process returns to step  218  for printing of the missing documents and proceeds through to step  228  again. If no records are missing, the process ends.  
         [0023]    It can be seen that the various components of the embodiment can communicate with one another to coordinate and manage all operations. Operations management component  32  can include an XML application to act as a datagram for transferring data in the form of messages between operations management component  32  and other components. In the case of integrity component  40 , the data comprises primarily record numbers corresponding to indicia scanned by integrity scanner  153 . These record numbers reflect records printed for a variable data print job. All variable data records can have a unique sequence number. These sequence numbers are incorporated into the variable data document and barcodes, or other indicia, are printed on each page, or group of pages, identifying the record used to create that document.  
         [0024]    Operations management component  32  of the embodiment uses an http/XML interface to communicate with other components in the system. Of course, other interfaces, such as an Enterprise Java Bean or Distributed Common Object Model mechanism, can be used. HTTP protocols can be used to call an Active Server Page (ASP) passing XML data. The format of the messages created by the XML application can be modeled after existing document type definitions (DTDs). The datagram can be used as a data container with a descriptive nature. It also supports a simple model for a data list, so more than one data component can be transferred in a message. Additionally every “packet” of data or message sent is human readable and can be viewed with a web browser. The “packets” or “datagram documents” can travel automatically from one system to another and never need be seen by humans. An example document illustrating a typical datagram of the embodiment is shown below: The &lt;List_Inspectron&gt; tag acts as the document type declaration and it is also the root element for the entire structure.  
                                                                                                                                   &lt;List_Inspectron&gt;                &lt;InspectronData&gt;                &lt;ControlArea date=“19990916T1500Z”&gt;                &lt;LogicalID&gt;inspectron.com&lt;/LogicalID&gt;           &lt;Component&gt;DocumailRead&lt;/Component&gt;           &lt;Task&gt;test&lt;/Task&gt;           &lt;ReferenceID&gt;CHUNK#5&lt;/ReferenceID&gt;                &lt;/ControlArea&gt;           &lt;DataArea&gt;                &lt;Status code=“OK”&gt; Running Ok! &lt;/Status&gt;           &lt;DataList&gt;                &lt;A code=“OK”&gt;1234&lt;/A&gt;           &lt;A code=“OK”&gt;1235&lt;/A&gt;           &lt;A code=“OK”&gt;1236&lt;/A&gt;           &lt;A code=“OK”&gt;1237&lt;/A&gt;                &lt;/Data List&gt;                &lt;/DataArea&gt;                &lt;/Inspectron Data&gt;            &lt;/List_Inspectron&gt;                  
 
         [0025]    The &lt;ControlArea&gt; contains all the descriptive information relating to process control. The Date, data source and task reference information is all contained therein. The &lt;DataArea&gt; element contains specific status and data information. The &lt;DataList &gt; element acts as a container for the list of actual data elements. These individual data elements are contained in the &lt;A&gt; element. The list below describes the elements in the XML message document of the embodiment.  
         [0026]    &lt;List_lnspectron&gt; The root container element.  
         [0027]    &lt;ControlArea&gt; Container for relevant process information such as a DATE attribute and LOGICALID, COMPONENT, TASK, REFERENCEID elements.  
         [0028]    Date attribute The date of this transaction.  
         [0029]    &lt;LogicallD &gt; A descriptor identifying the sender of the message.  
         [0030]    &lt;Component &gt; A descriptor identifying the type of information being sent.  
         [0031]    &lt;Task&gt; A descriptor identifying the task or project with which this data is associated.  
         [0032]    &lt;ReferenceID&gt; A descriptor identifying the subset of data being delivered.  
         [0033]    &lt;DataArea&gt; The container element for a data area of the document.  
         [0034]    &lt;Status&gt; Identifies the status of this set of data.  
         [0035]    Code attribute Set to “FAULT” if errors or exceptions exist in the originating process, otherwise set to “OK”.  
         [0036]    &lt;DataList&gt; The container for the list of data items  
         [0037]    &lt;A&gt; The data  
         [0038]    Code attribute Set to “FAULT” if errors or exceptions exist in the originating process, otherwise set to “OK”.  
         [0039]    As an example, the embodiment can be used to print personalized catalogs for a targeted marketing campaign by a mail order retailer. The retailer has a database (variable data source  34 ) containing profiles of its customers and a history of their purchases, i.e. customer relationship management (CRM) data. The retailer can employ a graphic designer to create a layout for personalized catalogs and store the layout as a template in repository  144 . The retailer may also capture images and descriptions of products and store them as resources in repository  144 . The customer information is extracted from the database of the retailers IT system by IT integration component  36 , reformatted if necessary by conversion component  38 , and stored in repository  144 . In turn, composition component  40  pulls the necessary resources from repository  144  and formats the personalized catalogs. The catalogs are then delivered to printer  142  for printing.  
         [0040]    The messaging of the embodiment permits a high level of integration between system components and external components. For example, each component can communicate data in real time to operations management component  32  to permit operations management component  32  to ascertain and report the status of each project at all times. Further, the system can interface with a customer IT system to cull data from the IT system for use as variable data. For example, CRM data can be queried on the customer system and used to create personalized documents as noted above. The messaging of the embodiment permits a high level of integration and automation. Accordingly, equipment and resources are utilized efficiently. Any type of messaging can be used. Any type of communication channels can be used to provide communication between the various equipment and components. For example the TCP/IP protocols can be used and the equipment can be coupled over a network, such as an Ethernet LAN or the Internet.  
         [0041]    Further, the messaging of the embodiment permits components and equipment to be replaced by other elements having similar functionality. Further, the workflow can be altered without affecting the components or equipment because the workflow is independent of the components and equipment. For example, the user may utilize any desired composition engine that is most suitable or most familiar to the user.  
         [0042]    The invention has been described through an embodiment and examples. However various modifications can be made without departing from the scope of the invention as defined by the appended claims and legal equivalents.