Printing system with printer drivers selection

A printing system includes a computer and a printer. The computer includes a plurality of printer drivers provided for different kinds of emulations, respectively. The computer compares environments of the computer and the printer and selects one of the printer drivers according to a result of the comparison. Thus, the optimum printer driver can be automatically selected for printing by the printer.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a printing system wherein image data for printing is sent from a computer to a printer so that the printer performs printing based on the image data received from the computer.

2. Description of the Related Art

For controlling an operation of a printer, a computer stores a printer driver which is executed on an operating system of the computer. The printer driver is software for converting image data produced by an application executed on the operating system of the computer into a printer language. There have been available printer drivers for a page description language (PDL) emulation and a host base printer (HBP) emulation. For the PDL emulation, bit-mapping of image data is carried out in a printer. On the other hand, for the HBP emulation, bit-mapping of image data is carried out in a computer.

The printer driver for the PDL emulation converts image data from the application into a page description language and sends the converted image data and command sets to the printer. In response, a controller of the printer converts the received image data into an intermediate data format of a display list, and then converts it into bit-mapped image data matching with the print resolution of the printer.

In the PDL emulation, the printer starts printing after receipt of one-page image data. Accordingly, a processing load of the printer driver itself is small for the PDL emulation. Further, the data transfer amount from the computer to the printer is small as compared with the HBP emulation so that the high data transfer rate is not required. On the other hand, the data processing capability required to the controller of the printer is high.

The printer driver for the HBP emulation converts image data into bit-mapped image data matching with the print resolution of the printer, and then compresses the bit-mapped image data for sending to the printer. In response, the printer expands the compressed bit-mapped image data for printing.

In the HBP emulation, the printer starts printing before finishing receipt of one-page image data. Specifically, the printing is implemented in parallel with receiving the image data. Accordingly, a processing load of the printer driver is quite large for the HBP emulation. Further, the data transfer amount from the computer to the printer is large as compared with the PDL emulation so that the high data transfer rate is required to follow the printing speed of the printer.

The foregoing conventional techniques have the following problem.

Owing to the remarkable advancement in processing capability of personal computers and the reduction in price thereof, it becomes relatively easy to achieve a high throughput required for the HBP emulation. Under the circumstances, there have appeared multi-emulation printers which can support both the PDL emulation and the HBP emulation. For effectively utilizing these printers, it is necessary to properly select a printer driver depending on various printing conditions, i.e. environments of the computers and the printers.

For this purpose, JP-A-7-162722 discloses a technique wherein a computer receives a status signal from a printer and selects a printer driver based on information contained in the received status signal. However, the optimum printer driver changes depending on various printing conditions and thus it is practically difficult to select the optimum printer driver. Accordingly, more concrete and practical techniques for automatic printer driver selection have been demanded.

SUMMARY OF THE INVENTION

Therefore, it is an object of the present invention to provide an improved printing system that can solve the foregoing problem.

According to one aspect of the present invention, there is provided a printing system comprising a computer and a printer, wherein the computer includes a plurality of printer drivers provided for different emulations, respectively, the computer comparing an environment of the computer and an environment of the printer to select one of the printer drivers based on a result of the comparison, the computer processing image data by the selected one of the printer drivers and sending the processed image data to the printer, andwherein the printer receives the processed image data from the computer and processes the received image data according to one of the emulations corresponding to the selected one of the printer drivers to implement printing.

It may be arranged that the environments of the computer and the printer include a size of the image data, a free memory size of the computer for storing therein the image data, and a free memory size of the printer for storing therein the image data.

It may be arranged that the environments of the computer and the printer include a size of the image data, a free memory size of the printer for storing therein the image data, a data transfer speed from the computer to the printer, and a paper feed speed of the printer.

It may be arranged that the environments of the computer and the printer include a drawing speed of the computer upon drawing the image data, and a drawing speed of the printer upon drawing the image data.

It may be arranged that the environments of the computer and the printer include an evaluation size of an intermediate metafile of the image data in the computer, and a free memory size of the printer for storing therein the image data.

According to another aspect of the present invention, there is provided a printing system comprising a computer and a printer, the computer including a plurality of printer drivers provided for different emulations, respectively, the computer further including a computer environment determining section which determines an environment of the computer and a printer environment determining section which determines an environment of the printer based on information sent from the printer, the computer further including a printer driver selecting section which compares the environments of the computer and the printer to select one of the printer drivers based on a result of the comparison, so that image data is processed by the selected one of the printer drivers and sent to the printer, and the printer including a printer environment measuring section which measures an environment of the printer and notifies it as the information to the printer environment determining section of the computer, the printer further including an emulation judging section which judges one of the emulations corresponding to the selected one of the printer drivers, and an emulation section which processes the image data according to the judged one of the emulations for printing.

It may be arranged that the computer environment determining section comprises a computer free memory size determining section which determines a free memory size of the computer for storing therein the image data, and the printer environment determining section comprises a printer free memory size determining section which determines a free memory size of the printer based on the information sent from the printer, that the printer driver selecting section compares a size of the image data and the free memory sizes of the computer and the printer to select one of the printer drivers based on the result of the comparison, and that the printer environment measuring section comprises a printer free memory size measuring section which measures a free memory size of the printer for storing therein the image data and notifies it as the information to the printer free memory size determining section of the computer.

It may be arranged that the computer environment determining section comprises a computer data transfer speed determining section which determines a data transfer speed when the image data is transferred from the computer to the printer, and the printer environment determining section comprises a printer free memory size determining section which determines a free memory size of the printer based on the information sent from the printer, that the printer driver selecting section makes a comparison based on a size of the image data, the free memory size of the printer and the data transfer speed to select one of the printer drivers based on the result of the comparison, and that the printer environment measuring section comprises a printer free memory size measuring section which measures a free memory size of the printer for storing therein the image data and notifies it as the information to the printer free memory size determining section of the computer.

It may be arranged that the computer environment determining section comprises a computer drawing capability determining section which determines a drawing speed of the computer upon drawing the image data, and the printer environment determining section comprises a printer drawing capability determining section which determines a drawing speed of the printer based on the information sent from the printer, that the printer driver selecting section compares the drawing speed of the computer and the drawing speed of the printer to select one of the printer drivers based on the result of the comparison, and that the printer environment measuring section comprises a printer drawing speed measuring section which measures a drawing speed of the printer upon drawing the image data and notifies it as the information to the printer drawing capability determining section of the computer.

It may be arranged that the computer environment determining section comprises an intermediate metafile analyzing section which derives an evaluation size of an intermediate metafile of the image data, and the printer environment determining section comprises a printer free memory size determining section which determines a free memory size of the printer based on the information sent from the printer, that the printer driver selecting section compares the evaluation size of the intermediate metafile and the free memory size of the printer to select one of the printer drivers based on the result of the comparison, and that the printer environment measuring section comprises a printer free memory size measuring section which measures a free memory size of the printer for storing therein the image data and notifies it as the information to the printer free memory size determining section of the computer.

It may be arranged that the number of the printer drivers is two, that according to one of the printer drivers, the printing system is controlled such that one-page image data is sent from the computer to the printer, then the printer implements bit-mapping of the received image data for printing, and that according to the other printer driver, the printing system is controlled such that bit-mapped image data is sent from the computer to the printer which implements printing in parallel with receiving the bit-mapped image data from the computer.

DESCRIPTION OF THE PREFERRED EMBODIMENT

First Embodiment

FIG. 1is a block diagram showing a printing system according to the first preferred embodiment of the present invention.

InFIG. 1, image data for printing is sent from a computer10to a printer20via a bidirectional interface30, so that the printer20implements printing of the received image data.

The computer10includes an application11, an operating system12, a memory13, a computer free memory size determining section14, a printer driver selecting section15, a printer free memory size determining section16, a command generating section17and a port driver18. The computer10further includes printer drivers1, i.e. a PDL printer driver3and an HBP printer driver5in this embodiment.

The printer20includes an interface processing section21, a command analyzing section22, an emulation judging section23, a printer free memory size measuring section24, a memory25, a printer engine26, an image data producing section27and a print start control section28. The printer20further includes a PDL emulation section7and an HBP emulation section9. In this embodiment, the printer20is an LED type electrophotographic printer having the print resolution of, for example, 600 [dpi] (dot per inch) in each of the main and secondary scanning directions.

The bidirectional interface30is a well-known interface such as IEEE1284.

InFIG. 1, functions of the sections14to17are realized by an operation control program executed in the computer10, while functions of the sections7,9,22to24,27and28are realized by an operation control program executed in the printer20.

In the computer10, the application11is a program executed on the operating system12for producing image data. The image data may include character data and graphic data. The memory13is a storage area for storing therein image data upon request for printing. The computer free memory size determining section14determines a free memory size of the memory13upon storing image data thereinto. The free memory size represents the capacity of nonused storage areas in the memory13.

In this embodiment, two kinds of the printer drivers, i.e. the PDL printer driver3and the HBP printer driver5, are provided in the computer10, while the number thereof may be more than two.

According to the PDL printer driver3, the printing system is controlled such that one-page image data is transferred from the computer10to the printer20, then the printer20implements bit-mapping of the received image data for printing. On the other hand, according to the HBP printer driver5, the printing system is controlled such that bit-mapped image data is transferred from the computer10to the printer20which implements printing in parallel with receiving the bit-mapped image data from the computer10.

The printer driver selecting section15compares a size of image data and free memory sizes of the computer10and the printer20to select one of the PDL printer driver3and the HBP printer driver5based on a selection rule preset corresponding to a result of the comparison and sets the selected printer driver for execution. The printer free memory size determining section16determines the free memory size of the printer20when it is notified from the printer20, and feeds it to the printer driver selecting section15. The command generating section17produces a command which is used by the printer driver selecting section15to acquire information of the free memory size from the printer20, and other commands for other uses. The port driver18controls communication with the printer20via the bidirectional interface30.

In the printer20, the interface processing section21controls communication with the computer10via the bidirectional interface30. The command analyzing section22analyzes the contents of a command received from the computer10and outputs a control signal to a corresponding section. The free memory size measuring section24measures the free memory size of the memory25for storing image data therein and notifies it to the printer free memory size determining section16of the computer10. The emulation judging section23judges the kind of the emulation, i.e. the kind of the printer driver, selected by the computer10. One of the PDL emulation section7and the HBP emulation section9is selected based on a result of the judgment made by the emulation judging section23for processing image data according to the selected emulation. The image data producing section27performs a drawing process to produce print image data and stores the print image data into the memory25. The print start control section28controls the printer engine26to implement printing of the print image data stored in the memory25.

In this embodiment, the size of image data and the free memory sizes of the computer10and the printer20are compared with each other and, based on a selection rule preset corresponding to the comparison result, one of the printer drivers3and5is selected.

FIGS. 2,3and4are flow diagrams showing an operation sequence of the printing system according to the first preferred embodiment.

With reference toFIGS. 2 and 3, selection of the printer driver in the computer10and an operation sequence of the printer20will be described hereinbelow.

For printing, a user inputs a print command which is fed to the operating system12of the computer10via the application11being executed on the operating system12.

The operating system12feeds the print command to the printer driver selecting section15.

The printer driver selecting section15obtains from the command generating section17a command for inquiring a free memory size of the printer20, and commands the port driver18to send the inquiry command to the printer20.

The port driver18sends the inquiry command to the printer20via the bidirectional interface30.

The printer20receives the inquiry command at the interface processing section21and decodes it at the command analyzing section22.

The command analyzing section22judges whether the received command is for inquiring the free memory size of the memory25.

If positive at step S6, the free memory size measuring section24produces a status signal indicative of the free memory size of the printer20and feeds it to the interface processing section21.

The interface processing section21sends the status signal received from the free memory size measuring section24to the computer10via the bidirectional interface30.

The printer driver selecting section15commands the printer free memory size determining section16to decode the status signal received via the port driver18.

If the contents of the status signal represent the free memory size of the printer20, the operation sequence proceeds to step S11. On the other hand, if negative, the operation sequence proceeds to execution of another process (not shown) corresponding to the contents of the status signal.

The printer free memory size determining section16stores the printer free memory size as PrMemSize and notifies it to the printer driver selecting section15.

The printer driver selecting section15commands the computer free memory size determining section14to measure the free memory size of the memory13and notify it to the printer driver selecting section15.

The computer free memory size determining section14stores the measured free memory size as PcMemSize and notifies it to the printer driver selecting section15.

The printer driver selecting section15selects one of the PDL printer driver3and the HBP printer driver5based on the free memory size PrMemSize of the printer20and the free memory size PcMemSize of the computer10and sets it for execution.

The operating system12commands the selected printer driver to read image data produced by the application11and stored in the memory13.

The selected printer driver converts the image data read from the memory13into a printer language for the corresponding emulation.

The port driver18transfers the image data in the printer language to the printer20.

The printer20decodes at the command analyzing section22the image data received by the interface processing section21via the bidirectional interface30.

The command analyzing section22judges whether the received data is a command. If positive, the printer20carries out another process (not shown) corresponding to the command.

If the received data is not a command, the emulation judging section23judges whether the received data is converted for the PDL emulation or the HBP emulation.

If the received data is for the PDL emulation, the emulation judging section23feeds the image data to the PDL emulation section7where the image data is processed for the PDL emulation.

If the received data is for the HBP emulation, the emulation judging section23feeds the image data to the HBP emulation section9where the image data is processed for the HBP emulation.

The image data producing section27receives the image data processed at the PDL emulation section7or the HBP emulation section9to produce print image data from the received image data and writes it into the memory25.

The print start control section28activates the printer engine26and transfers the print image data from the memory25to the printer engine26where printing of the print image data is implemented.

Now, the printer driver selection sequence executed at step S14inFIG. 3will be described in detail with reference to FIG.4.

The printer driver selecting section15obtains the horizontal print resolution H_PrintRes[dpi] (dot per inch) and the vertical print resolution V_PrintRes[dpi] designated by the application11.

The printer driver selecting section15obtains the horizontal print paper size H_PrintSize[inch] and the vertical print paper size V_PrintSize[inch] designated by the application11.

When the image data is compressed at the compression rate CompRate (the rate of a data size after compression relative to the original data size), the printer driver selecting section15calculates an image data size ImageDataSize[byte] necessary for printing based on the horizontal print resolution H_PrintRes[dpi], the vertical print resolution V_PrintRes[dpi], the horizontal print paper size H_PrintSize[inch] and the vertical print paper size V_PrintSize[inch], using the following equation.
ImageDataSize=(H—PrintRes·H—PrintSize/8)·(V—PrintRes·V—PrintSize)·CompRate

For example, as described before, the printer20has the print resolution of 600 [dpi] in each of the main and secondary scanning directions. Thus, assuming that the print paper size is that of U.S. letter paper and the compression rate CompRate is the image data size is given by the following equation.ImageDataSize=⁢(600⁡[dpi]·8⁡[inch]/8⁡[bit])·⁢(600⁡[dpi]·10.67⁡[inch])·0.7≈⁢2625⁡[Kbyte]
(Step S33)

The printer driver selecting section15compares the free memory size PcMemSize of the computer10and the image data size ImageDataSize.

If PcMemSize is greater than ImageDataSize, one-page image data can be stored in the memory13of the computer10so that the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If PcMemSize is not greater than ImageDataSize, the printer driver selecting section15compares the free memory size PrMemSize of the printer20and ImageDataSize.

If PrMemSize is greater than ImageDataSize, one-page image data can be stored in the memory25of the printer20so that the operation sequence proceeds to step S34where the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If PrMemSize is not greater than ImageDataSize, the printer driver selecting section15compares PcMemSize and PrMemSize.

If PcMemSize is greater than PrMemSize, the operation sequence proceeds to step S34where the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If PcMemSize is not greater than PrMemSize, the printer driver selecting section15selects the PDL emulation, i.e. the PDL printer driver3.

The computer10may be a personal computer, a workstation, a word processor or one of other devices that can send image data to a printer and control the printer to print the received image data. The printer20may be one of various types that can be operated by two or more kinds of printer drivers, wherein a proper selection rule is provided for each of the printer drivers as in the foregoing first preferred embodiment.

In the foregoing first preferred embodiment, the image data size and the free memory sizes of the computer and the printer are compared, i.e. the environments of the computer and the printer are compared, and one of the two printer drivers is selected based on the selection rule provided corresponding to the comparison result. Thus, the optimum printer driver can be automatically selected depending on the environments of the computer and the printer.

Second Embodiment

FIG. 5is a block diagram showing a printing system according to the second preferred embodiment of the present invention.

In this embodiment, a printer20is an LED type electrophotographic printer having, for example, the print resolution of 600 [dpi] in each of the main and secondary scanning directions and a paper feed speed of 2 [ips] (inch per second) in the vertical direction.

InFIG. 5, a computer10differs from the computer10inFIG. 1in that a computer data transfer speed determining section35and a timer36are added, while the computer free memory size determining section14is omitted. The printer20inFIG. 5is the same as the printer20in FIG.1. Hereinbelow, what differs from the foregoing first preferred embodiment will be described.

The computer data transfer speed determining section35uses the port driver18and the timer36to measure a data transfer speed when image data is transferred from the computer10to the printer20. In this embodiment, the printer driver selecting section15compares between the computer data transfer speed and the printer paper feed speed and between the image data size and the printer free memory size to select one of the PDL printer driver3and the HBP printer driver5based on a selection rule preset corresponding to a result of the comparison and sets the selected printer driver for execution.

FIGS. 6,7and8are flow diagrams showing an operation sequence of the printing system according to the second preferred embodiment.

With reference toFIG. 6, selection of the printer driver in the computer10and an operation sequence of the printer20will be described hereinbelow.

In this embodiment, the printing system first executes steps S1to S11shown inFIG. 2as in the foregoing first preferred embodiment. The following operation sequence is implemented subsequently to the execution of step S11.

For calculating a data transfer speed of the bidirectional interface30, the printer driver selecting section15obtains dummy data which is meaningless to the printer20, from the command generating section17, and commands the port driver18to send the dummy data to the printer20. The printer driver selecting section15sets a size of the dummy data as DummySize[byte].

The port driver18starts the timer36and sends the dummy data to the printer20via the bidirectional interface30.

The printer20receives the dummy data at the interface processing section21and decodes it at the command analyzing section22.

The command analyzing section22judges whether the received data is the dummy data, and ignores it when it is the dummy data.

After sending all the dummy data, the port driver18stops the timer36and sets a timer value as PcTransTime[μs].

The printer driver selecting section15calculates a data transfer speed PcTransSpeed[byte/sec] based on the dummy data size DummySize[byte] and the timer value PcTransTime[μs].

The printer driver selecting section15selects one of the PDL printer driver3and the HBP printer driver5based on the printer free memory size PrMemSize and the data transfer speed PcTransSpeed, and sets it for execution.

Since a subsequent operation sequence is the same as that of steps S15to S24shown inFIG. 3, explanation thereof is omitted.

Now, the printer driver selection sequence executed at step S46inFIG. 6will be described in detail with reference toFIGS. 7 and 8.

The printer driver selecting section15obtains the horizontal print resolution H_PrintRes[dpi] and the vertical print resolution V_PrintRes[dpi] designated by the application11.

The printer driver selecting section15obtains the horizontal print paper size H_PrintSize[inch] and the vertical print paper size V_PrintSize[inch] designated by the application11.

The printer driver selecting section15calculates a horizontal image data size H_ImageSize[byte] based on the compression rate CompRate (the rate of a data size after compression relative to the original data size), the horizontal print resolution H_PrintRes [dpi] and the horizontal print paper size H_PrintSize[inch], using the following equation.
H—ImageSize=(H—PrintRes·H—PrintSize/8)·CompRate
(Step S53)

The printer driver selecting section15calculates an image data size ImageDataSize[byte] necessary for printing based on the horizontal image data size H_ImageSize[byte], the vertical print resolution V_PrintRes[dpi] and the vertical print paper size V_PrintSize[inch], using the following equation.
ImageDataSize=H—ImageSize·(V—PrintRes·V—PrintSize)
(Step S54)

The printer driver selecting section15calculates an image data transfer time per raster line H_TransTime[ms] based on the data transfer speed PcTransSpeed[byte/sec] and the horizontal image data size H_ImageSize[byte], using the following equation.
H—TransTime=(H—ImageSize/PcTransSpeed)·1000
(Step S55)

The printer driver selecting section15calculates a paper feed time per raster line H_PrintTime[ms] based on a paper feed speed EngineSpeed[ips] and the vertical print resolution V_PrintRes[dpi], using the following equation.
H—PrintTime=EngineSpeed·(1/V—PrintRes)·1000
(Step S56)

The printer driver selecting section15calculates a paper feed time per page PrintTime[sec] based on the paper feed speed EngineSpeed[ips] and the vertical print paper size V_PrintSize[inch], using the following equation.
PrintTime=V—PrintSize/EngineSpeed
(Step S57)

Assuming that the printer20starts printing from the state wherein image data corresponding to a portion of one-page image data is stored up to the free memory size of the printer20and that the printer20simultaneously receives remaining image data (image data corresponding to a remaining portion of the one-page image data), an image data size S[byte] stored in the memory25of the printer20after a lapse of time t[sec] is calculated based on the printer free memory size PrMemSize[byte], the horizontal image data size H_ImageSize[byte] and the paper feed time per raster line H_PrintTime[ms], using the following equation.
S=PrMemSize−(H—PrintTime·PcTransSpeed−H—ImageSize)·t/H—PrintTime

Here, a time EmptyTime[sec] representing a time until areas of the memory25storing the image data become empty is given by a value of t when S=0. Accordingly, the printer driver selecting section15calculates the time EmptyTime[sec] based on the following equation.
EmptyTime=PrMemSize·(H—PrintTime/1000)/(H—PrintTime/1000·PcTransSpeed−H—ImageSize)
(Step S58)

The printer driver selecting section15compares the pager feed time per raster line H_PrintTime[ms] and the image data transfer time per raster line H_TransTime[ms].

If H_PrintTime is greater than H_TransTime, meaning that image data can be sent to the printer20without causing an underrun error during printing, the operation sequence proceeds to step S62where the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If H_PrintTime is not greater than H_TransTime, the printer driver selecting section15compares the free memory size PrMemSize of the printer20and the mage data size ImageDataSize.

If PrMemSize is greater than ImageDataSize, meaning that one-page image data can be stored in the memory25of the printer20, the operation sequence proceeds to step S62where the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If PrMemSize is not greater than ImageDataSize, the printer driver selecting section15compares the time EmptyTime[sec] and the paper feed time per page PrintTime[sec].

If EmptyTime is greater than PrintTime, meaning that reception of one-page image data is finished during PrintTime, the operation sequence proceeds to step S62where the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

If EmptyTime is not greater than PrintTime, the printer driver selecting section15selects the PDL emulation, i.e. the PDL printer driver3.

For example, it is assumed that the paper feed speed EngineSpeed is 2 [ips], the horizontal print resolution H_PrintRes and the vertical print resolution V_PrintRes are each 600 [dpi], the horizontal print paper size H_PrintSize is 8 [inch], the vertical print paper size V_PrintSize is 10.67 [inch], the compression rate CompRate is 0.7, the printer free memory size PrMemSize is 1024 [Kbyte], the dummy data size DummySize is 128 [Kbyte] and the timer value (data transfer time) PcTransTime is 0.5 [sec].

Since CompRate=0.7, the horizontal image data size H_ImageSize[byte] is given byH_ImageSize=⁢(H_PrintRes·H_PrintSize/8)·CompRate=⁢(600⁡[dpi]·8⁡[inch]/8⁡[bit])·0.7=⁢420⁡[byte]

The image data size ImageDataSize[byte] is given byImageDataSize=⁢H_ImageSize·(V_PrintRes·V_PrintSize)=⁢420⁡[byte]·(600⁡[dpi]·10.67⁡[inch])=⁢2,688,840⁡[byte]

Since DummySize=128·1024 [byte] and PcTransTime=0.5 [sec], the data transfer speed PcTransSpeed is given byPcTransSpeed=⁢DummySize/PcTransTime=⁢128·1024⁡[byte]/0.5⁡[sec]=⁢262,144⁡[byte⁢/⁢sec]

The paper feed time per raster line H_PrintTime[ms] is given byH_PrintTime=⁢EngineSpeed·(1/V_PrintRes)·1000=⁢2·(1/600)·1000≈⁢3.33⁡[ms]

The paper feed time per page PrintTime[sec] is given byPrintTime=⁢V_PrintSize/EngineSpeed=⁢10.67/2=⁢5.335⁡[sec]

Accordingly, in this example, since EmptyTime=7.65 [sec] and PrintTime=5.335 [sec], EmptyTime is greater than PrintTime so that the printer driver selecting section15selects the HBP emulation, i.e. the HBP printer driver5.

In the foregoing second preferred embodiment, the comparison is made between the computer data transfer speed and the printer paper feed speed and between the image data size and the printer free memory size, i.e. the comparison is made between the environments of the computer and the printer, and one of the two printer drivers is selected based on the selection rule provided corresponding to the comparison result. Thus, the optimum printer driver can be automatically selected depending on the environments of the computer and the printer.

Third Embodiment

FIG. 9is a block diagram showing a printing system according to the third preferred embodiment of the present invention.

InFIG. 9, a computer10differs from the computer10inFIG. 5in that a printer drawing capability determining section37and a computer drawing capability determining section38are added while the printer free memory size determining section16and the computer data transfer speed determining section35shown inFIG. 5are omitted. A printer20inFIG. 9differs from the printer20inFIG. 5in that a printer drawing time measuring section43and a printer timer44are added while the free memory size measuring section24shown inFIG. 5is omitted. Hereinbelow, what differs from the foregoing second preferred embodiment will be described.

The computer drawing capability determining section38uses a timer36to determine a drawing speed of the computer10upon drawing image data. The printer drawing capability determining section37determines a drawing speed of the printer20based on a status signal sent from the printer20. In this embodiment, the printer driver selecting section15compares the drawing speed of the computer10and the drawing speed of the printer20to select one of the PDL printer driver3and the HBP printer driver5based on a selection rule preset corresponding to a result of the comparison and sets the selected printer driver for execution. The printer drawing time measuring section43uses the printer timer44to measure a drawing time of the printer20upon drawing image data and notifies it to the printer drawing capability determining section37of the computer10.

FIGS. 10,12and13are flow diagrams showing an operation sequence of the printing system according to the third preferred embodiment.

With reference toFIG. 10, selection of the printer driver in the computer10and an operation sequence of the printer20will be described hereinbelow.

In this embodiment, the printing system first executes steps S1to S5shown inFIG. 2except that at step S3the printer driver selecting section15obtains from the command generating section17a command for inquiring the drawing capability of the printer20instead of the free memory size thereof. The following operation sequence is implemented subsequently to the execution of step S5.

The printer20judges at the command analyzing section22whether the command received from the computer10is for inquiring the drawing capability of the printer20.

If positive at step S70, the printer drawing time measuring section43performs a drawing process, measures a drawing time using the printer timer44and produces a status signal indicative of the drawing time.

On the other hand, if negative at step S70, the operation sequence proceeds to execution of another process (not shown) according to the contents of the command.

The interface processing section21sends the status signal received from the printer drawing time measuring section43to the computer10via the bidirectional interface30.

The printer driver selecting section15commands the printer drawing capability determining section37to decode the status signal received via the port driver18.

The printer drawing capability determining section37judges whether the contents of the status signal represent a drawing time of the printer20. If negative, the operation sequence proceeds to execution of another process (not shown) corresponding to the contents of the status signal.

If the contents of the status signal represent the printer drawing time, the printer drawing capability determining section37stores it as PrDrawTime[sec] and notifies it to the printer driver selecting section15.

The printer driver selecting section15commands the computer drawing capability determining section38to measure the drawing capability of the computer10.

The computer drawing capability determining section38measures a computer drawing time using the timer36, stores it as PcDrawTime[sec] and notifies it to the printer driver selecting section15.

The printer driver selecting section15compares the printer drawing time PrDrawTime and the computer drawing time PcDrawTime.

If PrDrawTime is smaller than PcDrawTime, the printer driver selecting section15judges that the drawing capability of the printer20excels that of the computer10, and selects the PDL printer driver3.

If PrDrawTime is not smaller than PcDrawTime, the printer driver selecting section15judges that the drawing capability of the computer10excels that of the printer20, and selects the HBP printer driver5.

Since a subsequent operation sequence is the same as that of steps S15to S24shown inFIG. 3, explanation thereof is omitted.

FIG. 11is a diagram for explaining a drawing capability determining method.

Concrete examples for evaluating the drawing capabilities of the computer10and the printer20will be given with respect to the operating system MS-Windows produced by Microsoft Corporation.

The image drawing capabilities defined by GDI (graphic device interface) of MS-Windows are classified into six categories as shown in FIG.11.

By selecting typical ten drawing functions from the six categories as objects for evaluation and evaluating the sum of drawing times thereof, the total image drawing capability can be measured.

Referring now toFIG. 12, an operation sequence of the printer drawing time measuring section43of the printer20will be described.

According to the operation sequence shown inFIG. 12, the printer drawing time PrDrawTime stored at step S75inFIG. 10can be calculated by the following equation.
PrDrawTime=Pr(CC—CIRCLE)+Pr(LC—POLYSCANLINE)
+Pr(LC—STYLED)+Pr(PC—RECTANGLE)
+Pr(PC—WINDPOLYGON)+Pr(TC—RA—ABLE)
+Pr(TC—CR—90)+Pr(CP—RECTANGLE)
+Pr(RC—BITBLT)+Pr(RC—STRETCHDIB)

In the equation, Pr( ) functions represent processing times of the respective drawing functions of the printer20shown in FIG.11.

Specifically, steps S90to S99inFIG. 12correspond to drawing capability calculations at items (1) to (10) shown in FIG.11.

At step S90, a time for drawing a circle representing the curve drawing capability is measured and set as Time.

At step S91, a drawing time for a scanline representing the line drawing capability is measured and added to Time.

At step S92, a drawing time for a styled line representing the line drawing capability is measured and added to Time.

At step S93, a drawing time for a rectangle representing the polygon drawing capability is measured and added to Time.

At step S94, a drawing time for the whole-area paint-out of a polygon representing the polygon drawing capability is measured and added to Time.

At step S95, a drawing time for a raster font representing the text drawing capability is measured and added to Time.

At step S96, a drawing time for character rotation by 90 degrees representing the text drawing capability is measured and added to Time.

At step S97, a drawing time for clipping a rectangle representing the clipping drawing capability is measured and added to Time.

At step S98, a drawing time for bit-map transfer representing the raster drawing capability is measured and added to Time.

At step S99, a drawing time for stretching/contraction of DIB bit-map representing the raster drawing capability is measured and added to Time.

After execution of step S99, Time is set as PrDrawTime.

Referring now toFIG. 13, an operation sequence of the computer drawing capability determining section38of the computer10will be described.

According to the operation sequence shown inFIG. 13, the computer drawing time PcDrawTime stored at step S77inFIG. 10can be calculated by the following equation.
PcDrawTime=Pc(CC—CIRCLE)+Pc(LC—POLYSCANLINE)
+Pc(LC—STYLED)+Pc(PC—RECTANGLE)
+Pc(PC—WINDPOLYGON)+Pc(TC—RA—ABLE)
+Pc(TC—CR—90)+Pc(CP—RECTANGLE)
+Pc(RC—BITBLT)+Pc(RC—STRETCHDIB)

In the equation, Pc( ) functions represent processing times of the respective drawing functions of the computer10shown in FIG.11.

As appreciated, steps S100to S109inFIG. 13correspond to drawing capability calculations at items (1) to (10) shown in FIG.11and are the same as steps S90to S99in FIG.12.

After execution of step S109, Time is set as PcDrawTime at step S110.

In the foregoing third preferred embodiment, the drawing capability of the computer and the drawing capability of the printer are compared, i.e. the environments of the computer and the printer are compared, and one of the two printer drivers is selected based on the selection rule provided corresponding to the comparison result. Thus, the optimum printer driver can be automatically selected depending on the environments of the computer and the printer.

Fourth Embodiment

FIG. 14is a block diagram showing a printing system according to the fourth preferred embodiment of the present invention.

In this embodiment, a printer20is an LED type electrophotographic printer having, for example, the print resolution of 600 [dpi] in each of the main and secondary scanning directions and a paper feed speed of 2 [ips] in the vertical direction.

InFIG. 14, a computer10differs from the computer10inFIG. 5in that an intermediate metafile analyzing section45and an intermediate metafile46are added while the computer data transfer speed determining section35and the timer36shown inFIG. 5are omitted. A printer20inFIG. 14is the same as the printer20in FIG.5. Hereinbelow, what differs from the foregoing second preferred embodiment will be described.

In this embodiment, upon requesting printing of image data, the application11produces a print command and the intermediate metafile46of the image data. The intermediate metafile analyzing section45derives an evaluation size of the intermediate metafile46. The printer driver selecting section15compares the free memory size of the printer20and the evaluation size of the intermediate metafile46to select one of the PDL printer driver3and the HBP printer driver5based on a selection rule preset corresponding to a result of the comparison and sets the selected printer driver for execution.

FIGS. 15,16and18are flow diagrams showing an operation sequence of the printing system according to the fourth preferred embodiment.

With reference toFIGS. 15 and 16, selection of the printer driver in the computer10and an operation sequence of the printer20will be described hereinbelow.

For printing, a user inputs a print command which is fed to the operating system12of the computer10via the application11being executed on the operating system12.

The application11stores produced image data in the form of the intermediate metafile46.

The operating system12feeds the print command to the printer driver selecting section15.

The printer driver selecting section15obtains from the command generating section17a command for inquiring a free memory size of the printer20, and commands the port driver18to send the inquiry command to the printer20.

The port driver18sends the inquiry command to the printer20via the bidirectional interface30.

The printer20receives the inquiry command at the interface processing section21and decodes it at the command analyzing section22.

The command analyzing section22judges whether the received command is for inquiring the free memory size of the memory25.

If positive at step S126, the free memory size measuring section24derives a status signal indicative of the free memory size of the printer20and feeds it to the interface processing section21.

The interface processing section21sends the status signal received from the free memory size measuring section24to the computer10via the bidirectional interface30.

The printer driver selecting section15commands the printer free memory size determining section16to decode the status signal received via the port driver18.

The printer free memory size determining section16judges whether the contents of the status signal represent the free memory size of the printer20. If negative, the operation sequence proceeds to execution of another process (not shown) corresponding to the contents of the status signal.

If the contents of the status signal represent the free memory size of the printer20, the printer free memory size determining section16stores it as PrMemSize and notifies it to the printer driver selecting section15.

Then, the operation sequence proceeds to step S132in FIG.16.

The printer driver selecting section15commands the intermediate metafile analyzing section45to analyze the contents of the intermediate metafile46produced by the application11.

The intermediate metafile analyzing section45analyzes the contents of the image data stored in the intermediate metafile46to store a result of the analysis as intermediate metafile information PcMetaInfo and notifies it to the printer driver selecting section15.

The printer driver selecting section15compares the printer free memory size PrMemSize and the intermediate metafile information PcMetaInfo.

If PrMemSize is greater than PcMetaInfo, the printer driver selecting section15judges that the printer20can implement printing normally without causing a page buffer overflow in response to receipt of PDL commands, and selects the PDL printer driver3.

If PrMemSize is not greater than PcMetaInfo, the printer driver selecting section15judges that the printer20may cause a page buffer overflow in response to receipt of PDL commands, and selects the HBP printer driver5.

Since a subsequent operation sequence is the same as that of steps S15to S24shown inFIG. 3, explanation thereof is omitted.

At step S133inFIG. 16, the intermediate metafile analyzing section45evaluates the contents of the intermediate metafile46using PDL commands, which will be described in detail with reference toFIGS. 17 and 18.

FIG. 17is a diagram for explaining a metafile evaluation size calculation method, wherein image drawing functions stored in the intermediate metafile46are evaluated with respect to PDL commands of seven kinds. Based on evaluation sizes with respect to these PDL commands, the total evaluation size PcMetaInfo of the whole intermediate metafile46can be derived.

FIG. 18shows an operation sequence for calculating the total evaluation size PcMetaInfo. InFIG. 18, a metafile evaluation size is initialized at step S140, then the contents of the intermediate metafile46are classified as shown inFIG. 17so that steps S142to S148are executed in sequence to derive the total evaluation size PcMetaInfo. After adding the evaluation sizes with respect to all the PDL commands, the operation sequence is finished (Yes at step S149).

The total metafile evaluation size PcMetaInfo is calculated by the following equation.
PcMetaInfo=Count(TEXT)·Size(TEXT)+Count(LINE)·Size(LINE)
+COUNT(CIRCLE)·Size(CIRCLE)+Count(CURVE)
·SIZE(CURVE)+Count(PIXEL)·Size(PIXEL)
+Σ(IMAGE)·Size(IMAGE)+Count(DUMMY)·Size(DUMMY)

For example, it is assumed that the printer free memory size PrMemSize stored at step S131inFIG. 15is 1024 [Kbyte] and that the contents of the intermediate metafile46are as follows.Number of Times of Text Drawing=2400Number of Times of Line Drawing=100Number of Times of Circle Drawing=2Number of Times of Curve Drawing=20Number of Times of Pixel Drawing=4000Number of Times of Image Data Drawing=10Number of Times of Drawing Others=200

In this case, using the foregoing equation, the total metafile evaluation size PcMetaInfo is given byPcMetaInfo=⁢2400·52+100·14+2·14+20·18+⁢4000·6+10·40·1024+200·40=⁢124800+1400+28+360+24000+⁢409600+8000=⁢568188⁡[byte]

From the foregoing result, PrMemSize is greater than PcMetaInfo so that the PDL printer driver is selected.

In the foregoing fourth preferred embodiment, the evaluation size of the intermediate metafile and the free memory size of the printer are compared, i.e. the environments of the computer and the printer are compared, and one of the two printer drivers is selected based on the selection rule provided corresponding to the comparison result. Thus, the optimum printer driver can be automatically selected depending on the environments of the computer and the printer.

While the present invention has been described in terms of the preferred embodiments, the invention is not to be limited thereto, but can be embodied in various ways without departing from the principle of the invention as defined in the appended claims.