Application program, method, and information processing apparatus

The mechanism addresses the challenge of associating multiple UWP Device Apps with a common printer driver by acquiring and registering identification information for each printer, improving the convenience of using universal printer drivers across different vendors.

JP2025116085AActive Publication Date: 2025-08-07CANON KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2025087914
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-05-27
Publication Date
2025-08-07
Estimated Expiration
2038-06-29

AI Technical Summary

Technical Problem

Existing systems face difficulties in associating multiple UWP Device Apps with a common printer driver, particularly when using IPP-compliant mechanisms, due to varying communication methods and unique extensions among different vendors, leading to reduced customizability and convenience in printing.

Method used

A mechanism that includes identification information acquisition, extension program acquisition and installation, registration, and control means to associate an expansion program suited to each individual printer with a universal printer driver, enabling appropriate association and improved convenience.

Benefits of technology

This solution allows for the appropriate association of expansion programs with universal printer drivers, enhancing the convenience of using such drivers across multiple printers from different vendors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025116085000001_ABST
    Figure 2025116085000001_ABST
Patent Text Reader

Abstract

To appropriately associate extension applications according to individual printers with a common printer driver.SOLUTION: An OS 210 of a client computer 101 acquires an HWID of a printer designated by a user when setting an OS common printer driver to the printer (S501-S505), and downloads and installs an extension application 300 corresponding to the designated printer by using the HWID (S506-S511, Fig.4, Fig.13). The OS 210 registers, in a registry 353, information for associating the designated printer and the print extension application 300 with each other (S507, S509, Fig.12). When performing control related to the printer to which the OS common printer driver is set, the OS 210 controls start-up of the print extension application 300 by using the information registered in the registry 353 (Fig.6, Fig.7A, Fig.7B, Fig.14A, Fig. 14B).SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device. [Background technology]

[0002] A commonly known configuration is to use a printer driver to send print data to a printing device. An operating system (OS), which is the basic software, is installed on a host computer. The printer driver is configured according to the specifications defined by the OS and is called by the OS to operate.

[0003] By providing a printer driver that is suitable for a printing device that conforms to the specifications of the OS, a vendor that provides a printing device can provide a function that instructs the printer to print using the OS.

[0004] When using an OS older than Microsoft® Windows® 8, the printer driver is configured with an architecture called a V3 printer driver. A V3 printer driver can display a user interface (UI) when a user requests it, and provide functions that prompt the user to perform certain operations.

[0005] In recent years, an architecture called the V4 printer driver has emerged for Windows. Because V4 printer drivers emphasize security, the customizability of the printer driver itself is reduced compared to V3 printer drivers. For example, the configuration module mentioned above is provided by the OS, and vendors of printing devices can only provide setting files and script files for customizing the device's operation.

[0006] To compensate for this loss of customizability, vendors of printing devices can provide dedicated applications to support the functions of printer drivers. These applications are called UWP Device Apps (Universal Windows Platform Device Apps).

[0007] In UWP Device Apps, the vendor of the printing device provides metadata for each driver, called the device stage, which includes the driver's hardware ID and the UWP Device App's ID. This allows the UWP Device App and the driver to be associated.

[0008] UWP Device Apps can have a function called Workflow (WF) or PrintPreference. WF is a function that executes print-related processes in response to specific user operations. PrintPreference is a function that sets printer-specific print settings.

[0009] Furthermore, a printer driver known as a universal printer driver is known as a printer driver for controlling multiple types of printing devices with different functions (Patent Document 1). This printer driver can display an operation screen suitable for each individual printing device for each model or type.

[0010] Furthermore, efforts are being made to enable print data to be sent to printing devices without using printer drivers provided by the vendors that provide the printing devices. For example, Ubuntu (registered trademark) 17.04 includes a mechanism for sending print data to printing devices that support IPP Everyware (registered trademark) as a default OS function. IPP Everyware is a set of standards that enable printing using printing devices from various vendors and brands, and industry organizations are formulating and promoting the standards.

[0011] The universal printer driver disclosed in Patent Document 1 is provided by each vendor that provides a printing device. Therefore, a single universal printer driver can be used for multiple types of printing devices with different functions sold by the same vendor that provides the printing device.

[0012] However, it has been difficult to use a single Universal 7 printer driver to support printing devices from multiple vendors offering different printing devices. This is because each vendor uses a different communication method, PDL (Page Description Language) or JDL (Job Description Language), to exchange print data, making it difficult to unify them. Another factor is that each vendor has its own unique extensions to PDL and JDL, making it difficult to unify them. [Prior art documents] [Patent documents]

[0013] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-135658 Summary of the Invention [Problem to be solved by the invention]

[0014] As mentioned above, in recent years, there has been a growing interest in providing common printer drivers and print clients that use IPP-compliant mechanisms, such as IPP Everyware. However, when providing a common IPP-compliant printer driver, there is a problem in that it is difficult to use functions provided independently by vendors.

[0015] As mentioned above, in the V4 printing architecture and other standards, a mechanism is known in which dedicated applications are provided to support the functions of printer drivers in order to compensate for the reduced customizability. However, conventional association methods have only considered linking one dedicated application to one printer driver. As a result, the conventional method has the problem that it is not possible to associate multiple UWP Device Apps corresponding to individual printers with the common printer driver.

[0016] The present invention has been made to solve the above problems. It is an object of the present invention to provide a mechanism that enables appropriate association of an expansion program suited to each individual printer with a universal printer driver. Another object of the present invention is to provide a mechanism that improves the convenience of printing when using a universal printer driver. [Means for solving the problem]

[0017] The present invention is characterized by comprising: a first acquisition means for acquiring identification information capable of identifying the type of printing device when a common printer driver that can be used in common for a plurality of printing devices is set for one of the printing devices; a second acquisition means for acquiring an extension program corresponding to the printing device using the identification information acquired by the first acquisition means; an installation means for installing the extension program acquired by the second acquisition means; a registration means for registering, for each printing device for which the common printer driver is set, information associating the extension program corresponding to the printing device; and a control means for controlling the startup of the extension program corresponding to the printing device using the information registered in the registration means when controlling a printing device for which the common printer driver is set. [Effects of the Invention]

[0018] According to the present invention, it is possible to appropriately associate an expansion program for each printer with a universal printer driver, thereby improving the convenience of using the universal printer driver. [Brief explanation of the drawings]

[0019] [Figure 1] FIG. 1 is a diagram showing an example of a printing system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a hardware configuration diagram of a client computer according to the present embodiment. [Figure 3] FIG. 2 is a diagram illustrating the software configuration of a client computer according to the present embodiment. [Figure 4] 1 is a diagram showing the relationship between a printer, an OS-common printer driver, and a print extension application. [Figure 5] 10 is a flowchart of an installation process for an OS-wide printer driver. [Figure 6] 10 is a flowchart of a process executed in response to the occurrence of a print event. [Figure 7A] 10 is a flowchart of an application startup process (WF function startup process) when printing. [Figure 7B] 10 is a flowchart of an application startup process (WF function startup process) when printing. [Figure 8] FIG. 10 is a diagram showing an example of a screen displayed by a print startup UI unit. [Figure 9A] FIG. 4 is a diagram illustrating a screen for performing printing. [Figure 9B] FIG. 4 is a diagram illustrating a screen for performing printing. [Figure 10] FIG. 10 is a diagram showing an example of a PrintTicket in which authentication printing settings have been made. [Figure 11] FIG. 4 is a diagram showing an example of printer capability information PrintCapabilities. [Figure 12] FIG. 3 is a diagram showing an example of the contents of a registry according to the first embodiment. [Figure 13] FIG. 2 is a diagram illustrating a configuration in which an OS-compatible printer driver is installed for multiple printers in the first embodiment. [Figure 14A] 10 is a flowchart of a process for displaying a detailed print setting UI section. [Figure 14B] 10 is a flowchart of a process for displaying a detailed print setting UI section. [Figure 15] FIG. 10 is a diagram illustrating a configuration in which an OS-compatible printer driver is installed for a plurality of printers in the second embodiment. [Figure 16] FIG. 10 is a diagram showing an example of the contents of a registry according to the second embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0020] The following describes embodiments of the present invention with reference to the drawings. Note that the following embodiments do not limit the scope of the invention as claimed, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention. In this embodiment, a printer driver with a printer driver architecture called version 4 (V4), which has been introduced in Microsoft's Windows 8 and later versions of the operating system (OS), will be described as an example. Hereinafter, this printer driver will be referred to as a "V4 printer driver" or "V4 driver." Also, in this embodiment, a printer driver (hereinafter referred to as an "OS-cross-printer driver") that is provided as an OS function and can be used in common with printers provided by multiple printer vendors will be described. This OS-cross-printer driver will also be in the V4 driver format. However, the present invention is not limited to this.

[0021] First Embodiment First, the configuration of a printing system according to the present invention will be described with reference to 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 this embodiment includes a client computer 101, a server 104, a printer 102, and a printer 105. The devices can communicate with each other via a network 103, which may be 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 this embodiment and is configured, for example, by a personal computer (PC), etc. It is capable of transmitting print data in a page description language (PDL) format to the printers 102 and 105.

[0023] The server 104 is capable of distributing data to the client computer 101 . Printer 102 is a printing device (image forming device) that receives and prints print data in a page description language format. Printer 105, like printer 102, receives and prints print data in a page description language format. For example, printer 102 and printer 105 are printers provided by different vendors.

[0024] The printer 102 and the printer 105 may be single-function printers (SFP) with only a printing function, or multi-function printers (MFP) with printing, scanning, and copying functions. The number of printers may be one or three or more. Furthermore, the printer and the client computer 101 may be connected by a method other than a network. For example, the printer and the client computer 101 may be connected via a USB or the like.

[0025] Furthermore, the number of client computers 101 connected to the network 103 is not limited to one, but may be multiple. The client computer 101 can transmit print data to a printer 102 or the like.

[0026] FIG. 2 is a block diagram showing the hardware configuration of the client computer 101 in FIG. The client computer 101 has a control unit 200. The control unit 200 has 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 overall operation of the client computer 101.

[0027] The CPU 201 loads programs stored in the ROM 203 or the external memory 209 into the RAM 202 and executes them to perform various controls such as controlling a UI (user interface) screen, generating print data, and transferring print data. The ROM 203 stores control programs and boot programs executable by the CPU 201. The RAM 202 is the main storage memory of the CPU 201 and is used as a work area or a temporary storage area for loading various programs.

[0028] An external memory 209 connected to the control unit 200 via an 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. In this way, the hardware such as the CPU 201, ROM 203, RAM 202, and 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 (for example, a mouse), a touch input device, etc. The operation input device 205 functions as a reception unit that receives operations from a user. The display I / F 206 controls the display of a 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 a network I / F 214. The network I / F 214 can transmit print data to the printer via the network 103 and receive store applications, printer drivers, and the like from the server 104, etc. 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. The software configuration shown in Fig. 3 is realized by the CPU 201 of the client computer 101 loading a program stored in the 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 includes 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 application identifier of the print extension application 300 and the HWID (Hardware ID) of the print queue 308 of the printer driver provided by the printer vendor, and serves to associate the two. The print extension application 300 is an extension program provided by the printer vendor to support the functions of the printer driver, and is a dedicated application for each vendor or model.

[0035] It should be noted that the metadata 320 does not allow a printer driver to be associated with multiple print extension applications 300 in a one-to-many relationship. Since an OS-wide printer driver can print on multiple printers, it may be necessary to associate the OS-wide printer driver with multiple print extension applications 300. However, the method using the metadata 320 does not allow an OS-wide printer driver to be associated with multiple print extension applications 300. In this embodiment, a method of associating an OS-wide printer driver with multiple print extension applications 300 using a registry 353 or the like will be described in detail below.

[0036] The registry 353 is an area in which settings of the OS 210 are written. In the registry 353, values can be written using a key-and-value method, and settings for each print queue can be written. The registry 353 registers a policy setting indicating whether to enable or disable the startup of a background task by the print startup application launcher 350, an identifier of the print extension application 300 associated with the printer driver, and the like. Details will be described later with reference to FIG. 12. The settings registered in the registry 353 can be changed via a setting screen of the OS 210.

[0037] Next, the elements that make up the printing system 337 will be described. A print queue 308 is an area for temporarily storing print jobs when printing is performed using a printer present on the network 103, and multiple print queues can exist. In the example shown in Fig. 12, which will be described later, it is assumed that print queues 308 corresponding to MFPs 501 and 502 shown in Fig. 5, which will be described later, have been created.

[0038] The spooler 325 is a module that temporarily stores and manages XPS (XML Paper Specification) files, which are data to be printed from one of the applications 212. The XPS files stored in the spooler 325 are converted into PDL (Page Description Language) files through a filter pipeline manager 335 and then transmitted to the printer via 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 the print architecture (also called the "print system") provided by the OS 210. Based on the definition of the filter configuration 336, the OS 210 loads one or more filters 330, which are one of the elements that make up the printer driver 211, and generates a PDL using the one or more filters. The PDL can be, for example, Printer Control Language (PCL), Post Script (PS), or Portable Document Format (PDF).

[0040] The configuration module 331 is a module that generates and modifies PrintTickets (also called "print tickets"). The configuration module 331 also has a prohibition function that restricts settings that cannot be combined. The configuration module 331 also manages PrintCapabilities, which is printer capability information.

[0041] The detailed print setting UI unit 304, print-time startup background task unit 305, and print-time startup UI unit 303 of the print extension application 300, which will be described later, can call APIs provided by the configuration module 331. By calling the APIs, these units can obtain PrintTickets and PrintCapabilities in XML (Extensible Markup Language) format.

[0042] Furthermore, the V4 printer driver provides the OS 210 with a device function text file 332, which describes the prohibition rules and device functions, and a script file 333, 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 print-time activation application launcher 350 is a module that controls the execution of background tasks provided by the print-time activation background task unit 305 and the like. When the OS 210 detects that a user has input a print start instruction and performs printing, the print-time activation application launcher 350 activates the print-time activation background task unit 305. Note that if a setting that disables the activation of background tasks (policy is OFF) is stored in the registry 353, the OS 210 suppresses the execution of background tasks.

[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 a driver storage area 370. In this embodiment, it is assumed that an OS-wide printer driver 500 that supports printers from multiple vendors is installed as the printer driver. The OS-wide 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] The filter 330 is a filter that is called by the filter pipeline manager 335, and has the function of converting an input XPS file into a PDL file and outputting it. The filter configuration 336 is a definition file referenced by the filter pipeline manager 335, and describes the order in which one or more filters 330 are to be called.

[0046] The script file 333 and the device function text file 332 are files that are called by the configuration module 331 and allow the operation of the configuration module 331 to be customized. INF361 is a text file in which setting information for installing the printer driver 211 is written.

[0047] The thread pool 355 is a module that stores threads used when various applications 212 and modules within the OS 210 are executed.

[0048] The application execution environment 213 is made up of a desktop application execution environment 323 and a touch application execution environment 301 . The touch application execution environment 301 is an execution environment for executing a touch application 321, which is a type of application 212 described later and runs on the OS 210, and a print extension application 300. The touch application execution environment 301 is an execution environment for running UWP applications (UWP Device Apps) distributed from the server 104, and controls the execution of UWP applications. The print extension application 300 also supports 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 application 212 described later. The desktop application execution environment 323 controls the execution of, for example, a "Win32 / 64 application" or a ".NET application."

[0050] The applications 212 are 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 runs in the touch application execution environment 301. The touch application 321 is downloaded through an application distribution system made public on the Internet and installed on the client computer 101. The touch application 321 has a group of required modules packaged and signed, and API calls within the OS 210 are more restricted than those of the desktop application 322.

[0051] The print extension application 300 is a type of touch application 321, and operates on the touch application execution environment 301 in the same way as the touch application 321. The print extension application 300 is acquired by the OS 210 from an application distribution system via the Internet. The print extension application 300 of this embodiment has a print UI display function that displays an original customized UI when printing. The print extension application 300 can be associated with a printer driver provided by a printer vendor via metadata 320. When the print extension application 300 is associated with an OS-common printer driver 500, the association is made using the INF 361 or registry 353. Details will be described later using FIG. 4.

[0052] The print extension application 300 includes a tile application unit 302 , a detailed print setting UI unit 304 , a background task unit 305 activated at print time, and a UI unit 303 activated at print time. The tile application unit 302 is a UI unit that is executed in response to a user operation to start the extended application 300, and provides functions such as displaying the status of registered printers.

[0053] The detailed print settings UI unit 304 is a UI unit that is executed in response to receiving a detailed print settings event issued by the OS 210. The detailed print settings UI unit 304 generates and displays a UI for print settings based on the PrintTicket and PrintCapabilities acquired via an API from the configuration module 331. The detailed print settings UI unit 304 changes the settings of the PrintTicket as appropriate in accordance with user operations and returns them to the configuration module 331.

[0054] The print-time activation background task unit 305 is a component corresponding to a background task to be executed when a print event is issued.

[0055] The print-time activation background task unit 305 can obtain, read, and write a PrintTicket through the API of the configuration module 331. When using the WF function, the background task determines whether to activate the print-time activation UI unit 303 and, if necessary, requests the OS 210 to activate the print-time activation UI unit 303, which is a component of the foreground task. This allows, for example, the display of a password entry screen for authenticated printing (see, for example, FIG. 8B, described later). The print-time activation background task unit 305 can exchange values with the print-time activation UI unit 303 by reading and writing values changed in the app store 334. If it is determined not to activate the print-time activation UI unit 303, the print-time activation application launcher 350 generates print data without activating the print extension application 300.

[0056] The print startup UI unit 303 started by the background task can edit the XPS or PrintTicket that is the data to be printed and return it to the OS 210 . When a startup request is made to the OS 210 by the background task, the OS 210 starts the print startup UI unit 303. The print startup UI unit 303 can acquire a PrintTicket and PrintCapabilities, change their settings, and also acquire an XPS file of the data to be printed. When changing the XPS file, the edited XPS file must first be passed to the print startup background task unit 305 via the app store 334, and then the print startup background task unit 305 must return the edited XPS file to the OS 210. In this embodiment, the print startup UI unit 303 displays a UI for confirming printing-related information and a UI for prompting the user to input settings that have not yet been input (for example, a password input screen shown in FIG. 8(b) , which will be described later).

[0057] The setting file 362 is a file that describes setting values for the print extension application 300. A print extension application identifier that uniquely identifies the print extension application 300 and a custom setting file to be used are described. The custom setting file 363 is a setting file that describes the settings of services that the print extension application 300 can use for the printer driver.

[0058] Next, the relationship between the OS-compatible printer driver and the print extension application 300 will be described. FIG. 4 is a diagram showing an example of the relationship between the printer, the OS-compatible printer driver 500, and the print extension application 300. As shown in FIG. 5 is a flowchart showing an example of a process for associating the OS-common printer driver 500 with the print extension application 300. The processes in FIG. 5, and those in FIGS. 6, 7A, 7B, 14A, and 14B described later are realized by the CPU 201 loading into the RAM 202 and executing programs for implementing each module, component, and application stored in the external memory 209 or the like. When describing the control provided by each control module, component, and application, the description will be made with the respective units implemented by the CPU 201 as the subject. Furthermore, some processes, such as display, acceptance of user operations, and data transmission and reception, are realized by cooperation between the CPU 201, each I / F, and an input / output device connected to the I / F.

[0059] In FIG. 4, an MFP 501 (corresponding to, for example, the printer 102) and an MFP 502 (corresponding to, for example, the printer 105) each have an HWID or a COID (Compatible ID) as identification information that can identify the type of device. The OS-crossing printer driver 500 has a basic driver INF 505 that describes a filter 3300 and other functions related to basic printing. The PDL generated by the OS-crossing printer driver 500 is not limited to PCL or PS, and can be any standardized language format, such as PDF or PWG Raster. In this embodiment, the OS-crossing printer driver 500 and the printing system 337 work together to generate print jobs conforming to a specific print protocol and send the print jobs to each printer. For example, the specific print protocol is IPP (Internet Printing Protocol).

[0060] For example, when "Add Printer" 924 shown in FIG. 9B(a), which will be described later, is pressed, the OS 210 starts the processing of the flowchart shown in FIG. 5 (S500). Note that, as an example, a case where a printer to be used with the OS-common printer driver 500 is added from the print setting screen is illustrated here, but the present invention is not limited to this. For example, a printer to be used with the OS-common printer driver can also be added via a control screen for managing printers provided by the OS 210. First, the OS 210 sends a multicast inquiry to the network 103 and waits for a response from printers that can print (S501). In this embodiment, it is assumed that the MFP 501 and the MFP 502 have responded. The OS 210 receives responses from the printers in the network 103 and displays a UI such as a list (S502). Note that in this embodiment, a case where a search process is performed when the key 924 is pressed is illustrated as an example, but the present invention is not limited to this. For example, when a screen for selecting an output destination printer is displayed before printing, a list of both set up printers and printers found by the search but not yet set up may be displayed. In this case, set up printers and printers that have not yet been set up may be displayed in a distinguishable manner. After displaying the list, the OS 210 accepts user operations (S503).

[0061] After accepting the user's operation, the OS 210 installs the OS-wide printer driver 500 so that printing can be performed on the printer specified by the user's operation, and sets a port in the registry 353 (S504). For the sake of explanation, it is assumed here that the user's operation specifying "MFP 501" was accepted in S503. In this case, in the installation process of S504, a 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-wide printer driver 500 are copied to the driver storage area 5001.

[0062] After installing the OS-wide printer driver 500, the OS 210 again issues a request to the MFP 501 and acquires device information including the HWID or COID of the MFP 501 (S505). Furthermore, the OS 210 dynamically generates an extended basic INF 508 that describes the HWID or COID acquired in S506 above, and applies it to the OS-cross-printer driver 500 by overwriting and extending the basic INF 505 (S506). Note that an extended basic INF is created for each printer. The OS 210 may also generate information to be set when the OS-cross-printer driver 500 is installed based on information acquired from the device, not limited to the HWID or COID, and write the information in the extended basic INF 508. The OS 210 also writes the contents of the extended basic INF 508 created in S506 into the registry 353 (S507).

[0063] Next, the OS 210 checks whether an extended INF package having the HWID and COID acquired in S506 exists on an external server (e.g., a server managed by the provider of the OS 210, such as server 104 in FIG. 1) (S508). If it is determined that the corresponding extended INF package does not exist on the external server (No in S508), the OS 210 ends the processing of this flowchart (S512).

[0064] On the other hand, if it is determined in S508 that an extended INF package having the HWID and COID acquired in S506 exists on the external server (YES in S508), the OS 210 proceeds to S509. In S509, the OS 210 acquires the extended INF package 503 and applies it to the OS-wide printer driver 500 by overwriting and expanding the driver storage area 5001 (FIG. 13).

[0065] The extended INF package 503 includes an extended INF 5030 , a script file 3331 , and a device function text file 3321 . The extension INF 5030 describes setting information at the time of installation, such as the HWID, COID, extension ID, print extension application ID, Interface ID, custom setting file identifier, and installation destination of the script file 3331 and the device function text file 3321. The extension ID represents the identifier of the extension INF. The Interface ID represents an interface that can be accessed by the print extension application 300. The custom setting file identifier represents an identifier that can identify a custom setting file included in the print extension application 300.

[0066] Here, an example is shown in which a printer vendor's own script file 3331 and device function text file 3321 are installed in the above-mentioned step S509. The script file 3331 describes the printer vendor's proprietary prohibition logic, and the device function text file 3321 describes the printer 102's proprietary capability information and prohibition information. The OS-wide 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. The extended INF package 503 also includes an extended INF 5030, which the OS 210 applies by overwriting and extending the basic driver INF 505 and extended basic INF 508. The processing of S509 makes it possible for the OS-wide printer driver 500 to use the vendor's proprietary prohibition logic, etc.

[0067] Next, the OS 210 checks whether the print extension application identifier exists in the extended INF 5030 and whether a print extension application 300 with a matching identifier exists in the external server (S510). That is, it checks whether an MFP Utility 506 having a setting file 30011 in which the print extension application identifier described in the extended INF 5030 is described exists in the external server.

[0068] If it is determined that the print extension application identifier does not exist in the extension INF 5030, or that a print extension application 300 matching that identifier does not exist in the external server (No in S510), the OS 210 terminates the processing of this flowchart (S512).

[0069] On the other hand, if it is determined that the print extension application identifier exists in the extension INF 5030 and that a print extension application 300 with a matching identifier exists in the external server (YES in S510), the OS 210 proceeds to S511. In S511, the OS 210 downloads the print extension application (e.g., MFP Utility 506) with a matching print extension application identifier in the extension INF 5030 from the external server and installs it in the OS 210. The process of this flowchart then ends (S512). Note that, although the present embodiment illustrates an example in which the print extension application is automatically installed, the present invention is not limited to this. For example, if YES is determined in S510, the OS 210 may be configured to ask the user whether or not to install the print extension application.

[0070] Through the above processing, it is possible to associate the OS-wide printer driver 500 with the print extension application corresponding to the MFP 501. Although the above example has been shown for the MFP 501, it is also possible to install the OS-wide printer driver 500 for other printers such as the MFP 502 in a state where the extended basic INF 508, extended INF package 503, and MFP Utility 506 of the MFP 501 exist. In this case, the extended basic INF, extended INF, and print extension application can be installed in the OS 210 in a state where they are managed separately (for example, as in the driver storage area 5002 shown in FIG. 13). FIG. 4 also shows a state where the OS-wide printer driver 500, the MFP 502, the extended basic INF 510, the extended INF package 513, and the print extension application for the MFP 502 are associated with each other. In this way, it is possible to associate the OS-wide printer driver with multiple print extension applications.

[0071] Here, a configuration in which an OS-compatible printer driver is installed for a plurality of printers will be described with reference to FIG. 13 is a diagram illustrating an example of a configuration in which an OS-wide printer driver is installed for multiple printers in the first embodiment. Here, a case where a common printer driver that outputs print jobs to the MFP 501 and MFP 502 shown in FIG. 4 is installed will be described.

[0072] First, assume that an OS-wide printer driver 500 is installed on an MFP 501. At this time, a filter configuration 336, a filter 3300, a basic INF 505, a script file 3330, and a device function text file 3320 are copied to a driver storage area 5001. Furthermore, an extended basic INF 508 is generated.

[0073] Next, the aforementioned extension INF 5030, script file 3331, and device function text file 3321 are downloaded from the external server and saved in driver storage area 5001. At this time, script file 3331 and device function text file 3321 replace script file 3330 and device function text file 3320. Note that although the example in Fig. 13 shows a case where they are replaced, all of the script file 3330 and device function text file 3320 may be saved in a form that extends script file 3331 and device function text file 3321 without replacement. Furthermore, 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.

[0074] Next, assume that the OS-crossing printer driver 500 is installed on the MFP 502. At this time, the filter config 336, filter 3300, basic INF 505, script file 3330, and device function text file 3320 are copied to a driver storage area 5002 that is separate from the driver storage area 5001. Furthermore, an extended basic INF 510 is generated. Since the extended INF package 513 does not contain a script file or device function text file, only the script file 3330 and device function text file 3320 of the OS-crossing printer driver 500 are saved. The driver storage area 5001 and the driver storage area 5002 may be a single folder or multiple folders.

[0075] FIG. 12 is a diagram showing an example of the contents of the registry 353 in the first embodiment. The registry 353 is created for each print queue 308. Item 1201 is a queue name attribute, in which the name of the print queue 308 is written. Item 1202 is an HWID column, in which the HWID of the printer 102 is written. Item 1203 is an AppID column, in which the print extension application identifier of the print extension application 300 associated with the print queue 308 is written.

[0076] Item 1204 is a policy column, which allows setting of whether to launch the corresponding print extension application for each print queue 308. Item 1205 is an Interface ID column, which describes an ID that uniquely represents an interface that can be called by the print extension application 300 associated with the print queue 308 described in the extension INF.

[0077] Item 1206 is a custom setting file identifier column. The custom setting file identifier column 1206 lists the custom setting file identifier written in the extended INF. Item 1207 is a driver column. The driver column 1207 lists a driver storage area. The value of this driver column 1207 associates a group of files in the driver storage area with the settings for each print queue 308. Item 1208 is a port column, and port information for the print destination of the print queue 308 is listed here.

[0078] FIG. 11 is a diagram showing an example of PrintCapabilities generated based on the device capability text file 332 stored in the printer driver used for printing. As shown in Figure 13, the device capability text file may be replaced with a device capability text file in an extension INF package. If replaced, PrintCapabilities is generated from the replaced device capability text file.

[0079] PrintCapabilities has multiple options in one feature. Feature represents a configurable function. An Option within a Feature represents a choice. 11 illustrates an example of a feature and option for authentication printing (secure printing). In this example, it is defined that two options, "ns0000:SecurePrint" and "ns0000:None," can be selected as options for the JobSecurePrint feature.

[0080] Next, a PrintTicket for which authentication printing has been set will be described with reference to FIG. FIG. 10 shows an example of a PrintTicket in which authentication printing settings have been made. In the PrintTicket, one of the setting values defined in PrintCapabilities is stored as the current print setting. Information 1001 indicates that the authentication print function, which requires the entry of a PIN when printing, is set. In this example, the Option included in the JobSecurePrint Feature is "ns0000:SecurePrint," which indicates that authentication print is set to "On." If authentication print is not set to On, the Option is set to "ns0000:None."

[0081] The psf:ParameterInit element shown in information 1002 indicates the value of the text input. Fig. 10 illustrates an example in which the password "XXXXXX" is set for authenticated printing via the print setting screen. If a password is not set via the print setting screen, the configuration module 331 generates a PrintTicket that does not include the psf:ParameterInit element.

[0082] Next, printing using the printer 102 will be described with reference to FIGS. 9A and 9B. 9A and 9B are diagrams for explaining printing using the MFP 501. FIG. In this embodiment, printing is performed from the touch application 321, which is a UWP application, but the present invention is not limited to this. Printing can also be performed from the desktop application 322.

[0083] 9A is an example of a screen that touch application 321 displays on display 207. Touch application 321 has an area for displaying content. Menu key 900 is a key for displaying a menu. Here, the case where the menu is displayed is shown. The menu displays multiple options, and the user can select print key 901 from the menu. When it is detected that the print key 901 has been selected, the touch application 321 sends a request to the OS 210 to display a print dialog box.

[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 making simple print settings that is 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 item 920 to make simple print settings.

[0085] The OS 210 acquires from the configuration module 331 the PrintTicket set for the print queue 308 corresponding to the printer set as the default printer, and displays it on the print dialog.

[0086] Item 921 displays the name of the selected print queue. The user can switch the printer to be used by selecting one printer from the printer list 923. Furthermore, if the printer the user wants to print to is not displayed, the user can press and instruct "Add Printer" in item 924 to send a request via multicast within the network 103 and perform a search. After the search, a list of printers that can be used for printing is displayed, and the user can select one to install either an OS-wide printer driver or a printer driver provided by the printer vendor. As mentioned above, the printer list 923 may display both a display item for selecting an installed printer and a display item for selecting a printer found in the search for which the setup process has not yet been completed.

[0087] Also, item 922 is an example of print settings set in simple print settings, and the user can select item 922 to change the paper size used for printing. Item 931 is a display item used when calling up the advanced print setting UI unit 304 provided by the print extension application 300. When the user clicks item 931, an advanced print setting event occurs, and a print dialog such as that shown in FIG. 9B(b) is displayed by the advanced print setting UI unit 304. Note that in the following description, the printer driver refers to the OS-wide printer driver 500, and the print extension application refers to the MFP Utility 506.

[0088] An item 932 is a display item used when starting printing based on content provided by the touch application 321. When the OS 210 detects that item 932 displayed as a print dialog has been pressed, it generates a print event. After the print event occurs, the touch application 321 works with the OS 210 to generate an XPS file based on the content to be printed (also called print content), and proceeds to the print processing shown in the flowchart in Fig. 6. A specific control method for the print processing will be described later using the flowcharts shown in Figs. 6 and 7.

[0089] FIG. 9B(b) is a diagram showing an example of a detailed print setting screen displayed by the detailed print setting UI unit 304. As shown in FIG. Item 950 is a detailed print setting section, which is generated based on the PrintCapabilities and PrintTicket obtained from the OS-wide printer driver 500. These print settings are changed by accepting 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] 14A and 14B are flowcharts showing an example of a process for displaying the advanced print setting UI section when an advanced print setting event occurs. 14A, the OS 210 performs a print extension application search process. Details of the print extension application search process will be described with reference to FIG. 14B.

[0091] In step S1411 of FIG. 14B, the OS 210 reads information from the registry 353 of the print queue 308 selected by the user. Next, the OS 210 checks whether a value (print extension application identifier) is entered in the AppID column of item 1203 of the registry read in S1411. If it is determined that a print extension application identifier is not entered (No in S1412), the OS 210 determines that there is no print extension application associated with the selected print queue, and proceeds to S1416. In S1416, the OS 210 returns "False" to the calling process.

[0092] On the other hand, if it is determined that the print extension application identifier is described (Yes in S1412), the OS 210 advances the process to S1413. In step S1413, the OS 210 searches for a print extension application that matches the print extension application identifier in the storage destinations in which all touch applications 321 are installed within the OS 210.

[0093] Next, the OS 210 determines whether a print extension application that matches the print extension application identifier exists (S1414). If it is determined that a print extension application that matches the print extension application identifier does not exist (No in S1414), the OS 210 determines that there is no print extension application 300 associated with the print queue, and proceeds to S1416.

[0094] On the other hand, if it is determined that a print extension application matching the print extension application identifier exists (Yes in S1414), the OS 210 determines that there is a print extension application 300 associated with the print queue, and proceeds to S1415.

[0095] In step S1415, the OS 210 returns "True" to the caller and information for identifying the print extension application to be started (for example, AppID) to the caller process. This completes the print extension application search process (S1400). Now, we return to the description of FIG.

[0096] In S1401, 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 “True” (Yes in S1401), the OS 210 proceeds to S1402.

[0097] In S1402, the OS 210 launches the print extension application 300 based on information for identifying the print extension application to be launched. Note that in this embodiment, an AppID is used as an example of information for identifying the print extension application to be launched, but the information is not limited to this. For example, the information for identification may be a file path indicating the storage location of the print extension application.

[0098] In step S1403, the print extension application 300 receives the PrintTicket and PrintCapabilities generated from the script file 333 and the device capability text file 332 from the OS 210, and displays the detailed print setting UI section 304. At this time, the OS 210 acquires the save destination of the script file 333 and the device capability text file 332 by referencing the registry 353. The OS 210 then acquires the script file 333 and the device capability text file 332 corresponding to the print queue 308.

[0099] Next, in S1404, the print extension application 300 accepts a change in print settings as a user operation. Next, in S1405, the print extension application 300 passes the print settings changed by the user operation to the OS 210, and the processing of this flowchart ends. The processing of S1402 through S1405 enables the vendor-provided print extension application 300 to display a user interface for print settings and edit a PrintTicket, even when using the OS-crossing printer driver 500. For example, the vendor can implement a flexible user interface as the print extension application 300. Therefore, for example, even for users using an OS-crossing printer driver, it becomes possible to provide a user interface with an operational feel similar to that of the V3 or V4 printer drivers conventionally provided by vendors.

[0100] On the other hand, if it is determined in S1401 above that the return value is not "True" (is "False") (No in S1401), the OS 210 advances the process to S1406. In S1406, the OS 210 displays an OS-standard advanced settings UI. Compared to the print extension application 300, the OS-standard advanced settings are characterized by only allowing simple settings that are independent of the printer vendor. The print settings displayed in S1406 are displayed based on PrintCapabilities generated based on printer capability information (attribute information) acquired based on a predetermined printing protocol (e.g., IPP) supported by the universal printer driver 500, and a PrintTicket indicating the current print settings. Here, a detailed description is given using an example in which the universal printer driver 500 is an IPP-compliant printer driver. In this case, the printer's standard capabilities are acquired using the printer attribute request operation (Get-Printer-Attributes Operations) defined in RFC2911. Specifically, in the installation process described with reference to FIG. 5, the universal printer driver 500 sends a Get-Printer-Attributes Request to the printer selected by the user. Next, in response to the request, the universal printer driver 500 acquires attribute information indicating the printer capabilities defined by IPP, converts the acquired attribute information file into a device capabilities 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 capabilities text file, as described with reference to Figures 10 and 11. Next, in step S1407, the OS 210 accepts a change in print settings as a user operation, and ends the processing of this flowchart.

[0101] 6 is a flowchart showing an example of processing executed in response to the occurrence of a print event. The application that triggers the print event may be either the touch application 321 or the desktop application 322. The processing of this flowchart begins when the OS 210 transfers the XPS file, which it has generated in cooperation with the application 212 that triggered the print event, to the spooler 325. When the transfer of the XPS file is complete, the processing of this flowchart begins.

[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" ("False") (No in S610), the OS 210 proceeds to S603.

[0103] On the other hand, if the return value is determined to be "True" (Yes in S610), the OS 210 advances the process to S602. In step S602, the OS 210 executes a print application startup process (a WF function startup process). Details of this process will be described later with reference to FIG. When the series of processes related to the above-described print application startup process (WF function startup process) is completed, the OS 210 advances the process to step S603.

[0104] In step S603, the filter pipeline manager 335 of the OS 210 obtains the PrintTicket and the XPS file from the spooler 325. In step 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 loads it into the RAM 202 .

[0105] Next, in S605, the filter pipeline manager 335 inputs the XPS file into the filter developed in S604 and causes the filter to perform conversion processing. Note that this conversion processing may be performed using multiple filters. The filter pipeline manager 335 then transfers the PDL obtained as a result of the conversion to the spooler 325, and the processing of this flowchart ends.

[0106] After the PDL is transferred, the spooler 325 cooperates with the network I / F 214 to send a print job including the converted PDL and the PrintTicket to the printer 102. The printer 102 receives the print job sent by the list processing and executes printing processing based on the print job.

[0107] Next, the WF function activation process executed in S602 will be specifically described with reference to FIG. 7A and 7B are flowcharts showing an example of the application startup process (WF function startup process) during printing. In step 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 a setting (ON) that enables the activation of a background task is stored in the policy column of the registry 353. If it is determined that a setting (ON) that enables the activation of a background task is not stored in the policy column of the registry 353 (a setting (OFF) that disables the activation is stored) (No in S702), the OS 210 ends the processing of this flowchart. In other words, the OS 210 skips a series of WF function activation processes and proceeds to S603 and subsequent steps in FIG. 6.

[0109] On the other hand, if it is determined that a setting (ON) that enables the activation of background tasks is stored in the policy column of the registry 353 (Yes in step S702), the OS 210 advances the process to step S703.

[0110] In step S703, the OS 210 starts the print startup application launcher 350. In S704, the print-time startup application launcher 350 requests the OS 210 to start the print-time startup background task unit 305, which is a component of the print extension application 300. Specifically, the print-time startup application launcher 350 identifies the print extension application to be started based on information (AppID) for identifying the print extension application to be started. Next, the print-time startup application launcher 350 cooperates with the touch application execution environment 301 to control the startup of a component that executes a background task of the identified print extension application. In this embodiment, it is assumed that the component of the print-time startup background task unit 305 of the print extension application 300 is started.

[0111] In step S705, the print-time startup background task unit 305 requests the OS 210 to start a component of the print-time startup UI unit 303, which is a foreground task. Upon receiving the request, the OS 210 assigns the print-time startup UI unit 303 provided by the print extension application 300 as a thread in the thread pool 355, and transitions the print-time startup UI unit 303 to a state where it can display a screen on the display 207. The print-time startup UI unit 303 also acquires a deferred object to continue interacting with the user. The processing of the print-time startup UI unit 303 is shown below in FIG. 7B.

[0112] In step S706, the print startup UI unit 303 displays a progress screen such as that shown in FIG. 8A and 8B are diagrams showing examples of screens displayed on the display 207 by the print startup UI unit 303, and FIG. 8A shows an example of a progress screen.

[0113] 8A, the progress screen displays a progress ring shown in 801. The print startup UI unit 303 notifies the user that processing is in progress by displaying a movement such as continuing to rotate the progress ring 801. The print startup UI unit 303 also displays a character string such as "Printing..." shown in 802 to notify the user that processing related to printing is in progress.

[0114] Returning to the explanation of Figure 7. In step S707, the print-time startup UI unit 303 requests the OS 210 to start an analysis thread that runs asynchronously with the UI thread. The OS 210 allocates the analysis thread within the thread pool 355. The analysis thread acquires a PrintTicket from the configuration module 331 and attempts to analyze the acquired PrintTicket. Note that, although this embodiment illustrates a case in which analysis processing and UI control processing are controlled by separate threads, the present invention is not limited to this.

[0115] In S708, the print startup UI unit 303 determines whether authentication printing (secure printing) is set in the PrintTicket based on the results of the PrintTicket analysis process attempted in S707. If it determines that authentication printing is not set (No in S708), the print startup UI unit 303 proceeds to S711.

[0116] On the other hand, if it is determined that authentication printing is set (Yes in S708), the print startup UI unit 303 advances the process to S709. In step S709, the UI thread of the print startup UI unit 303 switches the screen displayed on the display 207 to an input screen such as that shown in FIG. 8B.

[0117] FIG. 8B is a diagram showing an example of the input screen. 8(B), an area 810 indicates a text box for inputting authentication information. The user inputs a password, a PIN code, or the like in the area 810. A button 811 is an OK button, which is a key that confirms the authentication information input in the area 810 when an operation event such as a click is received. The OK button 811 may be displayed in gray out until authentication information is input in the area 810. The cancel button 812 is a key used to cancel printing. When the cancel key 812 is pressed, the execution of the print job is stopped.

[0118] Returning to the explanation of FIG. In step S710, the UI thread of the print startup UI unit 303 accepts a user operation and changes the PrintTicket settings based on the user operation. Specifically, the information 1002 shown in Fig. 10 is rewritten based on the input authentication information. If there is no attribute corresponding to the information 1002, the attribute is added to the PrintTicket. The print startup UI unit 303 also calls a method to release the deferred object to notify the OS 210 that the interaction with the user has been completed. Once the deferred object is released and the termination process of the foreground task is completed, the processing subject shifts to the background task.

[0119] Next, in step S711, the print startup UI unit 303 passes the PrintTicket and XPS file with the changed settings to the background task unit 305. Upon receiving the PrintTicket and XPS file, the background task unit 305 sends the PrintTicket and XPS file to the filter pipeline manager 335, completing the series of processes related to the WF function.

[0120] If it is determined in step S702 of FIG. 7A that the background task is not to be started, 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, the print-time startup background task unit 305, a component of a background task, can call the print-time startup UI unit 303, a foreground task, and display a UI when called by the OS. Therefore, after the print-time startup UI unit 303, a foreground task, acquires a deferred object, the print-time startup UI unit 303 can analyze the PrintTicket. This prevents the print process from being canceled due to the background task being unable to complete the process. Furthermore, after the print-time startup UI unit 303 is called, a UI indicating that the process is in progress, such as progress, is displayed. This allows the user to be clearly notified that the process is in progress. Note that, although FIGS. 7 and 8 illustrate an example of a user interface provided by the print extension application 300 after printing, the user interface is not limited to the above. 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 first embodiment described above, the same driver components are installed in two driver storage areas, resulting in overlapping driver components, as shown in Fig. 13. In the second embodiment, a configuration is described in which the driver components are stored in a driver storage area without these overlapping components. Note that the same components as in the first embodiment are denoted by the same reference numerals, and their description is omitted.

[0123] Fig. 15 is a diagram illustrating an example of a configuration in the second embodiment in which an OS-compatible printer driver is installed for multiple printers, and the same reference numerals are used for the same components as in Fig. 12. Here, a case in which one driver is installed in association with MFP 501 and 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) that stores a group of extension files for the MFP 501. In this folder, a folder name is generated based on a GUID (Globally Unique Identifier), and the extension INF 503, script file 3331, device function text file 3321, etc. are stored inside.

[0126] Item 15002 is a storage area (folder) that stores a group of extension files for the MFP 502. Like the folder for item 15001, the folder name for this folder is generated based on a GUID. Note that, since there are no script files or device function text files for the MFP 502, these files are not created in this folder. Note that, 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 contents of the registry 353 in the second embodiment, and the same reference numerals are used to denote the same elements as in FIG. An extension file storage destination 16001 indicates the storage destination of extension files used by the print queue, such as items 15001 and 15002 described in Fig. 15. The OS 210 uses the storage destination information described in the extension file storage destination 16001 as necessary to generate a PrintTicket and PrintCapabilities and obtain information necessary for restrictions.

[0128] With the above configuration, according to the second embodiment, it is possible to install the same driver components without duplicating them in the driver storage area. Also, it is possible to install one common printer driver 500 component in association with two or more different printers.

[0129] In the above embodiments, a configuration in which the printer and the client computer 101 are connected via a network has been described, but 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, the search process in S501 in Fig. 5 will search for printers connected via an interface such as USB.

[0130] According to the above-described embodiments, an extension application such as a UWP Device App (print extension application) corresponding to each printer can be appropriately associated with an OS-wide printer driver in the V4 driver format. This allows the common printer driver to control printers provided by various vendors with high customizability, including their unique functions. Furthermore, if an extension application corresponding to the printer selected by the user is not installed or if a policy that does not use extension applications is set, print settings can be configured based on the OS-standard setting UI provided by the OS 210. Therefore, even if a printer that does not provide an extension application is selected, a print setting UI corresponding to the printer's capabilities obtained based on a predetermined print protocol (e.g., IPP) supported by the common printer driver can be displayed.

[0131] The configuration and content of the various data described above are not limited to those described above, and may be configured in various ways depending on the application and purpose. For example, in each embodiment, information for identifying an extended application and a destination printer is stored in the registry 352, and the OS 210 references the registry 352 to determine which extended application to launch. However, this is not limiting. For example, the association information shown in FIGS. 12 and 15 may be stored in a storage area accessible from the printing system 337, the printer driver 211, or the like. In this case, the printing system 337 of the OS 210 takes the lead in launching the extended application by utilizing a common OS framework, API, or the like. This eliminates the need to write information to a registry database, which may affect the entire system. This has the effect of minimizing the impact on the system while improving the user's printing experience. Although one embodiment has been described above, the present invention can be embodied as, for example, a system, an apparatus, a method, a program, a storage medium, etc. Specifically, the present invention may be applied to a system made up of multiple devices, or may be applied to an apparatus made up of a single device. Furthermore, the present invention also includes any combination of the above embodiments.

[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 device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program.The present invention can also be realized by a circuit (e.g., ASIC) that realizes one or more functions. Furthermore, the present invention may be applied to a system made up of multiple devices, or to an apparatus made up of a single device. The present invention is not limited to the above-described embodiments, and various modifications (including organic combinations of the embodiments) are possible based on the spirit of the present invention, and are not excluded from the scope of the present invention. In other words, all configurations that combine the above-described embodiments and their modifications are included in the present invention. [Explanation of symbols]

[0133] 210 OS 300 Print Extension App 500 OS common printer driver 501,502 MFP 503,513 Extended INF Packages 506,507 MFPUtility 508,510 Extended Basic INF

Claims

[Claim 1] a first acquisition means for acquiring identification information for identifying the type of a printing device when a common printer driver that can be used in common with a plurality of printing devices is set for one of the printing devices; a second acquisition means for acquiring an extension program corresponding to the printing device using the identification information acquired by the first acquisition means; an installation unit that installs the extension program acquired by the second acquisition unit; a registration means for registering, for each printing device to which the common printer driver is set, information associating the expansion program corresponding to the printing device; a control means for controlling the activation of an extension program corresponding to a printing device using information registered in the registration means when controlling the printing device for which the common printer driver is set; An information processing device comprising:

Citation Information

Patent Citations

  • Network communications equipment

    JP2008278178A

  • Information processing apparatus, program, and control method

    JP2016058041A

  • Information processing apparatus, information processing system, information processing method, and program

    JP2018049581A

  • Information processing apparatus, information processing method, and computer program

    JP2015135658A