Abstract:
A system and method for document distribution that only requires a single generic driver on a computer workstation. When a destination is selected, the generic driver searches the computer workstation&#39;s registry and executes a dynamic link library for obtaining the data necessary for the output to be processed by the destination. The generic driver then sends the output to a server which parses the file and formats the output so that it can be processed by the destination and forwards the output to the destination.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates generally to document distribution and more particularly to a module that provides the capability to send a document to multiple destinations.  
           [0002]    Typically when sending an output to a device, a driver for that device must be loaded on the computer workstation that is sending the output. A driver is software program that enables other programs to work with a particular device without concerning themselves with the specifics of the device&#39;s hardware and internal language. In the case where a computer workstation is connected to several devices, a separate device driver is required for each device. In the case of a network where the output devices may be shared, the driver for each device must be loaded on each computer workstation on the network. When the driver software is updated, then each computer workstation on the network must be upgraded which can be a time consuming administrative task, especially on large networks.  
           [0003]    It is often desirable to send an output to multiple destinations. Often the destinations are different devices, such as a fax, e-mail, and printer. Normally, a user at a computer workstation would have to manually send the output to each device as each device has a different driver and requires different input parameters to direct the output. For example, a fax machine typically needs the telephone number of the destination, a network printer may need information for a cover page, and an e-mail program may need the e-mail address of the recipients.  
           [0004]    Thus a need exists for a simple method that enables a computer workstation to easily send an output to multiple destinations. It is also desirable to ease the administrative overhead by only requiring a computer workstation to use a single driver to interface with the output devices.  
           [0005]    Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The objects and advantages of the invention may be realized and attained by means of instrumentalities and combinations particularly pointed out in the appended claims.  
         BRIEF SUMMARY OF THE INVENTION  
         [0006]    In view of the aforementioned needs, the invention contemplates a method and system wherein a single generic driver is installed on a computer workstation for handling all output requests. For each output device, there is a dynamic link library, for example GUI.DLL, available on the computer workstation for obtaining the necessary parameters needed by the output device. The generic driver obtains the location of the particular dynamic link library via the computer workstation&#39;s system registry.  
           [0007]    Once an output is requested, the generic driver is invoked. The generic driver requests a destination for the output. Upon receiving a destination, the generic driver searches the system registry for a dynamic link library associated with the selected output destination. The dynamic link library is then executed and obtains parameters necessary for the output destination device and stores them in a file. The generic printer driver then reads the file with the stored parameters and generates an output file containing the output and commands based on the parameters for the server to process the output file. The output file is then sent to the server. The server then parses the output file, processes the file like a driver so that the output is in the proper format for the destination, and then sends the output to the selected destination.  
           [0008]    Among those benefits and improvements that have been disclosed, other objects and advantages of this invention will become apparent from the following description taken in conjunction with the accompanying drawings. The drawings constitute a part of this specification and include exemplary embodiments of the present invention and illustrate various objects and features thereof.  
       
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING  
       [0009]    The drawings illustrate the best mode presently contemplated of carrying out the invention.  
         [0010]    [0010]FIG. 1 is a block diagram of the preferred embodiment of the system of the present invention;  
         [0011]    [0011]FIG. 2 is a block diagram of the steps of the method of the present invention. 
     
    
     DETAILED DESCRIPTION OF INVENTION  
       [0012]    Referring to FIG. 1, there is shown a system, generally designated  100 , for utilizing the present invention. The system comprises a computer workstation  102  and a server  104  that are communicatively coupled to each other.  
         [0013]    The computer workstation  102  comprises a generic printer driver  106 . The generic driver  108  is capable of generating an output with commands that can be parsed by the server  104 . The server  104  then re-formats the output into the appropriate format for the destination.  
         [0014]    The generic driver  106  obtains the parameters necessary for the output destination by calling the appropriate dynamic link library. The generic driver  108  searches the system registry  108  to obtain the location of the appropriate dynamic link library. As shown in FIG. 1, the registry  108  has locations for a copier dynamic link library  110 , a fax dynamic link library  112 , printer dynamic link library  114  and e-mail dynamic link library  116 . Additional output devices may be made available to the computer workstation  102  by adding dynamic link libraries to the computer workstation  102  and storing the location of the library in the registry  108 . It is also contemplated that multiple output devices of the same type may be installed on the computer workstation  102 . For example, multiple printers are suitably used by having a separate dynamic link library stored in the registry  108  of the computer workstation  102 . Each printer&#39;s dynamic link library would contain information on the printer, such as location, queue, manufacturer and other pertinent information.  
         [0015]    After the generic driver  106  has obtained the necessary information from the various dynamic link libraries, a print file  118  is generated. Commands that may be parsed by the server are inserted into the print file  118  which is then sent to the server  104 . The server using either software, hardware or a combination thereof, parses the commands as shown in block  120 . The output is then directed to the appropriate destination with the necessary commands to operate the output device such as a copier  122 , fax  124 , printer  126  or e-mail  128 .  
         [0016]    While in FIG. 1 the various output devices are shown separately, as those skilled in the art can readily appreciate, the present invention is compatible with multifunctional peripherals which may include, but are not limited to, one or more of a copier, facsimile machine, printer, and an e-mail server, and combinations thereof.  
         [0017]    Because the generic driver  102  calls dynamic link libraries to obtain the necessary parameters, it is not necessary for each output device to have a driver installed on the computer workstation  102 . Whenever a new output device is added, it is only necessary to add a new dynamic link library on the computer workstation  102 . The generic driver  102  sends the print file  118  to the file which then acts as the driver for the output destination. In the preferred embodiment, the server  104  is an iSP server and the generic driver  106  is an iSP driver.  
         [0018]    Referring now to FIG. 2 there is shown the method of the present invention generally designated  200 . The method begins by invoking the printer driver as shown in step  202 . At step  204  the printer driver then obtains the destination of the output. The generic driver  106  then searches the system registry  108  as shown in step  206  for the dynamic link library associated with the selected destination. The dynamic link library then obtains the parameters for the destination device as shown in step  208 . After the dynamic link library obtains the parameters, the parameters are temporarily stored as shown in step  210 . At step  212  the generic driver  106  reads the parameters which were temporarily stored in step  210 . If more than one destination is specified, the parameters may stored in a separate file for each destination, or all the parameters may be stored in a single file. Then at as  214 , the generic printer driver generates a print file  118  and inserts a command into the print file  118 . In the preferred embodiment, the driver inserts PJL commands into the print file  118 . At step  216  the print file  118  is sent to the server  104 . At step  218  the server  104  parses the print file  118 . Upon parsing the print file  118 , the server  104  converts the output to a format that is compatible with the destination. At step  218  the server  104  sends the job to the destination.  
         [0019]    As contemplated by the present invention, the server  104  acts as a driver for each output destination. The server  104  parses the print file and reads commands from the print file that are generated by the generic driver, and translates the commands and output to a format readable by the output destination. Thus, only the generic print driver  106  that is compatible with the server  104  is necessary at the computer workstation  102 , along with dynamic link libraries for obtaining the required parameters for each output device. For example, a copier dynamic link library would obtain information such as number of copies, where to staple the copies, or special papers that need to be printed such as tabbed paper or letterhead. The fax dynamic link library would obtain fax cover page information such as sender and recipient data and telephone numbers. The printer dynamic link library would obtain information such as which printer, queue, number of copies and other options or features available for the selected printer. The e-mail dynamic link library would obtain information such as recipient&#39;s e-mail addresses, subject line for the e-mail, or an accompanying message.  
         [0020]    It is also contemplated that the system and method of the present invention can be utilized to send outputs to a multiplicity of destinations. A user at the computer workstation  102  may select multiple output destinations which would cause the generic driver  106  to execute the dynamic link library for each output destination. Upon completion of the execution of all of the necessary dynamic link libraries, the generic driver  106  would then build either a single print file  118  having a command for each output destination inserted into the print file  118  or the generic driver  106  would send a separate print file  118  for each destination. Building a separate print file is preferred as it would save bandwidth and processing time by the server  104 .  
         [0021]    Although the invention has been shown and described with respect to a certain preferred embodiment, it is obvious that equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification. The present invention includes all such equivalent alterations and modifications and is limited only by the scope of the following claims.