Printing control for transmitting print data and print setting data to a printing apparatus

This invention is directed at preventing unnecessary processing and CPU load of a PC when always printing via a printer driver, and avoiding the omission of a printer driver function when always performing direct printing. When using a printer having a direct printing function, which of printing via the printer driver and direct printing is to be done is determined in accordance with print settings of each print job, and then printing is executed. A function to be implemented by the driver among set functions is determined (S504). If there is a function to be implemented by the driver, it is determined whether to give priority to direct printing (S505). If no priority is given to direct printing, the driver is used; otherwise, direct printing is performed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a printing control apparatus and printing control method. More particularly, the present invention relates to a printing control apparatus and printing control method in a system including an information processing apparatus such as a personal computer (to be referred to as a PC) and a printing apparatus such as a printer.

2. Description of the Related Art

Conventionally in printing, a printer driver runs on a computer such as a PC. The printer driver converts print data created by an application and an operating system (to be referred to as an OS) such as Microsoft Windows® into print data (e.g., PDL data or image) processible by a printer. The printer driver transfers the converted print data to the printer to print. The intervention of the printer driver allows usage of the many functions provided by it in printing. However, this configuration requires OS-dependent processing and processing by the printer driver, which occupies the CPU of the PC. The printer driver converts print data into a language processible by a printer, such as PDL data or an image, so processing to reacquire, reedit and then reuse print data transmitted to a printer is difficult.

As another configuration of a printing system, print data created by an application is directly transmitted to a printer without converting it into PDL data, an image, or the like, and the printer interprets the print data to print. The printing form of directly transferring print data created by an application to a printer is called direct printing. For example, an application creates print data in the PDF (Portable Document Format) available from Adobe, and directly transmits it to a printer.

In a printing system called XPS introduced in Microsoft Windows Vista®, application data converted into the XPS data format is converted into PDL data for transmission. This printing system can also handle transmission of XPS format print data to a printer to print.

According to a conventional technique, a printer driver directly transfers a file created and saved by an application program to a spooler after conversion without reading the file into the application, thereby directly printing out the file (see, e.g., patent reference 1). As another technique, it is determined which of a printer driver (PC) and a printer can process data more efficiently, and then printing is done (see, e.g., patent reference 2). As still another technique, an application designates whether to perform processing by a printer driver, thereby switching the printing method between printing via a printer driver and printing by directly transmitting data to a printer (see, e.g., non-patent reference 1).

However, in conventional direct printing, it is not determined whether designated print settings require processing by a printer driver (PC), and print data is directly transmitted to a printer. As a result, a set function may not be achieved. For example, there is a function for which the printer driver displays a dialog in printing. The dialog prompts the user to enter his user name and password, and whether to permit or prevent printing is decided based on the input contents. When, however, direct printing is performed as mentioned above, the printer driver does not intervene and thus no dialog can be displayed. Print data is transmitted to a printer, failing to permit/inhibit printing. The invention disclosed in patent reference 1 obviates the need to load a specific application, reducing processing in the PC. However, the printer driver converts print data obtained from an application into an image or PDL data regardless of print settings, and thus processes such as reacquisition and reediting of print data transmitted to a printer are difficult. In addition, the problem of the CPU of the PC being occupied is not solved. In the invention disclosed in patent reference 2, processing is executed by more efficient hardware out of a printer driver (PC) and printer. When it is decided to perform processing using the printer driver, the printer driver (PC) always executes processing regardless of print settings. Hence, the problem of the CPU of the PC being occupied still remains. When it is decided to perform processing using the printer, print data is directly transmitted to the printer regardless of print settings, and the problem of failing to implement some functions goes unsolved.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the above situation to solve the above problems. More specifically, it is determined in accordance with print setting data whether a print job to be executed requires processing by a printer driver. Printing is done based on this determination result. If processing by the printer driver is unnecessary, print data is directly transmitted to a printing apparatus; otherwise, printing is executed via the printer driver. This can decrease the print processing load on the CPU of a PC and reduce unnecessary processing. Printing can be appropriately performed without omission of a function set in print settings.

The present invention comprises the following arrangement.

According to an aspect of the present invention, printing control apparatus which controls a printing apparatus by using print data generated by an application program and print setting data for the print data, comprises: a first determination unit, configured to determine whether the printing apparatus is capable of direct printing; a second determination unit, configured to, when the first determination unit determines that the printing apparatus is capable of direct printing, determine whether the print setting data contains a setting requiring printer driver processing; and a notification unit, configured to, when the second determination unit determines that the print setting data does not contain the setting requiring printer driver processing, notify the application program that the print data can be directly transmitted to the printing apparatus, and otherwise, notify the application program that the print data cannot be directly transmitted to the printing apparatus.

According to another aspect, a printing control apparatus which controls, by using print data generated by an application program and print setting data for the print data, a printing apparatus capable of interpreting print data output from the application, comprises: a second determination unit, configured to determining whether the print setting data contains a setting requiring printer driver processing; and a notification unit, configured to, when the second determination unit determines that the print setting data does not contain the setting requiring printer driver processing, notify the application program that the print data can be directly transmitted to the printing apparatus, and otherwise, notify the application program that the print data cannot be directly transmitted to the printing apparatus.

According to the present invention, print processing having print settings requiring printer driver processing is executed via the printer driver. As for print processing having print settings requiring no printer driver processing, direct printing can be permitted. The load of the CPU of a PC can therefore be decreased to reduce unnecessary processing. Printing can be properly performed without omitting a function set in print settings.

DESCRIPTION OF THE EMBODIMENTS

Preferred embodiments of the present invention will be described below in detail with reference to the accompanying drawings. The same reference numerals denote the same building components, and a description thereof will not be repeated.

FIG. 1is a block diagram showing the configuration of a printing system according to an embodiment of the present invention. In the embodiment, the system shown inFIG. 1may be formed from a single device or a plurality of devices. The system may be connected via a network such as a LAN or WAN and perform processing. As shown inFIG. 1, a host computer (printing control apparatus)3000includes a CPU1. The CPU1controls execution of document processing and print processing based on it in accordance with a document processing program and the like stored in the program ROM of a ROM3or an external memory11. The document processing includes processes in embodiments for documents containing figures, images, texts, and tables (including a spreadsheet). The CPU1controls devices connected to a system bus4. The program ROM of the ROM3or the external memory11stores an operating system program (OS) and the like serving as control programs of the CPU1. The font ROM of the ROM3or the external memory11stores font data and the like used in document processing. The data ROM of the ROM3or the external memory11stores various data used to perform document processing and the like. A RAM2functions as a main memory, work area, and the like for the CPU1. A keyboard controller5controls input from a keyboard9and a pointing device (not shown). A display controller6controls display on a display10. A disk controller7controls access to the external memory11. The external memory11includes a hard disk and Floppy® disk which store a boot program, various kinds of applications, font data, user files, edit files, printer control command generation program, and the like. A printer controller8is connected to a printer1500via a network or a bidirectional interface21, and executes communication control processing with the printer1500. Based on commands designated with a mouse cursor (not shown) or the like on the display10, the CPU1opens a variety of windows registered in advance and executes various data processes. When executing printing, the user can open a window associated with print settings to set a print processing method such as setting of a printer and selection of a print mode.

A CPU12controls the printer1500. Based on a control program or the like stored in a ROM13or a control program or the like stored in an external memory14, the CPU12outputs an image signal serving as printout information via a printing unit interface16to a printing unit17connected to a system bus15. The printing unit17will also be called a printer engine. The program ROM of the ROM13stores control programs and the like for the CPU12. The font ROM of the ROM13stores font data and the like used to generate printout information. The data ROM of the ROM13stores information used in the computer when the printer does not have an external memory14such as a hard disk. The CPU12can communicate with the host computer3000via an input unit18, and notifies the host computer3000of information and the like in the printer1500. A RAM19functions as a main memory, work area, and the like for the CPU12. The memory capacity can be expanded by an optional RAM connected to an expansion port (not shown). The RAM19is used as an output information rendering area, environmental data storage area, NVRAM, and the like. A memory controller20controls access to the external memory14such as a hard disk or IC card. The external memory14is connected as an option, and stores font data, emulation programs, form data, and the like. An operation unit22is, for example, an operation panel and includes switches, LED display, and the like for manipulation by the user. In the embodiment, the printer1500may include an NVRAM (not shown) to store printer mode setting information input from the operation unit22. In the embodiment, the printing unit17is an electrophotographic printer engine but may comply with another printing method instead of the electrophotographic method.

The storage locations of programs and data are merely examples, and programs and data may be stored in a medium other than the above-mentioned storage locations.

FIG. 2is a block diagram showing an arrangement for print processing in the computer3000shown inFIG. 1. An application201, graphic engine202, printer driver203, and system spooler204exist as program files saved in the external memory11. These files are program modules which are loaded into the RAM2and executed by an OS or a module using these modules.

The application201and printer driver203can be added to the HD of the external memory11from the FD of the external memory11or a CD-ROM (not shown) or via a network (not shown). The application201saved in the external memory11is loaded into the RAM2and executed. When printing from the application201using the printer1500, data is output (rendered) using the graphic engine202which has been similarly loaded into the RAM2and is ready.

The graphic engine202loads, from the external memory11into the RAM2, the printer driver203prepared for each printing apparatus such as a printer. The graphic engine202receives print settings or print data from the application201and outputs them to the printer driver203. A UI component205of the printer driver203receives print settings from the graphic engine202, displays and changes them, and sends them back to the application via the graphic engine. A graphic component206of the printer driver203receives print data from the graphic engine202, and converts it into a control command, for example, PDL (Page Description Language) data recognizable by the printer. The converted printer control command passes through the system spooler204which has been loaded into the RAM2by the OS, and then is output as print data to the printer1500via the interface21.

<Settings Associated with Direct Printing>

Direct printing setting information held in the printer driver203will be explained with reference toFIGS. 6 and 7.FIG. 6is a view showing setting information regarding direct printing that is held in the printer driver203according to the present invention.FIG. 7is a view exemplifying a user interface for making settings associated with direct printing that are held in the printer driver203according to the present invention.

Referring toFIG. 6, setting information600is direct printing setting information (to be also simply referred to as setting information) regarding direct printing that is held in the printer driver203. The setting information600may be saved as a registry or file in the external memory11such as a hard disk (HD) or held by a program. The setting information600includes items601to604.

The driver function list601stores list information of functions except for those implementable by the printer1500among all functions implementable by the printing system in the embodiment. More specifically, the driver function list601stores a list of functions necessary to operate the printer driver203to implement them. The functions described in the information generally change depending on the type and state of the printer1500. When it is set to give priority to direct printing, the printer driver transmits print data303received in printing to the printer1500via the spooler204without converting it into PDL data, an image, or the like. When it is set not to give priority to direct printing, the printer driver converts print data into print data305such as PDL data or an image, as usual, and transfers the print data305to the printer1500via the spooler204. In the embodiment, print settings can contain functions implementable by the printing system by describing the functions in a job ticket which defines a print job. The direct printing execution setting602is a setting item indicating whether to perform direct printing. When it is set in the direct printing execution setting602to perform direct printing, a list of functions stored in the direct printing-recommended function list603becomes valid. These functions require execution of direct printing when set in printing. The direct printing priority function list604stores a list of functions for which priority is given to direct printing and processing by the printer driver is unnecessary, out of functions which should be originally implemented by the printer driver. The printer driver203determines that functions for which direct printing is preferentially set in the direct printing priority function list604do not require processing by the printer driver203. This processing will be explained with reference to the flowcharts ofFIGS. 4 and 5in print processing.

A dialog700is an example of a dialog for setting the setting information600regarding direct printing. The dialog700is formed as part (a tab) of a user interface provided by the printer driver203. The dialog700is displayed via the application201or the user interface of the OS. The user selects one of print setting radio buttons701,702, and703. When the user selects the radio button701, the direct printing execution setting602sets to perform direct printing. When the user selects the radio button702, the direct printing execution setting602sets to perform not direct printing but printing after PDL/image conversion. When the user selects the radio button703, she or he can select, from a list box704, a function for which direct printing is done. The function selected from the list box704is added to the direct printing execution function list603. When print settings in printing contain a function selected in this list, direct printing is executed. In the example ofFIG. 7, monochrome printing is selected, and data having the monochrome print setting undergoes direct printing.

Check boxes705,706, and707describe categorized functions requiring processing by the printer driver203. By unchecking each function, the function is stored in the direct printing priority function list604. For example, all displayed functions are checked inFIG. 7and none of them is registered as a direct printing priority function. When a given function is registered as a direct printing priority function and print settings contain an instruction to use this function, the print job undergoes direct printing. For example, inFIG. 7, “driver bookbinding” in the check box706is not checked, and print settings contain “driver bookbinding”. In this case, print data having this print setting undergoes direct printing. When the user presses an OK button708, a direct printing information storage unit325applies the current setting to the setting information600regarding direct printing, and then the printer driver user interface700disappears. That is, the setting information600is updated and saved. When the user presses a cancel button709, the printer driver user interface700disappears without applying the current setting. When the user presses an apply button710, the direct printing information storage unit325applies the current setting to the setting information600regarding direct printing. When the user presses a help button711, the help feature of the printer driver203appears.

The sequence of print processing according to the embodiment of the present invention will now be described with reference to the drawings.FIG. 3is a block diagram showing a system configuration for printing together with a data flow according to the embodiment. The detailed system configuration and data flow for printing according to the present invention will now be explained with reference toFIG. 3.

Print settings301are data set by a print setting creation unit311of the application201. The print settings301form, for example, a job ticket and are described in a format interpretable by a specific printer (in this example, XPS format interpretable by an XPS compatible printer). The print settings301may also be referred to as print setting data. A print setting inquiry unit312transfers the print settings301to a print setting unit321of the UI component205. The print setting unit321causes a line boundary character check unit322to perform line boundary character check for the received print settings301, and transfers the processed print settings301to a UI display unit324to display it. A driver function determination unit323determines whether a driver function is necessary or unnecessary for implementing the print settings having undergone line boundary character check. If necessary, the user changes the print settings using a printer driver setup window (UI: not shown), and the UI display unit324sends back processed print settings302to the application201. The direct printing information storage unit325stores the setting information600regarding direct printing. The application201creates print data303or304based on the data associated with print rendering and the print settings302. Based on the processed print settings302, a driver/direct determination unit313determines which of printing via the driver and direct printing is to be performed. A print data transmission unit314transmits the print data303or304.

A direct printing determination unit331determines whether to perform direct printing using the print data303received by the printer driver graphic component206. A function implementation unit332executes processing regarding a function to be implemented by the printer driver203. A rendering unit (PDL conversion unit)333converts the print data303into a control command recognizable by the printer, like PDL data. A spooler transfer unit334transmits the print data305to the system spooler204. The print data305is then output to the printer1500via the system spooler204. The print data305is data to be transmitted to the printer1500. Printer setting information306is setting information of the printer and stores a device attached to the printer1500(e.g., finisher), settings (e.g., function status), performance (e.g., whether color printing is possible), and the like. This setting information may be uniformly created and held when installing the printer driver203, or updated by communicating with the printer1500when changing the settings of the printer1500. In the embodiment, the printer setting information306contains information indicating whether direct printing is possible.

FIG. 4is a flowchart showing the sequence of print processing in the embodiment. The CPU1reads an associated program to execute each step of a sequence in this specification.FIG. 10is a view exemplifying the user interface of a print dialog displayed by a general application. The basic sequence of print processing will be explained with reference toFIG. 4. The application program201executes steps S401, S402, S406, S407, and S411. The printer driver UI component205executes steps S403to S405. The printer driver graphic component206executes steps S408and S409. The printer1500executes step S410.

When the user designates printing via an application window, the print processing inFIG. 4starts. In step S401, the print setting creation unit311creates print settings301so as to be able to display a user interface like the window1000shown inFIG. 10. The application201can hold the print settings301in advance before print processing is designated. A printer selection field1001inFIG. 10displays a currently selected printer. When the user presses a print button1003, the process advances to step S402, and the print setting inquiry unit312transfers the print settings301to the printer driver UI component205and requests processing.

In step S403, the line boundary character check unit322performs line boundary character check for the print settings301received by the print setting unit321. In step S404, the driver function determination unit323determines whether the print settings having undergone line boundary character check require a driver function, and then creates processed print settings302. Details of the processing in this step will be described later with reference toFIG. 5. In step S405, the print setting unit321sends back the processed print settings302to the print setting inquiry unit312of the application201.

When the user presses a button1002inFIG. 10, the print settings301are transmitted to the printer driver UI component205. The printer driver can execute processing and display a printer driver setup window on the UI display unit324. In this processing, processes corresponding to steps S402to S405can be done before the user presses the button1003.

In step S406, the driver/direct determination unit313acquires information which is described in the processed print settings302received by the print setting inquiry unit312and indicates whether direct printing is possible. Subsequently, the driver/direct determination unit313determines whether printing via the printer driver is to be performed or direct printing is possible. More specifically, the application receives, from the printer driver, a notification indicating whether direct printing is possible. Based on the notification contents, the application determines whether driver processing is necessary. If the driver/direct determination unit313determines that the print settings require the intervention of the printer driver, the process advances to step S407. If the driver/direct determination unit313determines that direct printing should be performed, the process advances to step S411. In step S407, the print data transmission unit314transmits the print data303to the printer driver graphic component206via the graphic engine202.

By the processes in steps S401to S407, the application201can determine, based on print settings, whether processing by the printer driver graphic component206is necessary or unnecessary. If it is determined that the processing is unnecessary, wasteful processing by the PC can be omitted. If necessary, a function can be appropriately implemented.

In step S408, the printer driver graphic component206receives the print data303, performs necessary processing, and creates print data305. Details of this step will be described later with reference toFIG. 8. Note that the print data305complies with a format processible by the printer1500. In step S409, the spooler transfer unit334transfers the print data305to the system spooler204. The print data305contains the print settings302or is transferred together with the print settings302.

In step S410, the printer1500outputs the received print data305, and the print processing ends.

In step S411, the print data transmission unit314transfers the print data304to the system spooler204. The print data304contains the print settings302or is output together with the print settings302.

According to this sequence, it is decided whether to transmit a target print job to the printer via the printer driver or directly transmit it from the application to the printer. Based on the decision, print setting data describing the print job, and print data are transmitted to the printer.

FIG. 5is a flowchart showing details of the processing (step S404) to determine whether to perform processing using the printer driver203in the embodiment.

In step S501, the driver function determination unit323refers to the target printer setting information306of the printer1500to determine whether the printer1500is capable of direct printing. If the driver function determination unit323determines that the printer1500is capable of direct printing, the process advances to step S502; if it determines that the printer1500is incapable of direct printing, to step S508. For example, in the embodiment, it is determined whether the printer1500is an XPS compatible printer, and if so, it is determined that the printer1500is capable of direct printing. As another determination method, the determination may be made using function information indicating whether the printer1500has a direct printing function. This determination is the first determination and corresponds to the first determination means. That is, the printer1500can interpret print data output from the application.

In step S502, the driver function determination unit323acquires the setting information600regarding direct printing. In step S503, the driver function determination unit323acquires one function from print settings having undergone line boundary character check in step S403. In step S504, the driver function determination unit323determines whether the driver function list601contains the function acquired in step S503. If the driver function list601contains the acquired function, the process advances to step S505; if it does not contain the acquired function, to step S506. The determination in step S504corresponds to the second determination means for determining whether print settings contain a setting (setting requiring printer driver processing) which cannot be implemented by the printer when the printer is capable of direct printing.

In step S505, the driver function determination unit323determines whether the direct printing priority function list604contains the function acquired in step S503. If the direct printing priority function list604contains the acquired function, the process advances to step S506; if it does not contain the acquired function, to step S508. In other words, this step is to determine whether to ignore a setting (function) which is contained in print settings and cannot be implemented by the printer. This determination corresponds to the third determination means.

In step S506, the driver function determination unit323determines whether all functions described in the print settings have been determined.

In step S507, the driver function determination unit323creates, from the print settings having undergone line boundary character check, processed print settings302describing that processing by the printer driver203is unnecessary.

In step S508, the driver function determination unit323creates, from the print settings having undergone line boundary character check, processed print settings302describing that processing by the printer driver203is necessary.

By this sequence, it is written in the processed print settings302whether to perform processing by the printer driver in order to implement the print settings. The written determination result serves as a determination target in step S406ofFIG. 4.

In the embodiment, the determination in step S505is made. However, if it is determined in step S504that a driver function is necessary, the process may directly branch to step S508. In this case, no direct printing priority function need be set, and if a function provided by the driver is needed, it is inhibited to give priority to direct printing by ignoring the need.

<Processing in Printing via Printer Driver>

FIG. 8is a flowchart showing the processing in step S408by the printer driver203in printing.FIG. 9is a flowchart showing processing in step S806ofFIG. 8when the printer driver203determines whether to perform direct printing. Processing by the printer driver203in printing will be explained with reference toFIGS. 8 and 9.

In step S801, the printer driver graphic component206acquires the print data303.

In step S802, the printer driver graphic component206acquires the print settings301contained in the print data303.

In step S803, the printer driver graphic component206communicates with the printer driver UI component205, transfers the print settings acquired in step S802to the print setting unit321, and requests processing. The line boundary character check unit322performs line boundary character check for the received print settings, creating print settings having undergone line boundary character check.

In step S804, the driver function determination unit323determines whether the print settings of the print job contain a function to be implemented by the printer driver203, and then creates processed print settings. Details of the driver function determination processing by the driver function determination unit323are the same as step S404and have been described in steps S501to S508with reference toFIG. 5. When the printer driver graphic component206performs processing, like step S404, the printer driver has already been active, so the determination of the direct printing priority function in step S505need not be done. In this case, all functions to be implemented by the printer driver203are executed. Direct printing can also be executed immediately when it is determined that there is no function to be implemented by the printer driver203. The processes of steps S507and S508to write determination results in print settings are omitted.

If driver processing is necessary, the function implementation unit332of the printer driver graphic component206applies a layout in accordance with the print settings or performs additional rendering in step S805.

In step S806, the direct printing determination unit331determines whether to perform direct printing without converting the format of the print data303received by the printer driver graphic component206or convert the print data303into PDL data or an image. If the direct printing determination unit331determines to perform direct printing (YES in S807), the process ends. If the direct printing determination unit331determines to convert the print data303into PDL data or an image (NO in S807), the process advances to step S808. Details of the determination processing in step S806will be described later with reference toFIG. 9.

In step S808, the rendering unit (PDL conversion unit)333converts the print data303into PDL data or an image, and then the process ends. The converted print data is transmitted to the printer1500via the system spooler (step S409).

In this manner, the direct printing determination unit331of the printer driver203performs direct printing determination processing, so the embodiment may take an arrangement in which the application201does not include the driver/direct determination unit313. While omitting wasteful PC processing by the printer driver203, a function can be properly implemented to execute direct printing without converting the original data format.

Details of the direct printing determination processing in step S806will now be explained with reference toFIG. 9. In step S901, the direct printing determination unit331determines whether the target printer is capable of direct printing. If the direct printing determination unit331determines that the target printer is capable of direct printing, the process advances to step S902; if it determines that the target printer is incapable of direct printing, to step S909.

In step S902, the direct printing determination unit331acquires the setting information600regarding direct printing.

In step S903, the direct printing determination unit331acquires the direct printing execution setting602and determines whether priority is given to direct printing. If priority is given to direct printing, the process advances to step S908; if no priority is given to it, to step S904.

In step S904, the direct printing determination unit331acquires the direct printing execution function list603.

In step S905, the direct printing determination unit331acquires one function from print settings having undergone line boundary character check.

In step S906, the direct printing determination unit331determines whether the direct printing execution function list603contains the function acquired in step S905. If the direct printing execution function list603contains the acquired function, the process advances to step S908; if it does not contain the acquired function, to step S907.

In step S907, the direct printing determination unit331determines whether all functions described in the print settings have been determined. If all functions have been determined, the process branches to step S909; if an undetermined function still remains, it returns to step S905.

In step S908, the direct printing determination unit331decides to perform direct printing, and then the process ends. The decided contents are saved for the determination in step S807.

In step S909, the direct printing determination unit331decides to perform printing after PDL/image conversion, and the process ends.

<Description of Determination Result of Direct/Printer Driver Printing in Print Settings>

FIG. 11is a view exemplifying print settings created by the application.FIG. 12is a view exemplifying print settings which are processed by the printer driver and determined to require direct printing.FIG. 13is a view exemplifying print settings which are processed by the printer driver and determined to require printing via the printer driver. The description of the determination result of direct/printer driver printing in the print settings will be explained with reference toFIGS. 11 to 13.

In the embodiment, the print settings shown inFIG. 11are divided into two parts. The first part is a print setting description part designated as a function by the application. The second part is a direct printing determination result description part indicating direct printing or printing via the printer driver. In the print settings shown inFIG. 11, the print setting description part describes settings such as the page orientation and collate. Further inFIG. 11, a secure print function is set. The secure print shown inFIG. 11is achieved when the setup window of the printer driver203is used to prompt the user to enter a user name, document name, and password. That is, execution of secure print requires printing via the printer driver. The direct printing determination result description part inFIG. 11describes “Auto”, which means that the printer driver decides whether to perform direct printing.

The application can also acquire function information of the printer driver and set the function of the printer driver. For example, the application acquires information indicating that the printer driver has the “secure print” function, and displays the secure print function on the setup window of the application.

By using the setup window of the application, the user selects the secure print function. Then, “secure print” is described in the print setting description part designated by the application.

The print settings shown inFIG. 13are processed print settings obtained by applying processing of the printer driver203to the print settings shown inFIG. 11. As described above, the print settings shown inFIG. 11require secure print processing by the printer driver203. Thus, the printer driver203determines that printing via the printer driver is necessary, and describes “Off” as a setting value in the description part of the determination result of direct printing/printing via the printer driver. This indicates that the printer driver is intervened. The setting value is described in step S507ofFIG. 5or step S909ofFIG. 9.

The print settings shown inFIG. 12are processed print settings obtained by applying processing of the printer driver203to print settings changed from those shown inFIG. 11so as not to perform secure print. The printer driver203determines that printing via the printer driver is unnecessary, and describes “On” as a setting value in the description part of the determination result of direct printing/printing via the printer driver. This indicates that no printer driver is intervenes. The setting value is described in step S508ofFIG. 5or step S908ofFIG. 9.

The print settings shown inFIG. 12are processed print settings obtained by applying processing of the printer driver203to print settings shown inFIG. 11. For example, when “secure print” inFIG. 7of this specification is not checked, the printer driver203determines to perform direct printing even if secure print is designated. Hence, “On” is described as a setting value in the description part of the determination result of direct printing/printing via the printer driver, as shown inFIG. 12.

According to the embodiment, whether to perform direct printing can be decided in accordance with printer functions and print settings. As the decision criterion, the importance of a function implemented by the printer driver and the processing efficiency are considered to decide whether to perform direct printing. For example, even if there is a function which cannot be provided by a printer for use, it can be set to give priority to direct printing, that is, ignore the set function. This can decrease the occupancy of the CPU of the PC by print processing and reduce unnecessary processing. Printing can be appropriately done without omitting a function set in print settings.

Other Embodiments

This application claims the benefit of Japanese Patent Application No. 2009-008243, filed Jan. 16, 2009 which is hereby incorporated by reference herein in its entirety.