Abstract:
A method for generating custom postscript printer description files, the method including obtaining paper type information, obtaining an original postscript printer description file, converting the paper type information into a postscript printer description format, inserting the converted paper type information into the original postscript printer description file to create a custom postscript printer description file, and storing the custom postscript printer definition file.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/178,739, filed May 15, 2009, which is hereby incorporated by reference in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The invention relates to printing using PostScript Printer Description (PPD) files using custom paper types. 
         [0004]    2. Description of the Related Art 
         [0005]    Current printing devices, such as multifunction purpose (MFP) devices, have paper type management features that allow users of the MFP to register custom paper types not already registered in the printing device. Being able to register custom paper types provides users with the ability to print documents using the registered paper types via the printing device&#39;s printer driver. 
         [0006]    One drawback to the current implementation however, is that a user does not have the ability to print a document using a registered custom paper type with an application that uses a PostScript Printer Description (hereinafter “PPD”) file instead of the printing device&#39;s printer driver. This is because the PPD file does not contain information on the registered custom paper types. 
         [0007]    In light of the above, what is needed is a way to provide users the ability to print documents using registered custom paper types with an application that uses PPD files. 
       SUMMARY OF THE INVENTION 
       [0008]    To solve the aforementioned issue, the present invention provides for printing via an application that uses PPD files using registered custom paper types. 
         [0009]    According to an aspect of the present invention. 
         [0010]    Further aspects and features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings). 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  is a representational view illustrating a system of an exemplary embodiment. 
           [0012]      FIG. 2  is a block diagram illustrating the internal architecture of a multi-function machine. 
           [0013]      FIG. 3  is a block diagram illustrating the internal architecture of a computer utilizing a custom PPD file. 
           [0014]      FIG. 4  is a representational view illustrating a process of an exemplary embodiment. 
           [0015]      FIG. 5  is a flowchart for generating a custom PPD file according to an exemplary embodiment. 
           [0016]      FIG. 6  is a flowchart for generating a custom PPD file according to another exemplary embodiment. 
           [0017]      FIG. 7  is a flowchart for generating a custom PPD file according to another exemplary embodiment. 
           [0018]      FIG. 8  is a flowchart for generating a custom PPD file according to an exemplary embodiment. 
           [0019]      FIGS. 9A-9E  illustrate exemplary user interfaces for exporting custom paper type information according to an exemplary embodiment. 
           [0020]      FIGS. 10A-10E  illustrate exemplary user interfaces associated with creation of a custom PPD file according to an exemplary embodiment. 
           [0021]      FIGS. 11A-11B  illustrate an exemplary process of converting a file to PPD format according to an exemplary embodiment. 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0022]      FIG. 1  is a representational view illustrating a system of an exemplary embodiment. More specifically, the system includes a multi-function device  1 - 1  connected to host computers  1 - 2 . The multi-function device  1 - 1  can be connected to host computers  1 - 2  via any type of interface that would enable communication between the devices. For example, a Local Area Network (LAN), Wide Area Network (WAN), where these networks could be wired, wireless, or a combination of both. 
         [0023]      FIG. 2  is a block diagram of an example of the internal architecture of multi-function device  1 - 1 . Shown in  FIG. 2  is CPU  20 , network interface  21  to enable communications between multi-function device  1 - 1  and other device, and display interface  22  for interfacing with an LCD display (not shown. 
         [0024]    Read only memory (ROM)  24  stores invariant computer-executable process steps for basic system functions such as basic I/O, start-up, etc. Main random access memory (RAM)  23  provides CPU  20  with memory storage that can be accessed quickly. In this regard, computer-executable process steps of a paper type management setting application, as well as other applications, are transferred from disk  25  over computer bus  26  to RAM  23  and executed therefrom by CPU  20 . 
         [0025]    Disk  25 , which, in addition to the paper type management setting application, includes an operating system, a web browser executable on the particular operating system, and other applications that enable the multi-function device  1 - 1  to provide a multitude of different functions. Disk  25  further includes custom paper type information and device drivers. All of the above described components of multi-function device  1 - 1  are connected to each other via computer bus  26 . 
         [0026]      FIG. 3  is a block diagram of an example of the internal architecture of one of the host computers  1 - 2 . Shown in  FIG. 3  is CPU  27 , which interfaces with to computer bus  36 . Also interfacing with computer bus  36  are network interface  28 , which enables host computer  1 - 2  to communicate with other devices across a network, printer interface  29 , which enables host computer  1 - 2  to communicate with a local printer (not shown), display interface  30 , for interfacing with an LCD display (not shown), keyboard interface  34  for interfacing with a keyboard (not shown), and mouse interface  35  for interfacing with a mouse (not shown). 
         [0027]    Read only memory (ROM)  31  stores invariant computer-executable process steps for basic system functions such as basic I/O, start-up, etc. Main random access memory (RAM)  32  provides CPU  27  with memory storage that can be accessed quickly. In this regard, computer-executable process steps of a custom paper information converter application, as well as other applications, are transferred from disk  33  over computer bus  36  to RAM  31  and executed therefrom by CPU  27 . 
         [0028]    Disk  33 , which, in addition to the custom paper information converter application, includes an operating system, a web browser executable on the particular operating system, and other applications that enable host computer  1 - 2  to provide a multitude of different functions. Disk  33  further includes a custom PPD file and device drivers. All of the above described components of host computer  1 - 2  are connected to each other via computer bus  36 . 
         [0029]      FIG. 4  is a representational view illustrating a process of the present exemplary embodiment. More specifically, the process includes registering custom paper type information onto a printing device, exporting the custom paper type information from the printing device, using the custom paper type information to generate a custom PPD file, and installing the custom PPD file for use by a user. 
         [0030]    Turning to  FIG. 4 , in  4 - 1 , custom paper type information is registered onto multi-function device  1 - 1 . The custom paper type information can be registered either directly at the multi-function device  1 - 1  via the multi-function device&#39;s  1 - 1  integrated display or remotely. In the case where two or more multi-function devices are present, a custom paper type setting from one device can be copied or imported to another device. This enables a user to avoid having to register custom paper type information in each and every device the user wants the information on. 
         [0031]    Next, in  4 - 2 , the registered custom paper type information is exported from multi-function device  1 - 1 . In the exemplary embodiment illustrated in  FIG. 4 , a remote user interface (UI) is used to facilitate exporting the customer paper type information. However, any method for facilitating the export process, such as from a UI located on the multi-function device  1 - 1 , that would enable practice of the present invention is applicable. 
         [0032]    When exported, the custom paper type information is saved as a custom paper type file. In an exemplary embodiment, the file is saved as an Extensible Markup Language (XML) file. However, any file format that would enable practice of the present invention is applicable. In the present exemplary embodiment, the custom paper type file is stored on host computer  1 - 2 , but can be stored in any storage location, e.g., standalone data storage server, that would enable practice of the present invention. 
         [0033]      FIGS. 9A-9E  illustrate exemplary user interfaces (UI) for exporting custom paper type information according to the present embodiment. The exemplary user interface may vary depending on the particular device from which the custom paper information is being exported. Any user interface that would enable practice of the present invention is applicable. 
         [0034]      FIG. 9A  illustrates a UI associated with the printing device (multi-function device  1 - 1 ) that can be opened via web browser. As illustrated, the “Add Func”/“Import/Export”/“Paper Information” feature is selected to initiate the process depicted in  FIG. 4 . 
         [0035]    As illustrated in  FIG. 9B , an “Export” tab is selected. Then, in  FIG. 9C , the “Custom” option is selected from a dropdown list and the “Start Export” button is selected to initiate the export process. In  FIG. 9D , the “Save” button is selected to save/store the exported custom paper type file. In  FIG. 9E , a file name and storage location/file path are assigned and the “Save” button is selected to save the file. 
         [0036]    In another embodiment, in order to avoid having to register the custom paper type registered on multi-function device  1 - 1 , the stored custom paper type file can be imported onto the other device. Any known method for importing a file onto a device that would enable practice of the present invention is applicable. 
         [0037]    Turning back to  FIG. 4 , in  4 - 2 , the custom paper information converter application is used to generate a custom PPD file. More specifically, the custom paper information convertor application uses an original PPD file and the custom paper type file to generate the custom PPD file. The custom paper type information is converted from XML format into PPD format, inserted into the original PPD file, and the resulting file is stored as a custom PPD file. A detailed description of generating the custom PPD file is provided below with respect to  FIG. 5 . 
         [0038]    Following generation of the custom PPD file in  4 - 3 , in  4 - 4 , the custom PPD file is then used with an application that a user of host computer  1 - 2  wishes to print with. The manner in which the custom PPD file is used is the same as the currently known method for using a standard PPD file, and thus, a detailed description is omitted herein. 
         [0039]      FIG. 5  is a flowchart for generating a custom PPD file according to an exemplary embodiment. First, in step  5 - 1 , a specified XML file is loaded. In step  5 - 2 , a check is made to determine whether the loaded XML file contains custom paper type information. If the file does not contain any custom paper type information, flow proceeds to  5 - 3 , where an error message is displayed and then the process terminates. 
         [0040]    If it is determined that the file does contain custom paper type information, then flow proceeds to step  5 - 4 . In step  5 - 4 , all of the custom paper type information is extracted from the file. Then, in step  5 - 5 , an original PPD file is selected and loaded. Next, in step  5 - 6 , a determination is made whether a “MediaType” section exists in the PPD file. The “MediaType” section of a PPD file is where paper type information is stored. If no “MediaType” section exists, then the flow proceeds to step  5 - 7  where an error message is displayed, and then the process terminates. 
         [0041]    If it is determined that a “MediaType” section exits in the file, flow proceeds to step  5 - 8 . In step  5 - 8 , the custom paper type information extracted in step  5 - 4  is converted to PPD format.  FIGS. 11A-11B  illustrate an exemplary process of converting a file to PPD format according to the present embodiment 
         [0042]    Turning to  FIGS. 11A-11B , in step  1 , custom paper name and ID are extracted from the custom paper type file. Next, in step  2 , the custom paper name and ID are converted to PPD format. Next, in step  3 , the converted PPD is inserted into the original PPD file. The converted custom paper type is inserted into the original PPD with a header, and then the modified original PPD file is saved as a custom PPD. The position where custom paper type is inserted is at the end of the “MediaType” section of the original PPD. 
         [0043]    Next, in step  5 - 9 , the converted custom paper information is added to the end of the “MediaType” section of the original PPD file. Then, in step  5 - 10 , a check is made whether all of the extracted custom paper type information has been converted. If there is still some information left to be converted, flow proceeds back to step  5 - 8 . If there is no more information to be converted, flow proceeds to step  5 - 11 . 
         [0044]    In step  5 - 11 , the PPD file into which the converted custom paper type information has been added is stored. In an exemplary embodiment, the PPD file is stored on host computer  1 - 2 . However, any storage location, e.g., remote data storage server that would enable practice of the present invention is applicable. Then, the process ends. 
         [0045]      FIGS. 10A-10E  illustrate exemplary user interfaces associated with creation of a custom PPD file as described above. The present embodiment is not limited to what is illustrated in  FIGS. 10A-10E , and any method used to create a PPD file that would enable practice of the present invention is applicable. 
         [0046]      FIG. 10A  illustrates an exemplary user interface used to initiate creation of a custom PPD file. As illustrated, an original PPD file is specified along with a custom paper type file. The custom paper type file is typically the file that was previously exported as described above. 
         [0047]      FIG. 10B  illustrates selection of exemplary original PPD and custom paper type files. After these files have been selected, the conversion process is initiated by selecting the “Convert” button. 
         [0048]    After selection of the “Convert” button, the user interface in  FIG. 10C  prompts a user to select a file name for the custom PPD file and the location where the file is to be stored/saved. After the file name and storage location have been specified, the “Save” button is selected. If the specified file already exists, the user is prompted whether to replace the existing file. 
         [0049]    Following selection of the “Save” button, the conversion process begins. During the conversion, the progress of the conversion is provided as illustrated in  FIG. 10D . When the conversion is completed, a dialog box as illustrated in  FIG. 10E  is displayed. Selection of the “OK” button results in returning to the user interface in  FIG. 10A . The resulting generated custom PPD file can be found at the storage location as designated above. In the present embodiment, the above-described process can be terminated at any point by selecting the close button located in the top right-hand corner of any of the above-described user interfaces. 
         [0050]    In a different embodiment of the present invention, every time a user changes the registration of the paper type, the user executes the above-mentioned process again to use the paper type that the user just changed. Changing the registration of the paper type includes, but is not limited to, registering additional paper types with the printing device (multi-function device  1 - 1 ), modifying the information of the existing paper type, deleting the existing paper type from the printing device (multi-function device  1 - 1 ), etc. 
         [0051]      FIG. 6  is a flowchart for generating a custom PPD file according to another exemplary embodiment. In the present embodiment, steps  6 - 1  through  6 - 3  are performed in the printing device (multi-function device  1 - 1 ), while steps  6 - 4  through  6 - 16  are performed in host computer  1 - 2 . 
         [0052]    Turning to  FIG. 6 , in step  6 - 1 , a custom paper type is registered with a printing device (multi-function device  1 - 1 ) either via a Remote UI or via an operational panel of the printing device. Then, in step  6 - 2 , a determination is made whether the custom paper type information has changed from what was previously stored on the printing device. A change in custom paper type information includes, but is not limited to, a change in the existing custom paper type information or the presence of a new custom paper type information. 
         [0053]    If it is determined that the custom paper type has changed, then in step  6 - 3 , the custom paper type information is exported and stored. As described above, the exported custom paper type information is in an XML file format, but any file format enabling practice of the present invention is applicable. In the present embodiment, the custom paper type file is stored in a predefined folder on host computer  1 - 2 , but any other storage location, e.g., remote data storage server that would enable practice of the present invention is applicable. The process then ends. If is it determined that the custom paper type information did not change, the process ends. 
         [0054]    In step  6 - 4 , a check is made whether the predefined folder contains any XML files. If, in step  6 - 5 , it is determined that no XML files exist, flow returns to step  6 - 4 . If it is determined that an XML files does exist, then flow proceeds to step  6 - 6 . In step  6 - 6 , the XML file is loaded. Steps  6 - 7  through  6 - 16  are similar to steps  5 - 2  through  5 - 11  of  FIG. 5 , and thus, a detailed description herein is omitted. 
         [0055]    The above-described embodiments describe processes where the custom paper type information is initially exported from the printing device (multi=function device  1 - 1 ). In yet another embodiment, a periodic check of the paper type information in the printing device (multi-function device  1 - 1 ) is made. When a change is detected, the custom paper information converter process is implemented. 
         [0056]      FIG. 7  is a flowchart for generating a custom PPD file according to the present embodiment. In the present embodiment, steps  7 - 1  through  7 - 14  are performed in the host computer  1 - 2 , where steps  7 - 2  through  7 - 14  are similar to steps  6 - 4  through  6 - 16  of  FIG. 6  and steps  7 - 15  and  7 - 16  are performed by the printing device (multi-function device  1 - 1 ) and are similar to steps  6 - 2  and  6 - 2  of  FIG. 6 . Thus, only a description of step  7 - 1  will be provided. In step  7 - 1 , a periodic check is performed to determine whether any changes in the paper type information stored in the printing device (multi-function device  1 - 1 ). 
         [0057]    The above-described embodiments have all discussed generating an XML formatted file to create the custom PPD. In still yet another embodiment, custom PPDs can be generated without generating an XML file. More specifically, the custom paper type information is obtained directly from the printing device (multi-function device  1 - 1 ) using a communication protocol, e.g., SNMP, etc. 
         [0058]      FIG. 8  is a flowchart for generating a custom PPD file according to the present embodiment. In step  8 - 1 , a request is sent to the printing device (multi-function device  1 - 1 ) to retrieve paper type information, wherein the request is sent using a communication protocol such as SNMP, etc. Any communication protocol enabling practice of the present invention is applicable. The request is received by the printing device (multi-function device  1 - 1 ) in step  8 - 2 , and in step  8 - 3 , the requested custom paper type information is provided. 
         [0059]    In step  8 - 4 , the provided custom paper type information is received. Next, in step  8 - 5 , a determination is made whether the printing device returned custom paper type information. If no custom paper type information was returned, then flow proceeds to step  8 - 6 , where an error message is displayed and then the process terminates. 
         [0060]    If it is determined that custom paper type information was returned, then flow proceeds to step  8 - 7 . Steps  8 - 7  through  8 - 13  are similar to steps  5 - 5  through  5 - 11  in  FIG. 5 , and thus, a detailed description of these steps is omitted herein. 
         [0061]    It is to be understood that the above described features can be achieved by a method in which a storage medium is supplied to a system or device, the storage medium having computer-executable process steps for realizing the above described functions, and a computer (CPU or MPU) for the system or device that reads the computer-executable process steps stored in the storage medium and executes them. 
         [0062]    In this case, the computer-executable process steps read from the storage medium executes the functions of the above described embodiments. Thus, the computer-executable process steps or the storage medium storing the computer-executable process steps therein constitute the present invention. 
         [0063]    As a storage medium for supplying the computer-executable process steps, for example, a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a non-volatile memory card, a ROM, any other applicable computer-readable storage medium can be employed. 
         [0064]    When the computer-executable process steps read by the computer are executed, not only are the above described functions of the embodiments realized, but also an operating system working on the computer may carry out part or all of the actual processing that realizes the functions of the above described embodiments. 
         [0065]    The computer-executable process steps read from the computer-readable storage medium may be written to a memory provided on a function-extension board inserted into the computer, of a function-extension unit connected to the computer, and a CPU provided on the function-extension board or unit carries out part of all of the actual processing that realizes the functions of the above described embodiments. 
         [0066]    While the invention is described above with respect to what is currently its exemplary embodiment, it is to be understood that the invention is not limited to that described above. To the contrary, the invention is intended to cover various modifications and equivalent arrangements within the spirit and scope of the appended claims.