Abstract:
In one embodiment there is disclosed an application program in which a document is created containing complex rendering codes which codes identify locations within the document where material other than the basic medium is to be inserted or where special treatment is required. These rendering codes control, for example, the insertion of tabs, special attributes of the tabs, such as color, printing, etc, the type of binding the document is to have, the type of printing, the type of assembly, the downloading of material from other sources, the tailoring of portions of the document to the end user, etc. During the rendering process the rendering codes are used to insure that the finished product is rendered exactly as contemplated by the document creator even when the document is rendered without assistance from the creator and without the need for communicated directions outside of the created document.

Description:
TECHNICAL FIELD 
   This invention relates to electronic document printing and more particularly to systems and methods for associating with an electronic document assembly instructions such that when the document is printed it can be assembled based on instructions associated with the document. 
   BACKGROUND OF THE INVENTION 
   It is now becoming commonplace to send electronic documents to printers for rendering a final printed product. This works well when the document is a simple document having no assembly requirements other than to possibly staple each copy together. Often, however, complex documents are created which require assembly such as, for example, tabs inserted between certain sections, special types of bindings, different paper colors for different sections, added exhibits, etc. 
   When it is desired to print such complex documents at remote sites a problem exists in communicating the precise manor as to how the complex document is to be assembled. Further problems exist when the assembly process itself requires additional printed material. Thus, for example, when the tabs (or other section separators) must have special printing thereon it is difficult to communicate all of the desired assembly information to a remote source for the proper assembly of the complex document. 
   Since many documents must be delivered to third parties at remote locations it is important to be able to print and assemble such documents at such remote locations. In fact, commercially available application programs that are used to create documents have embedded in them a myriad of formatting and other control codes that allows, for example, the paper size, tabs, line spacing, font size, font style, etc to be controlled at the time of printing the document. Thus, it is easy to send a document from a creating user to a recipient and when the recipient prints out the document (or views it on a screen) the look and feel of the document is presented as the creating user determined it should be. However, today that same ease of electronic communication does not exist for complex documents. Accordingly, if a complex document is created at a first enterprise it is necessary to assemble that document at that first enterprise and then mail (or courier) the document to a second enterprise. This is so because it is not practical to ask the recipient (who could be a sales prospect, a Governmental institution, or even a friend) to, for example, print a document, create different color tabs having certain markings on each tab, insert paper of a certain color ahead of each section, bind the document in a certain way, etc. The problem is compounded when it is required to add information to the document just prior to printing or assembly of the document. 
   BRIEF SUMMARY OF THE INVENTION 
   In one embodiment there is disclosed an application program in which a document is created containing complex rendering codes which codes identify locations within the document where material other than the basic medium is to be inserted or where special treatment is required. These rendering codes control, for example, the insertion of tabs, special attributes of the tabs, such as color, printing, etc, the type of binding the document is to have, the type of printing, the type of assembly, the downloading of material from other sources, etc. 
   During the rendering process the complex rendering codes are used to insure that the finished product is rendered exactly as contemplated by the document creator even when the document is rendered without assistance from the creator and without the need for communicated directions outside of the created document. 
   The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. The novel features which are believed to be characteristic of the invention, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present invention. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which: 
       FIG. 1  illustrates one embodiment of a system in which a creating user at a first location sends a complex document to a second location for rendering; 
       FIG. 2  is a process diagram showing one embodiment of a system and method for sending a document to a central control point for printing at a remote location; 
       FIG. 3  shows a process diagram illustrating one embodiment of a system and method for receiving a document for rendering; 
       FIG. 4  shows a process diagram illustrating one embodiment of a system and method for rendering a complex document. 
       FIG. 5  is a chart showing one embodiment of complex rendering codes used to control the rendering of a document; and 
       FIG. 6  illustrates one embodiment of a complex document rendered using the system and methods disclosed herein. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1  illustrates one embodiment of system  10  in which a creating user, for example at PC  11  at a first location, sends a complex document, such as, for example, document  60  shown in  FIG. 6 , to a second location for rendering. For purposes of discussion, a complex document is one that, in addition to the material (text, graphs, charts, etc) created by the user, will have other material added to it at the time the document is rendered, i.e. put in final form ready for an end-user. Such other material can be any type of material other than the material being used for actually printing the document being rendered. By way of example, separators (such as tabs), different colored paper, bindings, packaging, inserting of material from other sources, such as, for example, from a cite on the Internet, or from a different printing run, are all examples of “other” material forming a complex document. 
   The creating user could use an application program, such as application program  101 , to create the document and the application program can have built into it the complex rendering codes, as will be discussed with respect to  FIG. 5 , which codes control the rendering of complex documents. The creating user could also simply add the complex rendering codes to a header or footer of the document with reference to where in the document the complex rendering code pertains. 
   After the document is created, that document is sent using any interface, such as interface  12 - 1  to a specific location, such as interface  12 - 2 , for subsequent rendering. The interface can be wireless or wire line and will most likely be an Internet or other publicly available network, but it could also be a private network, The document could be communicated directly by the creating user to a certain destination, or, as shown by process  20 ,  FIG. 2 , could be to a central destination (process  201 ) such as a website for a rendering service. In such a situation, the document would be sent to the central destination and process  202 , running at the selected central destination in conjunction with process  203  would then direct the document to a particular one of its locations via process  204 , for ultimate rendering and perhaps delivery to a final destination. As will be detailed, the precise manner in which the document is ultimately rendered is controlled, at least in part, by the complex rendering codes associated with the document. 
   Returning now to  FIG. 1 , at the rendering location a processor, such as processor  14 , including, perhaps a PC, controls the storing of the communicated document, together with the complex rendering codes associated therewith in, for example, memory  13 . When it is time to render the document the processor directs printer  15  (which could, in some situations be a computer screen of a document receiving party), assembly control  16 , remote information control  17  and, if desired, delivery control  18 . Remote information control  17  can, for example, obtain the latest information from a third party source for insertion into a document. Depending upon the information content of the obtained information and the complex rendering codes associated with the document, the text of the document might be changed to use alternate text. 
   By way of example, assume that a recipient user goes to a web site to down load information pertaining to travel in, say France. Included in the downloaded information could be, for example, hotel room rates. The actual rate shown would be the rate available when the document (web site) was established. Using the concepts discussed herein, when it is time to render the document, i.e., deliver the document (or screen information) to a requesting user, the system would know, because of the complex rendering codes associated with the document, to go and obtain the latest room rate and the latest currency converter information for insertion into the rendered document. Thus, when the requesting user views, or prints, the rendered document the latest information would be contained therein, including the actual up to the minute costs to the user. The cost could even be adjusted for the time of the actual stay instead of for the time of booking, if desired. The system could, if desired, and based upon the location of the user at the time of the request, convert the cost into the currency of the user, or the cost could be stated in the currency of the country where the document is rendered. 
   This same scenario would occur when a requesting user asks for, or when a system is ready to print, a document that is to be delivered to an addressee identified by the creating user. Thus, when the document is being rendered in final form, the system would, under direction of instructions associated with the document, obtain updated information for insertion in the document. Also, if desired, alternative language (pictures, currency, directions, rates, times, etc) could be used in the document depending upon the contents of the updated information and/or depending upon the location of the rendering or the location of the requester of the document. 
     FIG. 3  shows a process diagram illustrating one embodiment  30  of a system and method for receiving a document (process  301 ) for rendering. Process  302  checks to see if the document has associated with it any complex rendering codes. These rendering codes could be contained within the body of the document at the location where the instruction is to be carried out, or the rendering codes could be all in one place or could even be in an auxiliary document associated with the document to be rendered. For example, the document to be rendered could be in a self-contained file, such as a text, file. The text file would have a name. The auxiliary file could contain the complex codes and each code would refer to the name of the document to which it pertains and would indicate to the assembly process the page and the “other material” that is required at that specific location within the text file. 
   If process  302  determines that this is a straight print job (not a complex print job) then nothing further need be done other than to print the document at the appropriate time. However, if process  302  determines that there are complex rendering codes associated with the document then process  303  captures the codes and insures that the codes are stored in association with the proper file. In situations where the codes are already in association, process  303  insures that the system knows that when this job is to be printed it is a complex job that will require additional processing. 
   Process  304  determines whether or not there are delivery instructions with the rendering job when the job is fully rendered. If so, these instructions are also captured, if necessary to insure proper marking for accurate delivery when rendering is complete. Note that one or more of steps  303 / 304  can be omitted in situations where the codes are contained in the file, so long as the proper processing is accomplished by the system. 
     FIG. 4  shows a process diagram illustrating one embodiment  40  of a system and method for rendering a complex document. Process  401  controls when it is time to render a document. This can be as soon as the document has been received, or after the passage of a certain time, or at a certain time of day. This decision can be made by the remote location or can be a mutual decision and can, if desired, be triggered by codes in the document, or transmitted in association with the document. One or more of the complex rendering codes can be used for this purpose if desired. 
   One delay could be, for example, to wait until a certain report or piece of information becomes available on the Internet. Thus, assume a complex document is to be rendered having in it a graph (latest interest rate, etc) that is not available at the time the document is created, or which changes from time to time. Process  401 , perhaps in conjunction with process  404 , determines when it is appropriate to render the document. Note that, as controlled by process  407 , this same document may be rendered periodically with certain words changed based on the results of information not available when the document was first created or based on the location of the recipient. These word changes can be in the form of alternative language, etc. based on the results of external events. The external events could be, for example, information from a specific web site, the day of the week, the year the document is being rendered, the country or location of rendering, the time zone, etc. The information could be any type of updated information, such as interest rates, currency conversion, hotel rates, latest prices of any commodity, corporation officers, political office holders, etc. 
   By way of example, using the system and methods discussed herein, governmental or corporate literature or web sites need not change when there is a new office holder. Also, price lists could be printed without regard to whether they were out of date since the rendering codes associated with the document would control the insertion of the latest information in the rendered document by directing the system to the proper location to find that latest information. The system then could be used to print price lists, etc, around the world and the proper prices for each country would be inserted when rendered. If conversion rates were necessary these also could be added at the time the document is rendered. 
   Process  402  determines if this document is a complex document. If not, the document is printed (process  403 ) in the normal fashion and process  412  determines if there are delivery instructions. If so, the instructions are created and delivery process  414  begins. If not, process  413  holds the job for pickup. 
   If process  402  determines that this is a complex rendering job, process  404  determines what special material, procedures, information, etc, is required. Process  405  takes whatever steps are appropriate to obtain all necessary supplies, information, etc and when everything is ready, process  406  checks to determine if alternative text is to be substituted. If so, the alternative text is obtained, sometimes dependant upon the country of ultimate delivery, or based on the country from which the request for the document originated. Process  408  makes the proper changes and the job is printed. 
   Process  410  assembles the complex document and depending upon the types of assembly this can be manually, partially manually and partially automated or fully automated, all controlled, at least in part, by the rendering codes associated with the document. When the complex document is fully assembled, as controlled by process  411 , process  412  is entered to determine delivery instructions as discussed above. 
     FIG. 5  is a chart showing one embodiment  50  of complex rendering coding used to control the rendering of a document. Chart  50  shows one version of coding in column  506  prefaced with a special code to designate that which follows is a complex code. Any type of code or marker can be used and the ones shown are for illustrative purposes only and the creator of any application program that would be used to facilitate the concepts discussed herein would use codes which are compatible with other codes, such as format codes, already in the application program. If the rendering codes are embedded within the document then their position in the document will control where the action is to be taken. However, if the code is transmitted separate from the document or as a portion of the document but not imbedded in a dispersed manner, then the code would point to the document it pertains to (column  507 ) as well as to the page it pertains to (column  508 ). Note that codes for many documents can be contained in a single document so long as the document to which each code pertains is included. 
   In the embodiment shown, column  501  is the item to be controlled, column  502  gives the color, column  503  the style, column  504  size, and column  505  miscellaneous attributes. Note that these are only representative of the vast number of items that can be added during final rendering of a document. 
   Rows  510  and  511  show different paper colors where color white begins with page  1  and blue begins on page  20  (column  508 ) of the document. Row  512  calls out that separators are to be after pages  3 ,  8 ,  12 , and  19  (column  508 ) and the separators are in the form of tan (column  502 ) and tabs (column  503 ). Row  513  shows that the whole project is to bound with a binder (row  513 ) without insert (column  514 ) and then wrapped in clear plastic (row  515 , columns  502 ,  503 ). Row  516  calls for the rendered project to be held until Tuesday (column  505 ). Row  517 , column  505  gives instructions as to where additional information is to come from, such as “go to XYZ @info.com” and row  518  controls alternative documentation that is to be used, perhaps based on information obtained from “XYZ @info.com”. As shown in column  507 , all of the instructions in this chart are for the document named “txt.1”. 
     FIG. 6  illustrates one embodiment of a complex document  60  rendered using the system and methods disclosed herein. As shown, document  60  comprises text (or graphs or other material)  61  having tabs  62  with writing on the tabs. The rendered document has a clear plastic binder  64  with a pressure spine binding  63 . The final rendered complex document will be printed, the tabs printed and inserted at the proper locations, the exhibits will be added, one of which comes from an internet location, all under control of the complex rendering codes associated with the document. 
   Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.