Abstract:
The present invention is a printer having a plurality of paper feed cassettes, a function, when recording sheets of paper are exhausted in any of the paper feed cassettes, for detecting exhaustion of sheets of paper, and a function, when sheets of paper in an identified paper feed cassette are exhausted, for automatically switching the paper feed destination when there are sheets of paper of the same size in another paper feed cassette and the printer has a function, when judging an occurrence of exhaustion of sheets of paper, for notifying a user of it beforehand.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a print system mainly composed of a printer having a paper feeder and a client personal computer. 
   2. Description of the Related Art 
   There is a printer available that a feed unit is equipped with a multi-stage paper feed cassette mounting sheets of paper of various sizes and in different directions and a paper feed cassette can be automatically selected according to the size of an image. In the printer mounting a multi-stage paper feed cassette, as a process when sheets of paper are exhausted during execution of the print job, a method for suspending the print job and requesting supply of sheets of paper to an operator or a method for supplying sheets of paper from another paper feed cassette to continue the print job is used. 
   For example, a method for confirming the residual quantity of sheets of paper set in a paper feed cassette, checking whether sheets of paper to be used are sufficient or not, always reserving a sufficient amount of sheets of paper in the paper feed cassette, thereby preventing suspension of the operation due to exhaustion of sheets of paper during execution of the print job is disclosed in Japanese Patent Application 2002-284393. 
   In this case, the printer body controls information of residual amount of sheets of paper and compares the residual amount with the number of sheets necessary to print. Although a state that sheets of paper are exhausted during one print job can be prevented, only after print data is all sent from the printer driver to the printer body, error information of exhausted sheets of paper can be decided. Moreover, unless a user comes to the printer body for confirmation, he cannot know the occurrence state of exhaustion of sheets of paper. 
   Further, when a plurality of users share the same printer and a plurality of print jobs and heavy print jobs are spooled simultaneously, a problem arises that unless these spooled print jobs are all executed, a state of whether exhaustion of sheets of paper occurs or not is unknown. 
   Therefore, an easily operable printer is desired. 
   SUMMARY OF THE INVENTION 
   According to embodiments of the present invention, an object of the present invention is to provide a print system capable of finding during printing whether shortage of sheets of paper occurs or not from a client personal computer before starting printing. 
   The present invention may provide a print system in which a printer and a client personal computer are connected to a network, wherein:
     (1) the print system has a single or a plurality of stages of paper feed cassettes,   (2) the print system has a nonvolatile memory presettable in each paper feed cassette,   (3) the print system always updates latest information of residual amount of sheets of paper in each paper feed cassette and controls the information by the printer,   (4) the client personal computer refers to the above information and judges, before sending print data to the printer, whether there are a necessary number of sheets of paper of a necessary size, and   (5) the client personal computer, when judging that the print data can be printed, sends the print data as it is and when judging that the print data cannot be printed as it is, displays a message screen.   

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Further objects and advantages of the invention can be more fully understood from the following detailed description taken in conjunction with the accompanying drawings, in which: 
       FIG. 1  is a block diagram showing the constitution of the print system relating to the embodiment of the present invention, 
       FIG. 2  is a block diagram showing a constitution example of the client personal computer relating to the embodiment of the present invention, 
       FIG. 3  is a block diagram showing the function constitution of a print process of the client personal computer relating to the embodiment of the present invention, 
       FIG. 4  is a setting screen example of the number of sheets of paper of a paper feed cassette displayed on a control panel of a printer, 
       FIG. 5  is a pop-up screen example displayed on the client personal computer when a print job is executed from the client personal computer, 
       FIG. 6  is a print spooler screen example displayed on the client personal computer when a print job is executed from the client personal computer, 
       FIG. 7  is a flow chart showing control of the printer side relating to the embodiment of the present invention, and 
       FIG. 8  is a flow chart showing control of the client personal computer side relating to the embodiment of the present invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   Hereinafter, an embodiment of the present invention will be explained with reference to the accompanying drawings. 
     FIG. 1  is a block diagram for explaining the system configuration of the print system relating to the embodiment. As shown in  FIG. 1 , the print system is composed of a client personal computer  100 , a printer  200 , and a network  300  for connecting them. The printer  200  is composed of, for example, a plurality of paper feed cassettes  201  for storing various sheets of paper, a residual quantity counter  202 , a display means  203 , a user interface (UI) processing means  204 , a printing means  205 , a control means  206 , and a communication means  207 . 
   The control means  206  of the printer  200  has, for example, a printer CPU, a ROM, a system bus, a RAM, and a memory controller (MC) (all not shown in the drawing). The printer CPU, on the basis of a control program stored in the ROM or a control program stored in an external memory, realizes various kinds of control for the printer  200 . For example, the printer CPU outputs an image signal as output information to the printing means  205  connected to the system bus. Furthermore, in the program area of the ROM, the control program of the printer CPU is stored. In the font area of the ROM, font data used to generate output information is stored. In the data area of the ROM, when a printer having no external memory such as a hard disk is used, information used by the client personal computer is stored. 
   A printer CPU  12  can perform a communication process with the client personal computer  100  via the communication means  207  and is structured so as to notify information in the printer  200  to the client personal computer  100 . The RAM functions as a main memory and a work area of the printer CPU. 
   The memory controller controls access of an external memory such as a hard disk (HD) or an IC card. The external memory is optionally connected and is preferably structured so as to store font data, an emulation program, and form data. 
   Further, the display means  203  installed in the printer  200  displays operation contents of a user and the status of the printer  200  and is arranged as a switch for various operations and an LED indicator. 
   The UI processing means  204  serves as an interface with an instruction and input from a user. One or a plurality of paper feed cassettes  201  can be mounted. In  FIG. 1 , two paper feed cassettes  201  setting sheets of paper of size A4, one paper feed cassette setting sheets of paper of size A3, and one paper feed cassette setting sheets of paper of size B4, four paper feed cassettes in total are arranged. Further, the paper feed cassettes can store sheets of paper in different directions. Further, a control means for rotating data printed on sheets of paper fed from a paper feed cassette in a different direction in a 90° arc can be installed. For rotation of print data, a well-known art can be used, though it is not the main object of the present invention, so that it will be omitted. 
   In each of the paper feed cassettes  201 , the residual quantity counter  202  for counting the number of sheets of paper stored in the paper feed cassette at present is mounted. The residual quantity counter  202  may be composed of, for example, a presettable nonvolatile memory. 
   Detection of the residual quantity of sheets of paper is not limited, to such a residual quantity counter. For example, it is possible to install a plurality of sensors in each paper feed cassette, detect the upper and lower bottom plates of the paper feed cassette, and convert into the rough number of sheets of paper. Further, it is possible to lift up the bottom plate of the paper feed cassette by the pulse motor and convert the number of pulses until the bottom plate makes contact with the paper feed roller into the number of sheets of paper. 
     FIG. 2  is a block diagram showing a constitution example of the client personal computer  100  relating to the embodiment of the present invention. As shown in  FIG. 2 , the client personal computer  100  is composed of, for example, a CPU  1 , a RAM  2 , a ROM  3 , a system bus  4 , KBC  5 , CRTC  6 , DKC  7 , PRTC  8 , KB  9 , and CRT display  10 . The CPU  1  realizes various processes of the client personal computer  100 . For example, the CPU  1 , on the basis of a document processing program stored in a program ROM  3   b  of the ROM  3  or an external memory  11 , executes a document process including graphics, images, characters, and tables (table calculations included) Furthermore, the CPU  1  synthetically controls the devices connected to the system bus  4 . 
   In the program ROM  3   b  of the ROM  3  or the external memory  11 , an operating system program (hereinafter abbreviated to OS) which is a control program of the CPU  1  is stored. The embodiment of the present invention can correspond to a multiclient without depending on the OS kind. In a font ROM  3   a  of the ROM  3  or the external memory  11 , font data used to perform the document process is stored. In a data ROM  3   c  of the ROM  3  or the external memory  11 , various data used to perform the document process is stored. 
   The RAM  2  functions as a main memory and a work area of the CPU  1 . The KBC  5  is a keyboard controller and controls key input from the keyboard  9  and a pointing device (not shown in the drawing). The CRTC  6  is a CRT controller and controls display of the CRT  10 . Further, the CRT  10  may be of course a liquid crystal monitor. The DKC  7  is a disk controller and controls access to the external memory  11  storing a boot program, various applications, font data, a user file, an edit file, and a printer control command generation program (hereinafter, referred to as a printer driver). The external memory  11  is composed of, for example, a hard disk (HD). 
   The PRTC  8  is a printer controller, which is connected to the printer  200  via a two-way interface  21  and executes a communication control process with the printer  200 . 
   Further, the CPU  1  executes, for example, an expansion process (rasterization) of outline font to a display information RAM set on the RAM  2  and enables WYSIWYG on the CRT  10 . Further, the CPU  1 , on the basis of a command instructed by the mouse cursor on the CRT  10 , opens various registered windows and executes various data processes. A user, when executing printing, opens the window concerning setting of printing and sets the print process for the printer driver including setting of the printer and selection of the print mode. 
     FIG. 3  is a block diagram showing the function constitution of the print process of the client personal computer  100 . Needless to say, the above function constitution can be properly changed if the function of the present invention is executed. An application  101 , a graphics engine  102 , a printer driver  103 , and a system spooler  105  exist as files preserved in the external memory  11  and are program modules, when they are to be executed, which are loaded into the RAM  2  and executed by the OS and a module using the module thereof. The application  101  and the printer driver  104 , via, for example, a CD-ROM or a network (both are not drawn) of the external memory  11 , can be added to the hard disk of the external disk  11 . The application  101  stored in the external memory  11  is loaded into the RAM  2  and executed. However, when printing data for the printer body  200  from the application  101 , the data is outputted (drawn) using the graphics engine  102  which is executably loaded into the RAM  2 . The graphics engine  102  loads the printer driver  104  prepared for each printer into the RAM  2  from the external memory  11  and converts the output of the application  101  to a control command of the printer using the printer driver  104 . The converted printer control command, via the system spooler  105  loaded in the RAM  2  by the OS, is outputted to the printer body  200  via the interface  21 . 
   To release the application  101  from the print process in a short time, when sending a print command from the graphics engine  102  to the printer driver  104 , a constitution of generating a spool file  109  composed of an intermediate code can be realized once. At the point of time when a spooler  6  outputs all print commands from the graphics engine  102  to the spool file  109 , the application is released. Further, in the constitution shown in  FIG. 3 , for contents of the spool file  109 , the processing such as changing the print order of pages and rotating and outputting print data can be performed. 
   Generally, to process print data, setting is executed from the window (user interface) provided by the printer driver  104  and the printer driver  104  stores the set contents in the RAM  2  or the external memory  11 . 
   Print data is prepared by the printer driver  104  installed in the client personal computer  100  and is transmitted to the printer  200 . The printer driver  104 , using an SNMP (simple network management protocol) which is a protocol for collecting, managing, and monitoring information of the devices connected to the network via the network, can obtain MIB (management information base) information from the printer  200 . 
   On the other hand, the printer  200  always stores the latest residual quantity count managed by the residual quantity counter  202  of sheets of paper as MIB information and when requested from the client personal computer  100  connected, it is structured so as to be transmitted and referred to. 
   In the device corresponding to the SNMP, an interface for accessing the management information area preserving the information of the device is provided. This interface is an SNMP agent. Information preserved in the management information area varies with the device. When it is a network printer as in this embodiment, the status of the printer, information of sheets of paper, and the residual quantity of toner are preserved in the management information area. To obtain information of the device to be managed loading the SNMP agent, on the client personal computer  100  on the host computer side, an SNMP manager is installed. The SNMP agent preserves the management information in a data base called an MIB (management information base) and upon request of the manager, transmits necessary information from the MIB. The SNMP manager has a function for communicating with the SNMP agent and obtaining and setting internal information of each device. The SNMP manager can pull out traffic information of the devices, thereby can easily obtain information such that how high the traffic is in what time zone. 
   A network manager can manage all information of the network printer arranged on the network at one place. 
   A user, when adding sheets of paper to each paper feed cassette  201 , via the display means  203  and the UI processing means  204 , designates the number of additional sheets of paper from the sheets of paper setting screen for the paper feed cassettes shown in  FIG. 4 , thereby updates the residual quantity counter  202  of sheets of paper. In the example shown in  FIG. 4 , it is found that 500 sheets of paper are added to a paper feed cassette N and as a result, the number of residual sheets of paper of the sheets of paper stored in the paper feed cassette N is 500 sheets. The user presses the OK button and confirms it. 
   This counter value is subtracted by the number of outputted sheets of paper whenever sheets of paper are outputted from the paper feed cassette  201  and is added by the number of added sheets of paper whenever sheets of paper are added, so that the residual quantity counter is structured so as to always show the residual quantity of sheets of paper of the paper feed cassette  201  at the present time. 
   Further, for detection of the residual quantity of sheets of paper, as indicated in this embodiment, the present invention is not limited to a case that a user beforehand decides the number of sheets of paper and adds sheets of paper to the paper feed cassette and needless to say, the aforementioned method may be used. 
   At the time of printing, the printer driver  104  installed in the client personal computer  100  prepares print data and calculates the number of sheets of paper of a necessary size for printing. Next, the printer driver  104 , on the basis of the paper size designated by a user or information on designation of a paper feed cassette, identifies the paper feed cassette  210 . Then, the printer driver  104  refers to the MIB information of the printer  200 , thereby obtains the residual quantity information of sheets of paper of each paper feed cassette  201 , and judges whether sheets of paper of the designated paper size remain more than the number of necessary sheets of paper for printing calculated before in the designated paper feed cassette  201  of the printer  200  or each paper feed cassette  210  of the printer  200 . When a sufficient number of sheets of paper is set, the printer driver transmits the print data as it is to the printer  200  to start printing. In the corresponding paper feed cassette  201  (in a case of automatic selection and setting of paper feed cassettes, the total of all paper feed cassettes in which sheets of paper are set), the necessary number of sheets of paper is not set and when the printer driver  104  judges that a shortage of the number of sheets of paper occurs, it displays a pop-up message as shown in  FIG. 5 , notifies the effect to the user, and requests a correspondence. 
   In this embodiment, a user can preset three corresponding methods. 
   For example, the first method is a method for straight transmitting data to the printer  200  without doing anything, and there is no need to spool all print data on the client personal computer by the printer driver  104 , and the method is used when printing data by the conventional method. 
   The second method is a method for displaying a pop-up message on the client personal computer  100 . At the sight of the message, a user continues straight the process, or adds sheets of paper and then starts printing, or cancels once the printing and switches the print destination to another printer. 
   Third method is a method for only displaying a message on the spooler, straight sending print data to the printer  200 , and continuing the printing and although an error message screen is troublesome popped up every time, the method is used when requesting to know information whenever he wants to see. 
     FIG. 5  shows an example of the pop-up message screen and shows the possibility of an occurrence of exhaustion of sheets of paper during execution of the print job and that a user can select a countermeasure. The printer driver  104  in this embodiment displays a GDI as shown in  FIGS. 4 and 5  on the CRT  10 . 
   In the example of the pop-up message screen shown in  FIG. 5 , when there is a possibility of an occurrence of exhaustion of sheets of paper during execution of the print job, a user can select continuation or cancellation of the printing. 
   When execution of printing is instructed after the aforementioned designation, the print command issued from the application  101  is transferred to the spooler  106  via the graphics engine  102  and the dispatcher  103 . The spooler  106  converts the received print command to an intermediate code, outputs it to the spool file  109 , obtains the processing setting (for example, the number of sheets of paper of size A4 to be printed is 1 and the number of sheets of paper of size A3 to be printed is 3) concerning the print data which is set in the printer driver  104  from the printer driver  104  and preserves it in the spool file  109 . 
   The spool file manager  107  loads the de spooler  108  stored in the external memory  11  into the RAM  2  and instructs the de spooler  108  to perform the print process of the intermediate code by the processing setting described in the spool file  109 . 
   The print setting data set by a user is stored in a memory called a Devmode structure. 
   The process in this embodiment is started when a user operates the keyboard  9  shown in  FIG. 1 , thereby designates the printer at the print destination by the application  101  in execution, and instructs execution of printing. 
   When the user presses the print button on the application, a print job start command is called to the printer driver via the GDI (graphics device interface) and the printer driver prepares print data. At this time, the printer driver, for example, every setting of the print size and run, refers to the print setting stored in the Devmode structure and prepares print data. When this is finished, job end is called from the printer driver and the GDI opens the printer driver and transfers the prepared print data to the OS. 
     FIG. 6  shows a screen example of the print spooler displayed on the client personal computer when the client personal computer executes the print job. In the example shown in  FIG. 6 , there are four print jobs and for each print job, the owner, print data size, and present status are displayed. The example shows that in the jobs  1  to  3 , sheets of paper are sufficient, while in the job  4 , there is the possibility of shortage of predetermined sheets of paper. 
   Next, the process by the printer driver of the print system of this embodiment will be explained by referring to the flow chart shown in  FIG. 7 . 
   Firstly, at Step S 701 , the printer driver judges whether there is data waiting for printing or not. When there is data waiting for printing, the process goes to Step S 702  and when there is no data waiting for printing, the process goes to Step S 705 . 
   At Step S 702 , the print process is performed and the print driver generates print data. With respect to the print setting and run setting, the ones preserved in the setting area of the Devmode structure are used. 
   When the print process is finished, next, the process goes to Step S 703 . 
   At Step S 703 , the paper feed cassette information is updated. Next, the print waiting spooler information is updated (Step S 704 ). 
   At Step S 705 , the information of the paper feed cassette  1  is updated. Continuously, the information of the paper feed cassette  2  is updated (Step S 706 ) and the information of the paper feed cassette N is updated (Step S 707 ). 
   Next, an example of the control of the client personal computer will be explained according to the flow chart shown in  FIG. 8 . 
   Firstly, at Step  801 , the client personal computer prepares print data. 
   Next, it calculates the number of necessary sheets of paper (Step S 802 ) 
   At Step S 803 , it obtains paper feed cassette information from the main unit. 
   Next, it compares the input information with the necessary run (Step S 804 ). 
   At Step S 805 , it judges notification due to pop-up or not. 
   In a case of notification due to pop-up, it displays a pop-up message (Step S 806 ) and in a case of no notification due to pop-up, the process jumps to Step S 809 . 
   Next, at Step S 807 , it judges whether the contents of the pop-up message are cancel or not. 
   When the contents are cancel, it clears the print data (Step S 808 ) and when the contents are not cancel, the process jumps to Step S 813 . 
   At Step S 809 , it judges whether the pop-up notification contents are only the message display or not. When the contents are only the message display, it prepares a message (Step S 810 ) and transmits the prepared message to the main unit (Step S 811 ) and the control of the client side is finished. 
   When the contents are not only the message display, it transmits the effect to the main unit (Step S 812 ) and the control of the client side is finished. 
   At Step S 813 , it judges whether OK is pressed or not. When OK is pressed, it transmits the effect to the main unit (Step S 814 ) and the control of the client side is finished. When OK is not pressed, the process jumps again to Step S 807 . 
   As mentioned above in detail, according to the embodiment of the present invention, whether a shortage of sheets of paper occurs during printing or not can be known from the client personal computer before actually starting printing. 
   Further, even in a status that a plurality of print jobs are spooled on the same apparatus, a user, before his turn that his print job is actually processed comes, can find whether a shortage of sheets of paper occurs or not. By doing this, the time loss required for recovery when exhaustion of sheets of paper occurs during printing can be avoided, or the output destination of print data is switched to another printer before starting printing, thus output results can be obtained when necessary, or changing of the paper quality during output due to addition of sheets of paper during printing can be avoided. 
   It goes without saying that various obvious modifications and simple variants come within the scope of the present invention beyond the above-described embodiment.