# Patent

## Title
Automatically editing print job based on state of the document to be printed

## Abstract

A method and related apparatus for processing print jobs, which automatically edits both the document to be printed and the job ticket based on a state or content of the document itself, without user intervention, to achieve certain printing effects such as inserting tab sheets of slip sheets, removing pages, inserting annotations, changing finishing settings, etc. In one specific example, by checking whether each page includes a specific key phrase or is associated with a specific bookmark, the document and the job ticket are automatically edited so that a tab sheet or slip sheet is inserted at a corresponding position. A program is also provided to emulate the result of the editing the print job and original document.

## Background
BACKGROUND OF THE INVENTION
Field of the Invention
This invention relates to a method of managing print jobs, and in particular, it relates to a method of automatically editing the document and the job ticket of the print job to achieve certain printing effects.
Description of Related Art
In a print shop system, a print job refers to the combination of a document to be printed and a job ticket which contains parameters defining the print and/or finish settings for the print job. The job ticket is a separate file from the document to be printed and is associated with the document and managed by the print shop management system. In practice, there are often situations when tab sheets, slip sheets, etc. (collectively referred to as “separating sheets” in this disclosure) need to be inserted into the printed materials, when the original print job does not contain such sheets. To achieve this with a conventional print job management system, a print shop operator needs to manually edit print settings in the job ticket and/or the document of the print job in order to insert each of the separating sheets. For example, if a customer submits a PDF document that contains multiple articles, and requests that a tab sheet be inserted between adjacent articles, the print shop operator will need to edit the PDF document to add the tab sheets, and edit the job ticket to specify the attributes of the tab sheet. Such an operation is time-consuming. The operator must pay attention in order to prevent improper input when editing print settings in a job ticket. However, operator errors can occur, which can produce unnecessary printed materials and waste time, papers and toner.
SUMMARY
Accordingly, the present invention is directed to a print job editing and management method and related apparatus that substantially obviates one or more of the problems due to limitations and disadvantages of the related art.
An object of the present invention is to automatically edit a document to be printed and the associated job ticket to achieve desired goals.
Additional features and advantages of the invention will be set forth in the descriptions that follow and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
To achieve these and/or other objects, as embodied and broadly described, the present invention provides a method for processing print jobs implemented on a print server, which includes: (a) obtaining a print job, which includes a document to be printed and an associated job ticket; (b) determining whether each page of the document contains a predefined key phrase or is associated with a specific bookmark; and (c) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark, automatically editing both the document to be printed and the job ticket based on content of the key phrase or the bookmark.
In one embodiment, when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates insertion of a separating sheet, the method automatically adds a new page to the document at a position corresponding to the given page and edits the job ticket to insert a separating sheet to the print job at the position corresponding to the given page.
In another aspect, the present invention provides a computer program product comprising a computer usable non-transitory medium (e.g. memory or storage device) having a computer readable program code embedded therein for controlling a data processing apparatus, the computer readable program code configured to cause the data processing apparatus to execute the above method.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic block diagram showing a system in which embodiments of the present invention may be implemented.
FIG. 2 schematically illustrates a server of the system shown in FIG. 1.
FIG. 3 schematically illustrates a client of the system shown in FIG. 1.
FIGS. 4-7 schematically illustrate a display screen generated by the client according to an embodiment of the present invention.
FIGS. 8-13 schematically illustrate a process executed by the server to edit a document and associated job ticket using a workflow according to an embodiment of the present invention.
FIG. 14 schematically illustrates a process executed by the client to emulate the printing result for a document according to an embodiment of the present invention.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Embodiments of the present invention provide a system and method to automatically edit a job ticket (i.e. print settings) and an original document, based on a state or content of the document itself, without user intervention. In one specific example, by checking whether each page includes a specific key phrase or is associated with a specific bookmark, the document and the job ticket are automatically edited so that a tab sheet or slip sheet is inserted at a corresponding position. A program is also provided to emulate the result of the editing the print job and original document.
FIG. 1 is a schematic block diagram showing a system in which embodiments of the present invention may be implemented. The system includes a print server 10, a client 20 and multiple printers 30a, 30b etc. of a print shop, connected to each other by a network 40 (e.g., the internet). As shown in FIG. 2, the server 10 may be a desktop computer maintained by the print shop, and includes a CPU 11, memory 12, input unit 13, display unit 14, and network interface unit 15. The memory 12 stores a workflow management program 121 which may be executed by the CPU 11. As shown in FIG. 3, the client 20 may be a computer of a customer of the print shop, and includes a CPU 21, memory 22, input unit 23, display unit 24, and network interface unit 25. The memory 22 stores an editor program 221 (e.g., Adobe Acrobat) and a plug-in program 222 for the editor program. The plug-in program may be provided from the server 10. The customer can prepare a document to be submitted to the print shop by using the editor program 221 and the plug-in program.
As shown in FIG. 2, the workflow management program 121 store in the server 10 includes a node database 122 and a workflow database 123. Each node in the node database 122 is a program modules that performs defined functions, and multiple nodes in a sequence can form a workflow. The functions of the nodes are as follows.
Input node: This node monitors a predetermined file folder, and forwards a document to the next node in response to detecting the fact that the document has been input to the predetermined folder.
Insert node: This node checks whether each page of the document contains a specific keyword, clause and/or sentence (collectively referred to as predefined “key phrase” in this disclosure), or is associated with a specific bookmark. When a given page contains predefined key phrase or is associated with the specific bookmark, the node automatically adds a new page to the document and edits the associated job ticket, so that a separating sheet (tab sheet, slip sheet, etc.) is inserted at the corresponding position.
Remove node: This node checks whether each page of the document contains a predefined key phrase or is associated with a specific bookmark. When a given page contains the predefined key phrase or is associated with the specific bookmark, the node automatically deletes the page from the document.
Annotate node: This node checks whether each page of the document contains a predefined key phrase or is associated with a specific bookmark. When a given page contains the predefined key phrase or is associated with the specific bookmark, the node automatically adds a watermark, a logo mark or other annotations on the page.
Finishing (post-processing) node: This node checks whether each page of the document contains a predefined key phrase or is associated with a specific bookmark. When a given page contains the predefined key phrase or is associated with the specific bookmark, the node edits the associated job ticket, so that finishing operation (e.g. staple, punch or binding) is performed for the page.
Validate node: This node checks whether a plug-in which was used when editing the document by the client is consistent with a workflow by which the document is being processed. When the plug-in is not consistent with the workflow, the node notifies the fact to an operator of the print shop.
One type of predefined key phrase may be words naturally occurring in the original text of the document to be printed, such as “chapter”, “appendix”, etc. If necessary, the document to be printed may be processed by OCR (optical character recognition) to extract searchable text. Another type of key phrase may be key phrases inserted into the document to be printed ay its editor, such as the term “tab sheet”. In other words, the editor of the document can insert words such as “tab sheet” in the document to indicate that a tab sheet is to be inserted when the document is printed.
Workflows may be created on the server, each workflow being formed of plural nodes in a defined sequence, with various setting parameters for each node. The setting parameters may include, for example, the predefined key phrase or specific bookmarks that are checked by the node. For the insert node, the setting parameters may include paper attributes such as paper type and color for the tab or slip sheets, the position and size of the tabs of the tab sheets (for examine, the bank count of the tabs such as “six tabs evenly distributed along the side”), etc. For the annotate node, the setting parameters may include the location of the annotation to be inserted on the pages, etc. For the finishing node, the setting parameters may include finishing type such as stapling with a number staples, punching with a number of holes, and folding with its type like z-fold, half letter fold, etc.
The workflow management program 121 may implement a graphical user interface (GUI) that allows an operator (preferably an administrative operator of the print shop system) to build a workflow by dragging and dropping icons representing nodes and inputting the setting parameters.
The workflow database 123 stores information of each workflow that has been created. The workflow information for each workflow includes node IDs of the nodes, the order of the nodes, and the setting parameters for each node. The workflow management program 121 manages the generated workflows and executes them. Workflows can be executed on print jobs to process the documents and their associated job tickets before printing. A workflow, after it is defined, can be re-used to process different print jobs.
Note that constructing workflows using sequences of nodes is a known technique in existing print shop systems. However, some specific nodes described above, such as insert, remove, annotate, finishing, and validate, are developed by inventors of the present invention.
The workflow information is also used by the workflow management program 121 or by the client 20 (e.g. the plug-in program 222) to emulate functions of nodes included in the workflow, which allows the user (customer or print shop operator) to preview the effect of the workflow on the document. To emulate the effect created by the various nodes, the plug-in program 222 on the client contains program modules that correspond to the nodes implemented on the server to emulate the effect of these nodes. To enable the plug-in program to emulate a workflow, the server creates plug-in information which corresponds to the workflow information and transmits it to the client, so that the plug-in program can use it to perform the emulation on documents.
The function of the plug-in program 222 on the client 20 is described with reference to the examples shown in FIGS. 4-7. FIG. 4 illustrates a display window 40 of the editor program 221 which the user at the client computer (the customer) is using to edit the document to be submitted for printing. A page of the document is displayed in the area 43. The editor program 221 (or alternatively, the plug-in program 222, if the editor program itself does not have an editing function) also enables the user to edit the document, such as to add a keyword (e.g. “tab sheet”) to a page or add a bookmark, so that the keywords or bookmarks can later be detected and processed by the workflow program.
The window 40 displays an icon 41, which can be clicked to activate the plug-in program 222. When the user clicks on the plug-in icon 41, a menu window 42 for selecting a workflow is opened. In the menu window 42, a number of workflows managed by the server are listed. When the user selects a workflow to which the document will be input, the client receives corresponding plug-in information from the server. Note that regardless of which page of the document is being displayed, the workflow selection is for the entire document.
The plug-in program changes display screen of each page by emulating functions of the workflow based on the plug-in information (including the setting parameters for each node) and the state of the page, i.e., whether a specific predefined key phrase is contained in the page or a specific bookmark is associated with the page.
FIG. 5 is an example of a preview window 40 showing an emulation of a tab sheet (an added page) that will be inserted by the insert node. The content of the window dynamically changes by modification of the document; for example, when the customer adds a bookmark for a tab sheet on a page, the plug-in program emulates the function of the insert node which detects such a bookmark, and displays an emulated tab sheet accordingly. When the user deletes this bookmark, the emulated tab sheet disappears accordingly. The contents of the bookmark may be reflected on the emulated tab sheet page as indicated by added text 51 and 52. In addition, the display window 40 also displays a list of bookmarks 53 in the document, and the bookmark that caused the current tab sheet to be added may be highlighted.
FIG. 6 is an example of a preview window 40 showing an emulation of a page of the document that will be modified by the annotate node. Annotation 61 is added on the page. The keyword on the page that caused the annotation to be added may be highlighted as indicated at 62.
FIG. 7 is an example of a preview window 40 showing an emulation of a page for which print setting will be modified by the finishing node. In this example, the finishing setting is three-hole punch 71 in the left margin. The display window 40 also displays a list of bookmarks 72 in the document, and the bookmark that caused the changes in the print setting may be highlighted.
The process executed by the server is described in detail below with reference to FIGS. 8-13. FIG. 8 shows the overall process flow, and FIGS. 9-12 show the process of the various nodes.
The server creates a new workflow in response to commands from the operator of the print shop system, and stores workflow information inputted by the operator in the workflow database (this step is not shown in FIG. 8). After creating a workflow (“yes” in step S101), the server creates corresponding plug-in information and stores it in a plug-in information database (step S102). The plug-in information is information that will be used by the plug-in program of the client to emulate the effect of the newly created workflow, and contains setting parameters corresponding to those in the workflow, as well as node IDs and the order of the nodes.
In response to a request from the client for updated plug-in information (step S103), the server sends the requested plug-in information to the requesting client (step S104). The manner of sending the plug-in information will be described in more detail later.
In steps S105-S116, the server executes a corresponding process, e.g. insert, remove, annotate, post-process, and validate, when a document is inputted to each node included in a workflow.
After the print job (the document and the job ticket) is processed using the workflow, the print job can be submitted to a printing device and/or finishing device to print the document according to the settings specified in the job ticket.
The process of the insert node is shown in FIG. 9. The server selects the first page of the input document (step S201), and checks whether the page contains predefined key phrase or is associated with a specific bookmark (step S202). When the page contains predefined key phrase or is associated with a specific bookmark (“yes” at step S202), the server creates a separating page at the corresponding position of the document (step S203), and also edits the job ticket associated with the document (step S204) so that a separating sheet can be inserted at the corresponding position.
The separating page generated in step S203 may contain text or other labels according to the settings in the workflow information. The text or other label contained in the separating sheet may also dependent on the content of the document itself; for example, the tab may contain a chapter number which is extracted from the content of the document or the bookmark.
In step S204, the modification of the job ticket includes, for example, setting the paper attributes (paper name, paper type, paper color, paper weight, paper size, etc.) for the separating page, tab settings (e.g. bank count), etc.
The process then determines whether there is an unprocessed page and if there is (“yes” at step S205), the server select next page (step S206) and then returns to step S202. If there is no unprocessed page (“no” at step S205), the server forwards the document to the next node (S207).
The processes of the remove, annotate and finishing nodes, illustrated in FIGS. 10-12, are generally similar to the process of the inert node shown in FIG. 9, except that steps S203 and S204 in FIG. 9 are replaced by step S303, remove corresponding page(s) from of document, step S403, annotate the present page using the key phrase, and step S503, modify setting parameters of job ticket corresponding to the present page, respectively.
In steps S203, S303 and S403, the document itself is modified. In steps S204 and S503, the job ticket is modified.
The process of the validate node is shown in FIG. 13. The server evaluates what plug-in program was used when the document was edited (step S601). This is done by reviewing the metadata of the document, as the plug-in writes descriptive information about itself into the metadata of the document. The server then checks whether the plug-in used to edit the document is consistent with the present workflow (step S602). If the plug-in used for the document is not consistent with the present workflow, the server notifies the fact to an operator of the print shop (S603).
The process executed by the plug-in program 222 of the client when editing a document is described below with reference to FIG. 14. When the client received user selection of a workflow (“yes” in step S701), the client send a request to the server to request plug-in information corresponding to the workflow that user selected (step S702). When the client received the plug-in information from the server (“yes” in step S703), the client updates the plug-in program or locally stored plug-in information based on the received information (S704). The client then executes the plug-in program based on the plug-in information corresponding to the selected workflow and displays the resulting pages on the screen (step S705). This step also includes editing the document based on the user input (if any), such as adding the predefined key phrase to certain pages, adding specific bookmarks, etc., so that the key phrase and bookmarks can be detected by the nodes when the server processes the print job using the workflow.
In step S705, the plug-in program emulates the result of the various nodes in the selected workflow, for example, by displaying a tab sheet (see FIG. 5), annotation on a page (see FIG. 6), finishing effects (see FIG. 7), etc. Note that for purposes of displaying the emulated effects of the workflow, the plug-in program does not actually modify the document or the job ticket; it only emulates the effect of the workflow for the user to preview.
The purpose of steps S702-S704 is to ensure that the plug-in information used by the plug-in program to perform emulation is consistent with the selected workflow on the server. In some cases, the client already has the up-to-date plug-in information corresponding to the selected workflow, so in step S703 the client does not receive updated plug-in information. This can be accomplished, for example, by the server keeping a timestamp for the plug-in information that has already been sent to the client and determining whether updated plug-in information has been generated since that time. When updated plug-in information is to be sent to the client, it may be accomplished in a variety of ways.
In a first method, the plug-in program is already installed on the client, and it contains various program modules that emulate the effect of the corresponding nodes. When a new workflow is created, the server also creates plug-in information corresponding to the workflow, and sends the plug-in information to the client. In a second method, the server creates plug-in information corresponding to the selected workflow, embeds the plug-in information in the plug-in program, and then sends the plug-in program to the client which will replace any existing plug-in program on the client. In the third method, the server creates a plug-in program which contains only modules corresponding to nodes contained in the selected workflow, as well as the corresponding plug-in information, and sends the plug-in program to the client, and the client uses this plug-in to emulate the specific workflow that the user selected.
Another workflow example operates on a print job that includes plural documents associated with single job ticket, to create the result of inserting a separating sheet between different printed documents. In this workflow, the input node receives a set of plural documents as input of a single job, and the insert node inserts a separating sheet at the end of each document (except for the last document).
It will be apparent to those skilled in the art that various modification and variations can be made in the print job editing method and related apparatus of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover modifications and variations that come within the scope of the appended claims and their equivalents.

## Claims

1. A method for processing print jobs implemented on a print server, comprising:
(a) obtaining a print job, which includes a document to be printed and an associated job ticket;
(b) determining whether each page of the document contains a predefined key phrase or is associated with a specific bookmark;
(c) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark, automatically editing both the document to be printed and the job ticket based on content of the key phrase or the bookmark; and
(d) after step (c), submitting the print job to a printing device to be printed;
wherein step (c) includes at least one of:
(c1) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates insertion of a separating sheet, automatically adding a new page to the document at a position corresponding to the given page and editing the job ticket to insert a separating sheet to the print job at the position corresponding to the given page,
(c2) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates removal, automatically removing the given page from the document,
(c3) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates annotation, automatically adding an annotation to the given page based on content of the key phrase or the bookmark, and
(c4) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates a finishing effect, automatically editing the job ticket to specify the finishing effect for the given page.

2. The method of claim 1, wherein the separating sheet is a tab sheet or a slip sheet.

3. The method of claim 2, wherein in step (c), the job ticket is edited to specify paper attributes or tab settings or both for the separating page.

4. The method of claim 1, wherein the print job includes a plurality of documents to be printed and an associated job ticket, the method further comprising:
automatically editing at least some of the plurality of documents to insert a new page at the end of each such document; and
automatically editing the job ticket to insert a plurality of separating sheets to the print job at positions after each of the at least some of the plurality of documents.

5. The method of claim 1, wherein step (c) includes:
when a given page is determined to contain the predefined key phrase, the predefined key phrase being words naturally occurring in original text of the document to be printed, automatically editing both the document to be printed and the job ticket based on content of the key phrase or the bookmark.

6. A computer program product comprising a computer usable non-transitory medium having a computer readable program code embedded therein for controlling a server, the computer readable program code configured to cause the server to execute a process for processing print jobs, the process comprising:
(a) obtaining a print job, which includes a document to be printed and an associated job ticket;
(b) determining whether each page of the document contains a predefined key phrase or is associated with a specific bookmark;
(c) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark, automatically editing both the document to be printed and the job ticket based on content of the key phrase or the bookmark; and
(d) after step (c), submitting the print job to a printing device to be printed;
wherein step (c) includes at least one of:
(c1) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates insertion of a separating sheet, automatically adding a new page to the document at a position corresponding to the given page and editing the job ticket to insert a separating sheet to the print job at the position corresponding to the given page,
(c2) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates removal, automatically removing the given page from the document,
(c3) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates annotation, automatically adding an annotation to the given page based on content of the key phrase or the bookmark, and
(c4) when a given page is determined to contain the predefined key phrase or is associated with the specific bookmark that indicates a finishing effect, automatically editing the job ticket to specify the finishing effect for the given page.

7. The computer program product of claim 6, wherein the separating sheet is a tab sheet or a slip sheet.

8. The computer program product of claim 7, wherein in step (c), the job ticket is edited to specify paper attributes or tab settings or both for the separating page.

9. The computer program product of claim 6, wherein the print job includes a plurality of documents to be printed and an associated job ticket, the method further comprising:
automatically editing at least some of the plurality of documents to insert a new page at the end of each such document; and
automatically editing the job ticket to insert a plurality of separating sheets to the print job at positions after each of the at least some of the plurality of documents.

10. The computer program product of claim 6, wherein step (c) includes:
when a given page is determined to contain the predefined key phrase, the predefined key phrase being words naturally occurring in original text of the document to be printed, automatically editing both the document to be printed and the job ticket based on content of the key phrase or the bookmark.