Printing control method and printing control apparatus and computer program using program module for varying print settings

A method includes determining whether a program module for varying print settings for a printer driver is participating in print processing when the printer driver executes print processing; and switching a part of the print settings for the printer driver to the print settings according to the program module when the program module is participating in the print processing.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a printing control method and printing control apparatus.

2. Description of the Related Art

A user of a printer may face situations associated with printer management and costs. Even when a color printer is purchased, there is an increasing trend to suppress color printing functions and normally operate the printer using monochromatic printing.

Consequently, methods have been discussed to enable control of the settings for a printer driver and the settings for other output device drivers for each application. More specifically, a method has been proposed in which an application and a printer driver are detected and then an application, a printer driver and a print setting are managed in association with each other (refer to Japanese Patent Application Laid-Open No. 2008-165291). A method has also been proposed which uses a tool configured to customize a default setting for a printer driver. More specifically, the method provides an environment in which a default factory setting for a printer driver is statically varied (customized) from color settings to monochromatic settings, and the monochromatic settings are applied to normal printing operations (refer to Japanese Patent Application Laid-Open No. 2006-209195 and Japanese Patent Application Laid-Open No. 2006-309725).

SUMMARY OF THE INVENTION

The present invention is directed to a method including determining whether a program module for varying print settings for a printer driver is participating in print processing when the printer driver executes print processing; and switching apart of the print settings for the printer driver to the print settings according to the program module when the program module is participating in print processing.

DESCRIPTION OF THE EMBODIMENTS

The present exemplary embodiment describes an example of a printing system provided with a computer and a printer. However the configuration of the printing system is not limited to such a system. In other words, the printing system may be a single apparatus, may be a system formed from a plurality of apparatuses, or may be a system executing processing in which a plurality of apparatuses are connected via a network such as a local area network (LAN) or a wide area network (WAN).

FIG. 1is a block diagram illustrating an example of the configuration of a printing system. InFIG. 1, a host computer3000is provided with a central processing unit (CPU)1. The CPU1is configured to execute document processing programs stored in a program read only memory (ROM) of a ROM3or an external memory11. The CPU1controls and executes a variety of processes for mixed documents such as figures, images, characters and tables (including spreadsheets). In addition, CPU1controls print processing based on such processes according to the present exemplary embodiment as described hereafter. The CPU1integrates control of each device connected to a system bus4. An operating system program (OS) or the like which is a program configured to control the CPU1is stored in the program ROM of the ROM3or the external memory11. Font data or the like used when processing the document are stored in the program ROM of the ROM3or the external memory11. Furthermore various types of data used when processing the document or the like are stored in the program ROM of the ROM3or the external memory11. A random access memory (RAM)2functions as a principal memory or work area for the CPU1.

A keyboard controller (KBC)5controls key input via a keyboard9or a pointing device (not illustrated). A cathode ray tube controller (CRTC)6controls display by a cathode ray tube display (CRT display)10. A disk controller (DKC)7controls access to the external memory11such as a hard disk (HD), flexible disk (FD), IC card or the like. The HD or FD stores boot programs, various types of applications, font data, user files, edited files and printer control command generating programs (hereafter termed “printer drivers”). A printer controller (PRTC)8is connected to a printer1500via a bidirectional interface (interface)21and executes communication control to the printer1500.

The CPU1uses commands input using a mouse cursor (not illustrated) on the CRT10to open various preregistered windows and execute various types of data processing. When a user executes printing, a window related to the print settings is opened to enable execution of printer settings or enable setting (print setting) of a print processing method for a printer driver including selection of the printing mode.

A printer CPU12controls the printer1500. The CPU12uses control programs stored in a ROM13or control programs stored in an external memory14to output an image signal as printing output information to a printing unit (printer engine)17connected to a system bus15via a printing unit I/F16. A control program for the CPU12is stored in the program ROM of the ROM13. Font data or the like used when generating printing output information are stored in the program ROM of the ROM13. When using a printer not provided with an external memory14such as a hard disk, information or the like used on the computer is stored in the program ROM of the ROM13.

The CPU12enables communication with a host computer3000via an input unit18. In this manner, information or the like in the printer1500can be communicated to the host computer3000. A RAM19is configured to function as a principal memory or work area for the CPU12and its memory capacity can be enlarged by an option RAM connected to an expansion port (not illustrated). The RAM19is used in an output information rasterizing area, environment data storing area, non-volatile RAM (NVRAM) or the like.

Access to an external memory14such as an HD, FD, IC card or the like is controlled by a memory controller (MC)20. The external memory14may be optionally connected to the printer1500and stores font data, emulation programs, form data or the like. The printer1500has a NVRAM (not illustrated) and may store printer mode setting information from an operation unit1501. The printer unit17in the present exemplary embodiment is an engine for an electrophotographic method in which printing data is finally recorded on media such as paper by dots of toner. The printing method is not limited to an electrophotographic method and, for example, includes any method executing printing by production of dots such as an inkjet method.

FIG. 2illustrates an example of a basic configuration for print processing in a host computer3000. An application3300, a graphic engine202, a printer driver3500and a system spooler204are provided as files stored in the external memory11. These files are program modules to be executed by loading into the RAM2by a module using the OS or its module. The application3300and the printer driver3500are loaded into the RAM2via a network (not illustrated) or the external memory11. The application3300stored on the external memory11is executed by loading into the RAM2. When executing a print operation on the printer1400by the application3300, output (rendering) of the print is executed by a graphic engine202which is similarly loaded onto the RAM2and is usable. The graphic engine202loads a printer driver2400prepared for each printing apparatus such as the printer1500onto the RAM2from the external memory11and sets the output of the application3300to the printer driver3500.

An example of a print bus in Windows (Registered Trademark) will be described hereafter. The graphic engine202converts a graphic device interface (GDI) function received from the application3300to a device driver interface (DDI) function, which it outputs to the printer driver3500. The printer driver3500uses the DDI function received from the graphic driver202to convert to a printer control command which can be recognized by the printer, for example, a page description language (PDL). A printer control command converted to PDL is output as printer data to the printer1500via an interface21and the system spooler204loaded onto the RAM2by the OS. Although the basic configuration of a print bus for Windows Vista (Registered Trademark) is the same as the print bus for Windows (Registered Trademark), Windows Vista (Registered Trademark) includes an additional XPS print bus in comparison to Windows (Registered Trademark). The graphic engine202in this XPS bus outputs common documents received from the application3300to the printer driver3500. The printer driver3500converts the common documents received from the graphic engine202to a printer control command which can be recognized by the printer, for example, PDL. The printer control command converted to PDL is output as printer data to the printer1500via the interface21and the system spooler204loaded onto the RAM2by the OS.

FIG. 3illustrates an example of a method for executing printing using a printer driver in which a part of print settings are statically customized. The application3300designates a printer during print operations. At this time, in a case of Windows (Registered Trademark), the device receives a print operation from the application3300and, in step S311, the graphic engine202loads the printer driver3500. The printer setting data is set and initialized when the printer driver3500is loaded. In step S312, the printer driver3500loads, for example, the custom default (1)3700as print setting data and initializes the graphic engine202. The print setting data (DEVMODE) includes print settings for the document such as the paper size, paper direction, selection of color printing/monochromatic printing, paper feeding method and copy number. The custom default (1)3700is data files stored in the external memory11. These files are loaded into the RAM2by the module using the data or the OS.

An example of the normal operation sequence of the application3300is supplemented below referring to the example illustrated inFIG. 3. Firstly the application3300designates a setting in the graphic engine202according to the custom default (1)3700and opens the printer1500. Then the application3300makes an inquiry about the size of the print setting data. The application3300ensures a buffer of the size of the print setting data and retains the print setting data in the buffer. In the example illustrated inFIG. 3as described above, the print setting data is data of the custom default (1)3700. Then the application3300designates the print setting data, acquires a printer device context and operates the printer device context to execute printing. Then the application3300discards the printer device context, releases the print setting data and executes the printer closing sequence. When the print processing is completed, the application3300discards and releases the used object or memory.

FIG. 4schematically illustrates an example of a method for executing printing using a printer driver in which a part of print settings are dynamically customized. A tool A (launcher)3100is a file which is stored in the external memory11. The tool A3100is a program module which is loaded onto the RAM2by the module using the OS or its module and interpreted and executed by the CPU1. The tool A3100is loaded onto the RAM2via the external memory11or a network (not illustrated). The custom default (2)3800-custom default (n)3850which are print data settings, and a shortcut3150are data files stored in the external memory11. These files are loaded into the RAM2by the module using the OS or the data.

The overall process illustrated inFIG. 4will be described. The tool A3100is linked with the print setting data. The tool A3100activates the application3300. When printing is performed in response to the application3300, the printer driver3500confirms whether or not the tool A3100is participating in the print processing. The tool A3100is participating in the example illustrated inFIG. 4. The printer driver3500loads print setting data (in this example, the custom default (2)3800) linked to the tool A3100. At this time, the printer driver3500does not load the custom default (1)3700which forms the print setting data inFIG. 3.

The process inFIG. 4will now be described in sequence. When the shortcut3150is executed, the tool A3100is activated. In step S412, the tool A3100activates the application3300. The activated application3300designates a printer1500for print processing. In this manner, in step S413, the printer driver3500is loaded onto the designated printer1500. When the printer driver3500is loaded, initialization and setting of the print setting data is also executed. The printer driver3500confirms the participation of the tool A3100. When processing by the tool A3100is detected, the printer driver3500determines that the tool A3100is participating. In step S414, the printer driver3500loads the custom default (2)3800which is linked to the tool A3100instead of the custom default (1)3700as print setting data. The tool A3100enables management of the linkage with a plurality of print setting data (enables variation of the linked print setting data). In step S415, if the custom default (n)3850is linked as print setting data to be used to the tool A3100, the printer driver3500loads the custom default (n)3850.

In other words, when the predetermined application is activated via the tool A3100, the print settings related to the print processing performed by the predetermined application can be switched by the printer driver3500to print settings corresponding to the custom module. On the other hand, the printer driver3500can be adapted not to switch print settings related to print processing other than the application.

An example of the technical outline of the present exemplary embodiment has been described above.

Next an example of user interface (UI) for the tool A3100will be described. A user (for example, a technician of a printer manufacturer) uses this UI to input setting items for the tool A3100.FIG. 5illustrates an example of a UI for the tool A3100. The tool A3100can be executed without using the shortcut3150to open the UI illustrated inFIG. 5. The UI501illustrated inFIG. 5is displayed when the tool A (launcher)3100is independently activated. The UI501includes an “application object” group box502configured to set the application target of the tool A3100. The UI501includes an “operation setting” group box508configured to set the operation in the printer driver3500. When expanded display is selected using the “simplify/expand” display switching button507, the setting is input to the “operation setting” group box508. When simplified display is selected using the “simplify/expand” display switching button507, the setting is not input to the “operation setting” group box508. In the example illustrated inFIG. 5, expanded display is selected by the “simplify/expand” display switching button507.

Next, the “application object” group box502will be described. The application object of the tool A3100is designated by operation of the “target” edit box503or the “refer . . . ” button504. A “parameter” edit box505describes the input parameters (argument). The “parameter” edit box505can also describe command to make settings to be input to the “operation setting” group box508. When the “simplify/expand” display switching button507is used to select simplified display, this type of command description is executed. Operation of the “execute” button506enables input to the “application object” group box502.

Next the “operation setting” group box508will be described. A working folder is input to the “folder” edit box509. The working folder stores print setting data and the like for the printer driver3500. A list of setting data is displayed in the “application setting” list box510. The following processing is executed if the “execute” button506is operated when expanded display is selected by the “simplify/expand” display switching button507. In other words, when the tool A3100is executed, the contents input to the “operation setting” group box508is added to the input parameters described in the “parameter” edit box505. The “permit generation of settings” check box511, the “generate” button512and the “switch printer” check box513will be described separately hereafter. An example of the UI for the tool A3100has been given above.

Next an example of input/output processing to the tool A3100when the tool A3100is executed using the shortcut3150will be described.FIG. 6illustrates a schematic example of input/output processing to the tool A3100. More specifically,FIG. 6Aillustrates an example of the shortcut3150of the tool A3100and the shortcut properties601.FIG. 6Bis a schematic diagram illustrating the flow of input/output processing to the tool A3100. InFIG. 6A, the execution and argument for the tool A (launcher)3100are respectively set in the box602and the working folder box603. InFIG. 6B, in step S606, the shortcut3150is executed to input parameters set in the boxes602,603into the tool A3100. In step S607, the tool A3100interprets the parameters set in the boxes602,603and uses the interpretation results to generate work data607in the RAM2. Then in step S608, the tool A (launcher)3100uses the work data607to generate a linkage with the custom default (2)3800, execute the application3300which is an example of the target and output information related to the control of the printer3500or the like. An example of input/output processing with the tool A3100has been described above.

Based on the description made so far, a further example of the basic operation of the printing system according to the present exemplary embodiment will be described below.

FIG. 7illustrates an example of the flow of the basic operation of the printing system according to the present exemplary embodiment. In step S711, a user5000double clicks the shortcut3150. As a result, in step S712, the execution of the tool A3100via the shortcut3150transfers input parameters such as the application object or the operation settings (print settings) to the tool A3100. In step S713, the tool A3100uses the input parameters to generate a linkage to the custom default (2)3800itself as printer setting data to be used. Then in step S714, the tool A3100executes the application3300designated by the input parameters.

When the printing-related processing is initiated by the application3300, in step S715, loading of the printer driver3500, and initialization and setting of the print setting data are commenced. In step S716, the printer driver3500recognizes the process and specifies the participation of the tool A (launcher)3100. The printer driver3500applies the custom default (2)3800linked to the tool A3100as print setting data. An example of processing indicated by the * mark in step S713, S716and S717will be supplementarily described hereafter. Furthermore, the custom default (2)3800referred to step S713and5717is protected by a signature from the point of view of security. The authentication in step S716is executed as a countermeasure against disguising for the tool A3100. The method of authentication and signature may be suitably selected according to the security level. The signature and authentication may be realized by known methods and therefore detailed description of the security strategy for the * mark will be omitted from the description hereafter. An example of the flow of basic operations of the printing system according to the present exemplary embodiment was described above.

Next, an example will be described of a method for enabling the printer driver3500to discriminate whether the tool A3100is participating in the execution of the print processing.FIG. 8illustrates an example of a method for discriminating participation of the tool A in print processing. More specifically,FIG. 8Aillustrates an example of a representative process tree801(process hierarchy) in the Windows (Registered Trademark) OS.FIG. 8Billustrates a portion of the process tree801, the tool A3100, the application3300and the printer driver3500illustrated inFIG. 8A. A user process is generated during service management or by the OS manager and, as illustrated inFIG. 8A, is used to operate the application3300. It is assumed that the tool A3100, the application3300and the printer driver3500are configured as illustrated inFIG. 8B. The printer driver3500generates a process tree in the RAM2, specifies the tool A3100on the process tree and determines whether the tool A3100is participating in the print processing. On the other hand, if tool A3100is not specified by the generated process tree, the printer driver3500determines that the tool A3100is not participating in print processing.

An example of this type of processing of the printer driver3500is shown by a run of the item using Windows (Registered Trademark) API as follows.

(1) The printer driver3500specifies the process ID itself (GetCurrentProcessID( )).

(2) The printer driver3500generates a list of system processes (EnumProcesses ( )).

(3) The printer driver3500opens a process of the same ID as the process ID itself (OpenProcess ( )) and acquires a module name and base name (EnumProcessModules ( ), GetModuleBaseName ( )).

(4) When the printer driver3500acquires an object corresponding to the module name and the base name of the tool A3100recognized by the printer driver3500itself, the printer drive3500determines that the tool A3100is participating in the print processing. On the other hand, when the printer driver3500does not acquire an object corresponding to the module name and the base name of the tool A3100recognized by the printer driver3500itself, the printer drive3500determines that the tool A3100is not participating in the print processing.

According to the present exemplary embodiment, the printer driver3500executes at least the following determination. When a predetermined process ID issued by startup of the tool A3100which is an example of a program, is confirmed, it is determined that the program module related to the variation of the print setting for the printer driver3500is participating in the printing processing.

When coincidence is determined as described above, the base name is prioritized since even when the module name of the tool A3100is renamed for respective uses, the participation of the tool in the printing process can be accurately discriminated. An example has been described above, in which the printer driver3500uses the process tree801to discriminate whether or not the tool A3100is participating in the printing processing. However the discrimination process can also be initiated by the printer drier3500or by the tool A3100. Furthermore a method for discriminating whether or not the tool A3100is participating in the printing processing may be employed as described below.

(1) It is determined that the tool A3100is participating in the print processing, by entering a unique keyword into the argument of the command and confirming that the keyword is contained in the argument of the command.

(2) It is determined that the tool A3100is participating in the print processing, by transmission of a specific message from the printer driver3500and confirmation of a response to the specific message.

(3) It is determined that the tool A3100is participating in the print processing, using the results of access by the printer driver3500to a service released by the tool A3100. A discrimination unit for a tool participating in printing between the tool A (launcher)3100and the printer driver3500which have been already aligned, may be a different method. Furthermore the method may be switched (selected) to one of a plurality of methods. An example of a discrimination method for participation of the tool A3100in printing has been described above.

An example of a basic operation of the tool A3100and the printer driver3500will be described making reference to the flowchart. An example of discrimination of participation of the tool A3100in printing will be described using an example of a method employing the process tree above. An example of the basic operation of the tool A (launcher)3100will be described making reference to the flowchart inFIG. 9.

In step S901, the tool A3100is initialized. Then in step S902, the tool A3100acquires input parameters. In step S903, the tool A3100interprets the input parameters and confirms the work data607using the interpretation results. Then in step S911, the tool A3100confirms the data file designated using the input parameters. More specifically, the tool A3100confirms the presence or absence of a data file, the signature and the format. In step S912, the tool A3100determines whether or not the designation of the operation settings contained in the input parameters (print settings designated by the input parameter and applied to the printer driver3500) are correct. The process in step S912determines, for example, whether or not the print settings applied to the printer driver3500are linked to the tool A3100. If the result of the determination indicates that the designation of the operation settings is not correct (for example, if the print settings applied to the printer driver3500are not linked to the tool A3100), the process proceeds to step S920. In step S920, the tool A3100displays an error message in the CRT display10. Thereafter the tool A3100executes end processing in step S960, releases the work data607in step S961and ends the processing in the flowchart illustrated inFIG. 9. The processing which can be added to the connection points A and C inFIG. 9will be described below.

In step S912, when the operation settings are correct, the process proceeds to step S913. Then in step S913, the tool A3100confirms the device. The confirmation step confirms whether or not the printer1500is installed. The process then proceeds to step S931. The processing which can be added to the connection points B and D will be described below. In step S931, the tool A3100activates the application object. Then in step S932, the tool A3100determines whether or not the application object has been activated. When it is determined that the application object has not been activated, the process proceeds to step S920. Then as described above, the tool A3100displays an error message on the CRT display10and ends the process in the flowchart inFIG. 9. On the other hand, when it is determined that the application object has been activated, the process proceeds to step S941.

In step S941, the tool A3100acquires its process ID. Then in step S942, the tool A3100executes an authentication with the printer driver3500. Then in step S943, the tool A3100determines whether or not the authentication has been successful. When it is determined that the authentication has failed, the process proceeds to step S920described above. As described above, the tool A3100displays an error message on the CRT display10and ends the process in the flowchart inFIG. 9. On the other hand, when it is determined that the authentication is successful, the process proceeds to step S951. In step S951, the tool A3100outputs (PUSH) print setting data to be applied to the printer driver3500. When the printer driver3500can directly refer to the print setting data to be applied, the process in step S951is not required. The process proceeds to step S960as described above, the tool A3100displays an error message on the CRT display10and ends the process in the flowchart inFIG. 9.

An example of a basic operation of the printer driver3500will be described making reference to the flowchart illustrated inFIG. 10. Firstly in step S1011, the printer driver3500acquires its process ID. Then in step S1012, the printer driver3500generates a process tree801. In the next step S1013, the printer driver3500opens the process for the same ID as its process ID and confirms an element having the same module name and base name as those of the tool A3100recognized by the printer driver3500.

Then in step S1020, the printer driver3500uses the authentication results in step S1013to determine whether or not the tool A3100is participating in printing. When it is determined that the tool A3100is not participating in printing, the process proceeds to step S1030. When it is determined that the tool A3100is participating in printing, the process proceeds to step S1021. In step S1021, the printer driver3500selects a dynamic setting update mode. Then in step S1030, the printer driver3500determines the mode. This determination step can employ the result obtained in step S2021based on the presence or absence of a custom default (1)3700as illustrated inFIG. 4. When it is determined that the mode is standard (normal) mode, the process proceeds to step S1031. Standard mode is the mode in which the printer driver3500is operated using the default settings which are made when shipped from the factory. In step S1031, the printer driver3500executes a print process in standard mode. Then the process illustrated inFIG. 10is ended.

When the result of the determination in step S1030indicates that the mode is static settings update mode, the process proceeds to step S1032. Static settings update mode for example is a mode in which the printer driver3500is operated using setting based on custom defaults (1)3700. In step S1032, the printer driver3500executes print process in static setting update mode. Then the process in the flowchart illustrated inFIG. 10is ended.

When the determination results from step S1030indicate that the mode is dynamic setting update mode, the process proceeds to step S1041. Dynamic setting update mode is the mode in which the printer driver3500is operated using settings based on the custom default (2)3800. In step S1041, the printer driver3500executes an authentication process with the tool A3100.

Then in step S1042, the printer driver3500determines whether or not the authentication was successful. When it is determined that the authentication has failed, the process returns to step S1030described above and the mode is switched to another mode. In this case, for example, it is assumed that the new mode is standard mode (step S1031). On the other hand, when the authentication is successful, the process proceeds to step S1051. In step S1051, the printer driver3500acquires (PULL) print setting data to be applied to the tool A3100. When the printer driver3500can directly refer to the print setting data to be applied, the process in step S1051(PULL for setting data from tool A3100) is not required. Then in step S1052, the printer driver3500applies the print setting data to complete the process in the flowchart illustrated inFIG. 10. An example of the basic operation of the printer driver3500and the tool A (launcher)3100has been described above.

Next an example of the result when operating the printing system will be described.FIG. 11illustrates an example of a UI for the printer driver3500. More specifically,FIG. 11Aillustrates an example of a UI for the printer driver3500displayed in the state illustrated inFIG. 3.FIG. 11Billustrates an example of a UI for the printer driver3500displayed in the state illustrated inFIG. 4. InFIG. 11A, the printer driver3500applies the custom default (1)3700as print setting data. The color settings for the custom default (1)3700is monochromatic. Thus when the UI1120of the printer driver3500is opened by the application3300, the “color mode” is set as “monochromatic”1121.

On the other hand, inFIG. 11B, the printer driver3500applies the custom default (2)3800linked to the tool A3100as print setting data. The color setting custom default (2)3800is color. Thus when the UI1140of the printer driver3500is opened by the application3300, the “color mode” is set as “color”1141. As described above, even when the UI of the same printer driver3500is opened by the same application3300, dynamic switching of the print settings for the printer driver3500can be performed such that when the tool A3100participates, color printing is executed and when the tool A3100does not participate, monochromatic printing is executed. An example has been described above of the result when the printing system in the present exemplary embodiment is applied.

Next, the benefits of the printing system according to the present exemplary embodiment will be described.FIG. 12illustrates an example of a configuration (application example) of a printing job. More specifically,FIG. 12Aillustrates an example of a normal printing job (operation).FIG. 12Billustrates an example of a routine printing job which differs from a normal printing job.

As illustrated inFIG. 12A, although a color printer is attached to the printing system, normally the color printer is operated to execute monochromatic printing. On the other hand, in a routine printing job as illustrated inFIG. 12B, three documents transferred to a client are printed as one set. Among this set of documents, there is a document1222which contents are suitable for color printing and are to be transferred to the client in color. The color document1222is generated and printed using the application (2)1221. The other documents1211,1232are monochromatic documents. Executing printing of the three documents in an order of1212,1222, and1232in a routine job format is performed while avoiding situations associated with printing settings. Herein, it is assumed that there is no limit such that the application (2)1221can only be used during color document printing. In other words, the application (2)1221may be an application which is used during normal operation or may be the same application as the application (1)1211or the application (3)1231.

FIG. 13schematically illustrates the operation illustrated inFIG. 12Aand the operation illustrated inFIG. 12B. The details of both operational formats (application examples) may be summarized as follows.

(1) Normal internal jobs are executed monochromatically.

(2) Apart of documents for external use are executed in color.

(3) The application and color printing are not limited and associated with each other.

(4) Switching operations for printer settings for each document such as monochromatic→color→monochromatic should be avoided.

InFIG. 13, normal print settings1310for the printer driver3500execute monochromatic printing in all areas. Even a color printer executes monochromatic printing when using normal print settings. The normal print setting1310designate the custom default (1)3700which sets monochromatic printing. On the other hand, print settings3120for the printer driver3500when the tool A3100is participating, enable both applications cases of normal jobs and routine jobs. Such settings are used when only a part of the documents for external use are color printed and the other documents are printed monochromatically. When the printing system according to the present exemplary embodiment as described so far is applied, switching from monochromatic mode to color mode in a specific case is possible without performing an operation such as that described in (4) above. The print setting1320of the printer driver3500when the tool A3100is participating during a normal job uses the custom default (1)3700which sets monochromatic printing. In contrast, in routine jobs, the custom default (2)3800(1321) which sets color printing is applied as a print setting for specific documents to be color-printed.

In other words, in the present exemplary embodiment, when the application3300which is the application object of the tool A3100is activated, the printer driver3500for the printer1500designated by the application3300is loaded. When the printer driver3500determines that the tool A3100is participating in printing, the custom default (2)3800linked to the tool A3100is applied as a part of the print setting data. Consequently the present exemplary embodiment provides a tool A3100and a printer driver3500to realize localized customizing of settings for the printer driver3500when executing printing by on-demand switching of the print settings of the printer driver3500. Therefore even during execution of the same application3300, monochromatic printing is performed when the tool A3100does not participate and when the tool A3100participates, print settings for the printer driver3500can be switched to execute color printing without the need for a user operation.

The benefits of a printing system according to the present exemplary embodiment will be summarized hereafter. Firstly a method configured to dynamically customize print settings is provided from a print process side. Thus (1) print settings can be switched for a specific job. (2) Operation is enabled for both normal applications and specific applications. (3) A reduction in user operations is achieved. (4) Operational integration is maintained. More precisely, normal printing is executed in monochromatic format and only documents for presentation to a user are color printed. Localized and dynamic control of the print settings for a printer driver3500can be performed and these settings can be combined with wide static print settings. Furthermore since participation of the tool A3100enables dynamic customization of print settings for the printer driver3500, the number of user operations when printing for a specific purpose can be reduced. Uniformity of operations can be obtained.

Furthermore flexible customization (switching) of print settings for the printer driver3500can be performed. For example, settings and control can be performed for printing in modes other than color modes. For example, cost reductions during document printing can be realized by normally using two-sided printing and only using one-sided printing for specific documents for presentation to clients. For example, simultaneous execution of switching between color/monochromatic printing and one-sided/two-sided printing can be performed. In other words, a normal document can be printed by monochromatic two-sided printing while one-sided color printing is carried out only for specific documents for presentation to clients. In addition, low-cost solutions can be provided in a short term. More specifically, only a portion of the print settings of the printer driver3500can be customized in a short term by controlling the print settings of the printer driver3500without changing the application.

Next, two modified examples of the flow of operations in a printing system according to the present exemplary embodiment will be described. Although the application object (target) was the application3300in the description above, the application object may be a document or shortcut or the like. Although an input parameter designating the target may be set as a pair of an application and a document, in this case, the input parameters are not set as a pair. The tool A3100may be provided singly or included as a set with the printer driver3500. If the shortcut3150of the tool A3100is provided on a computer desktop and executed by a user5000, the setting linked to the tool A3100can be applied to the printer driver3500. The job system also enables switching of the print settings of the printer driver3500by generation and execution of a “shortcut linked to settings to be applied”. The job system can also enable direct execution of input parameters to the tool A3100.

FIG. 14illustrates an example of the flow of the basic operations of a printing system when an application object is a document. In step S1411, when a user5000double clicks the shortcut3150, input parameters identifying the document3350as the application object are transferred from the shortcut3150to the tool A3100. Then in step S1412, the tool A3100executes the document3350designated by the input parameters as the application object and in step S1413, the application3300corresponding to the document3350is activated. In other respects, the operation is the same as the description above and therefore detailed description will not be repeated (refer toFIG. 7).

FIG. 15illustrates an example of the flow of the basic operations of the printing system when the application object is a shortcut. In step S1511, when a user5000double clicks the shortcut3150, input parameters identifying the shortcut1520as the application object are transferred from the shortcut3150to the tool A3100. Then in step S1512, the tool A3100executes the shortcut3150designated by the input parameters as the application object. The shortcut1520is a shortcut of the application3300and the document3350. The shortcut1520is a data file stored in the external memory11. The shortcut1520is loaded onto the RAM2by a module using data or the OS. When the shortcut1520is executed, in step S1513, the application3300and the document3350are activated. In other respects, the operation is the same as described above and therefore detailed description will not be repeated (refer toFIG. 7). Two modified examples of the flow of operations of the printing system in the present exemplary embodiment have been described above. So far, the basic operations of the printing system according to the present exemplary embodiment have been described.

Next an example of the operations configured to generate print settings for the printer driver3500in the printing system according to the present exemplary embodiment will be described.FIG. 16illustrates an example of an operation configured to generate print settings for the printer driver3500. The check box511displaying “generation of settings permitted” illustrated inFIG. 5is set to ON to place the “generate” button512in an operable state. Consequently, print settings for the printer driver3500can be generated. Furthermore in the printing system according to the present exemplary embodiment, printing settings are generated and applied during printing when the settings designated by the “application object” group box502are not present. The tool A3100is linked to the print setting data. In the printing system according to the present exemplary embodiment, when there is no linkage of the printing setting designated by input parameters to the tool A3100, the print settings are applied (in the example illustrated inFIG. 16, the custom default (2)3800). On the other hand, although the input parameters have designated the custom default3870as print settings to be applied, it is assumed that there is no corresponding data for the custom default3870. In this case, the tool A3100displays a message box1620and confirms whether or not print settings for the printer driver3500have been generated for a user. When a user selects the “yes” button1621in response to the message box1620, the tool A3100displays the same setting generation dialog box as that displayed by pressing the “generate” button512. The user operates the setting generation dialog box to generate print settings (custom default3870). In step S1615, the generated custom default3870is applied as print settings. An example of the method of generating print settings for a printer device has been described above.

Next an example of the UI displayed during generation of print settings will be described.FIG. 17illustrates an example of a setting generation dialog box (FIG. 17A) and an UI for a printer driver (FIG. 17B). When there is no print setting applied to the printer driver3500(when the “yes” button1621of the message box1620illustrated inFIG. 16is pressed), a user operates the UI for the printer driver3500and the tool A3100to generate print settings. InFIG. 17, the setting generation dialog box1710is displayed by the tool A3100. The setting generation dialog box1710displays a setting group box1720and an information group box1730. In the setting group box1720, a category range is set to setting data (DEVMODE) to be generated. When a user presses the “set . . . ” button1725, the UI1726of the printer driver3500is opened. A user generates settings by operation of the UI1726of the printer driver3500. Various types of information for application to the print setting data can be set in the information group box1730. A user presses the “save” button1740to complete operation of the setting generation dialog box1710and save the generated print settings, for example, in the external memory11. An example of the UI displayed during generation of print settings has been described above.

An example of the operation of the tool A when generating print settings for a printer driver3500will be described hereafter making reference to the flowchart illustrated inFIG. 18. This flowchart is added between the connection points A-B in the flowchart illustrated inFIG. 9. In step S1801, the tool A3100determines whether or not the “generation of settings permitted” check box511of the UI501illustrated inFIG. 5has been checked. In other words, the tool A3100determines whether or not generation of the print settings for the driver printer3500is permitted. When it is determined that generation of print settings for the printer driver3500is not permitted, after passing through the connection point C, the process proceeds to step S920. On the other hand, when generation of printing settings for the printer driver3500is permitted, the process proceeds to step S1811.

In step S1811, the tool A3100displays the message box1620illustrated inFIG. 16to inquire to a user about whether or not to generate printing settings for the printer driver3500. In step S1812, the tool A3100determines whether or not a user has selected the “yes” button1621of the message box1620. When it is determined that the “yes” button1621has not been selected, after passing through the connection point C, the process proceeds to step S920. When the “yes” button1621has been selected, the process proceeds to step S1820. In step S1820, the tool A3100displays the setting generation dialog box1710illustrated inFIG. 17A. Then in step S1831, the tool A3100receives the user operation performed on the printer driver3500and the setting generation dialog box1710via the UI1726. In step S1832, the tool A3100determines whether or not the “save” button1740of the setting generation dialog box1710has been pressed by a user. When it is determined that the “save” button1740has not been pressed, the process returns to step S1831. On the other hand, when it is determined that the “save” button1740has been pressed by a user, the process proceeds to step S1841. In step S1841, the tool A3100uses the contents of the user operation performed on the UI1726for the printer driver and the setting generation dialog box1710to save the print setting for the printer driver3500. Then in step S1842, the tool A3100selects the saved print settings as the print settings for the printer driver3500and the process returns to step S913through the connection point B illustrated in FIG.9. An example of processing of the tool A3100to generate print settings for the printer driver3500has been described above. However this processing is not always required.

In the printing system according to the present exemplary embodiment, when an operation setting contained in the input parameters (the print settings for the printer driver3500) is present in the printer1500, the printer1500is switched according to the object model of the print setting data. An example of the operation of the tool A3100when processing is executed taking into account whether or not operation settings contained in the input parameters are present in the printer1500will be described making reference to the flowchart inFIG. 19. The processing illustrated in this flowchart is executed after passing through the connection point D illustrated inFIG. 9. In step S1911, the tool A3100determines whether or not the operation settings contained in the input parameters are present in the printer1500. When it is determined that the operation settings contained in the input parameters are not present in the printer1500, the process proceeds to step S931inFIG. 9. On the other hand, when it is determined that the operation settings contained in the input parameters are present in the printer1500, the process proceeds to step S1920. In step S1920, the tool A3100confirms the state of the printer1500. Then in step S1921, the tool A3100refers to the printer1500including the operation settings contained in the input parameter and the installed printer1500.

Then in step S1922, the tool A3100determines whether or not the printer1500based on the operation settings contained in the input parameters is the same as the printer1500set for execution of printing. When it is determined that the printer1500based on the operation settings contained in the input parameters corresponds to the printer1500set for execution of printing, the process proceeds to step S931inFIG. 9. On the other hand, when it is determined that the printer1500based on the operation settings contained in the input parameters does not correspond to the printer1500set for execution of printing, the process proceeds to step S1931. In step S1931, the tool A3100determines whether or not the printer1500based on the operation settings contained in the input parameters is installed. When it is determined that the printer1500based on the operation settings contained in the input parameters is not installed, the process proceeds to step S1932. On the other hand, when it is determined that the printer1500based on the operation settings contained in the input parameters is installed, the process proceeds to step S1934. In step S1932, the tool A3100displays a message containing information specifying the printer1500to be installed and information prompting the installation of the printer1500. Then the process proceeds to step S920inFIG. 9. However the process may proceed to step S960instead of step S920.

In step S1934, the tool A3100determines whether or not the “switch printer” checkbox513of the UI503illustrated inFIG. 5is checked. In other words, the tool A3100determines whether or not switching of the printer1500is permitted. When it is determined that switching of the printer1500is not permitted, the process proceeds to step S1935. When it is determined that switching of the printer1500is permitted, the process proceeds to step S1936. In step S1935, the tool A3100displays a message containing information specifying the printer1500to be switched and information prompting the switching of the printer1500. On the other hand, in step S1936, the tool A3100switches the printer1500for execution of printing to the printer1500based on the operation settings contained in the input parameters. Then the process proceeds to step S931inFIG. 9. An example of processing to switch a printer has been described above. However this processing is not always required.

FIG. 20illustrates an example of the relationship between an operation mode and a print setting for the printer driver3500. InFIG. 20, a package2020is an install package for the printer driver3500stored in the external memory11. The factory default (0)3600, the custom default (1)3700and the custom default (2)3800are print setting data (data files) stored in the external memory11. These elements are loaded onto the RAM2by the module using the data or the OS. The printer driver3500includes original set values, in other words, the factory default (0)3600. The factory default (0)3600is the settings made when shipped from the factory. Thereafter, the print settings for the printer driver3500are customized when installing the printer driver3500(when generating the package2020) and the custom default (1)3700may be used as the print setting data. Furthermore the printer driver3500may be customized when executing the printer driver3500to make those print settings the custom default (2)3800. The application and participation of the tool A3100in the customizing process of the printer driver3500when the printer driver3500is executed is one of the characteristic features of the printing system according to the present exemplary embodiment.

Treating the factory default (0)3600, the custom default (1)3700and the custom default (2)3800as three levels is the modes of the printer driver3500described inFIG. 10. In standard mode1031, the factory default (0)3600is the source of print settings. In static setting update mode1032, the custom default (1)3700is applied as (a part of) the print settings for the printer driver3500. In dynamic setting update mode1033, the custom default (2)3800is applied as (a part of) the print settings for the printer driver3500. As described above, the custom default (2)3800may be one setting or a plurality thereof.

Thus, in the present exemplary embodiment, the printer driver3500is operated in three types of modes. When viewed from operational characteristics such as customization of the print settings, the transition to each mode is considered as follows.

1. The standard mode1031is in an initial state.

2. The static setting update mode1032is customized from the standard mode1031.

3. The dynamic setting update mode1033is customized from the standard mode1031or the static setting update mode1032.

In the example described usingFIG. 4orFIG. 7, the source of print setting data before application of the custom default (2)3800by participation of the tool A3100is the custom default (1)3700. However print setting data before application of the custom default (2)3800as indicated by (3) above is not the custom default (1)3700but rather may be the factory default (0)3600. The printer driver3500executes management operations by dividing print setting according to the operation of the three modes arranged in temporal sequence. Operations have been divided according to mode but the data format of the print settings may take a common format for all modes. When a common data format is used, a unified generation method for print settings can be used. The relationship between operation mode and settings of the printer driver3500in the printing system according to the present exemplary embodiment has been described above.

FIG. 21illustrates an example of operation when a print setting for a printer driver3500is disabled. More specifically,FIG. 21Aillustrates the transfer of print settings to the factory default (0)3600when the custom default (2)3800is disabled.FIG. 21Bis a schematic diagram illustrating the operation illustrated inFIG. 21A. In the present exemplary embodiment, an invalidation2101can be designated on the custom default (2)3800used in dynamic setting update mode1033. When the printer driver3500determines that an invalidation2101for the custom default (2)3800has been designated, an operation is executed to apply print setting data from the factory default (0)3600(refer to reference numeral2110). The invalidation2101on the custom default (2)3800may be designated on the entire custom default (2)3800or individually. The printer driver3500uses dynamic setting update mode1033for operation but uses the factory default (0)3600for print settings.

As described above, the printer driver3500, for example, uses the following timing to make a determination of whether or not the invalidation2101of the custom default (2)3800is designated. In other words, since the mode in step S1030inFIG. 10is determined to be dynamic setting update mode, the determination can be made until the acquisition of print setting data in step S1051. When an invalidation2101is not designated on the custom default (2)3800, the printer driver3500acquires the custom default (2)3800in step S1051as described above. When an invalidation2101is designated on the custom default (2)3800, the printer driver3500acquires the factory default (0)3600in step S1051. Although an example has been described of transferring the print settings to the factory default (0) when the custom default (2)3800is invalid, it is not always required to execute this operation. For example, the print settings may be transferred to the custom default (1)3700.

The effect of invalidation of the print settings will be described. Monochromatic printing is executed in static setting update mode1032such as the print setting2120illustrated inFIG. 21B. In contrast, a setting configured to disable the custom default (2)3800is executed in dynamic setting update mode. Consequently, in print setting2121for example, the factory default (0)3600is applied locally to the printer driver3500. Thus switching to normal mode can be performed in a specific case without the user operation. By thus designating the invalidation, it is possible that a part of monochromatic printing operations is excluded. An operational example of invalidation of print settings in the printing system according to the present exemplary embodiment has been described above. However this processing is not always required. The control and management during application of print settings executing in accordance with the above description can be applied to processing in which print setting is recorded and distributed as information. The format or layout of structure may be varied such as embedding print settings in a tool, configuring the settings as a log, or transferring the print settings to another location.

When executing the print processing of the printer driver according to the present exemplary embodiment, if a program module related to variation of the print settings of the printer driver participates in the print processing, apart of the print settings of the printer driver is switched to the print setting according to the program module. Consequently print setting for the printer driver can be dynamically customized during execution of print processing of the printer driver without altering the application.

This application claims priority from Japanese Patent Application No. 2009-082787 filed Mar. 30, 2009, which is hereby incorporated by reference herein in its entirety.