Aspects of the present invention generally relate to a printing apparatus capable of counting the number of times of printing, a method for controlling the printing apparatus, and a storage medium.
A printing apparatus such as a multifunction peripheral and a printer supports various printing protocols. Examples of the printing protocols include an internet printing protocol (IPP), a RAW protocol, and a line printer remote protocol (LPR). Japanese Patent Application Laid-Open No. 2003-80807 discusses a configuration of classifying received print jobs by the types of printing protocols and managing the classified jobs.
The printing apparatus counts the number of times of printing for each type of printing protocol. However, the conventional printing apparatus simply counts the number of times of printing for each type of printing protocol, as described in Japanese Patent Application Laid-Open No. 2003-80807. Even if a plurality of pieces of software such as a first application and a second application transmits print jobs to the printing apparatus, these pieces of software are not distinguished from each other. If a plurality of pieces of software transmits print jobs to the printing apparatus by using the same printing protocol, the print jobs are counted together as printing using the same printing protocol without distinguishing between these pieces of software.
Aspects of the present invention are generally directed to a technique for counting the number of times of printing while distinguishing a transmission source application, for a specific printing protocol.
According to an aspect of the present invention, a printing apparatus includes a receiving unit configured to receive a print job, a printing unit configured to execute printing based on the received print job, a first identification unit configured to identify a type of a printing protocol of the received print job, a second identification unit configured to identify a transmission source application of the received print job, and a counting unit configured to count a number of times of printing. In a case where the type of the printing protocol is a specific printing protocol, the counting unit counts the number of times of printing while distinguishing a transmission source application according to an identification result of the second identification unit.
Further features of the present disclosure will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Various exemplary embodiments will be described in detail below with reference to the drawings.
First, a configuration of a printing apparatus 100 according to a first exemplary embodiment will be described with reference to
A central processing unit (CPU) 101 reads a control program stored in a read-only memory (ROM) 102, and executes various types of processing for controlling operations of the printing apparatus 100. The ROM 102 stores the control program. A random access memory (RAM) 103 is used as a main memory of the CPU 101, and a temporary storage area such as a work area. A hard disk drive (HDD) 104 stores various types of data such as a scan image, user setting, and count information to be described below.
In the case of the printing apparatus 100, it is supposed that a single CPU 101 executes respective types of processing illustrated in flow charts to be described below. However, other forms may also be used. For example, the printing apparatus may be configured in such a manner that a plurality of CPUs cooperates with each other to execute the respective types of processing illustrated in the flow charts to be described below.
A printer 105 executes printing on a sheet based on a print job received from an external apparatus or print data such as a scan image generated by a scanner 106. The number of times of printing execution is stored in the HDD 104 as count information to be described below. The scanner 106 reads a document and generates a scan image. The scan image generated by the scanner 106 is printed by the printer 105, or stored in the HDD 104.
An operation unit 107 includes a liquid crystal display unit having a touch panel function and a key board, and displays various screens to be described below. A user can input a command or information to the printing apparatus 100 via the operation unit 107.
A network interface (I/F) 108 is connected to a network 110 to execute communication with an external apparatus. The network I/F 108 may be a wired I/F connected to a local area network (LAN) work cable, or may be a wireless I/F for executing wireless communication, such as Wi-Fi (registered trademark). The network I/F 108 receives a print job transmitted from an external apparatus such as a personal computer (PC) or a portable terminal (for example, smart phone). The printer 105 executes printing based on the received print job.
A print application in the present exemplary embodiment will now be described. In the present exemplary embodiment, two applications, i.e., an application A and an application B are supposed as print applications. These applications are installed in the external apparatus such as the PC or the portable terminal described above.
The application A uses the IPP as a printing protocol, and transmits image data of a pwg-raster format, as a print job. On the other hand, the application B uses the IPP as a printing protocol, and transmits image data of a Portable Document Format (PDF) format, as a print job. In this way, the application A and the application B are different from each other in format of image data handled in the print job. However, the printing protocol in use is the IPP in both applications. The present exemplary embodiment is directed to a technique of counting the number of times of printing execution while distinguishing which application the print job is received from, when the print job is received by using the same printing protocol.
Various types of print setting including settings about the application A and the application B will now be described with reference to
A setting screen 210 in
A setting screen 220 in
A setting screen 230 in
A setting screen 240 in
A setting screen 250 in
The user can perform setting of the printing apparatus 100 by using the setting screens described above with reference to
For executing printing by using the application A or the application B in the present exemplary embodiment, it is necessary to individually set all of the IPP setting, the HTTP setting, and the mDNS setting to “ON.” If the user is required to individually set these settings, the user's labor increases. Furthermore, in the first place, there is a possibility that an ordinary user does not recognize necessity of additionally setting these settings to “ON.” In the present exemplary embodiment, therefore, all of the IPP setting, the HTTP setting, and the mDNS setting are automatically set to “ON” in conjunction with the application A setting or the application B setting being set to “ON.” Such processing will now be described with reference to
First, processing indicated in 301 in
Processing indicated in 302 in
As described above, when the user sets the application A setting or the application B setting to “ON,” the printing apparatus 100 can automatically change the IPP setting, the HTTP setting, and the mDNS setting to “ON” as well in conjunction with the application A setting or the application B setting. In the case of the printing apparatus 100, even if the user changes the application A setting or the application B setting to “OFF,” the IPP setting, the HTTP setting, and the mDNS setting are not set to “OFF” in conjunction with such setting change (see 303 and 304 in
A relation between the application A setting or the application B setting and operations of the mDNS will now be described with reference to
Processing indicated in 401 in
Processing indicated in 402 in
Processing indicated in 403 in
Processing indicated in 404 in
As described above, the printing apparatus 100 can switch processing to be executed when an mDNS search packet is received, accordance to the application A setting and the application B setting.
Processing to be executed when printing is executed using the IPP will now be described with reference to
First, processing indicated in 501 in
Processing indicated in 502 in
Processing indicated in 503 in
Processing indicated in 504 in
As described above, the printing apparatus 100 can switch operations related to the printing using the IPP, according to the application A setting and the application B setting.
Processing to be executed when the printing apparatus 100 executes printing will now be described with reference to flow charts illustrated in
In the case of the present exemplary embodiment, the external apparatus such as the PC or the portable terminal transmits a print job to the printing apparatus 100 via the network 110. When transmitting a print job, the external apparatus uses various printing protocols such as the IPP, the RAW protocol, and the LPR protocol. First, in step S601, the network I/F 108 receives a print job transmitted from the external apparatus. Then, in step S602, the CPU 101 determines whether the printing protocol of the received print job is the IPP. Determination of the printing protocol is performed based on, for example, a reception port number. If the CPU 101 determines in step S602 that the printing protocol of the received print job is the IPP (YES in step S602), the processing proceeds to step S603. On the other hand, if the CPU 101 determines in step S602 that the printing protocol of the received print job is not the IPP (NO in step S602), the processing proceeds to step S611.
Step S603 will now be described. In step S603, the CPU 101 executes application identification processing to identify an application that is a transmission source of the print job received by using the IPP. The application identification processing will now be described in detail with reference to the flow chart in
On the other hand, when the format of the image data included in the print job is, for example, PDF, the CPU 101 determines in step S701 that the format of the image data included in the print job is not pwg-raster (NO in step S701), and the processing proceeds to step S703. In step S703, the CPU 101 identifies the application B as a transmission source application.
As described above, by executing the application identification processing described with reference to the flow chart in
Step S604 will now be described. In step S604, the CPU 101 determines whether the transmission source application is the application A, according to a result of the application identification processing executed in step S603. If the CPU 101 determines in step S604 that the transmission source application is the application A (YES in step S604), the processing proceeds to step S605. On the other hand, if the CPU 101 determines in step S604 that the transmission source application is not the application A, i.e., the transmission source application is the application B (NO in step S604), the processing proceeds to step S608.
Step S605 will now be described. In step S605, the CPU 101 determines whether the application A setting is ON. When the application A setting is set to ON, the CPU 101 determines in step S605 that the application A setting is ON (YES in step S605), and the processing proceeds to step S606. On the other hand, when the application A setting is set to OFF, the CPU 101 determines in step S605 that the application A setting is not ON (NO in step S605), and the processing illustrated in the flow chart ends without executing printing based on the received print job.
Step S606 will now be described. In step S606, the printer 105 executes printing based on the received print job. Furthermore, when executing printing in step S606, the printer 105 executes printing in an image processing mode for the application A. The image processing mode for the application A is preset depending on use of the application A. For example, in a case where the application A is often used in printing of a picture image such as a photograph, an image processing mode of prioritizing the image quality of pictures is preset as an image processing mode for the application A.
If printing is executed in step S606, the processing proceeds to step S607. In step S607, the CPU 101 updates a counter 800 for counting the number of times of printing. This counter will now be described in detail with reference to
The counter 800 illustrated in
In a case where the processing in step S607 is executed, the received print job uses the IPP and the transmission source application is the application A. In step S607, therefore, values of the items 803 and 804 are respectively incremented by one.
Step S608 will now be described. In step S608, the CPU 101 determines whether the application B setting is ON. When the application B setting is set to ON, the CPU 101 determines in step S608 that the application B setting is ON (YES in step S608), and the processing proceeds to step S609. On the other hand, when the application B setting is set to OFF, the CPU 101 determines in step S608 that the application B setting is not ON (NO in step S608), and the processing illustrated in the flow chart ends without executing printing based on the received print job.
Step S609 will now be described. In step S609, the printer 105 executes printing based on the received print job. Furthermore, when executing printing in step S609, printing is executed in an image processing mode for the application B. The image processing mode for the application B is preset depending on use of the application B. For example, in a case where the application B is often used in printing of a business document such as a Word document, an image processing mode of prioritizing the image quality of characters is preset as an image processing mode for the application B.
If printing is executed in step S609, the processing proceeds to step S610. In step S610, the CPU 101 updates the counter 800. In step S610, values of the items 803 and 805 are respectively incremented by one.
Step S611 will now be described. In step S611, the printer 105 executes printing based on the received print job. At this time, the printing protocol of the print job is not the IPP. If the printing is executed, in step S612, the CPU 101 updates the counter 800. In step S612, a value of an item corresponding to the printing protocol of the print job is incremented by one. For example, if the printing protocol is the RAW protocol, a value of the item 801 is incremented by one. If the printing protocol is the LPR protocol, a value of the item 802 is incremented by one.
As described above, according to the present exemplary embodiment, it is possible to count the number of times of printing for each type of printing protocol, and as for the IPP, count the number of times of printing while distinguishing a transmission source application.
Furthermore, the IPP is expected to be utilized in various printing services with the development of cloud service and spread of touch printing using near field communication (NFC). Therefore, as for the IPP, by counting the number of times of printing while distinguishing a transmission source application, a system administrator and a manufacturer of the printing apparatus 100 can grasp how the printing apparatus 100 is used.
In the first exemplary embodiment, a transmission source application is distinguished based on the format of the image data included in the print job, as described with reference to
When the external apparatus such as the PC or the portable terminal transmits a print job to the printing apparatus 100 by using the IPP, the external apparatus first transmits an HTTP request to the printing apparatus 100. In the present exemplary embodiment, the transmission source application is identified based on the HTTP request.
In step S901, the CPU 101 analyzes the received HTTP request, and determines whether predetermined information is included in the received HTTP request. For example, in a case where “application A” indicating the application A is included in UserAgent in an HTTP header, the CPU 101 determines in step S901 that predetermined information is included in the received HTTP request (YES in step S901), and the processing proceeds to step S702. On the other hand, when “application A” is not included in UserAgent in the HTTP header, the CPU 101 determines in step S901 that predetermined information is not included in the received HTTP request (NO in step S901), and the processing proceeds to step S703.
As described above, according to the present exemplary embodiment, it is possible to distinguish the transmission source application based on the HTTP request for printing using the IPP.
In the present exemplary embodiment, the description has been given of a configuration of distinguishing the transmission source application based on the description in UserAgent in the HTTP request. However, the transmission source application may be distinguished by using information other than UserAgent. For example, in a case where attribute information indicating the application A is included in the HTTP request, it may be determined in step S901 that predetermined information is included in the received HTTP request.
In each of the exemplary embodiments described above, the description has been given of the configuration of identifying a transmission source application in a case where the printing protocol of the received print job is the IPP. However, other forms may be used. The transmission source application may be identified in the case of a specific printing protocol different from the IPP, for example, in the case of the LPR protocol.
Furthermore, in each of the exemplary embodiments described above, processing for identifying the transmission source application has been described (
According to an exemplary embodiment, it is possible to count the number of times of printing while distinguishing a transmission source application for a specific printing protocol.
Additional embodiment(s) 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 disclosure has been described with reference to exemplary embodiments, it is to be understood that these exemplary embodiments are not seen to be limiting. 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.
Number | Date | Country | Kind |
---|---|---|---|
2014-083594 | Apr 2014 | JP | national |
This application is a continuation, and claims the benefit U.S. patent application Ser. No. 18/149,094, filed on Dec. 31, 2022, which is a continuation of U.S. patent application Ser. No. 17/833,374, filed on Jun. 6, 2022 and issued as U.S. Pat. No. 11,570,324 on Jan. 31, 2023, which is a continuation of U.S. patent application Ser. No. 17/327,492, filed on May 21, 2021, and issued as U.S. Pat. No. 11,388,303 on Jul. 12, 2022, which is a continuation of U.S. patent application Ser. No. 16/802,259, filed on Feb. 26, 2020, and issued as U.S. Pat. No. 11,159,692 on Oct. 26, 2021, which is a continuation of U.S. patent application Ser. No. 15/681,889, filed on Aug. 21, 2017 and issued as U.S. Pat. No. 10,609,238 on Mar. 31, 2020, which is a continuation of U.S. patent application Ser. No. 15/391,647, filed on Dec. 27, 2016 and issued as U.S. Pat. No. 10,122,878 on Nov. 6, 2018, which is a continuation of U.S. patent application Ser. No. 14/683,042, filed on Apr. 9, 2015 and issued as U.S. Pat. No. 9,563,387 on Feb. 7, 2017, and claims the benefit of, and priority to, Japanese Patent Application No. 2014-083594 filed Apr. 15, 2014, all of which are hereby incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | 18149094 | Dec 2022 | US |
Child | 18597209 | US | |
Parent | 17833374 | Jun 2022 | US |
Child | 18149094 | US | |
Parent | 17327492 | May 2021 | US |
Child | 17833374 | US | |
Parent | 16802259 | Feb 2020 | US |
Child | 17327492 | US | |
Parent | 15681889 | Aug 2017 | US |
Child | 16802259 | US | |
Parent | 15391647 | Dec 2016 | US |
Child | 15681889 | US | |
Parent | 14683042 | Apr 2015 | US |
Child | 15391647 | US |