Program, Control Method for Information Processing Apparatus, and Information Processing Apparatus
The program addresses the challenge of associating multiple UWP Device Apps with a common printer driver by enabling the information processing apparatus to associate printing setting applications with a common driver, thereby enhancing customizability and compliance with IPP standards.
Patent Information
- Application Number
- JP2023122969
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-07-28
- Publication Date
- 2025-06-11
- Estimated Expiration
- 2038-06-29
AI Technical Summary
Existing technologies face challenges in utilizing functions provided independently by vendors when implementing a common printer driver compliant with IPP, and in associating multiple UWP Device Apps with a common printer driver.
A program that enables an information processing apparatus to associate a first and second printing setting application with a common driver, allowing the apparatus to acquire capability information from printing apparatuses using the Internet Printing Protocol and generate print jobs conforming to this protocol.
This solution allows for the effective association of multiple UWP Device Apps with a common printer driver, enabling the utilization of vendor-specific functions and improving customizability, while ensuring compatibility with IPP standards.
Smart Images

Figure 0007691456000001 
Figure 0007691456000002 
Figure 0007691456000003
Abstract
Description
Technical Field
[0001] The present invention relates to Program, Control Method for Information Processing Apparatus, and Information Processing Apparatus .
Background Art
[0002] A configuration in which print data is transmitted to a printing device using a printer driver is generally known. An operating system (OS), which is basic software, is installed in a host computer. The printer driver is configured according to the specifications defined by the OS and is called and operated from the OS.
[0003] A vendor providing a printing device can provide a function of instructing printing on the printer using the OS by providing a printer driver suitable for the printing device conforming to the specifications of the OS.
[0004] When using a version of Microsoft (registered trademark)'s Windows (registered trademark) prior to Windows 8 as the OS, the printer driver is configured in an architecture called a V3 printer driver. The V3 printer driver can display a UI (User Interface) at the timing when a request from a user occurs and provide a function of prompting the user to perform some operation.
[0005] In recent years, in Windows, an architecture called a V4 printer driver has emerged. Since security is emphasized in the V4 printer driver, the customizability of the printer driver itself has decreased compared to the V3 printer driver. For example, the aforementioned configuration module is provided by the OS, and a vendor providing a printing device can only provide a setting file or a script file for customizing its operation.
[0006] To compensate for such a decrease in customizability, a vendor providing a printing device can provide a dedicated application for assisting the functions of a printer driver. This application is called UWP Device Apps (Universal Windows Platform Device Apps).
[0007] In UWP Device Apps, a vendor providing a printing device provides metadata containing the Hardware ID of the driver and the ID of the UWP Device Apps, called the device stage, for each driver. Thereby, the UWP Device Apps and the driver can be associated with each other.
[0008] UWP Device Apps can be equipped with functions called Workflow (WF) and functions called PirntPreference. WF indicates a function for executing print-related processing triggered by a predetermined user operation or the like. PirntPreference indicates a function for setting printer-specific print settings.
[0009] Also, as a printer driver for controlling a plurality of types of printing devices having different functions, a printer driver called a universal printer driver is known (Patent Document 1). In this printer driver, an operation screen suitable for each individual printing device can be displayed for each model and model.
[0010] Furthermore, it is considered possible to transmit print data to a printing device without using a printer driver provided by a vendor providing the printing device. For example, in Ubuntu (registered trademark) 17.04, as a default function of the OS, a mechanism for transmitting print data to a printing device compatible with IPP Everyware (registered trademark) is installed. IPP Everyware is a series of standards that enable printing using printing devices of various vendors and brands providing printing devices, and standard setting and dissemination activities are being carried out by industry groups and the like.
[0011] A universal printer driver as disclosed in Patent Document 1 is provided for each vendor that provides a printing device. Therefore, for a plurality of types of printing devices with different functions sold by vendors that provide the same printing device, one universal printer driver could be used to handle them.
[0012] However, it has been difficult to handle printing devices of multiple vendors that provide different printing devices with one universal printer driver. This is due to the fact that each vendor conducts the exchange of printing data using different communication methods, PDL (Page Description Language), and JDL (Job Description Language), making it difficult to unify. Also, because each vendor has made its own extensions to PDL and JDL, it is difficult to operate them in a unified manner.
Prior Art Documents
Patent Documents
[0013]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0014] In recent years, it has been considered to provide a common printer driver or print client using a mechanism compliant with IPP typified by IPP Everyware. However, when providing a common printer driver compliant with IPP, there is a problem that it is difficult to utilize functions provided independently by vendors.
[0015] Also, as described above, in a V4 printing architecture or the like, a mechanism is known for providing a dedicated application for assisting the functions of a printer driver in order to compensate for a decrease in customizability. However, in the conventional association method, only a method of associating one dedicated application with one printer driver has been considered. For this reason, the conventional method has a problem that a plurality of UWP Device Apps corresponding to individual printers cannot be associated with the common printer driver.
[0016] The present invention has been made to solve the above problems. The present invention provides a first printing setting application identified by the identification information of a first printing device , acquired from a server associated with a common driver, and a second printing setting application identified by the identification information of a second printing device different from the first printing device , a first printing setting application for causing an information processing apparatus to acquire capability information from a first printing apparatus according to the Internet Printing Protocol and supporting a common driver for generating a print job conforming to the Internet Printing Protocol and, its associates the second printing setting application different from the first application with the common driver. , acquired from a server One of the objects is to provide a mechanism for , a second printing setting application for causing the information processing apparatus to acquire capability information from a second printing apparatus according to the Internet Printing Protocol and supporting a common driver for generating a print job conforming to the Internet Printing Protocol associating a second printing setting application different from the first application with the common driver.
Means for Solving the Problems
[0017] The present invention is a program that causes a computer of an information processing apparatus to execute a process of associating a first printing setting application identified by the identification information of a first printing device and acquired from a server with a common driver, and a second printing setting application identified by the identification information of a second printing device different from the first printing device , a first printing setting application for causing the information processing apparatus to acquire capability information from the first printing apparatus according to the Internet Printing Protocol and supporting a common driver for generating a print job conforming to the Internet Printing Protocol and, the associates the second printing setting application different from the first printing setting application with the common driver. , acquired from the server One of the features is that it is characterized by , a second printing setting application for causing the information processing apparatus to acquire capability information from the second printing apparatus according to the Internet Printing Protocol and supporting the common driver for generating a print job conforming to the Internet Printing Protocol executing the process of associating a second printing setting application different from the first printing setting application with the common driver.
Effects of the Invention
[0018] According to the present invention, a first printing setting application identified by the identification information of a first printing device , acquired from a serverThe first print setting application , a first printing setting application for causing an information processing apparatus to acquire capability information from a first printing apparatus according to the Internet Printing Protocol and supporting a common driver for generating a print job conforming to the Internet Printing Protocol is its associated with a common driver and identified by the identification information of a second printing device different from the first printing device , acquired from a server The second print setting application , a second printing setting application for causing an information processing apparatus to acquire capability information from a second printing apparatus according to the Internet Printing Protocol and supporting a common driver for generating a print job conforming to the Internet Printing Protocol is such that a second print setting application different from the first application can be associated with the common driver.
Brief Description of Drawings
[0019]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7A
Figure 7B
Figure 8
Figure 9A
Figure 9B
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14A
Figure 14B
Figure 15
Figure 16
Embodiments for Carrying Out the Invention
[0020] Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of the features described in the embodiments are essential for the solution means of the invention. In the present embodiment, a printer driver of an architecture of a printer driver called version 4 (V4) introduced in a version of Windows 8 or later of Microsoft as an operating system (OS) will be described as an example. Hereinafter, this printer driver will be referred to as a "V4 printer driver" or a "V4 driver". Also, in the present embodiment, a printer driver (hereinafter referred to as an "OS common printer driver") that can be commonly used for printers provided by a plurality of printer vendors and is provided as a function of the OS will be described. This OS common printer driver also has the V4 driver format. However, the present invention is not limited to these.
[0021] <First Embodiment> First, the configuration of the printing system according to the present invention will be described with reference to FIG. 1. FIG. 1 is a diagram showing an example of a printing system including an information processing apparatus according to an embodiment of the present invention. The printing system of the present embodiment includes a client computer 101, a server 104, a printer 102, and a printer 105. Each device can communicate with each other through a network 103 including a Wide Area Network (WAN). The network 103 may be wired or wireless.
[0022] The client computer 101 corresponds to the information processing apparatus of the present embodiment and is configured by, for example, a personal computer (PC) or the like. It can transmit print data in the form of a page description language (PDL: Page Description Language) to the printer 102 and the printer 105.
[0023] The server 104 can distribute data to the client computer 101. The printer 102 is a printing device (image forming apparatus) that receives print data in the form of a page description language and performs printing. The printer 105 also receives print data in the form of a page description language and performs printing in the same manner as the printer 102. For example, the printer 102 and the printer 105 are printers provided by different vendors.
[0024] Note that the printer 102 and the printer 105 may be single-function printers (SFPs) having only a printing function, or may be multi-function printers (MFPs) having a printing function, a scanning function, and a copying function. Also, there may be one printer or three or more printers. Further, the printer and the client computer 101 may be connected by a method other than the network. For example, the printer and the client computer 101 may be connected by USB or the like.
[0025] Also, the client computer 101 is not limited to one being connected to the network 103, and a plurality of client computers may be connected. The client computer 101 can transmit print data to the printer 102 and the like.
[0026] Figure 2 is a block diagram showing the hardware configuration of the client computer 101 in FIG. 1. The client computer 101 has a control unit 200. The control unit 200 includes a CPU (Central Processing Unit), a RAM (Random Access Memory) 202, an external memory 209, a ROM (Read Only Memory) 203, etc. The control unit 200 controls the operation of the entire client computer 101.
[0027] The CPU 201 expands the program stored in the ROM 203 or the external memory 209 into the RAM 202 and executes it to perform various controls such as control of the UI (user interface) screen, generation of print data, and transfer of print data. The ROM 203 stores control programs and boot programs executable by the CPU 201. The RAM 202 is the main memory of the CPU 201 and is used as a work area or a temporary storage area for expanding various programs.
[0028] The external memory 209 connected to the control unit 200 via the external memory I / F 208 stores an OS 210, an application 212, an application execution environment 213, a printer driver 211, etc. In this embodiment, an auxiliary storage device such as an HDD (Hard Disk Drive) is assumed as the external memory 209, but a non-volatile memory such as an SSD (Solid State Drive) may be used instead of the HDD. Thus, the hardware such as the CPU 201, the ROM 203, the RAM 202, and the external memory 209 constitutes a so-called computer.
[0029] The operation input device I / F 204 is an interface that controls an operation input device 205 such as a keyboard, a pointing device (e.g., a mouse), or a touch input device. The operation input device 205 functions as a reception unit that receives operations from the user. The display I / F 206 controls the display of the screen on the display 207. The display 207 functions as a display unit that displays information to the user.
[0030] The control unit 200 is connected to the network 103 via the network I / F 214. The network I / F 214 can transmit print data to a printer via the network 103, or receive a store application, a printer driver, etc. from a server 104 or the like via the network 103. Note that data communication with an external terminal via the network 103 is, for example, wireless communication conforming to the IEEE802.11 series, a mobile communication system such as LTE or 5G, or communication via a wired cable such as a LAN cable.
[0031] Next, the software configuration of the client computer 101 will be described. FIG. 3 is a diagram showing an example of the software configuration of the client computer 101. Note that the software configuration shown in FIG. 3 is realized by the CPU 201 of the client computer 101 loading a program stored in an external memory 209 or the like into the RAM 202 and executing it.
[0032] As shown in FIG. 3, the software in the client computer 101 has three layers: an OS 210, an application execution environment 213, and an application 212.
[0033] First, the individual elements included in the OS 210 will be described. The OS 210 has a printing system 337, a printer driver 211, an external setting file group 352, and a thread pool 355.
[0034] First, the external setting file group 352 will be described. The external setting file group 352 includes metadata 320 and a registry 353. The metadata 320 is definition information that has both the print extension app identifier of the print extension app 300 and the HWID (HardwareId) of the print queue 308 of the printer driver provided by the printer vendor, and has the role of associating each of them. The print extension app 300 is an extension program provided by the printer vendor to assist the functions of the printer driver, and is a dedicated application for each vendor or each model, etc.
[0035] Note that in the metadata 320, it is not possible to associate one printer driver with multiple print extension apps 300 in a one-to-many relationship. Since the OS common printer driver can print on multiple printers, it may be necessary to associate it with multiple print extension apps 300. However, in the method using the metadata 320, it is not possible to associate the OS common printer driver with multiple print extension apps 300. In this embodiment, a method of associating the OS common printer driver with multiple print extension apps 300 using the registry 353 etc. will be described, but the details will be described later.
[0036] The registry 353 is an area where the setting group of the OS 210 is described. In the registry 353, values can be described in the Key And Value format, and settings such as per-print-queue settings can be described. In the registry 353, a policy setting indicating whether to enable or disable the activation of background tasks by the print-time startup app launcher 350, the identifier of the print extension app 300 associated with the printer driver, etc. are registered. The details will be described later with reference to FIG. 12. Note that the settings registered in the registry 353 can be changed via the setting screen of the OS 210.
[0037] Subsequently, the components constituting the printing system 337 will be described. The print queue 308 is an area for temporarily storing print jobs when performing printing using a printer existing in the network 103, and a plurality of them can exist. In the example shown in FIG. 12 described later, it is assumed that print queues 308 corresponding to the MFPs 501 and 502 shown in FIG. 5 described later are created.
[0038] The spooler 325 is a module that temporarily stores and manages an XPS (XML Paper Specification) file, which is print target data printed from any of the applications 212. The XPS file stored in the spooler 325 is converted into a PDL (Page Description Language) through the filter pipeline manager 335 and then transmitted to the printer through the spooler 325.
[0039] The filter pipeline manager 335 is a module that loads one or more filters 330 and converts an XPS file into a PDL file. The filter pipeline manager 335 is configured as part of a print architecture (also called a "print system") provided by the OS 210. The OS 210 reads one or more filters 330, which are elements constituting the printer driver 211, based on the definition of the filter config 336, and generates a PDL using the one or more filters. For the PDL, for example, PCL (Printer Controll Language), PS (Post Script), PDF (Portable Document Format), etc. can be adopted.
[0040] The configuration module 331 is a module that generates and modifies a PrintTicket (also called a "print ticket"). Further, the configuration module 331 has a prohibition function for restricting so that settings that cannot be combined are not made. Further, the configuration module 331 manages PrintCapabilities, which is the capability information of the printer.
[0041] The detailed print settings UI section 304, the background task section 305 launched during printing, and the UI section 303 launched during printing of the print extension app 300 described below can call the APIs provided by the configuration module 331. By calling these APIs, each of these sections can obtain a PrintTicket and PrintCapabilities in XML (Extensible Markup Language) format.
[0042] Also, the V4 printer driver provides the device function text file 332 in which prohibited rules and device functions are described, and the script file 333 to the OS 210 as the printer driver 211. The operation of the configuration module 331 is customized based on the device function text file 332 and the script file 333.
[0043] The app launcher 350 launched during printing is a module that controls the execution of background tasks provided by the background task section 305 launched during printing and the like. When the OS 210 detects that a print start instruction has been input by the user and printing is to be performed, the app launcher 350 launched during printing starts the background task section 305 launched during printing. If a setting (policy is OFF) for disabling the start of the background task is stored in the registry 353, the OS 210 suppresses the execution of the background task.
[0044] The printer driver 211 is composed of a filter 330, a filter configuration 336, a script file 333, a device function text file 332, an INF 361, etc., and is stored in the driver storage area 370. In the present embodiment, it is described that an OS common printer driver 500 that supports printers of a plurality of vendors is installed as the printer driver. The OS common printer driver 500 may be a class driver incorporated as a standard function of the OS 210, or may be a universal printer driver that can be separately installed by the user on the computer 100.
[0045] Filter 330 is a filter called by filter pipeline manager 335 and has a function of converting the input XPS file into PDL and outputting it. Filter configuration 336 is a definition file referred to by filter pipeline manager 335, and the order of calling one or more filters 330 is described therein.
[0046] Script file 333 and device function text file 332 are files called by configuration module 331, and the operation of configuration module 331 can be customized. INF361 is a text file in which the setting information for installing printer driver 211 is described.
[0047] Thread pool 355 is a module that stores the threads used when various applications 212 and the module groups in OS 210 are executed.
[0048] Application execution environment 213 is composed of desktop application execution environment 323 and touch application execution environment 301. Touch application execution environment 301 is an execution environment for operating touch application 321 and print extension application 300, which are a kind of application 212 described later, on OS 210. Touch application execution environment 301 is an execution environment for operating the UWP application (UWP Device Apps) distributed from server 104, and controls the execution of the UWP application. Print extension application 300 also corresponds to UWP Device Apps.
[0049] The desktop application execution environment 323 is an execution environment for executing a desktop application 322, which is a type of the application 212 described later. The desktop application execution environment 323 controls the execution of, for example, "Win32 / 64 applications" and ".NET applications".
[0050] The application 212 is composed of, for example, three types of applications: a touch application 321, a print extension application 300, and a desktop application 322. The touch application 321 is an application that operates in the touch application execution environment 301. The touch application 321 is downloaded and installed on the client computer 101 through an application distribution system published on the Internet. The necessary module groups of the touch application 321 are packaged and signed, and the calls to the APIs within the OS 210 are restricted compared to the desktop application 322.
[0051] The print extension application 300 is a type of the touch application 321 and operates on the touch application execution environment 301 in the same manner as the touch application 321. The print extension application 300 is obtained by the OS 210 from the application distribution system via the Internet. Also, the print extension application 300 of the present embodiment has a print-time UI display function for displaying a uniquely customized UI at the time of printing. The print extension application 300 can be associated with a printer driver provided by a printer vendor via the metadata 320. Also, when the print extension application 300 is associated with the OS common printer driver 500, it is associated using the INF 361 and the registry 353. Details will be described later with reference to FIG. 4.
[0052] The print extension application 300 has a tile application section 302, a detailed print settings UI section 304, a print-time startup background task section 305, and a print-time startup UI section 303. The tile app part 302 is a UI part that is executed in accordance with receiving a user operation to start the extended app 300, and provides functions such as status display of registered printers.
[0053] The detailed print settings UI part 304 is a UI part that is executed in accordance with receiving a detailed print settings event issued by the OS 210. The detailed print settings UI part 304 generates and displays a UI for print settings based on the PrintTicket and PrintCapabilities obtained through the API from the configuration module 331. The detailed print settings UI part 304 appropriately changes the settings of the PrintTicket according to user operations and returns it to the configuration module 331.
[0054] The background task part 305 at print startup is a component corresponding to the background task to be executed when a print event is issued.
[0055] The background task part 305 at print startup can obtain, read, and write the PrintTicket through the API of the configuration module 331. When using the WF function, it is predefined that the background task determines whether to start the UI part 303 at print startup and requests the OS 210 to start the UI part 303 at print startup, which is a component of the foreground task, if necessary. Thereby, for example, a password input screen for authenticated printing (such as FIG. 8(b) described later) is displayed. The background task part 305 at print startup can transfer values with the UI part 303 at print startup by reading and writing the changed values to the app store 334. If it is determined not to start the UI part 303 at print startup, the print startup app launcher 350 generates print data without starting the print extension app 300.
[0056] The print startup UI unit 303 launched by the background task can edit XPS or PrintTicket which are the data to be printed and return them to the OS 210. When a startup request is made to the OS 210 by the background task, the OS 210 launches the print startup UI unit 303. The print startup UI unit 303 can obtain and set PrintTicket and PrintCapabilities and can also obtain the XPS file of the data to be printed. When changing the XPS file, the edited XPS file needs to be passed to the print startup background task unit 305 through the app store 334 once, and the XPS file edited by the print startup background task unit 305 needs to be returned to the OS 210. In this embodiment, the print startup UI unit 303 is assumed to display a UI for performing print-related confirmation and a UI for prompting the user to input unentered settings (for example, the password input screen shown in FIG. 8(b) described later).
[0057] The setting file 362 is a file in which the setting values of the print extension app 300 are described. A print extension app identifier uniquely indicating the print extension app 300 and a custom setting file to be used are described. The custom setting file 363 is a setting file in which the print extension app 300 describes the settings of the services that can be used for the printer driver.
[0058] Next, the relationship between the OS common printer driver and the print extension app 300 will be described. FIG. 4 is a diagram showing an example of the relationship among the printer, the OS common printer driver 500, and the print extension app 300. FIG. 5 is a flowchart showing an example of a process of associating the OS common printer driver 500 with the print extension application 300. The processes of FIG. 5, FIG. 6, FIG. 7A, FIG. 7B, FIG. 14A, and FIG. 14B described below are realized by the CPU 201 loading and executing a program for realizing each module, component, and application stored in the external memory 209 or the like into the RAM 202. When explaining the control provided by each control module, component, and application, each part realized by the CPU 201 is described as the subject. Also, some processes such as display, reception of user operations, and data transmission / reception processing are assumed to be realized by the cooperation of the CPU 201, each I / F, and the input / output devices connected to the I / F.
[0059] In FIG. 4, the MFP 501 (corresponding to, for example, the printer 102) and the MFP 502 (corresponding to, for example, the printer 105) each have an HWID and a COID (Compatible ID) as identification information capable of identifying the type of device. The OS common printer driver 500 has a basic driver INF 505 in which a filter 3300 and the like related to basic functions for printing are described. Note that the PDL generated by the OS common printer driver 500 is not limited to PCL and PS, and may be in any format as long as it is a standardized language such as PDF or PWG Raster. Also, in the present embodiment, it is assumed that the OS common printer driver 500 and the printing system 337 cooperate to generate a print job conforming to a predetermined printing protocol and can transmit the print job to each printer. For example, the predetermined printing protocol is IPP (Internet Printing Protocol) or the like.
[0060] For example, when "Add Printer" 924 shown in FIG. 9B(a) described later is pressed, the OS 210 starts the processing of the flowchart shown in FIG. 5 (S500). Here, as an example, the case of adding a printer used by the OS common printer driver 500 from the print settings screen is illustrated, but it is not limited thereto. For example, it is also possible to add a printer used by the OS common printer driver via a control screen for managing printers provided by the OS 210. First, the OS 210 makes a multicast inquiry within the network 103 and waits for a response from printable printers (S501). In this embodiment, it is assumed that the MFP 501 and the MFP 502 respond. The OS 210 receives a response from the printers in the network 103 and displays a UI such as a list (S502). Note that in this embodiment, the case where the search process is performed when the key 924 is pressed is illustrated, but it is not limited thereto. For example, in accordance with the display of a screen for selecting an output destination printer before printing, both the configured printers and the printers found by search but not configured may be listed. In this case, the configured printers and the unconfigured printers may be displayed distinguishable. After the display, the OS 210 accepts a user operation (S503).
[0061] After accepting the user operation, the OS 210 installs the OS common printer driver 500 so that printing can be performed using the printer specified by the user operation, and sets a port in the registry 353 (S504). Here, for the sake of explanation, it is assumed that a user operation specifying "MFP 501" is accepted in S503. In this case, in the installation process of S504, the driver storage area 5001 shown in FIG. 13 corresponding to the printer selected in S503 is secured in the external memory 209. Then, the filter config 336, filter 3300, basic INF 505, script file 3330, and device function text file 3320 of the OS common printer driver 500 are copied to the driver storage area 5001.
[0062] After installing the OS common printer driver 500, OS210 sends a request to the MFP501 again to obtain device information including the HWID or COID of the MFP501 (S505). Furthermore, OS210 dynamically generates an extended basic INF508 describing the HWID or COID obtained in S506 above, and applies it to the OS common printer driver 500 in a form that overwrites and extends the basic INF505. Note that the extended basic INF is created for each printer. Also, based on information obtained from the device, not limited to HWID and COID, OS210 may generate information to be set at the time of installing the OS common printer driver 500 and describe it in the extended basic INF508. Also, OS210 writes the content of the extended basic INF508 created in S506 above to the registry 353 (S507).
[0063] Next, OS210 checks whether an extended INF package having the HWID and COID obtained in S506 above exists in an external server (for example, a server managed by the provider of OS210, for example, server 104 in FIG. 1) (S508). And when it is determined that the corresponding extended INF package does not exist in the external server (No in S508), OS210 ends the processing of this flowchart (S512).
[0064] On the other hand, in S508 above, when it is determined that an extended INF package having the HWID and COID obtained in S506 above exists in the external server (Yes in S508), OS210 proceeds to S509. In S509, OS210 obtains the extended INF package 503 and applies it to the OS common printer driver 500 in a form that overwrites and extends the above-described driver storage area 5001 (FIG. 13).
[0065] The extended INF package 503 includes an extended INF5030, a script file 3331, and a device function text file 3321. The extended INF5030 contains installation setting information such as HWID, COID, extended ID, printed extension app ID, InterfaceID, custom setting file identifier, and the installation destinations of script file 3331 and device function text file 3321. Note that the extended ID represents the identifier of the extended INF. InterfaceID represents the Interface that the printed extension app 300 can access. The custom setting file identifier represents an identifier that can identify the custom setting file included in the printed extension app 300.
[0066] Here, in the above-mentioned S509, an example where the printer vendor's own script file 3331 and device function text file 3321 are installed is shown. The script file 3331 contains the printer vendor's own prohibition logic, and the device function text file 3321 contains the printer 102's own capability information and prohibition information. The OS common printer driver 500 uses the script file 3331 and device function text file 3321 in the extended INF package 503 to overwrite and extend the script file 3330 and device function text file 3320 in the driver storage area 5001. Also, the extended INF package 503 contains the extended INF5030, and the OS210 applies it in a form that overwrites and extends the basic driver INF505 and extended basic INF508. Through the processing of S509, it is possible to utilize the vendor's own prohibition logic and the like from the OS common printer driver 500.
[0067] Next, the OS210 checks whether there is a printed extension app identifier in the extended INF5030 and whether a printed extension app 300 with a matching identifier exists in the above-mentioned external server (S510). That is, it checks whether the MFPUtility506 having the setting file 30011 with the printed extension app identifier described in the extended INF5030 exists in the external server.
[0068] If it is determined that the print extension application identifier does not exist in the extended INF5030 or the print extension application 300 that matches the identifier does not exist in the above-described external server (No in S510), the OS 210 ends the processing of this flowchart (S512).
[0069] On the other hand, if it is determined that the print extension application identifier exists in the extended INF5030 and the print extension application 300 that matches the identifier exists in the above-described external server (Yes in S510), the OS 210 proceeds to the processing in S511. In S511, the OS 210 downloads the print extension application (for example, MFPUtility506) that matches the print extension application identifier in the extended INF5030 from the above-described external server and installs it in the OS 210. Then, the processing of this flowchart is ended (S512). In the present embodiment, the case where the print extension application is automatically installed is exemplified, but the present invention is not limited thereto. For example, when it is determined Yes in S510, the user may be asked whether to install the print extension application.
[0070] By the above processing, the OS common printer driver 500 and the print extension application corresponding to the MFP 501 can be associated with each other. Although the example of the MFP 501 has been shown above, in a state where the extended basic INF508, the extended INF package 503, and the MFPUtility506 of the MFP 501 exist, the OS common printer driver 500 for other printers such as the MFP 502 can be installed. In this case, the extended basic INF, the extended INF, and the print extension application can be installed in the OS 210 in a separately managed state (for example, like the driver storage area 5002 shown in FIG. 13). FIG. 4 also shows a state in which the OS common printer driver 500, the MFP 502, the extended basic INF510, the extended INF package 513, and the print extension application for the MFP 502 are associated with each other. In this way, the OS common printer driver and a plurality of print extension applications can be associated with each other.
[0071] Here, with reference to FIG. 13, the configuration when the OS common printer driver is installed for a plurality of printers will be described. FIG. 13 is a diagram for explaining an example of the configuration when the OS common printer driver is installed for a plurality of printers in the first embodiment. Here, the case where a common printer driver for outputting a print job to the MFP501 and MFP502 shown in FIG. 4 is installed will be described.
[0072] First, assume that the OS common printer driver 500 is installed for the MFP501. At this time, first, the filter configuration 336, the filter 3300, the basic INF 505, the script file 3330, and the device function text file 3320 are copied to the driver storage area 5001. Further, the extended basic INF 508 is generated.
[0073] Next, the above-described extended INF 5030, the script file 3331, and the device function text file 3321 are downloaded from an external server and stored in the driver storage area 5001. At that time, the script file 3331 and the device function text file 3321 replace the script file 3330 and the device function text file 3320. Although the example in FIG. 13 shows the case of replacement, the script file 3330 and the device function text file 3320 may be saved in an extended form with the script file 3331 and the device function text file 3321 without replacement. Also, the contents of the basic INF 505, the extended basic INF 508, and the extended INF 5030 are written to the registry 353 as information for associating the printer driver, the print queue, and the print extension application 300. This will be described later with reference to FIG. 12.
[0074] Next, assume that the OS common printer driver 500 is installed for the MFP 502. At this time, the filter configuration 336, the filter 3300, the basic INF 505, the script file 3330, and the device function text file 3320 are copied to a driver storage area 5002 different from the driver storage area 5001. Further, an extended basic INF 510 is generated. Since the extended INF package 513 does not include a script file or a device function text file, only the script file 3330 and the device function text file 3320 of the OS common printer driver 500 are stored. Note that the driver storage area 5001 and the driver storage area 5002 may be one folder or a plurality of folders.
[0075] FIG. 12 is a diagram showing an example of the description content of the registry 353 in the first embodiment. The registry 353 is created for each print queue 308. An item 1201 is a queue name attribute, and the name of the print queue 308 is described. An item 1202 is an HWID column, and the HWID of the printer 102 is described. An item 1203 is an AppID column. In the AppID column, a print extension app identifier of the print extension app 300 associated with the print queue 308 is described.
[0076] An item 1204 is a policy column, and it is possible to set whether to start the print extension app corresponding to each print queue 308. An item 1205 is an InterfaceID column, and an ID that uniquely represents an interface that can be called by the print extension app 300 associated with the print queue 308 described in the extended INF is described.
[0077] Item 1206 is a custom setting file identifier column. The custom setting file identifier column 1206 contains the custom setting file identifiers described in the extended INF. Item 1207 is a driver column. The driver column 1207 contains a driver storage area. Based on the value of this driver column 1207, the file group in the driver storage area is associated with the settings for each print queue 308. Item 1208 is a port column, and the port information of the print destination of the print queue 308 is described here.
[0078] FIG. 11 is a diagram showing an example of PrintCapabilities generated based on the device function text file 332 stored in the printer driver used for printing. Note that, as shown in FIG. 13, the device function text file may be replaced with the device function text file in the extended INF package. When it is replaced, PrintCapabilities is generated from the replaced device function text file.
[0079] PrintCapabilities has multiple Options within one Feature. A Feature represents a configurable function. The Option within a Feature represents an option. The information 1101 shown in FIG. 11 exemplifies the Feature and Option of authenticated printing (secure printing). In this example, it is defined that two options, "ns0000:SecurePrint" and "ns0000:None", are selectable as the options of the Feature of JobSecurePrint.
[0080] Also, with reference to FIG. 10, the PrintTicket with the settings for authenticated printing will be described. FIG. 10 is a diagram showing an example of a PrintTicket with the settings for authenticated printing. In the PrintTicket, any of the setting values defined in PrintCapabilities is stored as the current print setting. Information 1001 indicates that the authentication print function that requests the input of a PIN during printing is set. In this example, since the Option encapsulated in the Feature of JobSecurePrint is "ns0000:SecurePrint", it indicates that the authentication print is set to "on". Note that when the authentication print is not set to on, "ns0000:None" is set in the Option.
[0081] Also, the element of psf:ParameterInit shown in Information 1002 indicates the value of the text input. In FIG. 10, an example is illustrated where the password "XXXXXX" is set for authentication printing via the print setting screen. Note that when no password is set via the print setting screen, it is assumed that the PrintTicket without the element of psf:ParameterInit is generated by the configuration module 331.
[0082] Subsequently, the printing using the printer 102 will be described with reference to FIGS. 9A and 9B. FIGS. 9A and 9B are diagrams for explaining the printing using the MFP501. Note that in this embodiment, an example of printing from the touch app 321 which is a UWP app is illustrated, but it is not limited thereto. It is also possible to perform printing from the desktop app 322.
[0083] FIG. 9A is an example of a screen that the touch app 321 displays on the display 207. The touch app 321 has an area for displaying content. Also, the menu key 900 is a key for displaying a menu. Here, a case where the menu is displayed is shown. A plurality of options are displayed in the menu, and the user can select the print key 901 from the menu. When it detects that the print key 901 has been selected, the touch app 321 requests the OS 210 to display a print dialog.
[0084] FIG. 9B(a) is a diagram showing an example of a print dialog displayed by the OS 210. The print dialog is a dialog for performing simple print settings displayed by the OS 210. The print dialog has an item 920 for print settings and an item 930 for print instructions. The user can select the item 920 to perform simple print settings.
[0085] The OS 210 obtains the PrintTicket set for the print queue 308 corresponding to the printer set as the commonly used printer from the configuration module 331 and displays it on the print dialog.
[0086] The name of the selected print queue is displayed in the item 921. The user can select one printer from the printer list 923 to switch the printer to be used. Further, if the printer to be printed is not displayed, by pressing the "Add Printer" in the item 924, a request can be sent by multicast within the network 103 for searching. After the search, a list of printers that can be printed is displayed, and by the user's selection, either the OS common printer driver or the printer driver provided by the printer vendor can be installed. As described above, in the printer list 923, a display item for selecting an installed printer and a display item for selecting a printer for which the setup process found by the search is not completed may be displayed together.
[0087] Also, the item 922 is an example of print settings set in simple print settings, and the user can select the item 922 to change the paper size to be used for printing. In addition, item 931 is a display item used when the detailed print settings UI section 304 provided by the print extension app 300 is called. When item 931 is clicked by the user, a detailed print settings event occurs, and a print dialog as shown in Fig. 9B(b) is displayed by the detailed print settings UI section 304. Hereinafter, the printer driver will be referred to as the OS common printer driver 500, and the print extension app will be described as MFPUtility 506.
[0088] Item 932 is a display item used when starting printing based on the content provided by the touch app 321. When the OS 210 detects that item 932, which is being displayed as a print dialog, has been pressed, it generates a print event. After the print event occurs, the touch app 321 collaborates with the OS 210 to generate an XPS file based on the content to be printed (also referred to as print content), and proceeds to the print process shown in the flowchart of Fig. 6. The specific control method in the print process will be described later using the flowcharts shown in Figs. 6 and 7.
[0089] Fig. 9B(b) is a diagram showing an example of the detailed print settings screen displayed by the detailed print settings UI section 304. Item 950 is the detailed print settings section, which is generated based on the PrintCapabilities and PrintTicket obtained from the OS common printer driver 500. These print settings are changed by receiving user operations and are confirmed by pressing the print confirmation button shown in item 951. After confirmation, the screen transitions to the print dialog shown in Fig. 9B(a).
[0090] Figs. 14A and 14B are flowcharts showing an example of the process of displaying the detailed print settings UI section when a detailed print settings event occurs. In S1400 of Fig. 14A, the OS 210 performs a print extension app search process. The details of the print extension app search process will be described using Fig. 14B.
[0091] At S1411 in FIG. 14B, the OS 210 reads the information of the registry 353 of the print queue 308 selected by the user. Next, the OS 210 checks whether a value (print extension app identifier) is described in the AppID column of the registry item 1203 of the registry read in S1411. If it is determined that the print extension app identifier is not described (in the case of No in S1412), the OS 210 determines that there is no print extension app associated with the selected print queue, and proceeds to S1416 for processing. At S1416, the OS 210 returns "False" to the calling process.
[0092] On the other hand, if it is determined that the print extension app identifier is described (in the case of Yes in S1412), the OS 210 proceeds to S1413 for processing. At S1413, the OS 210 searches for a print extension app that matches the print extension app identifier in the storage destination where all touch apps 321 are installed within the OS 210.
[0093] Next, the OS 210 determines whether a print extension app that matches the print extension app identifier exists (S1414). If it is determined that a print extension app that matches the print extension app identifier does not exist (in the case of No in S1414), the OS 210 determines that there is no print extension app 300 associated with the print queue, and proceeds to S1416 for processing.
[0094] On the other hand, if it is determined that a print extension app that matches the print extension app identifier exists (in the case of Yes in S1414), the OS 210 determines that there is a print extension app 300 associated with the print queue, and proceeds to S1415 for processing.
[0095] At S1415, the OS 210 returns "True" and information (e.g., AppID) for identifying the print extension app to be launched to the calling process. With the above, the print extension app search process (S1400) ends. Next, return to the description of FIG. 14A.
[0096] In S1401, the OS 210 determines whether the return value of the print extension app search process is "True". When it is determined that the return value is "True" (Yes in S1401), the OS 210 proceeds to S1402.
[0097] In S1402, the OS 210 starts the print extension app 300 based on the information for identifying the print extension app to be started. In this embodiment, an AppID is exemplified as an example of the information for identifying the print extension app to be started, but it is not limited thereto. For example, the information for identification may be a file path indicating the storage location of the print extension app.
[0098] In S1403, the print extension app 300 receives the PrintTicket and PrintCapabilities generated from the script file 333 and the device function text file 332 from the OS 210, and displays the detailed print settings UI section 304. At this time, the OS 210 acquires the storage destinations of the script file 333 and the device function text file 332 by referring to the registry 353. Then, the OS 210 acquires the script file 333 and the device function text file 332 corresponding to the print queue 308.
[0099] Next, in S1404, the print extension app 300 accepts changes to the print settings as a user operation. Next, in S1405, the print extension app 300 passes the print settings changed by the above user operation to the OS 210 and ends the processing of this flowchart. Through the processing of S1402 to S1405, even when using the OS common printer driver 500, the print extension app 300 provided by the vendor can display a user interface for print settings and perform editing of the PrintTicket. For example, the vendor can implement a flexible user interface as the print extension app 300. Therefore, for example, even for users using the OS common printer driver, a user interface with an operation feeling similar to the V3 or V4 printer drivers conventionally provided by the vendor can be provided.
[0100] On the other hand, in the above S1401, if it is determined that the return value is not "True" (it is "False") (in the case of No in S1401), the OS 210 proceeds to the process in S1406. In S1406, the OS 210 displays a detailed settings UI for the OS standard. The detailed settings of the OS standard have the characteristic that only simple settings that are not dependent on the printer vendor can be made as compared with the print extension app 300. The print settings displayed in S1406 are based on the PrintCapabilities and the PrintTicket indicating the current print settings generated based on the printer capability information (attribute information) obtained based on the mechanism of a predetermined print protocol (for example, IPP) supported by the common printer driver 500. Here, the case where the common printer driver 500 is a printer driver compliant with IPP will be described in detail as an example. In this case, the standard capabilities of the printer are obtained using the printer attribute request operations (Get-Printer-Attributes Operations) defined in RFC2911. Specifically, in the installation process described in FIG. 5, the common printer driver 500 transmits a Get-Printer-Attributes Request to the printer selected by the user. Subsequently, the common printer driver 500 obtains, as a response to the request, attribute information indicating the capabilities of the printer defined in IPP, converts the obtained attribute information file into a device function text file, and stores it in the driver storage area 5001. Note that the PrintTicket and PrintCapabilities are generated by the printing system 337 based on the device function text file as described with reference to FIGS. 10 and 11. Next, in S1407, the OS 210 accepts a change in the print settings as a user operation and ends the processing of this flowchart.
[0101] FIG. 6 is a flowchart showing an example of processing executed in response to the occurrence of a printing event. Note that the application that causes the printing event may be the touch application 321 or the desktop application 322. Further, the processing of this flowchart starts from when the OS 210 transfers the XPS file generated in cooperation with the application 212 that caused the printing event to the spooler 325. When the transfer of the XPS file is completed, the processing of this flowchart is started.
[0102] In S601, the OS 210 performs the print extension application search process described with reference to FIG. 14B. Next, in S610, the OS 210 determines whether the return value of the print extension application search process is "True". If it is determined that the return value is not "True" (i.e., "False") (No in S610), the OS 210 proceeds to S603.
[0103] On the other hand, if it is determined that the return value is "True" (Yes in S610), the OS 210 proceeds to S602. In S602, the OS 210 executes the application startup process at printing (startup process of the WF function). Details of this process will be described later with reference to FIG. 7. When a series of processes related to the above application startup process at printing (startup process of the WF function) is completed, the OS 210 proceeds to S603.
[0104] In S603, the filter pipeline manager 335 of the OS 210 acquires the PrintTicket and the XPS file from the spooler 325. In S604, the filter pipeline manager 335 reads the filter 330 corresponding to the printer driver 211 used for printing from the external memory 209 based on the definition of the filter configuration 336 and expands it in the RAM 202.
[0105] Next, in S605, the filter pipeline manager 335 inputs the XPS file into the filter expanded in S604 above, and causes the filter to execute the conversion process. Note that the conversion process may be performed using a plurality of filters. Further, the filter pipeline manager 335 transfers the obtained PDL as a result of the conversion to the spooler 325, and ends the processing of this flowchart.
[0106] After the PDL is transferred, the spooler 325, in cooperation with the network I / F 214, transmits the print job including the converted PDL and the PrintTicket to the printer 102. The printer 102 that has received the print job transmitted by the list process executes a printing process based on the print job.
[0107] Subsequently, with reference to FIG. 7, the activation process of the WF function executed in S602 will be specifically described. FIGS. 7A and 7B are flowcharts showing an example of a print-time application activation process (activation process of the WF function). In S701, the OS 210 reads the setting of the policy column (item 1204) of the registry 353 corresponding to the selected queue.
[0108] Next, in S702, the OS 210 determines whether or not a setting (ON) for enabling the activation of the background task is stored in the policy column of the registry 353. If it is determined that the setting (ON) for enabling the activation of the background task is not stored in the policy column of the registry 353 (the setting (OFF) for disabling the activation is stored) (No in S702), the OS 210 ends the processing of this flowchart. That is, a series of activation processes of the WF function are skipped, and the processing proceeds to S603 and subsequent steps in FIG. 6.
[0109] On the other hand, if it is determined that the setting (ON) for enabling the activation of the background task is stored in the policy column of the registry 353 (Yes in S702), the OS 210 proceeds to S703 for processing.
[0110] In S703, the OS 210 activates the print startup app launcher 350. In S704, the print startup app launcher 350 requests the OS 210 to activate the print startup background task section 305, which is a component of the print extension app 300. Specifically, the print startup app launcher 350 identifies the print extension app to be activated based on the information (AppID) for identifying the print extension app to be launched. Subsequently, the print startup app launcher 350 controls, in cooperation with the touch app execution environment 301, to activate the component that executes the background task of the identified print extension app. In this embodiment, it is assumed that the component of the print startup background task section 305 of the print extension app 300 is activated.
[0111] In S705, the print startup background task section 305 requests the OS 210 to activate the component of the print startup UI section 303, which is a foreground task. The OS 210 that has received the request allocates the print startup UI section 303 provided by the print extension app 300 as a thread in the thread pool 355 and causes a transition to a state where the screen can be displayed on the display 207 by the print startup UI section 303. Also, the print startup UI section 303 acquires a delay object to continue the interaction with the user. The processing of the print startup UI section 303 is shown in FIG. 7B below.
[0112] In S706, the print startup UI section 303 displays a progress screen as shown in FIG. 8(A) on the display 207. FIG. 8 is a diagram showing an example of the screen displayed on the display 207 by the print startup UI section 303, and FIG. 8(A) shows an example of the progress screen.
[0113] As shown in FIG. 8(A), a progress ring shown at 801 is displayed on the progress screen. The print startup UI unit 303 indicates to the user that the process is being executed by displaying movements such as continuously rotating the progress ring 801. Further, the print startup UI unit 303 displays a string such as "Printing..." shown at 802 to indicate to the user that a process related to printing is being executed.
[0114] Return to the description of FIG. 7. In S707, the print startup UI unit 303 requests the OS 210 to start an analysis thread that is executed asynchronously with respect to the UI thread. The OS 210 allocates the analysis thread in the thread pool 355. The analysis thread acquires the PrintTicket from the configuration module 331 and attempts to analyze the acquired PrintTicket. Note that, in the present embodiment, a case where the analysis process and the UI control process are controlled by separate threads is illustrated, but the present invention is not limited thereto.
[0115] In S708, the print startup UI unit 303 determines whether an authenticated print (secure print) is set in the PrintTicket based on the result of attempting to analyze the PrintTicket in S707. Then, when it is determined that the authenticated print is not set (in the case of No in S708), the print startup UI unit 303 proceeds to S711.
[0116] On the other hand, when it is determined that the authenticated print is set (in the case of Yes in S708), the print startup UI unit 303 proceeds to S709. In S709, the UI thread of the print startup UI unit 303 switches the screen to be displayed on the display 207 to an input screen as shown in FIG. 8(B).
[0117] FIG. 8(B) is a diagram showing an example of the input screen. In FIG. 8(B), region 810 shows a text box for inputting authentication information. The user inputs a password, PIN code, etc. into region 810. Button 811 is an OK button, and it is a key for finalizing the authentication information input in region 810 when it receives an operation event such as a click. This OK button 811 may be displayed in a grayed-out state until authentication information is input into region 810. Cancel button 812 is a key used when canceling printing. When the cancel key 812 is pressed, the execution of the printing job is aborted.
[0118] Next, return to the description of FIG. 7. In S710, the UI thread of the print-time startup UI unit 303 receives a user operation and changes the settings of PrintTicket based on the user operation. Specifically, based on the input authentication information, the information 1002 illustrated in FIG. 10 is rewritten. Also, if there is no attribute corresponding to the information 1002, the attribute is added to PrintTicket. Also, the print-time startup UI unit 303 calls a method for releasing a delay object in order to notify the OS 210 that the interaction with the user has been completed. When the delay object is released and the termination process of the foreground task is completed, the main body of the process transitions to the background task.
[0119] Subsequently, in S711, the print-time startup UI unit 303 passes the PrintTicket with the settings changed and the XPS file to the background task unit 305. The background task unit 305 that has received the PrintTicket and the XPS file sends the PrintTicket and the XPS file to the filter pipeline manager 335 to complete the processing related to a series of WF functions.
[0120] Note that in S702 of FIG. 7A, if it is determined not to start a background task, it is assumed that the PrintTicket acquired from the module 331 and the XPS file generated in response to the print instruction are sent to the filter pipeline manager 335.
[0121] As described above, in response to the print-time startup background task unit 305, which is a component constituting the background task, being called by the OS, the print-time startup UI unit 303, which is the foreground task, can be called to display the UI. Therefore, after the print-time startup UI unit 303, which is the foreground task, acquires the delay object, the PrintTicket can be analyzed by the print-time startup UI unit 303. Thus, it becomes possible to suppress the print process from being aborted due to the inability to complete the processing by the background task. In addition, after the print-time startup UI unit 303 is called, a UI indicating that the process is in progress, such as a progress ring, is displayed. Therefore, it is possible to clearly notify the user that the process is being executed. In FIGS. 7 and 8, an example of the user interface provided by the print extension application 300 after printing is the input of the password for authenticated printing (secure printing), but it is not limited to this. For example, the print-time startup UI unit 303 of the print extension application 300 can also provide a print preview before output.
[0122] <Second Embodiment> In the above-described first embodiment, as shown in FIG. 13, since the same driver component is installed in the two driver storage areas, there are overlapping parts in the components of the driver. In the second embodiment, a configuration for storing the components of the driver in the driver storage area excluding this overlapping part will be described. Note that the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof will be omitted.
[0123] FIG. 15 is a diagram for explaining an example of the configuration when the OS common printer driver is installed for a plurality of printers in the second embodiment, and the same components as those in FIG. 12 are denoted by the same reference numerals. Here, a case where one driver is installed in association with the MFP 501 and the MFP 502 shown in FIG. 4 will be described.
[0124] The driver storage area 5001 has a filter configuration 336, a filter 3300, a basic INF 505, a script file 3330, and a device function text file 3320.
[0125] Item 15001 is a storage area (folder) where a group of extension files for the MFP 501 is stored. In this folder, the folder name is generated based on a GUID (Globally Unique Identifier), and inside it, an extended INF 503, a script file 3331, a device function text file 3321, etc. are stored.
[0126] Item 15002 is a storage area (folder) where a group of extension files for the MFP 502 is stored. Similar to the folder of item 15001, the folder name of this folder is generated based on a GUID. Since there are no script files and device function text files for the MFP 502, these files are not created in this folder. If there are no extension files for the MFP 502, this folder is not created either.
[0127] FIG. 16 is a diagram showing an example of the description content of the registry 353 in the second embodiment, and the same components as those in FIG. 12 are denoted by the same reference numerals. 16001 is a storage destination for extension files. The extension file storage destination 16001 indicates the storage destinations of extension files used by the print queue, such as item 15001 and item 15002 described in FIG. 15. The OS 210 uses the storage destination information described in the extension file storage destination 16001 to obtain information necessary for generating and prohibiting PrintTicket and PrintCapabilities as needed.
[0128] With the above configuration, according to the second embodiment, it is possible to install without duplicating the components of the same driver in the driver storage area. Also, it is possible to associate and install two or more different printers with the components of one common printer driver 500.
[0129] In each of the above embodiments, a configuration in which the printer and the client computer 101 are connected via a network has been described. However, the present invention is also applicable to a configuration in which the printer and the client computer 101 are connected via an interface such as USB. In this case, in the search process of S501 in FIG. 5, search shall be performed including printers connected via an interface such as USB.
[0130] As described above, according to each embodiment, it is possible to appropriately associate an extension application such as a UWP Device Apps (print extension app) corresponding to an individual printer with an OS common printer driver in the V4 driver format. Thereby, it becomes possible to control printers provided by various vendors with high customizability including their specific functions using a common printer driver. Further, when an extension application corresponding to the printer selected by the user is not installed or a policy not to use the extension application is set, the printing settings can be made based on the OS standard setting UI provided by the OS 210. Therefore, even when a printer that does not provide an extension application is selected, it is possible to display a printing setting UI corresponding to the capabilities of the printer obtained based on a predetermined printing protocol (for example, IPP, etc.) supported by the common printer driver.
[0131] Note that the configurations and contents of the various types of data described above are not limited to this, and may be configured with various other configurations and contents according to the use and purpose. For example, in each embodiment, information for specifying an extended application or a destination printer is stored in the registry 352, and an example is given where the OS 210 refers to the registry 352 to determine the extended application to be launched, but it is not limited to this. For example, the association information in FIGS. 12 and 15 may be stored in a storage area accessible from the printing system 337, the printer driver 211, etc. In this case, the printing system 337 of the OS 210 is the main body, and the activation of the extended application is realized by utilizing the common framework and API of the OS, etc. In this case, there is no need to write information to the registry database that may affect the entire system. Therefore, there is an effect that the user experience regarding printing can be enhanced while minimizing the impact on the system. Although one embodiment has been described above, the present invention can take an embodiment as, for example, a system, an apparatus, a method, a program, or a storage medium, etc. Specifically, it may be applied to a system composed of a plurality of devices, or may also be applied to an apparatus composed of a single device. Also, all configurations combining the above-described embodiments are also included in the present invention.
[0132] (Other Embodiments) The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or an apparatus via a network or a storage medium, and having one or more processors in the computer of the system or the apparatus read and execute the program. It can also be realized by a circuit (for example, an ASIC) that realizes one or more functions. Also, the present invention may be applied to a system composed of a plurality of devices or to an apparatus composed of a single device. The present invention is not limited to the above-described embodiments, and various modifications (including organic combinations of each embodiment) are possible based on the gist of the present invention, and they are not excluded from the scope of the present invention. That is, all configurations combining the above-described embodiments and their modified examples are also included in the present invention.
Explanation of Signs
[0133] 210 OS 300 Print Extension Application 500 OS Common Printer Driver 501,502 MFP 503,513 Extended INF Package 506,507 MFPUtility 508,510 Extended Basic INF
Claims
1. A program, comprising: causing a computer of an information processing apparatus to:[[]] associate a first printing setting application that is specified by identification information of a first printing apparatus and acquired from a server, and that causes the information processing apparatus to acquire capability information from the first printing apparatus according to Internet Printing Protocol (IPP), with the common driver that supports generating a print job conforming to IPP; and causing the computer to execute a process of associating a second printing setting application that is specified by identification information of a second printing apparatus different from the first printing apparatus and acquired from the server, and that causes the information processing apparatus to acquire capability information from the second printing apparatus according to IPP, with the common driver that supports generating a print job conforming to IPP, the second printing setting application being different from the first printing setting application.
2. The program according to claim 1, wherein the common driver is a driver that can be commonly used by the first printing apparatus provided by a first vendor and the second printing apparatus provided by a second vendor different from the first vendor.
3. The program according to claim 1 or 2, wherein the identification information is a hardware ID.
4. causing the computer of the information processing apparatus to further execute a process of searching for a printing apparatus.
5. The program according to any one of claims 1 to 3, wherein the first printing apparatus is a printing apparatus selected by a user from among a plurality of printing apparatuses found as a result of the search, and the program according to any one of claims 1 to 4, wherein the second printing apparatus is a printing apparatus selected by a user from among a plurality of printing apparatuses found as a result of the search.
6. causing the computer of the information processing apparatus to A step of transmitting print data generated by the common driver based on print setting values set via a first print setting screen provided by the first print setting application to the first printing device; A step of transmitting print data generated by the common driver based on print setting values set via a second print setting screen provided by the second print setting application to the second printing device; The program according to any one of claims 1 to 5, further characterized by causing the above to be executed.
7. On the computer of the information processing device, A step of transmitting, according to the Internet Printing Protocol, print data generated by the common driver based on print setting values set via a first print setting screen provided by the first print setting application to the first printing device; A step of transmitting, according to the Internet Printing Protocol, print data generated by the common driver based on print setting values set via a second print setting screen provided by the second print setting application to the second printing device; The program according to any one of claims 1 to 5, further characterized by causing the above to be executed.
8. A control method for an information processing device, comprising: A first print setting application identified by identification information of a first printing device and acquired from a server, the first print setting application causing the information processing device to acquire capability information from the first printing device according to the Internet Printing Protocol, and associating the first print setting application for supporting a common driver that generates a print job conforming to the Internet Printing Protocol with the common driver; A second printing setting application that is specified by identification information of a second printing device different from the first printing device and is acquired from the server, and causes the information processing device to acquire capability information from the second printing device according to the Internet Printing Protocol, and is for supporting the common driver that generates a printing job conforming to the Internet Printing Protocol, the information processing device control method characterized by including a step of associating a second printing setting application different from the first printing setting application with the common driver.
9. An information processing device, means for associating a first printing setting application that is specified by identification information of a first printing device and is acquired from the server, and causes the information processing device to acquire capability information from the first printing device according to the Internet Printing Protocol, and is for supporting the common driver that generates a printing job conforming to the Internet Printing Protocol, with the common driver; means for associating a second printing setting application that is specified by identification information of a second printing device different from the first printing device and is acquired from the server, and causes the information processing device to acquire capability information from the second printing device according to the Internet Printing Protocol, and is for supporting the common driver that generates a printing job conforming to the Internet Printing Protocol, with the common driver, the information processing device characterized by including the means.
Citation Information
Patent Citations
Information processing apparatus, information processing method, and computer program
JP2015135658A
Printer driver, information processing device, and image processing system
JP2018092583A