Field of the Invention
The present invention relates to an information processing apparatus that determines a conflict resulting from contents of print setting items to cause an image forming apparatus to print a print job, a control method for the information processing apparatus, and a storage medium.
Description of the Related Art
In order to use a peripheral apparatus such as an image forming apparatus from an information processing apparatus, it is necessary in general to integrate a particular device driver complying with the peripheral apparatus (in case of an image forming apparatus, a printer driver) into an operating system (OS) running on the information processing apparatus. When using the image forming apparatus, a printer driver is activated from an application, necessary settings are performed for printing, image data and a print setting (hereinafter collectively referred to as a print job) are generated, and the generated print job is transmitted to the image forming apparatus. The image forming apparatus which has received the print job performs an image generation process (hereinafter referred to as rendering) in accordance with the print setting, and performs a print process to sheet.
Conventional printer drivers include, as a main component, a user interface module, a print job generation module, and a control module. The user interface module manages input from a user and an application. The print job generation module generates a print job. Conventional printer drivers further include, as a main component, a communication control module (hereinafter referred to as a language monitor) which controls a communication process between image forming apparatuses. A printer driver constituted by a group of these modules is called, for example, a Version 3 driver (hereinafter described as a V3 driver) of Windows (registered trademark). The language monitor receives a print job generated by the print job generation module through an OS, and transmits the print job to an image forming apparatus. When receiving a request for canceling the print job or the like from a user or an application, the language monitor performs a process in accordance with the request to control the job.
In addition, there is a V3 driver which includes an extended language monitor. The extended language monitor not only transmits a print job from a printer driver but also receives device information from an image forming apparatus and supports a protocol for print communication to be used. With the language monitor which supports the protocol, it is possible to execute stable printing even in an image forming apparatus with a small amount of memory by the printer driver constantly confirming a state of memory in the image forming apparatus as information. In addition, with the language monitor, the information processing apparatus can collect detailed states of the image forming apparatus, and thereby the language monitor can perform management and control of the print job, which are originally performed in the image forming apparatus.
There is a widely commercialized system in which a collected state of an image forming apparatus or a message to a user is displayed, and input of settings to the image forming apparatus and the like can be performed by an application in an information processing apparatus. In such a system, a panel display device in the image forming apparatus can be simplified. Furthermore, there is a commercialized system in which printing is performed by transmitting, to an image forming apparatus, image data obtained by rendering by a V3 driver in an information processing apparatus, without performing rendering in the image forming apparatus.
On the other hand, a new printer driver, which includes a configuration different from that described above, has been recently adopted in Windows 8 (registered trademark) introduced by Microsoft Corporation. A group of modules which constitutes the new printer driver does not include a language monitor. In addition, available communication ports are limited to a universal serial bus (USB) port and a web service on device (WSD) port. A printer driver having the configuration is called a Version 4 driver (hereinafter described as a V4 driver). Since V4 drivers do not include a language monitor, a function to perform a transmission process of a print job generated by a print job generation module to an image forming apparatus is provided by a spooler mounted on Windows as a standard component.
V3 drivers have a function to address a conflict. With the function, V3 drivers confirm whether there occurs a combination of print setting items of a print job which cannot be set simultaneously (conflict), and eliminate, if any, the combination of which print setting items cannot be set simultaneously. Accordingly, a conflict has been addressed by V3 driver in information processing apparatuses. For example, when settings include double-sided printing as an output setting and a sheet size which cannot be used for double-sided printing, these print settings are not consistent with each other and regarded as a conflict. As a result, the conflict has been addressed in such a way that the output method is changed to one-sided printing.
As conventional art, a method has been proposed in which in order to perform printing with a print setting suitable for an image forming apparatus, a print job is temporarily accumulated in a server, and printing is performed after receiving a print request and a print setting change instruction, and changing the print setting in accordance therewith (Japanese Laid-Open Patent Publication (kokai) No. 2012-94113).
However, in V4 drivers, print setting items, for which V4 drivers can confirm whether a conflict is caused, are limited by the OS. Consequently, V4 drivers cannot manage many combinations of print setting items unlike the V3 drivers. In other words, V4 drivers can address only a part of conflicts addressed by conventional V3 drivers, and regarding combinations of print setting items which cannot be managed by V4 drivers, it is not determined whether a conflict is caused thereby. Therefore, there is a risk that a print job including inconsistent print settings which cannot be addressed by an image forming apparatus is input to the image forming apparatus, which is a problem.
The present invention provides an information processing apparatus and a control method therefor, which prevent a page of a print job including a print setting which cannot be addressed by an image forming apparatus from being transmitted to the image forming apparatus, and a storage medium.
Accordingly, the present invention provides a control method for an information processing apparatus, comprising a reception step of receiving a print job generated in a printer driver to cause an image forming apparatus to perform printing, from the printer driver, an analysis step of analyzing a print setting included in the print job received in the reception step based on conflict information for managing a combination that includes a combination of contents of print setting items that causes a conflict and is unmanageable by the printer driver, and a transmission step of transmitting the print job to the image forming apparatus, wherein in the transmission step, when the print job is transmitted, at least a page that causes a conflict with respect to the image forming apparatus, in the print job, is not transmitted based on a result of the analysis performed in said analysis step.
According to the present invention, it is possible to prevent a page of a print job including a print setting which cannot be addressed by an image forming apparatus from being transmitted to the image forming apparatus.
Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings).
Hereinbelow, an embodiment of the present invention will be described with reference to the drawings.
The information processing apparatus 101 is configured to be a personal computer or the like. In the information processing apparatus 101, an application 102 is software used by a user in accordance with a purpose. For example, the user can give an instruction to start printing with the application 102. A V4 driver 103 is a version 4 printer driver which runs on an OS of Windows (registered trademark). The V4 driver 103 is software which receives a print instruction command from the application 102, and generates a print job in accordance therewith.
A standard spooler 104 is a printing spooler of Windows standard included in the OS (in the present embodiment, Microsoft Windows) installed in the information processing apparatus 101. The standard spooler 104 temporarily stores received print jobs, and outputs them one by one in the order of reception. The standard spooler 104 transmits print jobs to a virtual device service 106 through a network. In the present embodiment, the standard spooler 104 transmits print jobs by communication using loop back with which data is transmitted to its source, i.e. the standard spooler 104. In this print system, the standard spooler 104 transmits any jobs to the virtual device service 106.
A status window 105 is software for displaying statuses of the image forming apparatuses 107 and 108, and performing arbitrary settings therefor. The status window 105 has a remote procedure call (RPC) client function, and communicates with the virtual device service 106 by using the function. The status window 105 commands the virtual device service 106 to acquire state information, and displays a status based on the state information received as a response of the command. The status window 105 has model information. In the present embodiment, the model information is a product name.
The virtual device service 106 is emulator software which behaves like a physical image forming apparatus to the V4 driver 103, the standard spooler 104, and the status window 105. A network function in Windows is used for communication between the virtual device service 106 and the V4 driver 103, the standard spooler 104, and the status window 105. The image forming apparatuses 107 and 108 are apparatuses having a print function such as a printer, and form an image based on a received print job. The image forming apparatuses 107 and 108 each have model information, and the model information is a product name. In addition, the virtual device service 106 has software (not shown) which is a setting application with which settings and management of virtual devices 300 and 301 (see
Here, in a case of a conventional V3 driver, an OS (including a driver) is called from the application 102 through an application interface (API) called Win32. Then, binary data called Devmode is used as data for print setting. In a case where Win32 is used as an API, the application 102 calls Graphic Device Interface (GDI) to perform rendering.
On the other hand, in order to use, with the V4 driver 103, a user interface (UI) equivalent to that for a V3 driver, it is necessary to install software called PrinterExtension. As shown in
A print setting management unit 202 manages print setting items displayed with PrinterExtension or the OS standard UI, a default value and an input value for each of the items. The print setting management unit 202 manages a combination of values (contents) of print setting items which cannot be set simultaneously (causes a conflict), and also manages a countermeasure against a conflict to be taken upon occurrence thereof (described later referring to
In the V4 driver, a print setting is managed by a new print setting format based on eXtensible Markup Language (XML), which is called PrintTicket. XML has replaced a print setting based on Devmode structure in the V3 driver. A device information acquisition unit 203 acquires information (specification information) of an image forming apparatus necessary for generating a print job in a print job generation unit 204. The device information acquisition unit 203 acquires information of the image forming apparatuses 107 and 108 through the virtual device service 106. The device information acquisition unit 203 has the RPC client function, and acquires information of each of the image forming apparatuses 107 and 108 by communicating with RPC servers 311 and 321 (see
The print job generation unit 204 performs rendering or the like in accordance with information of an image forming apparatus acquired from the device information acquisition unit 203, a print setting sent from the application 102, values of print setting items managed by the print setting management unit 202, and generates a print job. The print job generation unit 204 embeds, in the print job, various kinds of information regarding the print job including the values of the print setting items used when generating the print job. Data received by the print job generation unit 204 is XML sheet Specification (XPS) data. When the application 102 which uses Win32 as an API calls GDI, the called GDI is automatically converted to XPS in the OS, and an XPS driver (in the present embodiment, a V4 driver 103) is called. When printing is performed from a Windows Presentation Foundation (WPF) application, the XPS driver (V4 driver) is called as it is. A PDL conversion unit 205 converts the print job to a page description language (PDL) complying with the image forming apparatuses 107 and 108 to which the print job is transmitted. A device IF unit 206 transmits the print job to the standard spooler 104.
With
The virtual device service 106 has a function to receive registration/deletion of virtual devices from an outside source. In order for the virtual device service 106 to register a virtual device by an installer (not shown), a receiving port number of the information processing apparatus 101 is required to be designated. The virtual device service 106 manages the designated receiving port number and the virtual device to be registered in association with each other. The virtual device service 106 has a function to execute the registered virtual device. The virtual device is executed when the virtual device service 106 is executed or a new virtual device is registered.
The virtual device 300 will be described as a representative of the virtual devices. The virtual device 300 includes a reception part 310, a RPC server 311, a virtual device spooler 312, a virtual device language monitor 313 (hereinafter may be abbreviated to language monitor 313), and a port monitor 314. The virtual device 300 holds a product name as model information, and the virtual device spooler 312 included in the virtual device 300 has the product name. The reception part 310 transfers, to the virtual device spooler 312, data of a print job received from the standard spooler 104 through a port number associated with the virtual device 300. The RPC server 311 mediates communication between an external module having the RPC client function such as the status window 105 (
The virtual device spooler 312 has a queue for storing the data of the print job transferred from the reception part 310, manages and transmits the stored print job to the language monitor 313. The virtual device spooler 312 provides various accessing units used for acquisition of job information regarding the managed print jobs, deletion of the print jobs, and the like. The accessing units are used by the language monitor 313 or a setting application. The virtual device spooler 312 receives various instructions and responds to the instructions through the RPC server 311. The virtual device spooler 312 transmits various instructions to the language monitor 313, and receives responses to the instructions. In the present embodiment, the virtual device spooler 312 has a product name as model information of the virtual device 300 to which the virtual device spooler 312 belongs.
The language monitor 313 is a module which controls print jobs and manages various kinds of information, and transmits the print job received from the virtual device spooler 312 to the image forming apparatus 107 through the port monitor 314. The language monitor 313 transmits various instructions to the image forming apparatus 107 through the port monitor 314, and acquires various kinds of information from the image forming apparatus 107. In the present embodiment, the language monitor 313 acquires printing states, various states and setting information, error information, and the like of the image forming apparatus 107, and acquires a product name when connected to the image forming apparatus 107. The language monitor 313 determines a state based on information the language monitor 313 has itself and information acquired from the image forming apparatus 107. When the state is determined to be an error state, an error process such as stop of a printing process is performed. The language monitor 313 receives various instructions from the virtual device spooler 312 and responds to the instructions. For example, when receiving an instruction to acquire state information from the status window 105 through the virtual device spooler 312, the language monitor 313 makes a response including state information based on determination of the state and model information. The language monitor 313 analyzes data of a print job, thereby acquiring various kinds of information regarding the print job including values of various print setting items.
The language monitor 313 analyzes a print setting included in the print job based on conflict information shown in
The language monitor 313 has no limitation put by the OS on conflicts. Therefore, as described above, it is possible to manage conflicts for sheet for which a user can define any size, such as user-defined sheet. For example, conflicts can be managed as follows: although a conflict is caused between user-defined sheet not smaller than a predetermined size and double-sided printing, it is possible to perform double-sided printing for user-defined sheet smaller than the predetermined size. As exemplified in
The port monitor 314 mediates communication between a port of the information processing apparatus 101 connected to the image forming apparatus 107 and the language monitor 313. Depending on the model of the image forming apparatus 107, types of communication which can be performed by the image forming apparatus 107 may vary. With the port monitor 314, a communication process can be performed which is specialized for the image forming apparatus 107 to be connected.
The other virtual device 301 is connected to the image forming apparatus 108 through a port other than that for the virtual device 300 among ports included in the information processing apparatus 101. A software configuration of the virtual device 301 is similar to that of the virtual device 300, and the virtual device 301 has functions similar to those of the virtual device 300. Configurations of a reception part 320, a RPC server 321, a virtual device spooler 322, a virtual device language monitor 323, and a port monitor 324 in the virtual device 301 are similar to those of components denoted by reference numerals 310, 311, 312, 313, and 314 in the virtual device 300, respectively.
A CPU 432 controls overall operations of the image forming apparatus 108. A RAM 439 functions as a main memory, a work area, and the like of the CPU 432, and in addition, is used as an output information development area and an environmental data storage area. The RAM 439 also includes an NVRAM (non-volatile RAM) area, and is configured to be able to expand a memory capacity by an optional RAM connected to an expansion socket (not shown). A ROM 433 includes a font ROM 433a, a program ROM 433b, and a data ROM 433c. The font ROM 433a stores various fonts, the program ROM 433b stores a control program and the like executed by the CPU 432, and the data ROM 433c stores various data. An I/F control unit 438 performs transmission and reception of data to and from the information processing apparatus 101, and in the present embodiment, such transmission and reception are performed through a wired LAN.
A printing unit I/F 436 controls an interface with a printing unit 437, which also serves as a printer engine. An external memory 434 includes a hard disk (HD), a solid state disk (SSD), and the like, which are optionally connected, and access thereto is controlled by an external memory I/F 440. The external memory 434 is a hard disk or the like, stores font data, form data and the like, and in addition, can store a file 443, which is a file temporarily generated in the image forming apparatus 108, a file used for transmission and reception to and from external apparatuses, or the like. It should be noted that when the external memory 434 is not connected, information and the like used in the information processing apparatus 101 can be stored in the data ROM 433c in the ROM 433. The number of the external memories 434 is not limited to one, and more than one external memories 434 may be provided. For example, a configuration may be employed in which a plurality of external memories which store an optional font card in addition to a built-in font, a program for interpreting printer control languages of different language systems, and the like, can be connected.
An operation panel which receives an operation by a user is provided to an operation unit 442. A switch for the operation, an LED indicator, and the like are arranged in the operation panel (not shown). It should be noted that the operation unit 442 may include a NVRAM (not shown) such that printer mode setting information from the operation panel can be stored therein. The CPU 432 outputs an image signal as output information to the printing unit 437 through the printing unit I/F 436 via the wired LAN based on a control program or the like stored in the program ROM 433b of the ROM 433. In addition, the CPU 432 can communicate with the information processing apparatus 101 through the I/F control unit 438. A bidirectional communication path is constituted between the I/F control unit 438 and the information processing apparatus 101. With the bidirectional communication path, it is possible to receive a print job transmitted from the information processing apparatus 101, and to notify the information processing apparatus 101 of information and the like included in the image forming apparatus 107.
It should be noted that the image forming apparatus 107 can be realized with a similar configuration to that of the image forming apparatus 108 except that the image forming apparatus 107 is connected to the information processing apparatus 101 via a USB I/F. The present invention can be realized irrespective of types of I/Fs.
In the step S603, the print setting management unit 202 determines whether the cancel button 505 has been pressed down by the user. Based on the determination result, the print setting management unit 202 causes the process to proceed to step S608 in a case where the cancel button 505 has been pressed down. On the other hand, in a case where the cancel button 505 has not been pressed down, the print setting management unit 202 causes the process to proceed to step S604. In the step S604, the print setting management unit 202 determines whether the user has changed any of values of print setting items (settings 501, 502, and 503). Based on the determination result, the print setting management unit 202 causes the process to return to the step S602 in a case where no print setting item has been changed. On the other hand, in a case where any of the print setting items has been changed, the print setting management unit 202 causes the process to proceed to step S605.
In the step S605, the print setting management unit 202 checks the value of the print setting item changed by the user with the conflict information (
In the step S606, the print setting management unit 202 takes a countermeasure to address the conflict which has been caused, notifies the user of the occurrence of the conflict, and then causes the process to return to the step S602. Specifically, when the conflict defined by the number 1 in
In the step S608, the print setting management unit 202 cancels the values set in the print setting dialog 500 without storing the values, and ends the process in
The values of the print setting items stored in the process in
In step S801, the language monitor 313 receives the print job, which has been received from the V4 driver 103, from the virtual device spooler 312. In step S802, the language monitor 313 determines whether transmission of all pages included in the print job has been completed. The language monitor 313 ends the process in
Specifically, it is assumed that conflict information managed by the language monitor 313 is shown in
Next, in step S804, the language monitor 313 determines whether a conflict is caused, based on various print setting items constituting the print job, as a result of the analysis performed in the step S803. Based on the determination result, the language monitor 313 causes the process to proceed to step S806 in a case where the conflict is not caused, and executes a transmission process of the page thus analyzed. Consequently, a page which does not cause a conflict in the print job is transmitted. Thereafter, the process is caused to return to the step S802. On the other hand, in a case where the conflict is caused, the language monitor 313 executes an error process in accordance with the conflict in the step S805, in other words, there occurs transition to an error state resulting from the occurrence of the conflict. Consequently, a page which causes a conflict in the print job is not transmitted. Thereafter, the process in
In the error process performed in the step S805, for example, an error screen as shown in
According to the present embodiment, a print job generated in the V4 driver 103 is transmitted to the virtual device service 106, it is determined in the virtual device service 106 whether a conflict is caused between the print setting items, and a page is transmitted to the image forming apparatus. In the language monitor 313, a combination which cannot be managed by the V4 driver 103 can be managed as conflict information. Therefore, it is possible to prevent a page which causes a conflict from being transmitted based on the analysis result of the print setting included in the received print job. Accordingly, it is possible to prevent a page of a print job including a print setting which cannot be addressed by the image forming apparatus from being transmitted to the image forming apparatus. It is possible to transmit a page which does not cause a conflict with respect to the image forming apparatus.
In the present embodiment, whether a conflict is caused is determined by analyzing a print job for each page included therein. However, whether a conflict is caused or whether transmission can be performed may be determined not in pages but in units other than pages, such as in print jobs. For example, in a case where there is even only one page which causes a conflict in a print job, as a result of the analysis, all pages in the print job may be prevented from being transmitted. Consequently, a print job including a print setting which cannot be addressed by the image forming apparatus (including inconsistent print setting items) is not submitted to the image forming apparatus 107.
It should be noted that in a case where there is a page which causes a conflict, the corresponding print job may be cancelled after an error notice is sent to a user and then a response from the user indicating confirmation of the error is received.
It should be noted that although three items of “sheet size,” “sheet type,” and “output method” are exemplified as the print setting items, there is no limitation to the print setting items. The number and the types of the print setting items to be employed may be different therefrom.
It should be noted that it is sufficient for the virtual device service 106 to be disposed such that the virtual device service 106 can receive a print job generated in the V4 driver 103 and then submit the print job to the image forming apparatus. It is not essential for the virtual device service 106 to be disposed inside the same apparatus which includes the V4 driver 103. Therefore, the virtual device service 106 may be disposed inside a stand-alone apparatus but not limited thereto, and may be disposed in a server or a client, or in any place in a network.
Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Applications No. 2015-237396, filed Dec. 4, 2015 which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2015-237396 | Dec 2015 | JP | national |