A control method causes a graphical user interface (gui) application to perform activating in response to a first print request from a drawing application, acquiring intermediate data based on drawing data generated by the drawing application, and outputting intermediate data. In a case where a second print request is issued by a printer driver that has acquired intermediate data output from a gui application, the gui application is re-activated in response to the second print request, and a predetermined screen is provided by the gui application that has been activated in response to the second print request issued by the printer driver.
|
1. A control method for an information processing apparatus on which a graphical user interface (gui) application capable of providing a gui operates, the control method causes the gui application to perform:
being activated in response to a first print request from a drawing application;
acquiring intermediate data based on drawing data generated by the drawing application; and
outputting the intermediate data,
wherein, in a case where a second print request is issued by a printer driver that has acquired the intermediate data output from the gui application, the gui application is re-activated in response to the second print request, and
wherein, in a case where the gui application is activated at least twice in response to the first print request and the second print request that are based on the drawing data that is identical drawing data, the gui application does not provide a predetermined screen when activated based on the first print request and provides the predetermined screen when activated in response to the second print request issued by the printer driver.
15. An information processing apparatus on which a graphical user interface (gui) application capable of providing a gui operates, the information processing apparatus comprising:
an activation unit configured to activate the gui application in response to a first print request from a drawing application;
an acquisition unit configured to cause the gui application to acquire intermediate data based on drawing data that is generated by the drawing application; and
an output unit configured to output the intermediate data from the gui application,
wherein, in a case where a second print request is issued by a printer driver that has acquired the intermediate data output from the gui application, the gui application is re-activated in response to the second print request, and
wherein, in a case where the gui application is activated at least twice in response to the first print request and the second print request that are based on the drawing data that is identical drawing data, the gui application does not provide a predetermined screen when activated based on the first print request and provides the predetermined screen when activated in response to the second print request issued by the printer driver.
2. The control method according to
3. The control method according to
wherein, in a case where the print preview image is generated and the generated print preview image is stored in the intermediate data by the printer driver, storage information for the generated print preview image is added to information indicating print settings in the intermediate data, and
wherein the gui application acquires the print preview image, based on the storage information, to provide a screen including the print preview image.
4. The control method according to
wherein the control method further causes a computer to perform:
acquiring information indicating print settings; and
adding predetermined information to the information indicating the print settings,
wherein, in a case where the predetermined information is included in the information indicating the print settings, the second print request is output by the printer driver, and in a case where the predetermined information is not included in the information indicating the print settings, the second print request is not output by the printer driver.
5. The control method according to
6. The control method according to
7. The control method according to
wherein the print command generated by the printer driver includes identification information for a print job, and
wherein information identical to the identification information for the print job included in the print command is stored in intermediate data that is generated by the printer driver for the second print request.
8. The control method according to
9. The control method according to
wherein the gui application that has been activated in response to the second print request determines whether a print job corresponding to the identification information is currently being processed by the printing apparatus, based on the intermediate data generated by the printer driver for the second print request and the information indicating the status acquired from the printing apparatus, and
wherein, in a case where the print job corresponding to the identification information is currently being processed by the printing apparatus, the gui application provides a screen including the information indicating the status of the printing apparatus.
10. The control method according to
wherein Device Metadata is acquired from an operating system (OS) via the Internet upon installation of the printer driver, and
wherein, based on descriptions in the acquired Device Metadata, the gui application is acquired from an application distribution system via the Internet.
11. The control method according to
12. The control method according to
14. The control method according to
|
This application is a Continuation of International Patent Application No. PCT/JP2019/040476, filed Oct. 15, 2019, which claims the benefit of Japanese Patent Application No. 2018-207404, filed Nov. 2, 2018, both of which are hereby incorporated by reference herein in their entirety.
The present invention relates to a control method and an information processing apparatus.
In a generally known printing configuration, a printer driver installed as printing apparatus control software in a host computer is used to perform printing on a printing apparatus connected to the host computer. Printer drivers are configured according to the specifications prescribed by an operating system (OS) as basic software installed in the host computer. A printer driver is called by the OS and then operates. A printing apparatus vendor provides a printer driver applicable to the specifications of the OS to offer a means for issuing a print instruction to a printer by using the OS. When using Windows (registered trademark) 8 or earlier of Microsoft (registered trademark) as the OS, printer drivers are configured based on what is called the V3 printer driver architecture. V3 printer drivers display a Graphical User Interface (hereinafter referred to as a GUI or simply as a “user interface”) at the timing when a print request is issued from the user. This GUI facilitates providing a function of prompting the user to perform a certain operation. For example, when a print request is issued, a predetermined event of a configuration module as a component of V3 printer drivers is called. Then, the configuration module can display a user interface during processing for the event.
A new architecture called the V4 printer driver has recently been released for Windows®. V4 printer drivers focus on security and thus are degraded in customizability of the printer drivers themselves. For example, the above-described configuration module is provided by the OS, and the vendor can provide only setting files and script files for customizing operations of the configuration module. To compensate for such degraded customizability, the printing apparatus vendor can provide a dedicated application for expanding functions of printer drivers. An example of such an application is Windows Store Device App (WSDA). WSDA provided by the printing apparatus vendor makes it possible to customize a print setting screen that is displayed when drawing data is printed, as discussed in Japanese Patent Application Laid-Open No. 2017-16480 (PTL1).
According to an aspect of the present invention, a method for controlling an information processing apparatus on which a Graphical User Interface (GUI) application capable of providing a GUI operates, the control method causes the GUI application to perform activating in response to a first print request from a drawing application, acquiring intermediate data based on drawing data generated by the drawing application, and outputting intermediate data, wherein, in a case where a second print request is issued by a printer driver that has acquired intermediate data output from the GUI application, the GUI application is re-activated in response to the second print request, and wherein a predetermined screen is provided by the GUI application that has been activated in response to the second print request issued by the printer driver.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Preferred exemplary embodiments of the present invention will be described in detail below with reference to the accompanying drawings. The following exemplary embodiments do not limit the present invention within the scope of the appended claims. Not all of the combinations of the features described in the present exemplary embodiment are indispensable to the solutions for the present invention.
The following exemplary embodiments provide more suitable functions by using an application called Print Workflow Application (WFA). This WFA is a graphical user interface (GUI) application for providing a GUI and is activated in response to a print request (also referred to as a printing-time activated application). The GUI application will be described in detail below.
V4 printer drivers are improved in security and convenience but are degraded in customizability of printer drivers themselves. For example, V4 printer drivers are not have a function of providing a GUI. Even if a driver not having a function of providing a GUI, like V4 printer drivers, is used, a GUI, such as a print setting screen, can be provided by using Windows Store Device App (WSDA). However, conventional WSDA still has limitations on display functions. Although a certain application, what is called Printer Extensions (PEX), expands the function of the printer driver, PEX has similar limitations on functions to WSDA. The present disclosure is directed to a technique for providing more suitable display functions.
The ROM 112 stores the initial program. The external storage device 114 stores application program groups, an operating system (OS), printer drivers, and other various data. The RAM 113 is used as a work memory when various programs stored in the external storage device 114 are executed.
According to the present exemplary embodiment, by the CPU 111 executing processing according to procedure of a program stored in the ROM 112, the function of the host computer 101 (described below) and processing related to flowcharts (described below) are implemented. A printing apparatus 102 as a device is connected to the host computer 101 via the input/output interface 116. While, in this case, the host computer 101 and the printing apparatus 102 are configured as separate apparatuses, these apparatuses may be configured as one information processing apparatus.
<Block Configuration of Driver Printing System>
When the user issues a print instruction from a Universal Windows Platform (UWP) application 202, a predetermined screen is displayed by a Modern Print Dialog (MPD) (not illustrated) as a function of the OS. The UWP application 202 is a drawing application for generating drawing data (data including images, texts, and other objects input by the user). A screen provided by the MPD has a print preview function that allows the user to check a print result on a screen and a function that allows the user to select basic print settings.
Upon reception of an instruction from the user, the MPD activates Windows Store Device Application (WSDA) 207 that allows the user to select detailed print settings. More specifically, when an “OTHER SETTINGS” button 303 is selected in the setting screen 302 illustrated in
The WSDA 207 receives information indicating the print settings from the MPD, changes the setting information according to the user settings, and returns the setting information to the MPD. The information indicating print settings is described in the eXtended Markup Language (XML) format based on the format defined by the OS, and is included in data called a PrintTicket. The WSDA 207 can refer to and change a PrintTicket but cannot refer to drawing data.
A PrintTicket is generated by a configuration module 208 of the selected printer driver 201. The WSDA 207 generates (edits) a PrintTicket reflecting user specification, by calling the configuration module 208. The configuration module 208 also has functions that can be set for the selected printer driver 201 and a function of generating PrintCapabilities that is described in the XML format based on the format defined by the OS. The WSDA 207 and a Printer Extensions (PEX) 209 (described below) provide user interfaces based on information described in the PrintCapabilities. A GUI application 205 (described below) can acquire PrintCapabilities generated by the configuration module 208 via a function of the OS.
While
When a “PRINT” button is selected in the setting screen 302 provided by the MPD of the OS after the print settings illustrated in
The XPS document generated by the UWP application 202 is transferred to a GUI application launcher 204 as a component of the OS. The GUI application launcher 204 determines whether the GUI application 205 associated with the printer driver 201 via Device Metadata (hereinafter also simply referred to as Metadata) exists and is configured to be activated. When the GUI application launcher 204 determines that the GUI application 205 exists and is configured to be activated, the GUI application 205 is activated. Meanwhile, when the GUI application 205 does not exist, the GUI application launcher 204 stores the XPS document as a spool file 206.
The relation between the WSDA 207 and the GUI application 205 will be described below. The WSDA 207 is an expansion application for expanding a function of the printer driver. More specifically, when a driver not having a function of offering a Graphical User Interface like V4 printer drivers is selected, the WSDA 207 can provide a GUI such as a setting screen. However, the WSDA 207 cannot provide a function for promoting the user for a certain operation by displaying a GUI at the timing of when a print request is issued from the user, like V3 printer drivers. Thus, the present exemplary embodiment uses the GUI application 205 that operates in response to a print request from the user. According to the present specification, a Graphical User Interface is referred to as a “GUI” or simply as a “user interface”.
The GUI application 205, called Print Workflow Application, is an expansion application for expanding a function of the printer driver 201 provided by a printer vendor like the WSDA 207. More specifically, when a driver not having a function of providing a GUI like V4 printer drivers is selected, the GUI application 205 can provide a GUI, based on an instruction of the OS. When a V3 driver having a function of providing a GUI is selected, the OS does not activate the GUI application launcher 204 but stores the XPS document generated by the drawing application, as the spool file 206. More specifically, when a V3 driver is selected, the GUI application 205 does not activate and also does not provide a GUI.
The WSDA 207 and the GUI application 205 are not provided as components of the printer driver 201 but independent applications. The WSDA 207 and the GUI application 205 can be collectively configured as an application. For convenience, however, these applications will be described below as separate applications to describe differences from the conventional WSDA.
The WSDA 207 and the GUI application 205 are normally acquired from an application distribution system (a server managed by Microsoft®) via the Internet by the OS. The printer vendor provides Metadata in advance to a Metadata server managed by Microsoft®. Accordingly, appropriate applications, the WSDA 207 and the GUI application 205, are automatically installed in the host computer 101. More specifically, Metadata describes device identification information (Hardware ID) for a printing apparatus as a device, and software identification information (Identity Name) for the WSDA 207 and the GUI application 205. An Inf file of the printer driver describes the device identification information (Hardware ID). Thus, when a printer driver is installed, the OS downloads corresponding Metadata, based on the device identification information. Then, the OS refers to the Metadata, identifies software identification information (Identity Name) associated with corresponding device identification information (Hardware ID), and acquires corresponding applications, the WSDA 207 and the GUI application 205. Thus, the printer driver 201, the WSDA 207, and the GUI application 205 are associated with each other.
The GUI application 205 can display a user interface for accepting an operation instruction from the user. The GUI application 205 can receive an XPS document as print data and edit a PrintTicket and drawing data in the XPS document. The WSDA 207 that is also an expansion application can display a user interface but cannot acquire an XPS document. The WSDA 207 can neither refer to nor edit the drawing data in the XPS document.
When the GUI application 205 outputs an XPS document edited as required, the OS stores the XPS document as the spool file 206. When the spool file 206 is stored, processing is transferred to a filter pipeline manager (not illustrated) in the printer driver 201, and the number and the order of filters are controlled according to a configuration file (not illustrated). The filter pipeline manager is a mechanism for performing printing via a plurality of filters. A filter group according to the present exemplary embodiment includes a layout filter 211 as a layout processing unit, and a print command filter 212 as a print command conversion unit. While the filter pipeline manager operates as a function of the printer driver 201, the filter pipeline manager is an original component of the OS. However, since V4 printer drivers do not have the filter pipeline manager, V4 printer drivers use, as a driver function, the filter pipeline manager as a component of the OS.
The layout filter 211 inputs an XPS document stored in the spool file 206, performs page layout processing based on print setting information, and outputs the XPS document in which the layout processing has been completed. The layout processing includes layout printing for printing a plurality of pages on a single paper surface, and poster printing for printing a single page on a plurality of paper surfaces.
The print command filter 212 has a function of inputting an output from the layout filter 211, converting the XPS document as intermediate data into a print command that can be interpreted by the printing apparatus 102, according to the print setting information, and outputting the print command. In a case where the print command filter 212 once converts the input XPS document into image data, the print command filter 212 is generally referred to as a rendering filter. A rendering filter is generally seen in printer drivers for inexpensive raster printers represented by ink jet printers. When the print command filter 212 operates as a rendering filter, the print command filter 212 once converts the input XPS document into image data. Then, after the image data is subjected to the process of image processing, such as color space conversion and binarization, the image data is converted into a print command that can be interpreted by raster printers.
In a case where XPS is included in the types of print commands that can be interpreted by the printing apparatus 102 of high-performance printers represented by page printers, the print command filter 212 edits the input XPS document and outputs an XPS document. In a case where processing by the print command filter 212 is not required, the print command filter 212 may output the input XPS document as it is, or the print command filter 212 may not be included in the printer driver 201. This completes the description of basic processing in printing using the UWP application 202.
In a case where the drawing application is a Legacy application 203 such as a Win32 application, not the WSDA 207 but the PEX 209 is activated. The PEX 209 is activated via the configuration module 208 and provides a user interface on which the user can specify print settings. The PEX 209 may be provided as a component in the driver package together with the printer driver 201 or separately distributed. Like the WSDA 207, the PEX 209 can refer to and change a PrintTicket but cannot acquire an XPS document. The PEX 209 can neither refer to nor edit drawing data in an XPS document. The PEX 209 is activated when the user issues a print instruction on the Legacy application 203 and is not necessarily activated at the time of printing. When the user issues a print instruction on the Legacy application 203, the Legacy application 203 generates an XPS document as print data. Then, the GUI application 205 acquires the XPS document output from the Legacy application 203 and then outputs the XPS document. The subsequent processing procedure is similar to the print processing using the UWP application 202, and the redundant description thereof will be omitted.
<Configuration of XPS Document>
An XPS document will be described below with reference to
Referring to
Referring to
<Data Flow>
According to a first exemplary embodiment, the GUI application 205 provides a print preview function. More specifically, the GUI application 205 provides a screen including a print preview image. To correctly display a print result by the print preview function, it is necessary to reflect a result of the layout processing performed by the printer driver 201. Thus, it is desirable that the printer driver 201 generates a print preview image.
However, the GUI application 205 is activated upon reception of a print request from a drawing application 501 based on a user instruction. Then, the GUI application 205 outputs an XPS document as print data and ends processing. Then, after the output XPS document is stored in the spool file 206, the printer driver 201 starts processing. More specifically, since the GUI application 205 ends before the printer driver 201 starts processing, the printer driver 201 and the GUI application 205 cannot operate in a cooperative way. More specifically, since the GUI application 205 ends before the printer driver 201 is activated, the GUI application 205 cannot receive the image generated by the printer driver 201 and hence cannot display the image generated by the printer driver 201.
According to the present exemplary embodiment, therefore, the printer driver 201 issues a print request to re-activate the GUI application 205 to enable the GUI application 205 to use the image generated by the printer driver 201.
The GUI application 205 acquires a PrintTicket and checks whether there exists information indicating that a print preview activation instruction is effective. When the print preview function is set to ON in the setting screen illustrated in
The printer driver 201 checks whether the information indicating the image generation instruction stored by the GUI application 205 exists in the PrintTicket (more specifically, whether the information indicating the image generation instruction is described in the PrintTicket). When the information indicating the image generation instruction exists, the printer driver 201 generates an image based on the drawing data and the PrintTicket in the XPS document. The generated image reflects the layout processing according to the print settings. Then, the printer driver 201 stores the generated image in the XPS document. In addition, the printer driver 201 performs editing for adding the storage information for the image to the PrintTicket. Then, the printer driver 201 issues a print request by using the generated XPS document to the printer driver 201 itself. In response to the print request from the printer driver 201, the GUI application launcher 204 re-activates the GUI application 205. After issuing a print request, the printer driver 201 cancels the job currently being processed and then ends processing.
The user confirms the image of the print result and issues a printing start or printing cancel instruction in the print preview screen. When the user issues a printing cancel instruction in the print preview screen, the GUI application 205 issues a printing cancel instruction to the OS and ends the corresponding print job processing. When the user issues a printing start instruction, the GUI application 205 outputs the XPS document. The GUI application 205 does not include the image generation instruction in a PrintTicket stored in the XPS document to be output.
When the GUI application 205 outputs the XPS document, the OS stores the XPS document as the spool file 206, and the processing of the printer driver 201 is re-activated. The printer driver 201 checks the PrintTicket included in the XPS document to check whether the information indicating the image generation instruction is included therein. The information indicating the image generation instruction is not described in the PrintTicket stored in the XPS document stored in the spool file 206 in the second processing. Thus, the printer driver 201 generates a print command that can be interpreted by the printing apparatus 102, based on the XPS document, and transmits the print command to the printing apparatus 102. The printing apparatus 102 performs printing according to the received print command.
<Contents of PrintTicket>
<Setup Processing of GUI Application>
Upon reception of an XPS document output from the drawing application 501 as a printing request source, the GUI application launcher 204 activates the GUI application 205 associated with the printing apparatus 102. When activated, the GUI application 205 firstly performs initialization processing. When a print button 703 is selected in the setting screen 302 provided by the OS after the print settings described above with reference to
In step S801, the GUI application 205 acquires a PrintTicket stored in the XPS document. The acquired PrintTicket in this case is a PrintTicket of a job. As described above with reference to
In step S802, the GUI application 205 refers to the PrintTicket and checks whether the storage information for the preview image illustrated in
<UI Processing of GUI Application>
UI processing of the GUI application 205 will be described below. When the UI display instruction is issued in step S803, the OS calls the UI processing of the GUI application 205 after the setup processing of the GUI application 205 is completed.
Although the GUI application 205 will be described below as the subject of each piece of processing, the corresponding function is actually implemented when the CPU 111 executes the corresponding program. Not all of processing is sequentially performed on a single process. In some cases, control may be once transferred to the OS side, and then the process may be called again from the OS.
In step S901, the GUI application 205 acquires an XPS document by using a predetermined API of the OS. In step S902, the GUI application 205 analyzes the XPS document and acquires the image stored by the printer driver 201 from the XPS document. Then, in step S903, the GUI application 205 displays a screen including the image acquired in step S902 as a print preview image. Thus, the GUI application 205 implements the print preview function for allowing the user to check the image of the print result.
In step S904, the GUI application 205 receives an input from the user in the screen including the displayed print preview image. The user confirms the image of the print result by viewing the print preview image. If the image is what is intended by the user, the user issues a printing start instruction. Meanwhile, if the image is not what is intended by the user, the user issues a printing cancel instruction. Upon reception of the printing start or printing cancel instruction from the user, the GUI application 205 completes the UI processing. The following description will be made on the premise that the user issues a printing start instruction. When the user issues a printing cancel instruction, the GUI application 205 notifies the OS that the print job has been canceled and then ends the processing.
<Edit and End processing of GUI Application>
The edit and end processing of the GUI application 205 will be described below. Upon completion of the UI processing of the GUI application 205 illustrated in
Although the GUI application 205 will be described below as the subject of each piece of processing, the corresponding function is actually implemented when the CPU 111 executes the corresponding program. Not all of processing is sequentially performed on a single process. In some cases, control may be once transferred to the OS side, and then the process may be called again from the OS.
In step S1001, the GUI application 205 acquires a PrintTicket stored in the XPS document.
In step S1002, the GUI application 205 refers to the PrintTicket and checks whether the storage information for the preview image illustrated in
Meanwhile, when the storage information for the preview image does not exist in PrintTicket (NO in step S1002), the GUI application 205 determines that the processing is for the first activation, and the processing proceeds to step S1003. In step S1003, the GUI application 205 checks whether the information indicating that the print preview activation instruction (
Steps S1005 and S1006 are procedures for XPS document acquisition processing and XPS document output processing, respectively. In step S1005, since the GUI application 205 needs to perform the output processing for the XPS document to enable the printer driver 201 to start processing, the GUI application 205 acquires the XPS document by using a predetermined API of the OS. In step S1006, the GUI application 205 outputs the XPS document acquired in step S1005 by using a predetermined API of the OS. Upon completion of the output processing for the XPS document, the GUI application 205 ends.
<Printer Driver Processing>
Processing of the printer driver 201 will be described below. In step S1006, the GUI application 205 outputs the XPS document, and the OS stores the XPS document as the spool file 206. Then, the printer driver 201 starts processing.
In step S1101, the printer driver 201 acquires the XPS document stored as the spool file 206. In step S1102, the printer driver 201 acquires print setting values from a PrintTicket stored in the XPS document. In step S1103, the printer driver 201 determines whether the XPS document has been subjected to the layout processing based on the acquired print setting values. For example, when “Created” is set for “CreatePrvImage”, it can be determined that, since the first driver processing is completed, the layout processing has been also completed.
According to the present exemplary embodiment, in the first driver processing, the printer driver 201 performs the layout processing for the XPS document to generate a print preview image. Then, the printer driver 201 issues a print request by using the XPS document. More specifically, in the second driver processing to be performed based on a print request of the printer driver 201 itself, the XPS document that has been subjected to the layout processing is spooled, the layout processing needs to be skipped. The printer driver 201 can use the XPS document before the editing for a print request to perform the layout processing in the second processing of the printer driver 201.
When the printer driver 201 determines that the XPS document has not been subjected to the layout processing (NO in step S1103), the processing proceeds to step S1104. In step S1104, the printer driver 201 performs the layout processing for the drawing data according to the PrintTicket. For example, a layout printing for printing a plurality of pages on a single paper surface is set, the printer driver 201 performs the layout processing for laying out a plurality of pages for the drawing data in the XPS document on a single page.
In S1105, the printer driver 201 determines whether information indicating that the preview image generation instruction (
When the printer driver 201 determines that the information indicating that the preview image generation instruction exists in the PrintTicket (YES in step S1105), the processing proceeds to step S1106. In step S1106, the printer driver 201 generates a preview image based on each page of the drawing data that has been subjected to the layout processing in the XPS document. In step S1106, for example, when setting information for monochrome printing is included, the printer driver 201 generates a monochrome preview image reflecting the information.
In step S1107, the printer driver 201 embeds the generated image data in the XPS document. More specifically, the printer driver 201 stores the generated preview image data in the intermediate data. Methods for embedding image data in an XPS document include a method in which image data is associated with each page as a thumbnail.
In step S1108, the printer driver 201 describes in the PrintTicket the storage information for the image indicating that the preview image has been stored, illustrated in
In step S1109, the printer driver 201 issues a print request to the printer driver 201 itself by using the XPS document including the preview image. When the GUI application 205 is activated by using the print request from the printer driver 201 as a trigger, the above-described processing illustrated in
When the printer driver 201 determines that the information indicating that the preview image generation instruction does not exist in the PrintTicket (NO in step S1105), the processing proceeds to step S1111. In step S1111, the printer driver 201 generates a print command that can be interpreted by printers, based on the acquired XPS document.
In step S1112, the printer driver 201 transmits the generated print command to the printing apparatus 102. The printing apparatus 102 performs printing according to the received print command.
As described above, the GUI application 205 according to the present exemplary embodiment is activated for the second time upon reception of a print request from the printer driver 201. Accordingly, the cooperation with the printer driver 201 is achieved. This enables the GUI application 205 to perform a print preview by using the image generated by the printer driver 201, and therefore it is possible to provide the user with the correct image of a print result.
While, in the present exemplary embodiment, the GUI application 205 stores the print preview image generated by the printer driver 201 in the XPS document, the print preview image may be stored in any location that can be accessed by the GUI application 205. For example, the printer driver 201 can store the generated image at an arbitrary location, and notify the GUI application 205 of the storage location by describing the storage location in the storage information for the preview image.
A second exemplary embodiment will be described below. The second exemplary embodiment will be described below centering on a method in which the GUI application 205 monitors the printer status and issues a status notification.
In the following descriptions, descriptions common to the first exemplary embodiment will be omitted. In particular, the hardware configuration of the printing system described above with reference to
When the GUI application 205 makes an attempt to issue a status notification for the job currently being printed, it is necessary that the GUI application 205 is active while the printing apparatus 102 is performing print processing. However, since the printer driver 201 that transmits a print command to the printing apparatus 102 operates after the GUI application 205 ends, the GUI application 205 has ended when the printing apparatus is operating. This means that the printer driver 201 cannot issue a status notification.
Thus, according to the present exemplary embodiment, the printer driver 201 issues a print request to the printer driver 201 itself to re-activate the GUI application 205. In this case, the printer driver 201 adds job identification information added to the transmitted print command to the XPS document to be used for a print request. This prompts the GUI application 205 to access the printing apparatus 102 and issue a status notification of the job corresponding to the specified job identification information.
<Data Flow>
When the XPS document is stored in the spool file 206, the printer driver 201 starts processing. The printer driver 201 generates a print command that can be interpreted by the printing apparatus 102, based on the XPS document, and transmits the print command to the printing apparatus 102. The print command includes job identification information. When the printing apparatus 102 receives a status acquisition request, the printing apparatus 102 returns status information in association with the job identification information. The status information will be described in detail below with reference to
Then, the printer driver 201 issues a print request to the printer driver 201 itself. In this case, the printer driver 201 stores the job identification information in a PrintTicket stored in the XPS document to be used for a print request. The job identification information to be stored in the PrintTicket will be described below with reference to
<Setup Processing of GUI Application>
In step S1601, the GUI application 205 acquires a PrintTicket stored in XPS document.
In step S1602, the GUI application 205 refers to the PrintTicket to check whether the job identification information exists in the PrintTicket. When the job identification information exists in the PrintTicket (YES in step S1602), the GUI application 205 determines that the PrintTicket is a print request from the printer driver 201 (i.e., the second activation). Then, the processing proceeds to step S1603. In step S1603, the GUI application 205 instructs an API to display a user interface to issue status notification. Meanwhile, when the job identification information does not exist in PrintTicket (NO in step S1602), the GUI application 205 ends the setup processing without instructing the API to display a user interface because of the first activation.
<UI Processing of GUI Application>
UI processing of the GUI application 205 will be described below. When the UI display instruction is issued in step S1603, the OS calls the UI processing of the GUI application 205 after the setup processing of the GUI application 205 is completed. When the UI display instruction in step S1603 is not performed, the OS skips the UI processing illustrated in
In step S1701, the GUI application 205 acquires a PrintTicket stored in an XPS document. The acquired PrintTicket in this case is a PrintTicket of a job. In step S1702, the GUI application 205 acquires the job identification information from the PrintTicket. The GUI application 205 may acquire the job identification information when checking whether the job identification information exists in the setup processing, and store the job identification information in an accessible location in the UI processing.
In step S1703, the GUI application 205 communicates with the printing apparatus 102 to acquire the status information. In step S1704, the GUI application 205 refers to the acquired status information to determine whether the printing apparatus 102 is currently processing the job corresponding to the acquired job identification information. The GUI application 205 can determine whether the printing apparatus 102 is currently processing the job corresponding to the job identification information by checking whether the job identification information included in the status information acquired from the printing apparatus 102 coincides with the job identification information included in the PrintTicket.
When the printing apparatus 102 is currently processing the job corresponding to the job identification information (YES in step S1704), the processing proceeds to step S1705. In step S1705, the GUI application 205 extracts necessary information from the status information acquired from the printing apparatus 102 and displays the screen illustrated in
<Edit and End Processing of GUI Application>
The edit and end processing of the GUI application 205 will be described below. After completion of the UI processing of the GUI application 205 illustrated in
Although the GUI application 205 will be described below as the subject of each piece of processing, the corresponding function is actually implemented when the CPU 111 executes the corresponding program. Not all of processing is sequentially performed on a single process. In some cases, control may be once transferred to the OS side, and then the process may be called again from the OS.
In step S1801, the GUI application 205 acquires a PrintTicket stored in the XPS document. The acquired PrintTicket in this case is a PrintTicket of a job.
In step S1802, the GUI application 205 checks whether the job identification information exists in the PrintTicket. When the job identification information exists in the PrintTicket (YES in step S1802), the GUI application 205 has been activated for the second time to issue a status notification. Then, the processing proceeds to step S1803. In step S1803, since printing is not actually required for the print request that has served as a trigger for activating the GUI application 205, the GUI application 205 issues a job cancel instruction.
Meanwhile, when the job identification information does not exist in the PrintTicket (NO in step S1802), the GUI application 205 determines that the PrintTicket is not a print request for a status notification from the printer driver 201 but a first print request that requires printing. Then, the processing proceeds to step S1804. In step S1804, the GUI application 205 acquires the XPS document. In step S1805, the GUI application 205 outputs the acquired XPS document. When the GUI application 205 outputs the XPS document, the OS stores the XPS document as the spool file 206. Then, the printer driver 201 starts processing.
<Printer Driver Processing>
Processing of the printer driver 201 will be described below.
Although the printer driver 201 will be described below as the subject of each piece of processing, the corresponding function is actually implemented when the CPU 111 executes the corresponding program. Not all of processing is sequentially performed on a single process. In some cases, control may be once transferred to the OS side, and then the process may be called again from the OS.
In step S1901, the printer driver 201 acquires the XPS document stored as the spool file 206. In step S1902, the printer driver 201 acquires print setting values from a PrintTicket added to XPS document. In step S1903, the printer driver 201 edits the XPS document, based on the acquired print setting value. In step S1904, the printer driver 201 generates a print command that can be interpreted by the printing apparatus 102, based on the edited XPS document.
The print command generated by the printer driver 201 includes the job identification information for identifying a job. In step S1905, the printer driver 201 transmits the generated print command to the printing apparatus 102. The printing apparatus 102 performs print processing according to the received print command.
In step S1906, the printer driver 201 generates the XPS document to be used for a print request that serves as a trigger for activating the GUI application 205 for the second time. In this case, the printer driver 201 stores the job identification information, which is included in the print command in S1904, in a PrintTicket to be added to the XPS document. A print job generated by a print request that serves as a trigger for re-activating the GUI application 205 is canceled by the GUI application 205 in step S1803. Thus, page data may have arbitrary contents.
Then, the printer driver 201 issues a print request to the printer driver 201 itself by using the generated XPS document. The GUI application 205 is activated upon reception of the print request from the printer driver 201 as a trigger, and the second processing is started. The GUI application 205 issues a status notification in the second activation.
As described above, the GUI application 205 according to the present exemplary embodiment is activated for the second time upon reception of a print request from the printer driver 201. The cooperation with print processing by the printer driver 201 is achieved in this way. This enables the GUI application 205 to acquire the status information indicating the status of the print processing of the printing apparatus 102 and display the status information, and therefore a status notification can be achieved.
Each of the exemplary embodiments is implemented by performing the following processing. A storage medium storing program codes of software for implementing the function of the above-described exemplary embodiments is supplied to a system or apparatus. Then, a computer (including a CPU, a graphics processing unit (GPU), or a micro processing unit (MPU)) of the system or apparatus reads and executes the program codes stored in the storage medium. In this case, the program codes themselves read from the storage medium implement the functions of the above-described exemplary embodiments, and the storage medium storing the program codes is included in the present invention. Not all of the above-described processing needs to be implemented by software. Part or whole of the processing may be implemented by hardware such as an Application Specific Integrated Circuit (ASIC). The entire processing is not necessarily performed by a single CPU, but a plurality of CPUs may suitably perform processing in a cooperative way.
Examples of storage media for supplying program codes include a flexible disk, a hard disk, an optical disk, a magneto-optical (MO) disk, a compact disc read only memory (CD-ROM), a compact disc recordable (CD-R), a magnetic tape, a nonvolatile memory card, a ROM, and a digital versatile disc (DVD).
An OS operating on the computer may perform part or whole of actual processing, based on instructions of the program codes of the above-described exemplary embodiments. Further, program code read from a storage medium may be written in a memory included in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Subsequently, a CPU included in the function expansion board or function expansion unit may perform part of whole of actual processing, based on instructions of the program codes.
The present invention is not limited to the above-described exemplary embodiments but can be modified and changed in diverse ways without departing from the spirit and scope thereof. Therefore, the following claims are appended to disclose the scope of the present invention.
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.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7167260, | Apr 07 2000 | Seiko Epson Corporation | Control of distributed printers using virtual printer driver execute module |
20090290185, | |||
20110122441, | |||
20140289635, | |||
20140347692, | |||
20190286402, | |||
JP2017016480, | |||
JP2017068339, | |||
JP2017097667, | |||
JP2018026049, | |||
JP2018092583, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 22 2021 | SHIOHARA, TETSUYA | Canon Kabushiki Kaisha | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 056424 | /0222 | |
Apr 30 2021 | Canon Kabushiki Kaisha | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Apr 30 2021 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Apr 25 2026 | 4 years fee payment window open |
Oct 25 2026 | 6 months grace period start (w surcharge) |
Apr 25 2027 | patent expiry (for year 4) |
Apr 25 2029 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 25 2030 | 8 years fee payment window open |
Oct 25 2030 | 6 months grace period start (w surcharge) |
Apr 25 2031 | patent expiry (for year 8) |
Apr 25 2033 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 25 2034 | 12 years fee payment window open |
Oct 25 2034 | 6 months grace period start (w surcharge) |
Apr 25 2035 | patent expiry (for year 12) |
Apr 25 2037 | 2 years to revive unintentionally abandoned end. (for year 12) |