Application program, storage medium, control method, and information processing device

The standard driver mechanism addresses execution constraints in V4 printer drivers by launching a UI and accepting user input, ensuring uninterrupted printing processes.

JP7864751B2Active Publication Date: 2026-05-25CANON KK
View PDF 9 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CANON KK
Filing Date
2024-02-13
Publication Date
2026-05-25

AI Technical Summary

Technical Problem

Background tasks in V4 printer drivers face execution constraints, leading to potential termination of print jobs if processing time exceeds defined limits, especially when handling large print settings or low-specification computers, resulting in discarded print jobs.

Method used

A standard driver mechanism that supports a standard driver embedded in the operating system, launching a UI section after a print command, displaying information about the printing process, and allowing user input, thereby preventing job discarding.

Benefits of technology

Ensures uninterrupted printing by displaying user interfaces and accepting user input, preventing print job termination due to background task timeouts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007864751000001
    Figure 0007864751000001
  • Figure 0007864751000002
    Figure 0007864751000002
  • Figure 0007864751000003
    Figure 0007864751000003
Patent Text Reader

Abstract

To suppress printing from being aborted according to processing by a background task cannot be completed within a predetermined time.SOLUTION: In a client, a program, which is an application that provides a UI upon reception of a print instruction and includes a component of a background task and a component of a foreground task, is installed. In response to an OS activating the component of the background task, the background task requests the OS to activate the foreground task. The activated foreground task displays a UI indicating that processing is in progress. The foreground task also notifies the OS of information indicating completion of the processing according to the determination not to display the UI for receiving user operation on the basis of an acquired print ticket.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to application programs , storage medium, control method, and information processing device and is related thereto.

Background Art

[0002] A configuration for transmitting print data to a printing device using a printer driver is generally known. An operating system (OS), which is 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. A vendor providing a printing device can provide a means for instructing the printer to print using that OS by providing a printer driver that conforms to the specifications of the OS. When using a version of Microsoft (registered trademark)'s Windows (registered trademark) prior to 8 as the OS, the printer driver is configured with an architecture called a V3 printer driver. The V3 printer driver can provide a function of displaying a GUI (Graphical User Interface) at the timing when a print request from a user occurs and prompting the user to perform some operation. For example, when a print request occurs, a defined event of a configuration module, which is a component of the V3 printer driver, is called, so the configuration module can display a user interface during the event processing. For example, Patent Document 1 discloses a print control method of inquiring a device about the reason why an item cannot be used when a user attempts to set an unusable item and displaying the reason why it cannot be used as a message.

[0003] Furthermore, in recent years, a new architecture called V4 printer drivers has emerged in Windows (registered trademark). Because V4 printer drivers prioritize security, the customizability of the printer driver itself is reduced compared to V3 printer drivers. For example, the aforementioned configuration module is provided by the OS, and vendors can only provide setting files and script files to customize its operation. To compensate for this reduced customizability, vendors providing printing devices can provide dedicated applications to assist the functions of the printer driver. These applications are called UWP Device Apps (Universal Windows Platform Device Apps). UWP Device Apps can have a function called Workflow (WF) that executes print-related processes triggered by predetermined user actions.

[0004] In the WF (Wireless Printing) function, the OS first starts a thread called a background task, which does not have a UI. The background task retrieves print settings and the document to be printed, and performs processing such as print customization. Also, if the background task determines that user input is required to perform processing such as print customization, it calls the UI and displays the UI. [Prior art documents] [Patent Documents]

[0005] [Patent Document 1] Japanese Patent Publication No. 2008-9901 [Overview of the project] [Problems that the invention aims to solve]

[0006] Background tasks have execution constraints; they must complete their processing within a certain time period defined by the OS while the UI is not displayed, otherwise the OS will interrupt the process. These execution constraints are in place to prevent heavy processes that consume a lot of computer resources such as battery and network from running continuously without the user's knowledge. Therefore, background tasks for WF (Wireless Flow) functionality must decide whether or not to launch the UI within a certain time period.

[0007] By the way, it is conceivable that by utilizing the WF (wireframe) function, processing could be triggered when a print start command is issued. For example, when a print start command is issued, the system could analyze the print settings and the document to be printed, call a UI for user operation as needed, and prompt the user to perform confirmation.

[0008] However, processing by the WF background task may take a long time if the print settings or the size of the document being printed are large, or if the computer running UWP Device Apps has low specifications. Processing by the WF background task may also take a long time under conditions such as a high computer load.

[0009] For example, while a background task is interpreting print data and deciding whether or not to launch the UI, a certain amount of time defined by the OS may elapse. In this case, the OS's task control may forcibly terminate the execution of the background task, resulting in the print job being discarded.

[0010] The present invention has been made in view of at least one of the above-mentioned problems. One object of the present invention is a standard driver that generates print data printable by printers from multiple vendors, and that supports a standard driver built into an operating system, and that, after receiving a print command, the operating system Startup request from In the background task section The UI section is then launched. By doing 、 The objective is to provide a mechanism that displays information to the user that allows them to recognize that a printing process is underway, and after displaying that information, displays a screen that accepts text input from the user for printing. [Means for solving the problem]

[0011] To achieve at least one of the above objectives, the present invention provides a standard driver that generates printable data by printers from multiple vendors, and supports a standard driver built into an operating system, and after receiving a print command from a computer, the operating system Startup request from In the background task section The UI section is then launched. By doing 、 The system is characterized by displaying information that allows the user to recognize that a printing process is underway, and after displaying the information, displaying a screen that accepts text input from the user for printing. [Effects of the Invention]

[0012] According to one aspect of the present invention, a standard driver that generates print data printable by printers from multiple vendors, and supports a standard driver embedded in the operating system, and after receiving a print command from the computer, the operating system Startup request from In the background task section The UI section is then launched. By doing 、 This allows the system to display information that the user is aware that a printing process is underway, and after displaying that information, it can then display a screen that prompts the user to input text for printing.

Brief Description of the Drawings

[0013] [Figure 1] It is a diagram showing an example of a printing system. [Figure 2] It is a diagram showing an example of the hardware configuration of a client computer. [Figure 3] It is a diagram showing an example of the software configuration of a client computer. [Figure 4] It is a diagram for explaining an example of Metadata. [Figure 5] It is a schematic diagram for explaining the relationship between a driver, an extension application, and a printer. [Figure 6] It is a flowchart for explaining an example of the control of a client computer. [Figure 7] It is a flowchart for explaining an example of the control of a client computer. [Figure 8] It is a diagram showing an example of a screen displayed on a client computer. [Figure 9] It is a diagram showing an example of a screen displayed on a client computer. [Figure 10] It is a diagram for explaining the printing settings applied to print data. [Figure 11] It is a diagram for explaining the capability information of a printer. [Figure 12] It is a flowchart for explaining an example of the control of a client computer. [Figure 13] It is a flowchart for explaining an example of the control of a client computer.

Modes for Carrying Out the Invention

[0014] 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. <0​ <First Embodiment> First, the configuration of the printing system according to the present invention will be explained using Figure 1. Figure 1 is a diagram showing an example of the printing system according to the present invention. The printing system of this embodiment includes a client computer 101, which is an example of an information processing device, a server 104 that distributes data to the client computer 101, and a printer 102 that receives print data in page description language (PDL) format and performs printing. Each device can communicate with each other through a network 103 including a Wide Area Network (WAN).

[0016] The printer 102 may be a single-function printer with only printing capabilities, or a multi-function printer with printing, scanning, and copying capabilities. Furthermore, there may be more than one client computer 101 connected to the network 103. The client computer 101 can send print data to the printer 102, etc.

[0017] Figure 2 is a block diagram showing the hardware configuration of the client computer 101 in Figure 1. The client computer 101 has a CPU (Central Processing Unit), RAM (Random Access Memory) 202, external memory 209, and ROM (Read Only Memory) 203.

[0018] The control unit 200, including the CPU 201, controls the operation of the entire client computer 101. The CPU 201 loads programs stored in the ROM 203 or external memory 209 into the RAM 202, executes them, and performs various controls such as UI screen control, print data generation, and print data transfer. The ROM 203 stores control programs and boot programs that can be executed by the CPU 201. The RAM 202 is the main memory of the CPU 201 and is used as a work area or temporary storage area for loading various programs. The external memory 209, connected to the control unit 200 via the external memory I / F 208, stores the OS 210, applications 212, application execution environment 213, printer driver 211, etc.

[0019] 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 an HDD. In this way, the hardware such as the CPU 201, ROM 203, RAM 202, and external memory 209 constitute a so-called computer.

[0020] The input device interface (I / F) 204 controls the input devices 205, such as a keyboard, pointing device (mouse), or touch input device. The input devices 205 function as reception units that receive user input. The display interface (I / F) 206 controls the display of the screen on the display 207. The display 207 functions as a display unit that shows information to the user.

[0021] The control unit 200 is connected to the network 103 via the network interface 214. The network interface 214 sends print data to printers on the network 103 and receives store applications and printer drivers from servers on the network 103. Data communication with external terminals on the network 103 is done via wireless communication compliant with the IEEE 802.11 series, mobile communication systems such as LTE and 5G, or wired cables such as LAN cables.

[0022] Next, using Figure 3, we will explain an example of the software configuration of the client computer 101. First, we will explain the operating software within the client computer 101. The software within the client computer 101 consists of three layers: the OS 210, the application execution environment 213, and the application 212.

[0023] First, let's explain the individual elements that make up OS210. OS210 is broadly composed of the printing system 337, printer driver 211, external configuration files 352, and thread pool 355.

[0024] First, let's explain the external configuration file group 352. Metadata320, included in the external configuration file group 352, is definition information that contains identifiers for both the print extension application 300 and the print queue 308, and plays a role in linking them together. Metadata320 will be explained later using Figure 4.

[0025] Registry 353 is an area where the settings for OS210 are described. Registry 353 contains a setting that indicates whether to enable or disable the launch of background tasks by the print-time application launcher 350. The settings registered in Registry 353 can be changed via the OS210 settings screen.

[0026] Next, the elements constituting the printing system 337 will be described. The print queue 308 is an area for temporarily storing print jobs when printing using a printer located within the network 103. In this embodiment, it is assumed that a print queue 308 corresponding to printer 102 has been created.

[0027] The spooler 325 is a module that temporarily stores and manages XPS (XML Paper Specification) files, which are print data printed from one of the applications 212. The XPS files stored in the spooler 325 are converted to PDL (Page Description Language) via the filter pipeline manager 335, and then sent to the printer 102 via the spooler 325.

[0028] The filter pipeline manager 335 is a module that loads one or more filters 330 to convert an XPS file into a PDL file. The filter pipeline manager 335 is configured as part of the printing architecture (also called the printing system) provided by OS210. Based on the definition of the filter configuration 336, OS210 reads one or more filters 330, which are one of the elements that make up the printer driver 211, and generates a PDL using those one or more filters. The PDL can take the form of, for example, PCL or LIPS.

[0029] Configuration module 331 is responsible for generating and modifying PrintTickets (also called print tickets). Module 331 also has a restriction function to prevent the creation of incompatible settings. Furthermore, the configuration module manages PrintCapabilities, which are printer capability information.

[0030] The detailed print settings UI section 304, the background task section 305, and the print-start UI section 303 of the print extension application 300 can call APIs provided by the configuration module 331. By calling these APIs, each section can obtain PrintTickets and PrintCapabilities in XML (Extensible Markup Language) format.

[0031] A printer vendor providing a V4 printer driver provides the OS 211 with a device function text file 332, which describes the hyphenation rules and device functions, and a script file 333, as part of the printer driver 211. Based on files 332 and 333, the operation of the configuration module 331 is customized.

[0032] The Print-Activated Application Launcher 350 is a module that controls the execution of background tasks provided by the Print-Activated Background Task Unit 305 and other components. The Launcher 350 starts the Print-Activated Background Task Unit 305 when the OS 210 detects that a user has entered a print start command and proceeds with printing. If a setting to disable the startup of background tasks is stored in the registry 353, the OS 210 will suppress the execution of background tasks.

[0033] The printer driver 211 consists of a filter 330, a filter configuration 336, a script file 333, and a device function text file 332. Filter 330 is a filter called by the filter pipeline manager 335 and has the function of converting an input XPS file to PDL and outputting it. 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 called. Script file 333 and device function text file 332 are files called by the configuration module 331 and allow customization of the operation of the configuration module 331.

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

[0035] The application execution environment 213 consists of a desktop application execution environment 323 and a touch application execution environment 301.

[0036] The touch application execution environment 301 is an execution environment for running touch applications 321 and print extension applications 300, which are a type of application 212 described later and run on OS210. The execution environment 301 is an execution environment for running UWP (Universal Windows Platform) applications distributed from server 104 and controls the execution of UWP applications.

[0037] Desktop application execution environment 323 is an execution environment for running desktop applications 322, which are a type of application 212 described later. Desktop application execution environment 323 controls the execution of "Win32 / 64 applications" and ".NET applications," etc.

[0038] Application 212 consists of 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 on the touch application execution environment 301. The touch application 321 is downloaded through an application distribution system published on the internet and installed on the client computer 101. The touch application 321 has the necessary modules packaged and signed, and calls to APIs within the OS 210 are restricted.

[0039] The print extension application 300 is a type of touch application 321 and operates on the touch application execution environment 301, similar to the touch application 321. The OS 210 obtains the print extension application 300 from the application distribution system via the internet. In addition, the print extension application 300 in this embodiment has a function called Workflow (WF) that displays a uniquely customized UI when printing.

[0040] The print extension application 300 consists of a tile application section 302, a detailed print settings UI section 304, a background task section launched during printing 305, and a UI section launched during printing 303.

[0041] The tile application section 302 is a UI section that is executed in response to a user operation to launch the extended application 300, and provides functions such as displaying the status of registered printers.

[0042] The detailed print settings UI unit 304 is a UI unit that is executed upon 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 obtained from the configuration module 331 via API. The UI unit 304 modifies the PrintTicket settings as appropriate according to user operations and returns them to the configuration module 331.

[0043] The print-initiated background task unit 305 is a component that corresponds to background tasks that should be executed when a print event is issued. The tasks provided by the task unit 305 have a limited lifespan and are forcibly terminated by the OS210 after a certain period of time has elapsed.

[0044] The print-start background task unit 305 can obtain, read, and write PrintTickets through the API of the configuration module 331. Furthermore, when using the WF function, the background task is configured to determine whether or not to start the print-start UI unit 303, and, if necessary, to request the OS 210 to start the UI unit 303, which is a component of the foreground task. Values ​​can also be exchanged with the print-start UI unit 303 by reading and writing changed values ​​to the app store 334. If it is determined that the print-start UI unit 303 should not be started, the launcher 350 generates the print data without starting the print extension application 300.

[0045] Furthermore, the print-time UI unit 303, which is launched by a background task, can edit the XPS or PrintTicket data to be printed and return it to the OS 210.

[0046] When a background task requests OS210 to start, OS210 starts the print-time startup UI unit 303. The print-time startup UI unit 303 can acquire and change the settings of PrintTicket and PrintCapabilities, as well as acquire the XPS file of the data to be printed. When modifying the XPS file, it is necessary to first pass the edited XPS file to the print-time startup background task unit 305 via the app store 334, and the task unit 305 returns the edited XPS file to OS210. In this embodiment, the print-time startup UI unit 303 displays a UI for confirming printing and a UI for prompting the user to input any missing settings.

[0047] Next, we will explain the relationship between the printer and the print extension application 300 using Figure 4. Figure 4 is an example of a description showing Metadata 320 that associates the device, printer 102, with the print extension application 300.

[0048] Figure 4(A) shows an example of a description indicating compatible device information in Metadata320, which associates a printer with the print extension application 300. Metadata320 contains a HardwareIDList tag 402 that lists the printers that use Metadata320. Item 403 indicates that the printer with the Hardware ID MFP1_abcd uses this Metadata320. Similarly, item 404 indicates that the printer with the Hardware ID MFP2_ijkl uses Metadata320. In this way, multiple printers that use a single Metadata320 can be listed. In this embodiment, as an example, Metadata320 is shown with the Hardware IDs of two printers specified, but it is not limited to this. There may be one, three or more, or any number of printers. The Hardware ID is identification information returned from the printer to uniquely identify the printer.

[0049] Figure 4(B) shows the DeviceCompanionApplications tag 411, which indicates the print extension application 300. Item 412 contains identification information that identifies the printer vendor and indicates that the print extension application 300 named "1234abcd.MFPUtility" is available for printers from that vendor.

[0050] When printer 102 is connected to client computer 101, OS 210 queries a metadata server managed by Microsoft (registered trademark) based on the Hardware ID obtained from the printer. The metadata server searches for registered metadata and responds with the corresponding metadata. Based on the response, OS 210 saves metadata 320. Furthermore, OS 210 obtains the print extension application described in the DeviceCompanionApplications tag 411 of the saved metadata 320 from the application distribution server. Then, it installs the print extension application into external memory 209 and associates it with printer 102. This allows the print extension application 300 to be launched when a print request is made to printer 102 via the printer driver 211. This metadata 320 is provided by the printer vendor. The printer vendor provides this metadata 320 to the metadata server managed by Microsoft (registered trademark) in advance. When installing the V4 printer driver 211, the client computer accesses the Metadata server and automatically installs the print extension application 300 that is best suited to the driver to be installed.

[0051] Figure 5 shows an example of a printing environment. The printer, MFP501, has a Hardware ID of MFP1_abcd. When the MFP501 is connected to the client computer 101 and the printer driver corresponding to the MFP501 is installed, the OS210 obtains Metadata320 corresponding to the connected printer. Based on this Metadata, it also obtains a print extension application called MFPPutility506 and associates it with the MFP501. Note that there may be multiple types of printer drivers that send print data to a single printer (e.g., MFP501). In other words, multiple printer drivers may be installed as printer drivers corresponding to a single device, MFP501. The model-specific printer driver 508 is a dedicated printer driver for the MFP501 provided by the printer vendor. The common printer driver 509 is a common printer driver provided by the printer vendor that can handle multiple types of printers 102 from that printer vendor. The standard printer driver 510, which is a class driver that can be used in common for printing devices provided by multiple vendors, is a printer driver provided by the OS210. Standard printer driver 510 is a printer driver that can handle a wide range of printers by utilizing standardized printing methods.

[0052] OS210 will automatically select and install the most feature-rich and newest printer driver among the available options. Printer drivers include information to identify the device, such as a Hardware ID and a Compatible ID. When a printer is connected to client computer 101, OS210 will obtain this ID information from the printer, search for the printer driver with the corresponding ID, and install it.

[0053] A printer vendor can control which print extension application 300 is provided for each printer by providing the Metadata 320, as explained in Figure 4. For example, a printer vendor can provide a single print extension application 300 common to multiple printers, or they can provide different types of print extension applications depending on the type of printer.

[0054] For example, in this embodiment, MFP502 is registered as another printer that uses MFPTility506. Also, in this embodiment, MFPTility507 is associated as the print extension application used when printing to MFP503.

[0055] Hereafter, in this embodiment, for the purpose of explanation, we will assume that MFP501 is a printer corresponding to printer 102, and MFPTility506 is a print extension application 300 (UWP Device Apps) associated with printer 102. Furthermore, we will assume that the model-specific driver 508 is a V4 printer driver used for printing.

[0056] In this embodiment, the printer 102 has an authentication print function (also called a secure print function). In this embodiment, when using an authentication print function such as a PIN print function, the printer driver sends a print job to the printer 102 with authentication information (such as a PIN code or password) set by the user attached to the PrintTicket. Upon receiving the print job containing the authentication information, the printer 102 controls itself so that it does not print until the authentication information is entered into the printer's control panel.

[0057] The functions possessed by printer 102, such as authenticated printing, are described in the device function text file 332 of the printer driver 211. The print extension application 300 understands the functions possessed by printer 102 by receiving PrintCapabilities generated by the configuration module 331 based on the device function text file 332. The user can enter authentication information through the print settings screen displayed by the printer driver 508 in cooperation with the OS 210.

[0058] Furthermore, the print extension application 300 has a function that utilizes the Wi-Fi (WF) to prompt the user to verify and enter authentication information when a print start command is entered.

[0059] As mentioned earlier, when WF starts, it is by default to launch a background task. However, background tasks have limitations; if they do not complete their processing within a certain time period defined by the OS while the UI is not displayed, the OS will interrupt the process. This constraint is in place to prevent heavy processes that consume a lot of computer resources such as battery and network from running continuously without the user's knowledge. Therefore, background tasks for WF functionality must decide whether or not to launch the UI within a certain time period.

[0060] Here, if the print settings or the size of the document to be printed are large, or if the computer running UWP Device Apps has low specifications, processing by the WF background task may take a long time. Also, if the computer is under heavy load, processing by the WF background task may take a long time. For example, while the background task is interpreting the print data and deciding whether or not to launch the UI, a certain amount of time defined by the OS may have elapsed. In this case, the execution of the background task may be forcibly terminated by the OS task control, resulting in the print job being discarded.

[0061] In view of the above-mentioned problems, this embodiment describes a mechanism to prevent the interruption of the printing process due to the inability to complete processing by a background task within a certain time period defined by the OS. Specifically, it describes a mechanism that controls the UI display by having the task unit 305, which is a component for executing background tasks, always call the UI unit 303, which is a foreground task, in response to being called by the OS.

[0062] First, let's explain PrintCapabilities and PrintTicket. Figure 11 is an example of PrintCapabilities generated based on the device function text file 332 stored by the printer driver 211 used for printing.

[0063] PrintCapabilities have multiple options within a single Feature. A Feature represents a configurable function. An Option within a Feature represents a choice. Information 1101 in Figure 11 illustrates the Feature and Options for Secure Print. It is defined that two options are available for the JobSecurePrint Feature: ns0000:SecurePrint and ns0000:None.

[0064] Furthermore, Figure 10 illustrates the PrintTicket with authenticated print settings. The PrintTicket stores one of the settings defined in PrintCapabilities as the current print setting.

[0065] Information 1001 indicates that the authentication print function, which requires a PIN to be entered when printing, is enabled. The Option contained within the JobSecurePrint Feature is ns0000:SecurePrint, indicating that authentication print is enabled. If authentication print is not enabled, ns0000:None will be set as the Option.

[0066] Furthermore, the elements of psf:ParameterInit shown in information 1002 represent the values ​​of the text input. Figure 10 illustrates the case where the password "XXXXXX" is set for authenticated printing via the print settings screen. Note that if no password is set via the print settings screen, the configuration module 331 will generate a PrintTicket that does not contain any elements of psf:ParameterInit.

[0067] Next, printing using printer 102 will be explained with reference to Figure 9. Note that this embodiment illustrates printing from a UWP app, touch app 321, but is not limited to this. Printing from a desktop app 322 is also possible.

[0068] Figure 9(A) shows an example of a screen displayed on the display 207 by the touch application 321. The touch application 321 has an area for displaying content. The menu key 900 is a key for displaying a menu. Figure 9(A) shows an example of when the menu is displayed. The menu displays multiple options, and the user can select the print key 901 from the menu.

[0069] When the touch application 321 detects that the print key 901 has been selected, it requests the OS 210 to display the print dialog.

[0070] Figure 9(B) shows an example of a print dialog box displayed by OS210. The print dialog box is a dialog box displayed by OS210 for making simple print settings. The print dialog box has items 920 for print settings and items 930 for print commands. The user can make simple print settings by selecting items 920.

[0071] OS210 retrieves the PrintTicket set for the print queue 308 corresponding to the printer driver set as the default printer from the configuration module 331 and displays it on the print dialog.

[0072] Item 921 displays the name of the selected printer driver. The user can switch the printer driver by selecting item 8921. Item 922 shows an example of the configured print settings.

[0073] Additionally, item 931 is a display item used when calling the detailed print settings UI section 304 provided by the print extension application 300. Item 932 is a display item used when starting printing based on content provided by the touch application 321.

[0074] When OS210 detects that item 932, which is displayed as a print dialog, has been pressed, it generates a print event. After the print event occurs, the touch application 321 works with OS210 to generate an XPS file based on the content to be printed (also called the print content), and proceeds to the print process as described in the flowchart in Figure 6.

[0075] The specific control methods for the printing process will be explained using the flowcharts shown in Figures 6 and 7.

[0076] Each operation (step) shown in the flowcharts of Figures 6 and 7 is realized by the CPU 201 reading the programs for implementing each module, component, and application stored in the external memory 209 into the RAM 202 and executing them. When describing the control provided by each control module, component, and application, the parts implemented by the CPU 201 are described as the subject. In addition, some processes such as display, acceptance of user operations, and data transmission and reception processing are realized through the cooperation of the CPU 201, each I / F, and the input / output devices connected to the I / F.

[0077] The flowchart in Figure 5 is executed in response to a print event. The application that triggers the print event may be either the touch application 321 or the desktop application 322.

[0078] In S601, OS210 transfers the XPS file generated in cooperation with application 212, which triggered the print event, to spooler 325. Once the transfer of the XPS file is complete, the process proceeds to S602.

[0079] In S602, OS210 executes the WF function startup process. Details of this process will be described later with reference to Figure 7. Once the series of processes related to the WF function startup process is complete, OS210 proceeds to S603.

[0080] In S603, the filter pipeline manager 335 of OS210 retrieves the PrintTicket and XPS file from the spooler 325.

[0081] In S604, the filter pipeline manager 335 reads the filter 330 corresponding to the printer driver used for printing from the external memory 209 and loads it into RAM 202, based on the definition of the filter configuration 336.

[0082] Next, in S605, the filter pipeline manager 335 inputs the XPS file into the filter that has been expanded and executes the conversion process using the filter. This conversion process 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.

[0083] In S606, the spooler 325 works with the network interface 214 to send the print job, including the converted PDL and PrintTicket, to the printer 102. Upon receiving the print job sent through the list processing, the printer 102 executes the printing process based on that print job.

[0084] Next, using Figure 7, we will specifically explain the WF function startup process executed in S602.

[0085] In S701, OS210 reads the settings in registry 353. In S702, if registry 353 does not contain a setting to enable background task startup (i.e., if it contains a setting to disable startup), OS210 skips the series of WF function startup processes and proceeds to S603 or later. On the other hand, if registry 353 contains a setting to enable background task startup, OS210 proceeds to S703.

[0086] In S703, OS210 starts the print-start application launcher 350. In S704, the print-start application launcher 350 requests OS210 to start the print-start background task unit 305, which is a component of the print-extension application 300. Specifically, the print-start application launcher 350 identifies the print queue based on the printer driver used for printing. Subsequently, it works in cooperation with the touch application execution environment 301 to control the startup of a component that executes a background task of the UWP Device Apps associated with the identified print queue. In this embodiment, it is assumed that the task unit 305 component of the print-extension application 300 is started.

[0087] In S705, the background task unit 305 requests the OS 210 to start the components of the print-activated UI unit 303, which is a foreground task. Upon receiving the request, the OS 210 assigns the print-activated UI unit 303 provided by the print extension application 300 as a thread in the thread pool 355, and transitions to a state where the UI unit 303 can display the screen on the display 207. The UI unit 303 also acquires a delayed object in order to continue interacting with the user.

[0088] In S706, the print-start UI unit 303 displays a progress screen on the display 207. Figure 8 shows an example of a screen displayed on the display 207 by the print-start UI unit 303, with Figure 8(A) showing an example of the progress screen. The progress screen displays a progress ring as shown in 801. The UI unit 303 indicates to the user that processing is in progress by displaying actions such as continuously rotating the progress ring. It also displays text such as "Printing..." as shown in 802 to indicate to the user that printing-related processing is in progress.

[0089] Returning to the explanation of Figure 7, in S707, the UI unit 303 requests the OS 210 to start an analysis thread that will run asynchronously from the UI thread. The OS 210 assigns the analysis thread to the thread pool 355. The analysis thread obtains a PrintTicket from the configuration module 331 and attempts to analyze the obtained PrintTicket. In this embodiment, the case in which the analysis process and the UI control process are controlled by separate threads is illustrated, but the system is not limited to this.

[0090] In S708, the print-start UI unit 303 determines whether or not authentication printing is set in the PrintTicket based on the results of the analysis process of the PrintTicket in S707. If the analysis process determines that authentication printing is not set, the process proceeds to S711. On the other hand, if the analysis process determines that authentication printing is set, the process proceeds to S709.

[0091] In S709, the UI thread of the print-start UI unit 303 switches the screen displayed on the display 207 to an input screen. Figure 8(B) shows an example of an input screen. Area 810 shows a text box for entering authentication information. The user enters a password or PIN code in area 810. Button 811 is an OK button, which is a key that confirms the authentication information entered in 810 when an operation event such as a click is received. This OK button 811 may be displayed grayed out until authentication information is entered in 819. The Cancel button 812 is a key used to cancel printing. If the Cancel key is pressed, the execution of the print job is stopped.

[0092] Returning to the explanation of Figure 7, in S710, the UI thread of the print-start UI unit 303 accepts user input and modifies the PrintTicket settings based on that user input. Specifically, it rewrites the information 1002 exemplified in Figure 10 based on the entered authentication information. If an attribute corresponding to information 1002 does not exist, it adds that attribute to the PrintTicket.

[0093] Furthermore, the UI unit 303 calls a method to release the delayed object in order to notify the OS 210 that the interaction with the user is complete. Once the delayed object is released and the foreground task's termination process is complete, the main processing responsibility shifts to the background task.

[0094] Next, in S711, the background task unit 305 retrieves the PrintTicket and XPS file whose settings have been changed by the UI unit 303.

[0095] In S712, the background task unit 305 sends the PrintTicket and XPS file to the filter pipeline manager 335, completing the processing related to the series of WF functions.

[0096] Furthermore, if S702 determines that it will not start a background task, the PrintTicket obtained from module 331 and the XPS file generated in response to the print command will be sent to the filter pipeline manager 335.

[0097] In the embodiment described above, the task unit 305, which is a component of the background task, can call the UI unit 303, which is a foreground task, and display the UI in response to being called by the OS. Therefore, after the UI unit 303, which is a foreground task, acquires the delayed object, the UI unit 303 can analyze the PrintTicket. This prevents the printing process from being aborted due to the inability of the background task to complete its processing. In addition, after the UI unit is called, a UI indicating that processing is in progress, such as a progress ring, is displayed. Therefore, the user can be clearly notified that processing is in progress.

[0098] <Second Embodiment> In the first embodiment, a mechanism was described to suppress the discarding of print jobs due to the execution of the WF function by entrusting the analysis of PrintTicket to a foreground task. In the second embodiment, attention is paid to the fact that there are cases in which the background task unit 305 can decide whether or not to launch the UI. In such cases, a mechanism is described in which the UI is not launched when the background task unit 305 can make a decision, thereby further improving printing performance.

[0099] Specifically, in the second embodiment, the background task unit 305 analyzes the PrintTicket and checks whether it is necessary to launch the UI. Furthermore, the background task unit 305 measures the execution time and controls the launch of the foreground task if it determines that the process cannot be completed.

[0100] The hardware and software configurations in the second embodiment are the same as those in the first embodiment and are therefore omitted.

[0101] The specific control method will be explained using the flowchart in Figure 12. The flowchart in Figure 12 is a flowchart that explains the process that is executed in place of the flowchart in Figure 7, which was explained in the first embodiment. The difference from the flowchart in Figure 7 is that the processes S1220 to S1224 are added after the background task startup process.

[0102] The processes in S1201 to S1204 are the same as those in S701 to S704 of the first embodiment, so they are omitted. When a background task is started in S1204, the process proceeds to S1220.

[0103] In S1220, the task unit 305 starts the timer and begins counting the elapsed time. In S1221, the task unit 305 obtains the PrintTicket from the configuration module 331 and analyzes it. The analysis process in S1221 is performed asynchronously with the timer count.

[0104] In S1222, the task unit 305 determines whether or not the results of the analysis performed in S1221 have been obtained. If the results of the analysis performed in S1221 have been obtained, the process proceeds to S1223. If the results of the analysis performed in S1221 have not been obtained, the process proceeds to S1224. In S1223, based on the results of the analysis in S1221, it is determined whether or not authentication printing is set in PrintTicket. If it is determined that authentication printing is set, the process proceeds to S1205. If authentication printing is not set, the series of processes ends and the process proceeds to the data conversion and transmission process from S603 onwards. The process in S1205 is the same as the process in S705 in the first embodiment and is therefore omitted. After the process in S1205 is completed, the process proceeds to the foreground task described in S706 onwards in the first embodiment.

[0105] Meanwhile, in S1224, the task unit 305 determines whether the timer count time has exceeded a predetermined threshold internally maintained. If the timer count time has exceeded the predetermined threshold internally maintained, the process proceeds to S1205. On the other hand, if the timer count time has not exceeded the predetermined threshold internally maintained, the process returns to S1222 and waits for the analysis results. The predetermined threshold is set to an appropriate threshold as appropriate so that the foreground task can be launched before the constraints related to the execution of the background task are reached.

[0106] Therefore, when a decision can be completed within the constraints of a background task, the decision can be made by the background task. Consequently, printing performance can be improved.

[0107] <Third Embodiment> In the third embodiment, a case is described in which the OS210 executes a function equivalent to the timer counting that was executed in the background task in the second embodiment. In this embodiment, the OS210 is configured to issue a timeout exception before forcibly terminating the background task. Furthermore, the background task unit 305 is configured to start the UI unit as an exception handling measure upon detecting that the timeout exception has been thrown.

[0108] The hardware and software configurations in the third embodiment are the same as those in the first embodiment and are therefore omitted.

[0109] First, let's explain how OS210 issues exceptions. When a print event occurs, OS210 creates a process for the print extension application 300 and a thread for the print-activated background task unit 305. After creation, it has the background task execute the processing. OS210 manages the execution time of the created thread. If a certain amount of time has elapsed since the thread was created, OS210 throws a timeout exception to that thread. In this embodiment, the background task unit 305 controls the system to start a foreground task in response to detecting that the exception has been thrown.

[0110] The specific control method will be explained using the flowchart in Figure 13. The flowchart in Figure 13 is a flowchart that explains the process that is executed in place of the flowchart in Figure 7, which was explained in the first embodiment. The difference from the flowchart in Figure 7 is that the processes S1321 to S1324 are added after the background task startup process.

[0111] The processes in S1301 to S1304 are the same as those in S701 to S704 of the first embodiment, so they are omitted. When the background task is started in S1304, the process proceeds to S1321.

[0112] In S1321, the task unit 305 obtains and analyzes the PrintTicket from the configuration module 331.

[0113] In S1322, the task unit 305 determines whether the results of the analysis performed in S1321 have been obtained. If the results of the analysis performed in S1321 have been obtained, the process proceeds to S1323. If the results of the analysis performed in S1321 have not been obtained, the process proceeds to S1324. In S1323, based on the results of the analysis in S1321, it is determined whether authentication printing is set for PrintTicket. If it is determined that authentication printing is set, the process proceeds to S1305. If authentication printing is not set, the series of processes ends and the process proceeds to data conversion and transmission processing from S603 onwards. The process in S1305 is the same as the process in S705 in the first embodiment and is therefore omitted. After the process in S1305 is completed, the process proceeds to the foreground task described in S706 onwards in the first embodiment.

[0114] Meanwhile, in S1324, task unit 305 determines whether or not it has received a timeout exception from OS210. If task unit 305 has received a timeout exception, it proceeds to S1305. If it has not received a timeout exception, it returns to the process in S1321 and continues the analysis and decision-making process by the background task.

[0115] As explained above, in this embodiment, OS210 issues a timeout exception to the background task before forcibly terminating the background task's thread. In response to receiving the timeout exception, the background task starts the foreground task and obtains a delayed object. This process allows the thread allocated for the background task to dedicate computational resources only to parsing the PrintTicket and deciding whether or not to start the UI. Therefore, computational performance can be improved.

[0116] <Other Embodiments> In this embodiment, the input screen for authentication information for authenticated printing was described as an example of a UI displayed by the WF function, but it is not limited to this. For example, a print preview may be displayed as the UI displayed after receiving a print command. Also, in this embodiment, the case where the V4 driver is a printer driver was used as an example, but it can also be applied to a V4FAX driver. For example, when applied to a V4FAX driver, a screen for inputting and confirming the destination may be displayed using the WF function.

[0117] The present invention can also be realized by supplying a program that implements one or more of the functions of each of the embodiments described above to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC or FPGA) that implements one or more functions. [Explanation of symbols]

[0118] 101 Client Computers 102 Printers 201 CPU

Claims

1. A standard driver that generates print data that can be printed by printers from multiple vendors, and that supports standard drivers embedded in the operating system. On the computer, A program characterized in that, after receiving a print command, the UI unit is started by a background task unit requested to be started by the operating system, which displays information that allows the user to recognize that the printing process is in progress, and after displaying the said information, displays a screen that accepts text input from the user for printing.

2. The program according to claim 1, characterized in that the screen has a text box for receiving the input of the characters.

3. The program according to claim 1 or 2, characterized in that the screen has a first instruction unit for confirming the input of the characters.

4. The program according to any one of claims 1 to 3, characterized in that the screen has a cancel button for canceling printing based on the print instruction.

5. The program according to any one of claims 1 to 3, wherein the screen further comprises a string indicating the function name of a function that uses the characters.

6. To the aforementioned computer, The program according to any one of claims 1 to 5, characterized in that it changes the settings of a print ticket indicating print settings based on characters received via the screen.

7. The program according to any one of claims 1 to 6, characterized in that the print command is received via a screen provided by the OS.

8. The standard driver is a program according to any one of claims 1 to 7, characterized in that it generates the print data in XPS format.

9. The program according to claim 8, characterized in that the standard driver generates the print data in XPS format after receiving the print command.

10. A standard driver that generates print data that can be printed by printers from multiple vendors, and that supports standard drivers embedded in the operating system. A control method characterized in that, after receiving a print command, the UI unit is started by a background task unit requested to be started by the operating system, which displays information that allows the user to recognize that the print process is in progress, and after displaying the said information, a screen is displayed that accepts character input from the user for printing.

11. A standard driver that generates print data that can be printed by printers from multiple vendors, and an application program that supports the standard driver built into the operating system, An information processing apparatus characterized by having a display control means which, after receiving a print command, activates a UI unit via a background task unit requested to be activated by the operating system, displays information that allows the user to recognize that the printing process is in progress, and after displaying the said information, displays a screen that accepts character input for printing from the user by executing the application program.