Abstract:
The systems and methods presented herein provide for processing print jobs in an Automated Document Factory (ADF) system. More specifically, these embodiments provide for the selected removal of certain documents after processing of the print job has already initiated (e.g., printing, sorting, inserting, etc.). In one embodiment, a method of processing print jobs through the ADF system includes receiving a print job from a host system via the ADF system. The print job comprises a plurality of documents. The method also includes initiating printing of the documents in the print job, and processing an instruction that identifies at least one document in the print job for removal after initiating printing of the print job. The method also includes removing the at least one document from the print job based on the instruction and processing the remaining documents in the print job through the ADF.

Description:
FIELD OF THE INVENTION 
     The invention relates to processing print jobs in an Automated Document Factory (ADF) system. 
     BACKGROUND 
     Production printing systems generally comprise a high-speed printer used for volume printing (e.g., capable of printing 100 pages per minute or more). Production printing systems are typically continuous-form printers that print on paper or some other printable medium that is stored on large rolls. Automated Document Factories (ADF&#39;s) provide functionality that enhances the performance of production printing systems by providing functional modules that govern the printing process. For example, an ADF may functionally address: input/output constraints; data transformation; delivery preparation of documents; and control/reporting of the production printing system itself. Because of this enhanced functionality, ADF&#39;s are preferred for numerous high-volume printing applications including mass-mail printing and newspaper printing. 
     Typically, a host system produces print jobs to be processed by an ADF for printing. Each host generated print job is a data file that typically contains a plurality of documents to be printed. For example, an organization may generate a print job to print thousands of bills in a single print job. The documents of each print job are often intended for delivery by mail or private carrier. In this regard, the ADF may also provide functionality to control the printing system and other downstream devices (e.g., an inserter) to ensure that the bills are properly printed and mailed to the appropriate people. 
     The host system transfers the print jobs to the ADF and adds the print jobs to a print queue of the ADF. Once the print jobs of the print queue have printed, it may be desirable for multiple print jobs to be placed together into a shared pool of print jobs to improve efficiency. For example, once a pool of print jobs reaches a certain size, it may be beneficial to sort the documents of the print jobs according to specific sorting criteria. To illustrate, an ADF user may receive a discount on postal processing by pooling multiple print jobs together for later sorting based upon zip code. When the pool is sorted, a higher zip code density is generally achieved for pools of multiple print jobs because there are more documents to sort according to the zip code than in a single print job. Mass mailings with higher zip code densities are preferred by the postal service and therefore receive delivery discounts. Thus, by pooling multiple print jobs for sorting and delivery, costs can be reduced. Examples of sorting categories include “USPS Pre-sort,” and “Private Carrier Ground Freight.” 
     Errors may enter print jobs in an ADF from a variety of sources. For example, ADF&#39;s may receive print jobs from older “legacy” host systems with outdated printer control/formatting functionality. Thus, these systems may occasionally generate print jobs that have undesirable errors that are sent to the ADF. Additionally, it is not uncommon for simple proofreading errors in any given print job to be detected by a user after a print job has already been sent to the ADF or even immediately before the documents are inserted into an envelope. Such events that create a need for document review are often unpredictable. Because print errors may be detected at very late stages in the printing process, ADF users desire methods to selectively remove documents from pools of print jobs for review and management. Unfortunately, no functionality exists to flag print jobs for review once the ADF has received the print job. 
     Additionally, users of an ADF may desire to provide special post-processing treatment for specific print jobs. For example, billing statements for high-value customers may be inserted into decorative envelopes instead of plain envelopes. Because customer accounts are not differentiated in incoming print jobs, identifying specific documents of a print job for special handling is a problem when the print job has already been received by the ADF. If a print job is not properly flagged for special post-processing before it is sent to an ADF, it may be improperly treated by an inserter and then re-printed (i.e., after detection of the error), resulting in wasted time and resources. 
     SUMMARY 
     Embodiments herein provide for processing print jobs in an Automated Document Factory (ADF) system. More specifically, these embodiments provide for the selected removal of certain documents after processing of the print job has already initiated (e.g., printing, sorting, inserting, etc.). In this regard, a method of processing print jobs through the ADF system includes receiving a print job from a host system via the ADF system. The print job comprises a plurality of documents. The method also includes initiating printing of the documents in the print job, and processing an instruction that identifies at least one document in the print job for removal after generation of the print job. The method also includes removing the document from the print job based on the instruction and processing the remaining documents in the print job through the ADF. 
     The instruction may include a document name, keywords within the document, the intended recipient of a given document, document size, author name, date the document was created. In this regard, the method may further include identifying a stage of processing of the document and transferring the instruction to the stage of processing of the document to remove the document from that stage of processing (e.g., printing, sorting, or inserting). 
     The various embodiments disclosed herein may be implemented in a variety of ways as a matter of design choice. For example, the embodiments may take the form of physical machines (e.g., a printer, an inserter, and a sorter), computer hardware, software, firmware, or combinations thereof. In another embodiment, a computer readable medium is operable to store software instructions for processing print jobs in through Automated Document Factory (ADF) system. These software instructions are configured so as to direct the datacenter or some other processing system to operate in the manner described above. Other exemplary embodiments may be described below. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       Some embodiments of the present invention are now described, by way of example only, and with reference to the accompanying drawings. The same reference number represents the same element or the same type of element on all drawings. 
         FIG. 1  is a block diagram of an ADF system in an exemplary embodiment. 
         FIG. 2  is a flowchart illustrating an exemplary process for processing print jobs via the ADF system of  FIG. 1 , in an exemplary embodiment. 
         FIG. 3  is a graphical user interface that is operable within a host system to alter processing of certain documents in a print job, in an exemplary embodiment. 
         FIG. 4  illustrates an exemplary computer system operable to execute computer readable medium embodying programmed instructions to perform desired functions. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     The figures and the following description illustrate specific exemplary embodiments of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within the scope of the invention. Furthermore, any examples described herein are intended to aid in understanding the principles of the invention, and are to be construed as being without limitation to such specifically recited examples and conditions. As a result, the invention is not limited to the specific embodiments or examples described below, but by the claims and their equivalents. 
       FIG. 1  is a block diagram of exemplary ADF system  107 . ADF system  107  may comprise any combination of production printing systems and control devices operable to process print jobs in an ADF environment (e.g., printing, inserting, and/or sorting documents of the print jobs). In this embodiment, ADF system  107  comprises datacenter  108 , printer  112 , sorter  114 , and inserter  116 . ADF system  107  receives the print jobs from host system  101  via network  106 . ADF system  107  may also receive instructions for processing those print jobs from host system  101 . For example, a user of host system  101  may enter instructions through user interface  102  to provide for special processing of the documents in a particular print job after ADF system  107  initiates processing of that print job. 
     Host system  101  may be a computer terminal, a computer workstation, a mobile computer, or other computing device. User interface  102  may be provided as a hardware device, software program, or internet application with host system  101 . User interface  102  displays/describes a variety of menu options and inputs for management of print jobs in the ADF environment. User interface  102  is operable to receive user input via an input device such as a keyboard, a mouse, or the like, and forward the user input to datacenter  108  via network  106 . The user input is provided for selection and alteration of print jobs that are currently being processed by ADF system  107 . Network  106  may comprise any functional communication medium for transferring the user input between datacenter  108  and user interface  102  (e.g., a wired network connection, a LAN, wireless LAN, the internet, a local system bus, or the like). 
     In this embodiment, user input from user interface  102  may include a variety of parameters for identifying documents within a print job. For example, user input may comprise a list of documents, a selection criteria (e.g., keywords within the document, the intended recipient of a given document, etc.) or a document property (e.g., document size, author name, date the document was created, etc.). User input may also include commands for altering or splitting a given print job within ADF system  107 . 
     Although illustrated in this embodiment as being a part of ADF system  107 , datacenter  108  may be implemented as an independent functional module or may be functionally integrated into host system  101  or network  106 . For example, datacenter  108  could reside on host system  101  as an application. Alternatively, datacenter  108  could be implemented as a processing system within the ADF system  107  alongside the printer  112 , sorter  114 , and the inserter  116  to manage data processing for the ADF system (e.g., processing of host generated print jobs). Datacenter  108  is operable to receive a print job from host system  101  and initiate processing of the print job within ADF system  107 . Print jobs received by datacenter  108  may encompass a variety of print formats, such as Advanced Function Printing (AFP), Portable Document Format (PDF), Page Description Language (PDL&#39;s), or others. Print jobs may alternatively comprise computer file formats that are converted before printing can occur. Datacenter  108  processes print jobs by directing printer  112  to print the print jobs, directing sorter  114  to sort the printed documents of the print jobs according to some predefined criteria, and directing inserter  116  to insert the printed documents into envelopes and/or provide additional materials to the printed documents. Datacenter  108  may also process feedback from printer  112 , sorter  114 , and inserter  116  to provide reporting capabilities to host system  101  regarding the processing by these modules. 
     Additionally, the ADF environment illustrated in  FIG. 1  is merely intended to be exemplary. ADF system  107  may be operable to process print jobs from a plurality host systems that are remotely located or even collocated with the ADF system. For example, ADF system  107  may be operated by a printing company that provides printing services to a plurality of large enterprises (e.g., such that billing expenses may be more easily isolated by those enterprises). Alternatively ADF system  107  may receive relatively large print jobs from a plurality of departments in an organization. Accordingly, the concepts demonstrated herein are not intended to limit the invention to any particular embodiment. 
     Printer  112  comprises any of a variety of high-volume printers (e.g., for the mass-printing of documents). In this regard, printer  112  is operable to receive and process print jobs from host system  101 , each print job comprising a plurality of documents (e.g., bills, customer statements, etc.). Inserter  116  is operable to combine the printed documents with inserts and/or place the printed documents into an envelope for mailing. Sorter  114  is operable to sort documents of the print jobs based upon a particular sorting category. For example, if a print job is flagged as “USPS Pre-Sort,” sorter  114  may group the print job with other print jobs that are also flagged as “USPS Pre-Sort.” Sorter  114  may be implemented as an independent machine, or may be implemented as a part of inserter  116 . 
       FIG. 2  is a flowchart illustrating a process  200  for managing print jobs of an ADF system in an exemplary embodiment. The process  200  is now described with reference to ADF system  107  of  FIG. 1 . However, those skilled in the art will appreciate that process  200  may be performed in other networks and systems. In this embodiment, host system  101  generates a print job for processing via ADF system  107 . Once generated, host system  101  transfers the print job to ADF system  107 . As mentioned, the print job is that of a high-volume production printing process and therefore includes a plurality of documents that are to be processed by ADF system  107 . In this regard, datacenter  108  receives the print job, in process element  201 , and initiates printing of the documents of the print job, in process element  202 . For example, datacenter  108  may prepare the print job for printing and then transfer the print job to a print queue of the ADF system  107  such that they may be printed by printer  112 . Thereafter, datacenter  108  may receive an instruction from host system  101  to halt processing of one or more documents in the print job. The instruction, when processed by datacenter  108 , in process element  203 , is operable to identify the documents in the print job for removal from the print job after printing has initiated (i.e., after being received by ADF system  107 . For example, a client/user of ADF system  107  may generate an instruction through user interface  102  of the host system  101  that includes information pertaining to a particular document that is to be removed from processing through ADF system  107  (i.e., remove from printing, sorting, inserting, etc.). User interface  102  may transfer this instruction to datacenter  108  such that datacenter  108  may identify and locate the document. The information used to identify the document may include a document name, a selection criteria (e.g., keywords within the document, the intended recipient of a given document, etc.), or a document property (e.g., document size, author name, date the document was created, etc.). 
     Datacenter  108  may use this information to determine what stage in processing the document is in (i.e., printing, sorting, inserting, etc.). Once the stage in processing is determined, datacenter  108  may transfer an instruction to the particular device in charge of processing the document to remove the document from that processing. For example, if a document is determined to be located in an inserter  116  (i.e., after printing), datacenter  108  may direct inserter  116  to remove the document from the insertion process. Thus, once the document is located generally anywhere in the processing of ADF system  107 , datacenter  108  removes or “suppresses” the one or more identified documents in the print job after ADF  107  has initiated processing of the print job, in process element  204 . Once removed from the print job, datacenter  108  directs the processing modules of ADF system  107  (i.e., printer  112 , sorter  114 , and inserter  116 ) to process the remaining documents of the print job, in process element  205 . 
     An instruction to remove a document from the print job may be received essentially any point in time after datacenter  108  begins processing the print job or even when the print job is being generated. For example, the user of host system  101  may recognize an error within one of the documents of the print job before the print job is to start printing on the printer  112 . The user may, at this point, transfer an instruction to datacenter  108  via user interface  102  to terminate printing of that particular document without interrupting the printing of the remaining documents in the print job. In another example, the print job may have completely printed on printer  112  and is ready for sorting via sorter  114  and/or inserting into an envelope via inserter  116 . Even after printing has occurred, the user may transfer an instruction to datacenter  108  to remove or “divert” certain documents from the print job. For example, as printed documents are being sorted by sorter  114 , datacenter  108  may process the instruction to divert the documents from scheduled processing of the print job such that the diverted documents may be prepared for special handling, manual review, or destruction. 
       FIG. 3  illustrates user interface  102  operable within host system  101  to alter processing of certain documents in a print job by name (e.g., field  303 ), in an exemplary embodiment. For example, a user through user interface  102  may generate an instruction to remove a particular document from a print job that is currently being processed by ADF system  107 . To assist in this regard, user interface  102  may provide information relevant to a document desired for removal that the user may select (e.g., a document name, keywords within the document, the intended recipient of a given document, document size, author name, date the document was created, etc.). The user may then transfer this instruction through user interface  102  to datacenter  108  such that datacenter  108  may locate the document within printer  112 , sorter  114 , or inserter  116  and remove the document from that processing. 
     User interface  102  may also provide the user with print job management to define, by print job type (also known as an application type; e.g., field  302 ) and for a given range of print job cycles (e.g., fields  304  and  305 ), which documents in the print job should be handled differently (diverted, specially handled, or removed; e.g., field  301 ). An entry in field  311  may be deemed “active” when all received work matching the print job and print job cycle range contains documents to divert (e.g., suppress or otherwise handle differently). For example, a monthly print job may include multiple bills, statements, etc. When the periodic print job is processed by ADF system  107 , the print job is compared to the entry in field  311  to determine whether or not the print job includes a document that is to be regularly diverted (e.g., suppressed). Accordingly, an entry in field  311  that is deemed “inactive” has no documents that are to be regularly diverted. 
     Additionally, user interface  102  may provide a “Manage” function via button  308 , which allows the user to import or define a list of account numbers. Button  307  allows the user to “Apply Now” and run a list against all documents queued in ADF system  107  that require diversion (e.g., individually select documents of a print job for special handling). The “Delete” button  309  allows the user to remove/suppress certain documents from processing via ADF system  107 . It should be noted that, when running against all documents in ADF system  107 , print jobs may be physically located anywhere in ADF  107  (e.g., printer  112 , sorter  114 , or inserter  116 ). 
     Depending on the location of a particular document in ADF system  107 , certain actions may also be recorded. For example, diverts/suppressions may be allowed up until generation of the inserter control file (ICF). The ICF controls how printed documents are inserted into envelopes for mailing (or folded as self enclosing mailers, etc.). However, after the ICF is created, the process may be deemed as a “late divert”. Accordingly, a report is generated to divert/suppress documents not originally in the ICF file. An inserter operator may then load this information into inserter  116  and update which files are to be diverted/suppressed. 
     As mentioned, embodiments disclosed herein can take the form of software, hardware, firmware, or various combinations thereof. In one particular embodiment, software is used to direct a processing system of the print controller  140  to perform the various operations disclosed herein.  FIG. 4  is a block diagram depicting a processing system  400  also operable to provide the above features by executing programmed instructions and accessing data stored on a computer readable storage medium  412 . In this regard, embodiments of the invention can take the form of a computer program accessible via the computer-readable medium  412  providing program code for use by a computer or any other instruction execution system. For the purposes of this description, computer readable storage medium  412  can be anything that can contain, store, communicate, or transport the program for use by the computer. 
     The computer readable storage medium  412  can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor device. Examples of computer readable storage medium  412  include a solid state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W), and DVD. 
     Processing system  400 , being suitable for storing and/or executing the program code, includes at least one processor  402  coupled to memory elements  404  through a system bus  450 . Memory elements  404  can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code and/or data in order to reduce the number of times the code and/or data are retrieved from bulk storage during execution. 
     Input/output or I/O devices  406  (including but not limited to keyboards, displays, pointing devices, etc) can be coupled to the system either directly or through intervening I/O controllers. Network adapter interfaces  408  may also be coupled to the system to enable computer system  400  to become coupled to other data processing systems or storage devices through intervening private or public networks. Modems, cable modems, IBM Channel attachments, SCSI, Fibre Channel, and Ethernet cards are just a few of the currently available types of network or host interface adapters. Presentation device interface  410  may be coupled to the system to interface to one or more presentation devices, such as printing systems and displays for presentation of presentation data generated by processor  402 . 
     Although shown and described with respect to automated processing of print job documents, such designations are merely intended to describe the general printing, sorting, and/or inserting of the documents. Accordingly, while specific embodiments are described herein, the scope of the invention is not limited to those specific embodiments. The scope of the invention is defined by the following claims and any equivalents thereof.