printer

JP2026167147APending Publication Date: 2026-10-14BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025060566
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2026-10-14

Smart Images

  • Figure 2026167147000001_ABST
    Figure 2026167147000001_ABST
Patent Text Reader

Abstract

To provide a printer capable of operating in accordance with the IPP standard, and to provide a technology that allows the printer to perform to its full potential even when printing in accordance with the IPP standard. [Solution] MFP1 can return capability information indicating its capabilities in response to receiving a capability request command defined in the IPP standard from PC100 via communication IF14. The capability request command can include capability parameters that specify capabilities and processing parameters that specify processing. If the received capability request command includes capability parameters, MFP1 returns capability information indicating the capabilities of MFP1 specified by the capability parameters. If the received capability request command includes processing parameters, MFP1 executes the processing specified by the processing parameters.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technical field disclosed in this specification relates to a printer capable of operating in accordance with the IPP (Internet Printing Protocol) standard.

Background Art

[0002] In recent years, a technology for controlling a printer by a general-purpose printing program that is included in an operating system (OS), conforms to the IPP standard, without using a printer driver provided by a printer vendor, has been put into practical use. In this technology, when the OS detects a printer, it associates the printer with the general-purpose printing program, and thereafter, when a print instruction for the printer is received, the general-purpose printing program generates print data without using the printer driver provided by the printer vendor, thereby enabling printing by the general-purpose printing program. As a document disclosing a printing technology using a general-purpose printing program, there is, for example, Patent Document 1.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problem to be Solved by the Invention

[0004] In printing by the general-purpose printing program included in the OS, the functions of the printer cannot always be fully utilized. For example, a printer capable of operating in accordance with the IPP standard may have unique functions that cannot be realized by the IPP standard, and the printer may not be able to fully demonstrate its inherent capabilities.

Means for Solving the Problem

[0005] A printer designed to solve the above-mentioned problems comprises a print engine and a communication interface, and is capable of receiving print jobs from an IPP client via the communication interface in accordance with the IPP (Internet Printing Protocol), and causing the print engine to perform printing based on the received print jobs, wherein the printer is capable of returning capability information indicating the capabilities of the printer in response to receiving a specific command, as defined in the IPP standard, from the IPP client via the communication interface, the specific command may include parameters, and there are multiple types of parameters, including capability parameters which are parameters that specify capabilities and processing parameters which are parameters that specify processing, and the printer is further configured to return capability information indicating the capabilities of the printer specified by the capability parameters when the received specific command includes the capability parameters, and to execute the processing specified by the processing parameters when the received specific command includes the processing parameters.

[0006] The printer disclosed herein receives a specific command from an IPP client requesting capability information, and if the received command includes processing parameters, it executes the specified processing. In other words, the printer can either return capability information or execute the specified processing in response to instructions from the IPP client. This allows even IPP clients that do not use a printer driver to receive instructions to execute processing that can be performed by the printer, i.e., to utilize the inherent capabilities of the printer.

[0007] A printer designed to solve the above-mentioned problems comprises a print engine and a communication interface, and is capable of receiving print jobs from an IPP client via the communication interface in accordance with the IPP (Internet Printing Protocol), and causing the print engine to perform printing based on the received print jobs, wherein the printer is capable of returning capability information indicating the printer's capabilities in response to receiving a specific command, which is defined in the IPP standard and requests capability information, from the IPP client via the communication interface, and the specific command is associated with identification information for identifying the requesting IPP client, and the specific command can also specify a process, and the printer may be configured to either return the capability information or execute the process specified in the specific command if the received specific command is associated with identification information indicating a first type IPP client, and to return the capability information if the received specific command is associated with identification information indicating a second type IPP client, while not executing the process specified in the specific command.

[0008] The printer disclosed herein can receive a specific command from an IPP client requesting capability information, and if the received specific command is associated with identification information indicating a Type 1 IPP client, it can either return capability information or execute a specified process. This allows even IPP clients that do not use a printer driver to receive instructions to execute processes that can be performed by the printer, i.e., to utilize the inherent capabilities of the printer.

[0009] The control method, computer program, and computer-readable storage medium for storing the above-mentioned printer functions are also novel and useful. [Effects of the Invention]

[0010] The technology disclosed herein provides a printer capable of operating in accordance with the IPP standard, and enables the printer to perform to its full potential even when printing in accordance with the IPP standard. [Brief explanation of the drawing]

[0011] [Figure 1] This block diagram shows an overview of the electrical configuration of an MFP. [Figure 2] This is a sequence diagram showing an example of a printing procedure. [Figure 3] This is a flowchart showing an example of the procedure for parameter determination. [Figure 4] This flowchart shows an example of the procedure for determining response capability. [Figure 5] This is an explanatory diagram showing examples of responsive capability values ​​and configurable options for each parameter. [Figure 6] This is an explanatory diagram showing examples of possible values ​​for each processing parameter. [Figure 7] This flowchart shows an example of the procedure for parameter execution. [Figure 8] This is a flowchart showing an example of the integration process. [Figure 9] This is an explanatory diagram showing an example of a print settings screen. [Figure 10] This is an explanatory diagram showing an example of a print settings screen displaying color mode options. [Figure 11] This flowchart shows an example of the procedure for determining response capability. [Modes for carrying out the invention]

[0012] The first embodiment of the printer will be described in detail below with reference to the attached drawings. This specification discloses a multifunction printer (hereinafter referred to as "MFP") having printing and communication functions.

[0013] The MFP1 of the present embodiment includes, for example, as shown in Figure 1, a controller 10 including a CPU 11 and a memory 12. The MFP1 further includes a user interface (hereinafter referred to as "user IF") 13, a communication interface (hereinafter referred to as "communication IF") 14, a print engine 15, and a read engine 16, each of which is electrically connected to the controller 10. The MFP1 is an example of a printer. Note that the controller 10 in Figure 1 is a collective term for hardware and software used for controlling the MFP1, and does not necessarily represent a single piece of hardware actually present in the MFP1.

[0014] The CPU 11 of the MFP1 executes various types of processing in accordance with programs read from the memory 12 and based on user operations. The memory 12 of the MFP1 stores various programs and various data including an operating system (hereinafter referred to as "OS") 21, a capability response program 22, capability information 23, a specific processing execution program 24, and timing information 25. The memory 12 is also used as a work area when various types of processing are executed. A buffer included in the CPU 11 is also an example of the memory 12. Details of the programs and data will be described later.

[0015] Note that an example of the memory 12 is not limited to a ROM, a RAM, an HDD or the like incorporated in the MFP1, and may be any storage medium that is readable and writable by the CPU 11. For example, an external memory such as a USB memory or an HDD connected to the MFP1, and a memory or an HDD provided in a device connected to the MFP1 via the communication IF 14 are also examples of the memory 12.

[0016] A computer-readable storage medium is a non-transitory medium. In addition to the examples described above, non-transitory media also include recording media such as CD-ROMs and DVD-ROMs. A non-transitory medium is also a tangible medium. On the other hand, an electrical signal that carries a program downloaded from a server on the Internet or the like is a computer-readable signal medium, which is a type of computer-readable medium, but is not included in non-transitory computer-readable storage media.

[0017] The user IF 13 includes, for example, a touch panel. The touch panel includes hardware that displays a screen for notifying the user of information, and hardware that receives operations from the user. The user IF 13 may include a combination of a display, hardware buttons, and the like.

[0018] The communication IF 14 includes hardware for communicating with external devices. The communication IF 14 includes functions corresponding to communication standards such as Wi-Fi (registered trademark), Ethernet (registered trademark), and USB. The MFP 1 of the present embodiment can communicate with various IPP clients via the communication IF 14 in accordance with IPP (Internet Printing Protocol). Note that the MFP 1 may be provided with a plurality of communication IFs 14 corresponding to a plurality of communication standards. The MFP 1 may be capable of communicating in accordance with standards other than IPP.

[0019] The print engine 15 includes a configuration for printing an image on a print medium such as a sheet. The image forming method of the print engine 15 is, for example, an electrophotographic method or an inkjet method. The MFP 1 of the present embodiment may be provided with the print engine 15 capable of executing color printing using multicolor colorants, or may be provided with the print engine 15 that performs only monochrome printing using a single colorant.

[0020] The reading engine 16 includes a configuration for scanning a document placed on a flatbed, or a document placed on a document feeder and transported to the reading position, and generating scan data, which is the scan result. The MFP1 in this embodiment may be equipped with a reading engine 16 capable of performing color reading, which reads the document as a color image, or it may be equipped with a reading engine 16 capable of performing only monochrome reading, which reads the document as a monochrome image.

[0021] This configuration of MFP1 supports print jobs from external devices that do not use a specific printer driver, so-called driverless printing. Various external devices can send print jobs to MFP1 via IPP-compliant communication using, for example, client programs that support IPP Class Driver, AirPrint, Mopria, or IPP Everywhere. MFP1 can communicate with various external devices via IPP-compliant communication through the communication IF14 and can execute printing based on the print jobs received from these external devices.

[0022] Specifically, as shown in Figure 1, the MFP1 in this configuration can be connected to a personal computer (hereinafter referred to as "PC") 100 or PC200. PC100 and PC200 are devices capable of sending print jobs to the MFP1 according to IPP, and both are examples of IPP clients. Whether the MFP1 receives a print job from PC100 or PC200, it can cause the print engine 15 to perform printing based on the received print job.

[0023] As shown in Figure 1, PC100 includes a CPU 111, a controller 110 including memory 112, a user interface 113, and a communication interface 114. Windows (registered trademark) is implemented as the OS 121 in the memory 112 of PC100. OS121 includes a general-purpose printing program 141. It can also be said that OS121 has the OS standard general-purpose printing program 141. It can also be said that OS121 implements the general-purpose printing program 141. PC100 is an example of a Type 1 IPP client. OS121 is an example of a specific operating system.

[0024] The general-purpose printing program 141 is an OS standard program provided by the OS121 vendor and offered as part of OS121. The general-purpose printing program 141 is a printing program pre-installed with OS121; for example, it is packaged with OS121 and installed on PC100 along with OS121. An example of the general-purpose printing program 141 is the IPP Class Driver provided by Microsoft®. Note that the general-purpose printing program 141 is not configured to utilize printer-specific printer drivers.

[0025] The PC100 also includes an auxiliary program 142, which is a program corresponding to the MFP1. The auxiliary program 142 works in conjunction with the general-purpose printing program 141 and is a program or group of programs that executes processing based on instructions from the OS121, accompanying the processing of the general-purpose printing program 141. The auxiliary program 142 is, for example, an application program provided by the MFP1 vendor and is a program that supports the control of the MFP1. The auxiliary program 142 is an example of a print support program.

[0026] For example, when the OS121 of PC100 receives a command to add a new printer to PC100, it can download the appropriate auxiliary program from the printer vendor's server or storage specified by OS121, depending on the type and model of the added printer, and install it into PC100. For example, if MFP1 is added to PC100, OS121 installs auxiliary program 142 into PC100, associates the identification information of the installed auxiliary program 142 with information indicating MFP1, and stores it in memory 112.

[0027] The general-purpose printing program 141 starts an auxiliary program 142 corresponding to the MFP1 when the MFP1 is selected as the device to perform printing, when it receives instructions for detailed print settings while the MFP1 is selected, or when it receives an instruction to start printing on the MFP1. The general-purpose printing program 141 can also obtain various information from the MFP1 via OS 121 through IPP-compliant communication. For example, in response to a request from the auxiliary program 142, the general-purpose printing program 141 can send a command to the MFP1 requesting capability information and pass the capability information obtained from the MFP1 to the auxiliary program 142.

[0028] The capability information includes information on the settings that can be set as print settings when printing is performed on the MFP1. The capability information may include, for example, information indicating whether or not color printing is possible, information on the number of paper trays and the paper contained in the paper trays, and information indicating the selectable print quality. The auxiliary program 142 can use the capability information obtained from the MFP1 for printing processing.

[0029] On the other hand, the PC200 is equipped with an OS201 other than Windows®. OS201 includes, for example, macOS®, Linux®, iOS®, and Android®. The PC200's OS201 does not include a program equivalent to the general-purpose printing program 141. Furthermore, the PC200 does not have an auxiliary program that performs processing in cooperation with the general-purpose printing program. The PC200 is an example of a Type 2 IPP client.

[0030] PC200 is equipped with a printing application program (hereinafter referred to as "print app") 202 that is different from the general-purpose printing program 141 and auxiliary program 142 of PC100. The print app 202 can send print jobs to MFP1 via communication compliant with IPP. Examples of print apps 202 include AirPrint, Mopria, and IPP Everywhere.

[0031] The PC200's printing application 202 can obtain various information from the MFP1 via IPP-compliant communication through the PC200's OS201. For example, the printing application 202 can send a command to the MFP1 requesting capability information, obtain the capability information from the MFP1, and use it for printing processing. The printing application 202 is a program compatible with various printing devices, but it is not a program specifically designed for the MFP1.

[0032] The command used to request capabilities from MFP1 via IPP-compliant communication is, for example, the "get-printer-attributes" command, which is a capability request command defined in IPP. This "get-printer-attributes" command is just one example of a specific command. This capability request command can include various parameters. Each parameter included in the capability request command specifies, for example, the content to be responded with as capability information.

[0033] PC100 and PC200 send capability request commands and their parameters to MFP1 according to IPP as needed. MFP1 generates capability information, including capability values ​​corresponding to each parameter in the command, and sends it back to the sender as a response to the capability request command. MFP1 can send capability information via IPP-compliant communication whether requested by PC100 or PC200.

[0034] In IPP, several types of parameters that can be included in capability request commands are defined as standard parameters. Hereafter, these standard parameters defined in IPP will be referred to as "defined parameters." Furthermore, IPP predefines the possible response values ​​for each defined parameter. Hereafter, the capability values ​​defined in IPP as the capabilities that can respond to each defined parameter will be referred to as "defined capability values."

[0035] For example, the default parameter for requesting capability information regarding the color mode functionality of MFP1 is "print-color-mode-supported," and the default capability values ​​for this parameter are three types, representing "auto," "color," and "monochrome." This parameter is used to request that MFP1 include a capability value indicating whether or not it has the capability to print in color in its capability information response. By sending a capability request command that includes this default parameter and obtaining capability information in response, PC100 and PC200 can determine the color mode settings that can be accepted as print settings for printing on MFP1.

[0036] For example, when MFP1 receives a capability request command containing the above parameters, it responds with capability values ​​that include information indicating "color" if it can perform color printing, information indicating "monochrome" if it can perform monochrome printing, and information indicating "auto" if it has the function to determine whether the image to be printed has color or not. For example, if MFP1 is a device that can perform both color and monochrome printing and has the function to determine whether the image to be printed has color or not, MFP1 will respond with capability information that includes these three types of capability values. Upon receiving this capability information, PC100 or PC200 will be able to accept selection from three options for the color mode in the print settings: auto, color, and monochrome. Note that MFPs that can perform monochrome printing can often also perform grayscale printing. Therefore, an IPP client that receives capability values ​​that include information indicating "monochrome" may display not only the monochrome option but also the grayscale option.

[0037] Furthermore, for example, an MFP1 that is unable to perform color printing will respond with capability information containing only one capability value, indicating "monochrome," as the default capability value corresponding to the "print-color-mode-supported" parameter. Upon receiving this capability information, PC100 or PC200 will be able to accept monochrome and grayscale as the color mode in the print settings. PC100 or PC200 may also be able to accept only monochrome as the color mode in the print settings.

[0038] Incidentally, the MFP1 may possess capabilities related to color modes that are not included in the specified capability values. For example, its functionality may be expanded through firmware updates, resulting in capabilities not included in the specified capability values. For instance, the MFP1 may have the capability to perform color printing with natural tones, color printing with vivid tones, and color printing with colors set to be numerically linear without adjustment.

[0039] However, since the specified capability values ​​for the specified parameters related to color modes do not include capability values ​​that represent these various color printing capabilities, MFP1 cannot respond with these capability values ​​as specified capability values ​​in response to capability request commands. Therefore, the MFP1 vendor has enabled MFP1 to respond with capability values ​​that are not included in the specified capability values ​​by sending capability request commands that include parameters different from the specified parameters. In the following, parameters that are not specified parameters of IPP will be referred to as "unique parameters." Also, capability values ​​that are not specified capability values ​​will be referred to as "unique capability values." In this configuration, MFP1 can respond with capability values ​​that include unique capability values ​​in response to capability request commands that include unique parameters.

[0040] Furthermore, the aforementioned IPP Class Driver and client programs compatible with AirPrint, Mopria, and IPP Everywhere are general-purpose printing programs that can be used with a wide variety of printers, and are not programs specific to a particular vendor's printer. Therefore, various general-purpose printing programs, such as the PC100's general-purpose printing program 141, do not support specific parameters or specific capability values. Consequently, vendors of printers with specific capabilities, such as the MFP1, developed programs that support specific parameters and specific capability values, such as the aforementioned auxiliary program 142.

[0041] Next, the operation of MFP1 will be explained. The following processes basically represent CPU operations in accordance with the instructions written in the program. That is, processes such as "judgment," "extraction," "selection," "calculation," "decision," "identification," "acquisition," "reception," and "control" in the following explanation represent CPU operations. CPU operations include hardware control using the OS API. In this specification, the description of the OS will be omitted when explaining the operation of each program. That is, in the following explanation, a statement to the effect that "Program B controls hardware C" may also mean "Program B controls hardware C using the OS API." In addition, CPU operations in accordance with the instructions written in the program may be described using abbreviated language. For example, it may be written as "performed by the CPU." Also, CPU operations in accordance with the instructions written in the program may be described using abbreviated language such as "performed by Program A."

[0042] Furthermore, in this specification, terms such as "notification," "information," "notice," "reply," "response," and "answer" are used not only to mean the transmission of information to a person, but also to mean communication and exchange of information between devices or between components within a device. Note that the components within a device include software.

[0043] Furthermore, "acquisition" is used in a sense that does not necessarily require a request. That is, the process of the CPU receiving data without a request is also included in the concept of "the CPU acquiring data." Also, "data" in this specification is represented by a bit sequence that can be read by a computer. Data with the same substantial meaning but different formats will be treated as the same data. The same applies to "information" in this specification. Also, "request" and "instruct" are concepts that indicate that information indicating a request or instruction is being output to the other party. Information indicating a request or instruction may also be simply referred to as "request" or "instruction."

[0044] Furthermore, the process by which the CPU determines whether information A indicates event B is sometimes conceptually described as "determining from information A whether it is event B or not." Similarly, the process by which the CPU determines whether information A indicates event B or event C is sometimes conceptually described as "determining from information A whether it is event B or event C."

[0045] Furthermore, in this specification, setting items may be simply referred to as "settings." Similarly, setting values ​​may also be simply referred to as "settings." Setting values ​​may also be referred to as "parameters." Additionally, storing setting values ​​in memory or elsewhere may be simply referred to as "settings." Furthermore, the operation for setting or the input for setting may also be simply referred to as "settings."

[0046] The procedure for printing to MFP1 using PC100 will be explained with reference to the sequence diagram in Figure 2. Note that various programs built into PC100, such as application programs for creating or editing documents and images, will launch the general-purpose printing program 141 when the use of the printing function is selected. Furthermore, when a user of PC100 wants to print to MFP1, they select MFP1 as the device to perform the printing.

[0047] The general-purpose printing program 141 starts an auxiliary program 142 corresponding to the MFP1 if MFP1 is selected at startup or if it receives an instruction to change the printing device to MFP1. Also, if the general-purpose printing program 141 receives an instruction to start detailed print settings (A01), for example, it passes an execution instruction including the instruction to accept print settings to the auxiliary program 142 (A02).

[0048] The auxiliary program 142 can obtain the capability information of the MFP1, for example, when it receives a startup instruction, when it receives a request for information from the general-purpose printing program 141, or when it receives information indicating that it has received an instruction to perform detailed print settings. The auxiliary program 142 can, for example, instruct the general-purpose printing program 141 to send a capability request command to the MFP1, and obtain capability values ​​from the MFP1 via the general-purpose printing program 141.

[0049] When auxiliary program 142 receives instructions from A02 to acquire capability information for MFP1, it executes a parameter determination process to determine the parameters to be included in the capability request command (A11). The procedure for the parameter determination process will be explained with reference to the flowchart in Figure 3. The parameter determination process is executed by the CPU 111 of PC100 according to auxiliary program 142.

[0050] In the parameter determination process, the CPU 111 selects one item that indicates the capability to be requested (B01). Since there are many types of parameters that can be included in the capability request command, the auxiliary program 142 can request only the capabilities that are needed at that time. The auxiliary program 142 may choose not to request information that it already possesses or information that is unlikely to change in the short term, such as the model information of MFP1 or information indicating the communication method with MFP1, if it has already obtained this information.

[0051] The CPU 111 determines whether there is a default parameter corresponding to the item selected in B01 (B03). If it determines that a default parameter exists (B03: YES), the CPU 111 adds that default parameter to the parameters to be included in the capability request command (B04). The auxiliary program 142 may have information about various parameters that can be included in the capability request command in advance, or it may obtain this information from the general-purpose printing program 141 or a server provided by the MFP1 vendor.

[0052] The standard parameters defined in IPP include, for example, "document-format-supported" which requests information on supported file formats, "compression-supported" which requests information on supported compression formats, "media-ready" which requests information on the default printer paper, "print-color-mode-supported" which requests information on supported color modes, and "print-quality-supported" which requests information on the types of print quality that can be supported. For example, if the item selected in B01 is an item indicating a color mode, CPU111 will add "print-color-mode-supported" in B04.

[0053] After B04, or if it is determined that there are no specified parameters (B03: NO), the CPU 111 determines whether or not there are unique parameters corresponding to the item selected in B01 (B05). Unique parameters are parameters used to request unique ability values ​​as ability values ​​for each item, and are parameters that can be handled by both MFP1 and auxiliary program 142.

[0054] For example, if CPU111 determines that the item selected in B01 is a color mode and that there is a unique parameter "vendor-custom-print-color-mode-supported" corresponding to the color mode, it adds this parameter in B06. This unique parameter requests a unique ability value other than the default ability value as a capability of the color mode. Specifically, this unique parameter requests an ability value indicating whether or not it has the capabilities of "custom_normal", "custom_vivid", and "custom_none". Through B04 and B06, both the default parameter and the unique parameter are added as parameters that request capability values ​​related to the color mode.

[0055] Note that some of the unique parameters in auxiliary program 142 have corresponding default parameters, while others do not. Examples of unique parameters include "vendor-custom-density-supported" and "vendor-custom-contrast-supported," which request capability values ​​indicating the settable range for density and contrast; "vendor-custom-toner-save-supported," which requests capability values ​​indicating the presence or absence of toner save mode; and "vendor-custom-print-quality-supported," which requests capability values ​​other than the default capability values ​​for print quality. Of these four types of parameters, the unique parameter indicating print quality has a corresponding default parameter, but the other three do not.

[0056] If CPU111 determines that there are specific parameters corresponding to the selected item (B06:YES), it adds those specific parameters to the parameters to be included in the capability request command (B06). If there are standard parameters corresponding to the selected item, both the standard parameters and the specific parameters are added.

[0057] After B06, or if it is determined that there are no unique parameters (B05: NO), CPU 111 determines whether there are other items that require ability values ​​(B08). If it is determined that there are other items (B08: YES), CPU 111 proceeds to B01, selects the next item, and adds the parameter corresponding to the selected item.

[0058] If the CPU 111 determines that there are no other items requiring performance values ​​(B08: NO), it determines whether or not there is any processing to be performed by the MFP1 (B11). Examples of processing to be performed by the MFP1 include test printing, preparation of the print engine 15, and color calibration of the print engine 15. The CPU 111 decides whether or not to perform various processing based on factors such as the elapsed time since the last execution instruction, the number of prints already ordered, changes in colorants or printing media, and changes in the surrounding environment.

[0059] If the CPU 111 determines that there is a process to be executed by the MFP1 (B11: YES), it adds a processing parameter indicating the instruction to execute that process to the parameters to be included in the capability request command (B12). After B12, the CPU 111 terminates the parameter determination process. Examples of processing parameters include "vendor-custom-exec-testprint" indicating the instruction to execute a test print, "vendor-custom-exec-engine-pre-start" indicating the instruction to start the preparation operation of the print engine 15, and "vendor-custom-exec-calibration" indicating the instruction to execute color calibration. If the CPU 111 is to have the MFP1 execute multiple processes, it should add multiple processing parameters.

[0060] Furthermore, PC100 may be able to accept user input via user IF113 to specify the process to be executed by MFP1. In that case, CPU111 may accept user specification instead of making a decision in B11. Then, in B12, CPU111 should add a processing parameter indicating the instruction to execute the process specified by the user to the parameters included in the capability request command.

[0061] Each processing parameter is neither a predefined parameter specified in IPP nor a vendor-specific parameter that requests a unique capability value; rather, it is a parameter that instructs MFP1 to execute a specific process. Both predefined and vendor-specific parameters are examples of capability parameters. Processing parameters are parameters that specify the process. When CPU111 adds processing parameters, it adds them to the capability request command in the format specified in the IPP standard. By adhering to the IPP standard, MFP1 can easily identify each parameter when it receives this capability request command.

[0062] This parameter determination process allows the auxiliary program 142 corresponding to the MFP1 in this configuration to add unique parameters, which are different from the standard parameters and indicate unique capabilities specific to the MFP1, as well as processing parameters that instruct the execution of specific processes, to be included in the capability request command. The auxiliary program 142 can then instruct the general-purpose printing program 141 to send a capability request command containing the parameters determined in the parameter determination process to the MFP1. A capability request command containing the parameters determined in the parameter determination process is an example of a specific command.

[0063] Furthermore, the standard parameters specified in IPP include a parameter that requests information for multiple items at once. When requesting information for multiple items, CPU111 may add a parameter in B04 that requests information for multiple items at once, instead of adding a parameter for each item.

[0064] CPU111 may add parameters such as "all," which requests all the specified capability values ​​that MFP1 possesses, and "printer-description" and "job-template," which specify a particular group and request multiple specified capability values ​​included in the specified group. "all" is a parameter that has the same meaning as listing all the specified parameters. "printer-description" is a parameter that requests "document-format-supported," "compression-supported," and "media-ready" together. "job-template" is a parameter that requests "print-color-mode-supported" and "print-quality-supported" together.

[0065] Parameters that request information for multiple items at once, such as "all," are included in the default parameters. General-purpose printing programs that support the aforementioned IPP Class Driver, AirPrint, Mopria, and IPP Everywhere, including the general-purpose printing program 141, can send capability request commands that include various default parameters, and therefore can send capability request commands that include parameters that request information for multiple items at once.

[0066] Returning to the explanation of the printing procedure shown in the sequence diagram of Figure 2, after the parameter determination process is completed at A11, the auxiliary program 142 passes a capability request command containing the determined parameters to the general-purpose printing program 141 and instructs it to send it to the MFP1 (A12). As a result, the general-purpose printing program 141 sends the capability request command and its parameters to the MFP1 according to the IPP in accordance with the instructions of the auxiliary program 142 (A13).

[0067] Upon receiving the capability request command transmitted in A13, MFP1 generates capability information indicating its own capability value to respond based on each parameter included in the capability request command. To do this, MFP1 performs a response capability determination process (A15).

[0068] The procedure for determining response capability will be explained with reference to the flowchart in Figure 4. The response capability determination process is executed by the CPU 11 of MFP1 according to the capability response program 22 of MFP1 (see Figure 1). At the start of this capability response process, the CPU 11 prepares capability information that does not contain any information as response information.

[0069] In the response capability determination process, the CPU 11 analyzes the received capability request command (C01). The CPU 11 then determines whether the received capability request command contains parameters (C02). If it is determined that the capability request command does not contain parameters (C02: NO), the CPU 11 adds all the specified capability values ​​to the capability information, for example, based on the capability information 23 (see Figure 1) stored in memory 12 (C03). A capability request command that does not contain parameters has the same meaning as a command that contains only the specified parameter "all" as a parameter.

[0070] If the CPU determines that the ability request command contains parameters (C02:YES), it checks each parameter in the command in order. The CPU retrieves one of the parameters to be checked (C11). Then, it determines whether the retrieved parameter is "all" or not (C12). If the CPU determines that the parameter is "all" (C12:YES), it adds all the specified ability values ​​to the ability information (C13). Note that the CPU does not add any unique ability values ​​corresponding to the "all" parameter.

[0071] If the CPU determines that the parameter to be checked is not "all" (C12: NO), it determines whether it is a parameter that specifies a group (C15). If it determines that it is a parameter that specifies a group (C15: YES), the CPU adds the default capability values ​​corresponding to all default parameters included in the specified group to the capability information in the response (C16). The CPU does not add unique capability values ​​for parameters that specify a group.

[0072] If the CPU determines that the parameter does not specify a group (C15:NO), it adds the capability value corresponding to the acquired parameter to be checked to the capability information (C18). For example, if the capability request command includes a parameter that specifies a print setting item, the CPU adds information indicating the configurable options and range of setting values ​​for that print setting item to the capability information.

[0073] In C18, CPU11 adds a default capability value if the parameter to be checked is a default parameter, and adds a unique capability value if the parameter to be checked is a unique parameter. CPU11 has information in advance indicating the capability values ​​that can be responded to for each parameter included in the received capability request command, for example, as shown in Figure 5.

[0074] For example, if the parameter to be checked is the default parameter "print-color-mode-supported", CPU11 adds information indicating the supported capability values ​​from the default capability values ​​"auto", "color", and "monochrome" to the capability information. Since this configuration of MFP1 supports all three of the above color modes, all default capability values ​​are added to the capability information.

[0075] Furthermore, if the parameter to be checked is, for example, the unique parameter "vendor-custom-print-color-mode-supported", the CPU 11 adds information indicating the supported ability value from the unique ability values ​​"custom_normal", "custom_vivid", and "custom_none" to the ability information. Since this configuration of MFP1 supports all three of the above color modes, all unique ability values ​​are added to the ability information.

[0076] After C13, C16, and C18, the CPU 11 determines whether the parameter obtained in C11 is a parameter that instructs the execution of a process (C21). If it is determined to be a parameter that instructs the execution of a process (C21: YES), the CPU 11 executes the parameter execution process (C22). The parameter execution process is executed by the CPU 11 of the MFP1 based on the specific process execution program 24 (see Figure 1).

[0077] The procedure for parameter execution processing will be explained with reference to the flowchart in Figure 7. In parameter execution processing, the CPU 11 obtains information about the previous execution timing corresponding to the instructed process from the timing information 25 (see Figure 1) in memory 12 (C201). When the MFP1 executes the process to be executed based on the received capability request command, it stores information indicating the date and time of execution as timing information 25, associated with the information of the executed process, as described later.

[0078] CPU 11 determines, based on timing information 25 and the current date and time information, whether the elapsed time since the last execution is greater than or equal to a predetermined time (C202). If it determines that the predetermined time has not elapsed since the last execution (C202: NO), CPU 11 adds timing error information indicating a timing error as result information to the capability information (C203). Timing error information is error information indicating that the predetermined time has not elapsed since the last execution. Result information indicating a timing error is, for example, information indicating "time_error". In this case, CPU 11 does not execute the instructed process.

[0079] For example, if the same process is ordered to be executed repeatedly in a short period of time, it may be an instruction from a malicious program. MFP1 will not execute a specified process if the elapsed time since the last execution is less than a predetermined time. This prevents malicious programs from executing inappropriate processes. In addition, by responding with information indicating "time_error" in this case, the source of the capability request command can understand why the process was not executed.

[0080] If it is determined that a predetermined amount of time has elapsed since the last execution (C202:YES), the CPU 11 starts executing the process specified by the processing parameters (C211). Then, the CPU 11 determines whether the execution of the process was successful or not (C212). If it is determined that the execution of the process was successful (C212:YES), the CPU 11 adds result information indicating success to the capability information (C213). Result information indicating success is, for example, information indicating "success".

[0081] Furthermore, the CPU 11 may respond with result information indicating success once it has started processing. For example, if the specified processing is a preparatory operation for the print engine 15, it is sufficient for the operation to have started, and the CPU 11 does not need to wait for the operation to finish. In this case, once the CPU 11 has started the operation, it is advisable to add result information indicating success to the capability information.

[0082] On the other hand, if the CPU determines that it could not start processing or that an error occurred during processing (C212:NO), the CPU 11 adds processing error information indicating a processing error as result information to the capability information (C215). Result information indicating a processing error is, for example, information indicating "exec_error". For example, if a capability request command including a test print instruction is received and there is no printing paper or coloring material, the CPU 11 determines that a processing error has occurred and adds information indicating "exec_error".

[0083] CPU 11, for example as shown in Figure 6, has pre-existing information indicating the capability value that can be responded to as result information for each processing parameter included in the received capability request command. CPU 11 adds result information corresponding to the processing parameter to the capability information according to the judgment results of C202 and C212. For each processing parameter, CPU 11 adds result information to the capability information that indicates, for example, success information "success", processing error information "exec_error", or timing error information "time_error". Success information and processing error information indicate that the execution of the processing specified by the processing parameter has been accepted, and indicate the processing result of the executed processing. Note that MFP1 may be able to respond with different result information depending on the type of processing parameter.

[0084] Furthermore, if the processing parameters included in the capability request command indicate a test print, the user can recognize success when a printout is ejected upon successful processing; therefore, CPU 11 does not need to add any information indicating success. However, if the parameters included in the received capability request command are only processing parameters indicating a test print, CPU 11 should respond with result information even if the process was successful.

[0085] After C213 or C215, the CPU 11 updates the timing information 25 based on the instructed process and the current date and time (C217). The CPU 11 may choose not to update the timing information 25 if there is a processing error. After C203 or C217, the CPU 11 terminates the parameter execution process and returns to the response capability determination process.

[0086] Returning to the explanation of the response capability determination process in Figure 4, after the parameter execution process in C22 is completed, or if it is determined that the parameter is not one that instructs the execution of a process (C21: NO), the CPU 11 determines whether there are any unverified parameters (C31). If it is determined that there are unverified parameters (C31: YES), the CPU 11 proceeds to C11 and obtains the next parameter as the parameter to be checked. After C03, or if it is determined that all parameters included in the capability request command have been checked (C31: NO), the CPU 11 determines that the capability information with each capability value added will be the response information (C32), and terminates the response capability determination process.

[0087] Furthermore, PC200 does not have a general-purpose printing program 141 or an auxiliary program 142. The PC200's print application 202 is a general-purpose printing program that is not a program prepared specifically for MFP1. Therefore, general-purpose printing programs such as print application 202 do not send capability request commands that include specific parameters or processing parameters. General-purpose printing programs such as print application 202 can send capability request commands to MFP1 that include predefined parameters, and capability request commands that include parameters that request multiple predefined capability values ​​at once, such as "all". Consequently, MFP1 does not perform processing in response to requests from PC200. In addition, MFP1 will respond to PC200 with capability information that includes only the predefined capability values ​​corresponding to the predefined parameters.

[0088] Furthermore, while MFP1 can respond with unique capability values ​​not defined in IPP, it will only respond with the defined capability values ​​to capability request commands that only include defined parameters. Also, when MFP1 receives a capability request command that includes a parameter requesting all defined capability values ​​at once, such as "all," it will respond with only the defined capability values, regardless of whether the sender is the print application 202, a general-purpose print program 141 that is not linked to the auxiliary program 142, or a general-purpose print program 141 that is linked to the auxiliary program 142. For example, even if it is the general-purpose print program 141 of PC100, if it is not linked to the auxiliary program 142, the capability request command sent from PC100 will not include unique parameters. In this case, MFP1 will also respond to PC100 with capability information that only includes the defined capability values ​​corresponding to the defined parameters.

[0089] Thus, because the MFP1 responds only with predefined capability values ​​to capability request commands that include predefined parameters, MFP1 vendors do not need to re-certify for standards such as AirPrint, Mopria, and IPP Everywhere even if they add new unique capabilities to the MFP1 through updates or other means.

[0090] Returning to the explanation of the printing procedure shown in the sequence diagram in Figure 2, after completing the response capability determination process in A15, MFP1 sends the determined capability information to the general-purpose printing program 141 of PC100, the source of the capability request command, as a response to the received capability request command (A21). MFP1 responds with capability information in the format specified by IPP. Because it replies in the format specified by the IPP standard, MFP1 can easily reply to the capability request command. By replying in the format specified by IPP, PC100 can easily utilize capability information, including the unique capabilities of MFP1.

[0091] The general-purpose printing program 141 passes the capability information obtained from the MFP1 to the auxiliary program 142 (A22). This allows the auxiliary program 142 to obtain the capability information from the MFP1. Normally, the general-purpose printing program 141 passes the returned capability information to the auxiliary program 142 as is, without performing any analysis.

[0092] As mentioned above, the auxiliary program 142 can generate a capability request command including predefined parameters, unique parameters, and processing parameters, and send it to the MFP1. When the MFP1 receives a capability request command including processing parameters, it executes the instructed processing and responds with result information indicating the execution result. Also, when the MFP1 receives a capability request command including predefined parameters and unique parameters, it responds with capability information including predefined capability values ​​corresponding to the predefined parameters and unique capability values ​​corresponding to the unique parameters. Therefore, the auxiliary program 142 can cause the MFP1 to execute processing specific to it. Furthermore, the auxiliary program 142 can obtain not only the predefined capability values ​​of the MFP1, but also unique capability values ​​of the MFP1 that are not defined in the IPP.

[0093] Alternatively, instead of having the general-purpose printing program 141 send a single capability request command including the specified parameters, specific parameters, and processing parameters, the auxiliary program 142 may send separate capability request commands: one including the specified parameters, one including the specific parameters, and one including the processing parameters. In this case, the MFP1 responds to the capability request command including the specified parameters with a specified capability value, and to the capability request command including the specific parameters with a specific capability value. The MFP1 also responds to the capability request command including the processing parameters with result information indicating the processing result. By obtaining various responses to each command, the auxiliary program 142 can obtain the specified capability value and the specific capability value, as well as information on the processing result of the instructed process.

[0094] The auxiliary program 142 performs an integration process (A25) to combine the specified capability values ​​and unique capability values ​​based on the acquired capability information and determine the set of acceptable options for print settings. The procedure for the integration process will be explained with reference to the flowchart in Figure 8.

[0095] In the integration process, the CPU 111 selects one of the unique capability values ​​included in the acquired capability information as the capability value to be checked (D01). The CPU 111 then determines whether the capability value to be checked is a capability value of the item to be integrated (D03). For example, the unique capability value of the color mode mentioned above is a capability value for the same item as the standard capability value of the color mode, and is therefore a capability value to be integrated. Also, the capability value indicating print quality is also a capability value to be integrated. On the other hand, capability values ​​indicating the adjustable range of density and contrast, and capability values ​​indicating the presence or absence of toner save mode, are not capability values ​​to be integrated because there is no item corresponding to the standard capability value.

[0096] If the CPU 111 determines that the ability values ​​are to be merged (D03:YES), it merges the unique ability value being checked with the specified ability value for the same item to create a single ability value for that item (D05). For example, the auxiliary program 142 merges the unique ability value for color mode with the specified ability value for color mode to create a single ability value for color mode.

[0097] After D05, or if it is determined that the ability value is not one to be integrated (D03: NO), CPU111 determines whether all unique ability values ​​have been checked (D07). If it is determined that there are unchecked unique ability values ​​(D07: NO), CPU111 proceeds to D01 to check the next unique ability value. If it is determined that all unique ability values ​​have been checked (D07: YES), CPU111 terminates the integration process.

[0098] In the response capability determination process (see Figure 4), if the parameter included in the capability request command is a predefined parameter, only the predefined capability value is added to the capability information; if it is a unique parameter, only the unique capability value is added to the capability information. However, when MFP1 receives a capability request command that includes a unique parameter, it may add both the corresponding predefined capability value and the unique capability value to the capability information, even if the predefined parameter corresponding to that unique parameter is not included. In this way, MFP1 can respond with a unique capability value in response to a capability request command that includes a unique parameter.

[0099] When a capability request command including both standard and specific parameters for the same item is sent to MFP1 in this configuration, the auxiliary program 142 may obtain the same standard capability value for both parameters. If the auxiliary program 142 obtains capability information that includes the same capability value multiple times, in D05 of the integration process (see Figure 8), it may replace the corresponding standard capability value with all the capability values ​​responded for the specific parameter to create an integrated capability value. Then, the auxiliary program 142 may display a print settings screen that does not include duplicate options based on the integrated capability value. Even in this way, the user can select a setting value based on either the standard capability value or the specific capability value.

[0100] Returning to the explanation of the printing procedure shown in the sequence diagram of Figure 2, after the integration process of A25 is completed, the auxiliary program 142 displays a print settings screen to user IF113 for accepting print settings based on the integrated capability values ​​(A26). The auxiliary program 142 displays a print settings screen 60 that accepts the selection of print setting values ​​for various print setting items, as shown in Figure 9, and accepts user operation. If the auxiliary program 142 has acquired capability information including unique capability values, it displays a print settings screen 60 that includes options indicating print setting values ​​corresponding to those unique capability values.

[0101] The user can select various print settings by operating on the displayed print settings screen 60 (A27). For example, if the user requests an operation on the color mode setting item 61, the auxiliary program 142 will display a list of color mode options, as shown in Figure 10, and accept the user's selection.

[0102] Depending on the capabilities of the MFP1, a selection of print settings is available, as shown in Figure 6, for example. As mentioned above, the auxiliary program 142 integrates the capabilities of the color modes, and in addition to the Auto, Color, Grayscale, and Monochrome options corresponding to the default capabilities, it also displays Color Normal, Color Vivid, and Color None options corresponding to the unique capabilities.

[0103] Furthermore, for example, when an operation is received on the print quality setting item 62, the auxiliary program 142 displays the options "Good," "Draft," and "Highest," which correspond to the standard capability values ​​"normal," "draft," and "high," respectively, as well as "Professional," which corresponds to the unique capability value "custom_professional." Note that "Good" represents normal quality, "Draft" represents low quality, and "Highest" represents high quality. "Professional" represents a higher quality setting than "Highest."

[0104] The auxiliary program 142 causes the MFP1 to send a capability request command including predefined and specific parameters, and by obtaining the predefined and specific capability values ​​of the MFP1, it can display print settings corresponding to the predefined capability values ​​and print settings corresponding to the specific capability values ​​in a selectable manner. This allows the user to select a setting value based on either the predefined or specific capability values.

[0105] Once the user has determined all the print settings, they confirm the print settings by operating the OK button 63 on the print settings screen 60. The auxiliary program 142 stores the print settings selected by the user in memory 112 (A28). The auxiliary program 142 also passes information indicating that the print settings have been completed to the general-purpose print program 141 (A29). This allows the general-purpose print program 141 to accept instructions from the user, such as an instruction to execute printing. The auxiliary program 142 may also pass information indicating the determined print settings to the general-purpose print program 141, for example, information on the setting values ​​corresponding to the specified capability values.

[0106] When the general-purpose printing program 141 receives a print command from the user (A31), it generates intermediate data based on the image data to be printed (A32). The general-purpose printing program 141 can generate intermediate data based on the image data to be printed obtained from, for example, an application program that creates or edits documents or images, and pass the generated intermediate data to the auxiliary program 142 (A33).

[0107] The auxiliary program 142, for example, obtains intermediate data from the general-purpose printing program 141 and edits the intermediate data as needed based on the print settings stored in A28 (A34). Then, the auxiliary program 142 passes the edited intermediate data to the general-purpose printing program 141, instructing it to generate print data and send it to the MFP1 (A35).

[0108] Furthermore, the general-purpose printing program 141 and the auxiliary program 142 may cooperate to generate print data in a manner different from the method in which the auxiliary program 142 edits the intermediate data generated by the general-purpose printing program 141. For example, the auxiliary program 142 may generate the intermediate data and print data. Also, if the image data to be printed obtained from various application programs is suitable for generating print data, the general-purpose printing program 141 may generate print data directly from the image data without generating intermediate data.

[0109] Furthermore, the auxiliary program 142 may send a command to the MFP1 before sending the print job, based on the print settings stored in A28. For example, if "Professional" is selected as the print quality, the auxiliary program 142 should send a command to the MFP1 instructing it to print in professional mode. The auxiliary program 142 may send the command to the MFP1 itself, or it may pass the command to the general-purpose print program 141 instructing it to send the command to the MFP1.

[0110] The general-purpose printing program 141 generates a print job based on the intermediate data edited by the auxiliary program 142, and sends the generated print job to the MFP1 (A37). In other words, the print job generated by the general-purpose printing program 141 has print settings specified by the auxiliary program 142, which receives user specifications in A27 and stores them in memory in A28. If the user has specified print settings corresponding to the unique capability values, the auxiliary program 142 can cause the MFP1 to print according to the unique capability values. Therefore, even a PC100 that does not use a printer driver can utilize the inherent capabilities of the MFP1. The processing in A34 and A35 by the auxiliary program 142 is the process of sending a print job with print settings selected by the user to the MFP1.

[0111] MFP1 executes printing based on the received print job (A38). If MFP1 has received commands associated with the print job, it will perform actions based on the received commands when printing the print job. As a result, the printed output will be based on the print settings selected by the user.

[0112] As explained in detail above, the first form of MFP1 executes the specified process when the capability request command received from an IPP client such as PC100 includes a processing parameter that instructs the execution of the process. Therefore, PC100 can have the MFP1 execute a process that is an inherent capability of MFP1 by means of a capability request command. As a result, even PC100 that does not use a printer driver can be instructed to execute a process that can be performed by MFP1, and thus the inherent capabilities of MFP1 can be expected to be utilized.

[0113] Furthermore, in the first configuration, MFP1 responds with capability information, including the MFP1's unique capability value, when the capability request command received from the IPP client includes unique parameters. Additionally, the PC100's auxiliary program 142 can instruct the PC100's general-purpose printing program 141 to send capability request commands containing unique parameters to the MFP1. When the auxiliary program 142 obtains capability information, including the MFP1's unique capability value, in response to a capability request command containing unique parameters, it becomes possible to accept print settings based on the MFP1's unique capability value. This allows the MFP1's inherent capabilities to be utilized even in print jobs sent from the IPP client, PC100.

[0114] Next, the second embodiment of the printer will be described in detail with reference to the attached drawings. The MFP1 of the second embodiment has the same configuration as the MFP1 of the first embodiment, but performs some different processing. Configurations and procedures that are the same as those of the MFP1 of the first embodiment are denoted by the same reference numerals as in the first embodiment, and their explanation is omitted.

[0115] In this configuration, MFP1 can receive capability request commands from PC100 and PC200, similar to the first configuration. When MFP1 receives a capability request command, it executes a response capability determination process different from the response capability determination process performed by MFP1 in the first configuration (see Figure 4). The procedure for the response capability determination process in this configuration will be explained with reference to the flowchart in Figure 11. This response capability determination process is executed by the CPU 11 of MFP1 according to the capability response program 22 of MFP1 in this configuration (see Figure 1). At the start of this capability response process, the CPU 11 prepares capability information that does not contain any information as response information.

[0116] In the response capability determination process shown in Figure 11, the CPU 11 obtains identification information indicating the source that sent the received capability request command (E01). The MFP 1 can obtain information indicating the request source, for example, as User-Agent information associated with the capability request command in communication compliant with IPP. User-Agent information is an example of identification information used to identify an IPP client.

[0117] In this configuration, when the auxiliary program 142 of PC100 instructs the general-purpose printing program 141 to send a capability request command (for example, A12 in Figure 2), it may add User-Agent information identifying itself in association with the capability request command. In this case, MFP1 obtains information identifying the auxiliary program 142 at E01. If the auxiliary program 142 does not add User-Agent information, the User-Agent information will be information indicating the source OS. For example, since the OS 121 of PC100 is Windows (registered trademark), the capability request command sent from PC100 will have information indicating "wPrintWindowDoc" added as User-Agent information.

[0118] On the other hand, since the OS201 of PC200 is not Windows, the capability request commands sent from PC200 have different User-Agent information attached to them compared to the capability request commands sent from PC100. For example, the capability request commands sent from PC200 have "CUPS2.3.4" and "macOS14.4" attached to them as User-Agent information.

[0119] The CPU 11 determines, based on the User-Agent information attached to the capability request command, whether the source of the capability request command is the auxiliary program 142 or Windows (E02). If it determines that the source is the auxiliary program 142 or Windows (E02: YES), the CPU 11 retrieves one of the parameters included in the received capability request command (E05).

[0120] The CPU 11 determines whether the acquired parameter is a parameter that instructs the execution of a process (E10). If it determines that it is a parameter that instructs the execution of a process (E10: YES), the CPU 11 executes the parameter execution process (E11). The parameter execution process in E11 is the same process as C22 in the response capability determination process of the first form, and is the process shown in the procedure in Figure 7. The parameter execution process in E11 adds result information to the capability information indicating either success, processing error, or timing error.

[0121] After the parameter execution process for E11 is completed, or if it is determined that the parameter is not one that instructs the execution of a process (E10: NO), the CPU 11 adds the default ability value and unique ability value corresponding to the acquired parameter to the ability information (E12).

[0122] For example, the capability request command sent from PC100 includes User-Agent information indicating either the auxiliary program 142 or Windows. In other words, when CPU11 receives a capability request command from PC100, it determines it to be YES in E02. Then, if the parameters included in the capability request command are processing parameters that instruct the execution of a process, CPU11 executes the instructed process.

[0123] Furthermore, if CPU 11 determines YES in E02, it responds with the default capability value and unique capability value corresponding to the parameter included in the capability request command, even if that parameter is a default parameter. For example, if the capability request command includes a default parameter requesting the capability of color mode, CPU 11 adds all of the default capability values ​​(Auto, Color, Monochrome) and the unique capability values ​​(Custom Standard, Custom Vivid, Custom None) to the capability information.

[0124] Next, CPU11 determines whether there are any unverified parameters (E13). If there are unverified parameters (E13: YES), CPU11 proceeds to E05 to obtain the next parameter.

[0125] In this configuration as well, MFP1 can receive capability request commands that do not contain parameters. If the capability request command does not contain parameters, or if it contains "all", and E02 determines it to be YES, CPU11 will respond to the command sender with capability information that includes all specified capability values ​​and all unique capability values. For example, CPU11 should include unique capability values ​​that do not have corresponding specified parameters in the capability information response. Furthermore, if the capability request command contains a parameter that specifies a particular group, CPU11 will respond to the command sender with capability information that includes all specified capability values ​​and all unique capability values ​​corresponding to the group specified by the parameter.

[0126] On the other hand, if the CPU 11 determines that the User-Agent information of the capability request command is neither that of auxiliary program 142 nor Windows (E02: NO), the CPU 11 retrieves one parameter from the received capability request command (E21). Then, the CPU 11 adds only the default capability value corresponding to the retrieved parameter to the capability information (E22). If E02 is determined to be NO, the received capability request command does not contain any processing parameters. Furthermore, even if the received capability request command contains processing parameters, the CPU 11 does not execute any processing.

[0127] For example, the capability request command sent from PC200 does not include User-Agent information indicating auxiliary program 142 or Windows. In other words, when CPU11 receives a capability request command from PC200, it determines NO with E02 and responds only with the default capability values. For example, if the capability request command received from PC200 includes a default parameter requesting the capability of color mode, CPU11 responds with capability information that includes only the default capability values ​​for auto, color, and monochrome. Also, for example, if the capability request command received from PC200 does not include any parameters, or if it includes "all", CPU11 responds with capability information that includes all default capability values.

[0128] Next, CPU 11 determines whether there are any unverified parameters (E23). If there are unverified parameters (E23: YES), CPU 11 proceeds to E21 to obtain the next parameter. If it determines that all parameters have been verified (E13: NO, or E23: NO), CPU 11 terminates the response capability determination process and returns to the printing procedure shown in Figure 2.

[0129] Thus, this configuration of MFP1 responds with a unique capability value indicating enhanced functionality only to IPP clients that utilize an IPP Class Driver that does not require re-authentication. Therefore, this configuration of MFP1 does not require re-authentication even after an update.

[0130] In this configuration, the auxiliary program 142 acquires capability information, including unique capability values, and, similar to the first configuration of the auxiliary program 142, determines a set of options corresponding to the unique capability values ​​as a set of options that can be accepted as print settings. The auxiliary program 142 then displays a print setting screen 60 (see Figure 9) that allows the user to select print setting values ​​from the determined set of options, thereby enabling the user to submit print settings. Subsequently, the auxiliary program 142 can send a print job with the print setting values ​​selected by the user to the MFP1, similar to the first configuration.

[0131] As explained in detail above, the second form of MFP1, when a received capability request command is associated with User-Agent information indicating auxiliary program 142 or Windows, can either return capability information for MFP1 or execute processing according to the parameters included in the command. This allows even a PC100 that does not use a printer driver to be instructed to execute processing that can be performed by MFP1, thus enabling the utilization of MFP1's inherent capabilities.

[0132] Furthermore, the second form of MFP1 responds with capability information, including its inherent capability values, when the source of the capability request command is the auxiliary program 142 or Windows. This allows the second form of MFP1 to utilize its inherent capabilities in print jobs sent from the IPP client PC100, just like the first form of MFP1.

[0133] Furthermore, in this configuration, there is no need to prepare unique parameters. Therefore, MFP1 does not need to consider the correspondence between unique parameters and standard parameters. Also, auxiliary program 142 does not need to have unique parameters, resulting in simpler processing. On the other hand, in the first configuration, the relationship between the parameters included in the capability request command and the responding capability value is simple. Therefore, the processing of MFP1 is simpler. Also, auxiliary program 142 can selectively include unique parameters only for items where unique capability values ​​are required, which may reduce the communication load.

[0134] The embodiments disclosed herein are merely illustrative and do not limit the present invention in any way. Therefore, the technologies disclosed herein can naturally be improved and modified in various ways without departing from their essence. For example, the printer only needs to have a printing function and a communication function in accordance with IPP, and is not limited to an MFP1, but may be a printing device with only a printing function, a copier, or a fax machine. Also, the IPP client is not limited to a PC, but may be, for example, a smartphone or a tablet computer.

[0135] Furthermore, the print settings screens shown in Figures 9 and 10 are examples only and are not limited to the configuration shown in these figures. Also, for example, instead of displaying its own print settings screen, the auxiliary program 142 may provide information about the print settings screen as part of the screen displayed by the general-purpose print program 141. Alternatively, for example, the auxiliary program 142 may pass information indicating the options to the general-purpose print program 141, causing the general-purpose print program 141 to display the print settings screen. In this case, the general-purpose print program 141 may perform processing when an option corresponding to a predetermined ability value is selected, and the auxiliary program 142 may perform processing when an option corresponding to an intrinsic ability value is selected.

[0136] Furthermore, the examples of processing parameter types and the resulting information are merely examples and are not limited to those disclosed in the specification. For example, in the case of a processing error, MFP1 may be able to respond with result information that includes information indicating the cause of the error.

[0137] Alternatively, for example, the auxiliary program 142 may send capability request commands and print jobs directly to the MFP1 instead of instructing the general-purpose printing program 141 to send them.

[0138] Furthermore, although this embodiment describes in detail only the operations related to printing as the operation of the auxiliary program 142, the auxiliary program 142 may have other roles. Also, the program that executes the processing in this embodiment is not limited to the auxiliary program 142, but can be any program that receives instructions from the OS 121 or the general-purpose printing program 141 when printing using the general-purpose printing program 141. For example, the Print Workflow application whose specifications have been published by Microsoft (registered trademark) may also be used.

[0139] Furthermore, the execution timing of the auxiliary program 142 is not limited to the examples of this embodiment. For example, it may be executed by direct execution instruction from the OS 121, or it may be a resident auxiliary program 142. In the case of a resident auxiliary program, the auxiliary program 142 should perform the operations described above upon receiving an execution instruction.

[0140] Furthermore, in any flowchart disclosed in the embodiments, the execution order of any multiple processes in any multiple steps can be arbitrarily changed or executed in parallel, as long as no inconsistencies arise in the processing content.

[0141] Furthermore, the processes disclosed in the embodiments may be executed by a single CPU, multiple CPUs, hardware such as an ASIC, or a combination thereof. Also, the processes disclosed in each embodiment can be implemented in various ways, such as by recording a program for executing the process on a recording medium or by a method. [Explanation of Symbols]

[0142] 1 MFP 14 Communication IF 15 Printing Engine 100 PC

Claims

1. Printing engine and Communication interface, Equipped with, A printer capable of receiving print jobs from an IPP client via the communication interface in accordance with the IPP (Internet Printing Protocol), and causing the print engine to perform printing based on the received print jobs, The aforementioned printer is A specific command defined in the IPP standard, which, upon receiving the specific command requesting capability information from the IPP client via the communication interface, can return capability information indicating the capabilities of the printer, the specific command may include parameters, the parameters may be of multiple types, the multiple types include capability parameters which are parameters that specify capabilities, and processing parameters which are parameters that specify processing, The aforementioned printer further, If the received specific command includes the capability parameter, the system returns capability information indicating the capability specified by the capability parameter among the capabilities of the printer. If the received specific command includes the processing parameter, the process specified by the processing parameter is executed. A printer configured in such a way.

2. A printer as described in claim 1, The aforementioned processing parameters are parameters not specified in the IPP standard. The aforementioned printer is If the received specific command contains the processing parameters in the format defined by the IPP standard, the processing specified by the processing parameters will be executed. A printer configured in such a way.

3. A printer according to claim 2, The aforementioned printer is If the received specific command includes the processing parameters in the format specified by the IPP standard, the processing specified by the processing parameters is executed, and the processing result of the executed processing is returned via the communication interface in the format specified by the IPP standard as a response to the received specific command. A printer configured in such a way.

4. A printer according to claim 2, The aforementioned printer is If the received specific command includes the processing parameters in the format specified by the IPP standard, information indicating that the execution of the processing specified by the processing parameters has been accepted is returned via the communication interface in the format specified by the IPP standard as a response to the received specific command. A printer configured in such a way.

5. A printer according to claim 3 or claim 4, The aforementioned printer is If the received specific command includes the capability parameter, the capability information, including the capability specified by the capability parameter, is returned via the communication interface in the format specified by the IPP standard as a response to the received specific command. A printer configured in such a way.

6. A printer as described in claim 1, The aforementioned printer is If the received specific command includes an instruction to execute a test print as a processing parameter, the test print specified by the processing parameter will be executed. A printer configured in such a way.

7. A printer as described in claim 1, The aforementioned printer is If the received specific command includes an instruction to start the preparation operation of the print engine as a processing parameter, the preparation operation specified by the processing parameter is started. A printer configured in such a way.

8. A printer as described in claim 1, The aforementioned printer is If the received specific command includes an instruction to perform color calibration as a processing parameter, the color calibration specified by the processing parameter is performed. A printer configured in such a way.

9. A printer as described in claim 1, The aforementioned printer is If the received specific command includes the processing parameters, If a predetermined time has elapsed since the previous execution of the process specified by the processing parameter, the process specified by the processing parameter will be executed. If the predetermined time has not elapsed since the previous execution of the process specified by the processing parameter, the process specified by the processing parameter will not be executed. A printer configured in such a way.

10. A printer according to claim 9, The aforementioned printer is If the received specific command includes the processing parameters, If the predetermined time has not elapsed since the previous execution of the process specified by the processing parameter, the process specified by the processing parameter will not be executed, and error information indicating that the predetermined time has not elapsed since the previous execution will be returned via the communication interface as a response to the received specific command. A printer configured in such a way.

11. A printer as described in claim 1, The aforementioned printer is If the received specific command includes the capability parameters, the capability information is returned. If the received specific command does not include the capability parameter but does include the processing parameter, the system will not return the capability information, will execute the processing specified by the processing parameter, and will return information based on the execution of the processing. A printer configured in such a way.

12. Printing engine and Communication interface, Equipped with, A printer capable of receiving print jobs from an IPP client via the communication interface in accordance with the IPP (Internet Printing Protocol), and causing the print engine to perform printing based on the received print jobs, The aforementioned printer is A specific command defined in the IPP standard, which requests capability information, can be received from the IPP client via the communication interface, and in response, the capability information indicating the capabilities of the printer can be returned. The specific command is associated with identification information for identifying the requesting IPP client, and the specific command can also specify processing. The aforementioned printer further, If the received specific command is associated with the identification information indicating a first-type IPP client, it is possible to either return the capability information or execute the process specified in the specific command. If the received specific command is associated with the identification information indicating a Type 2 IPP client, it is possible to return the capability information, but the process specified in the specific command will not be executed. A printer configured in such a way.

13. A printer according to claim 12, The aforementioned specific command may specify at least one of the capabilities and processing, The aforementioned printer is If the received specific command is associated with the identification information indicating the first type of IPP client, If an ability is specified in the aforementioned specific command, the ability information indicating the specified ability is returned. If a process is specified in the aforementioned specific command, the specified process will be executed. A printer configured in such a way.

14. A printer according to claim 13, The aforementioned printer is If the received specific command is associated with the identification information indicating the first type of IPP client implemented in a specific operating system, If an ability is specified in the aforementioned specific command, the ability information indicating the specified ability is returned. If a process is specified in the aforementioned specific command, the specified process will be executed. A printer configured in such a way.

15. A printer according to claim 14, The aforementioned printer is If the received specific command is associated with the identification information indicating the first type of IPP client implemented in Windows as the specific operating system, If an ability is specified in the aforementioned specific command, the ability information indicating the specified ability is returned. If a process is specified in the aforementioned specific command, the specified process will be executed. A printer configured in such a way.

16. A printer according to claim 13, The aforementioned printer is If the received specific command is associated with the identification information indicating a first type IPP client that transmits the specific command in cooperation with the print support program, If an ability is specified in the aforementioned specific command, the ability information indicating the specified ability is returned. If a process is specified in the aforementioned specific command, the specified process will be executed. A printer configured in such a way.

Citation Information

Patent Citations

  • Program and control method

    JP2021108000A