Application programs, methods, and information processing devices
A GUI application addresses the lack of customizability in V4 printer drivers by providing user interfaces and editing drawing data, ensuring appropriate functionality and GUI display based on driver capabilities.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2026-02-06
- Publication Date
- 2026-05-26
AI Technical Summary
V4 printer drivers prioritize security and convenience but lack customizability, particularly in providing a Graphical User Interface (GUI), and existing Windows Store Device Apps (WSDAs) have functional limitations, including inability to access drawing data and provide GUIs at the time of a print request.
A GUI application that provides a user interface based on the capabilities of the printer driver, acquiring and editing drawing data, and determining the necessity of displaying items based on available driver information, ensuring appropriate functionality regardless of the driver's GUI capabilities.
Enables appropriate functionality and GUI display according to the driver being used, overcoming limitations of V4 printer drivers and WSDAs by allowing access to and editing of drawing data and providing user interfaces at the time of print requests.
Smart Images

Figure 2026086623000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a program. In particular, it relates to a program for an application that provides a GUI.
Background Art
[0002] It is generally known to use a printer driver installed on a host computer as software for controlling a printing device to perform printing on a printing device connected to the host computer. An operating system (OS), which is basic software, is installed on the 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 the OS by providing a printer driver that conforms to the specifications of the OS. When using a version of Microsoft (registered trademark) Windows (registered trademark) prior to Windows 8 as the OS, the printer driver is configured with an architecture called a V3 printer driver. The V3 printer driver can display a graphical user interface (hereinafter also referred to as the "user interface" or "GUI") at the timing when a printing request from the user occurs and provide a function to prompt the user to perform some operation. For example, when a printing request occurs, a specified event of a configuration module, which is a component of the V3 printer driver, is called, so the configuration module can display the user interface during the event processing.
[0003] In recent years, a new architecture called the V4 printer driver has emerged in Windows (registered trademark). Because the V4 printer driver prioritizes security, the customizability of the printer driver itself has decreased. 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 offer dedicated applications to assist the printer driver's functions. These applications are called Windows Store Device Apps (WSDAs). By providing WSDAs, vendors providing printing devices can customize the print settings screen when printing from specific applications (Patent Document 1).
[0004] Furthermore, V4 printer drivers can be configured as class drivers that support multiple printing devices with a single driver. In recent years, operating systems have provided standard class drivers that can be used in common with printing devices from multiple vendors. Such standard drivers are included in the OS package and can be used simply by connecting any printing device to the host computer. Therefore, there is no need to separately install a printer driver suitable for the printing device, making it highly convenient. [Prior art documents] [Patent Documents]
[0005] [Patent Document 1] Japanese Patent Publication No. 2017-33052 [Overview of the Initiative] [Problems that the invention aims to solve]
[0006] Thus, while V4 printer drivers offer improved security and convenience, they lack the ability to provide a GUI, resulting in reduced customizability of the printer driver itself. Therefore, as described in Patent Document 1, using WSDA makes it possible to provide a GUI, such as a print settings screen, even when a driver that does not have the functionality to provide a GUI, like a V4 printer driver, is used. However, conventional WSDA still had functional limitations. In view of these problems, the present invention aims to provide appropriate functionality depending on the driver being used. [Means for solving the problem]
[0007] To solve the above-mentioned problems, one aspect of the present invention is a GUI application program that can provide a GUI when a driver that does not have the function of providing a GUI (Graphical User Interface) is selected, and the program causes a computer to perform the following steps: acquire drawing data generated by a drawing application; acquire at least one of the following: data including information indicating settings when a predetermined process is performed based on the drawing data by a predetermined device; and data including information indicating the capabilities of the driver; determine whether first information is included in at least one of the data including the information indicating the settings and the data including the information indicating the capabilities of the driver; and provide a first display item, wherein whether or not the first display item is provided depends on whether or not the first information is included. [Effects of the Invention]
[0008] This invention makes it possible to provide appropriate functions depending on the driver being used. [Brief explanation of the drawing]
[0009] [Figure 1] A block diagram showing the hardware configuration of the printing system. [Figure 2]Block diagram of the driver printing system. [Figure 3] Example of how to describe supported device information in Metadata. [Figure 4] An example of how to describe the association information for the application launched when printing in Metadata. [Figure 5] A block diagram illustrating the printing environment constructed by this printing system. [Figure 6] A flowchart illustrating the setup process for applications that launch when printing. [Figure 7] A flowchart of the UI processing for an application launched during printing. [Figure 8] A flowchart for editing and closing the application launched during printing. [Figure 9] An example of PrintCapabilities in a fax driver. [Figure 10] Examples of PrintCapabilities for printer drivers specific to a particular model. [Figure 11] An example of PrintCapabilities in a common driver. [Figure 12] An example of PrintCapabilities in the standard driver. [Figure 13] An example of PrintTicket for a specific printer driver. [Figure 14] An example of a PrintTicket in a fax driver. [Figure 15] Examples of extensions supported by applications that launch at print time. [Figure 16] Examples of information stored in Local Storage. [Figure 17] Schematic diagram of the WSDA user interface when connecting printer drivers for each model. [Figure 18] A schematic diagram of the WSDA user interface when connected to a standard printer driver. [Figure 19] A schematic diagram of the user interface of the application launched when printing with a fax driver connected. [Figure 20]Schematic diagram of the user interface of the printing startup application when connecting to the standard printer driver. [Figure 21] Schematic diagram of the user interface of the printing startup application when connecting to a printer driver of a specific printer model. [Figure 22] Schematic diagram for explaining the screen when giving a print instruction.
Embodiments for Carrying Out the Invention
[0010] In an embodiment of the present invention, an example of providing appropriate functions according to a driver by a GUI application will be described. This GUI application is launched when a driver that does not have a function of providing a Graphical User Interface (hereinafter also referred to as "user interface" or "GUI"), such as a V4 printer driver, is used, and provides a GUI.
[0011] Conventional Windows Store Device App (WSDA) that extends the V4 printer driver could also provide a GUI, but had the following functional limitations. Specifically, since it is arbitrarily launched by a user instruction, it is not suitable for use cases where it is desired to always display the user interface when a request such as printing is made. Furthermore, since the conventional WSDA is an application configured for the purpose of changing print settings, it cannot access the drawing data (such as images and text information that are the basis for forming a print on paper) generated by the drawing application that issues a print request. Therefore, it is not possible to display or edit the drawing data. Therefore, it was difficult for the conventional WSDA to provide a function of displaying the user interface at the timing when a print request from the user occurred in the V4 printer driver, accepting a user operation, and reflecting it in the print processing.
[0012] Furthermore, conventional WSDAs provide a user interface for specifying the capabilities of the connected printer driver according to the information indicating the capabilities of the connected printer driver. Even if a WSDA includes a function instruction in the print settings that is not included in the printer driver's capability information, it will not function effectively because it is unknown information to the printer driver. Moreover, as mentioned above, conventional WSDAs cannot access drawing data, so the WSDA itself cannot receive function instructions and edit the drawing data. Therefore, even if a vendor providing a printing device provides a WSDA for the class driver provided with the OS as described above, the vendor could not independently extend its functionality.
[0013] In the present invention, it is possible to provide appropriate functions according to the driver using an application that is not subject to the above-mentioned functional limitations. Preferred embodiments of the present invention will be described in detail below with reference to the attached drawings. However, the following embodiments do not limit the present invention as defined in the claims, and not all combinations of features described in these embodiments are essential to the solution of the present invention. In addition, the same reference numeral is used for identical components, and their descriptions are omitted.
[0014] <<Embodiment 1>> <Hardware configuration of the printing system> Figure 1 is a block diagram showing the hardware configuration of a printing system. In this figure, the host computer 101 is an example of an information processing device and has an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and display devices such as a display unit 119 are connected to the output interface 115.
[0015] The ROM 112 stores the initialization program, and the external storage device 114 stores application programs, the operating system (OS), printer drivers, and various other data. The RAM 113 is used as work memory for executing the various programs stored in the external storage device 114.
[0016] In this embodiment, the CPU 111 performs processing according to the procedures of the program stored in the ROM 112, thereby realizing the functions of the host computer 101 described later and the processing related to the flowchart described later. The printing device 102 is connected to the host computer 101 via the input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they may also be configured as a single information processing device.
[0017] <Block structure of the driver printing system> Figure 2 is a block diagram of the driver printing system. Here, we will explain the printing system assuming a host computer 101 running Microsoft's Windows 8 or later OS and operating with an architecture called the V4 printer driver.
[0018] When a user issues a print command from a UWP (Universal Windows Platform) application 202, a predetermined screen is displayed by the OS function, the MPD (ModernPrint Dialog) (not shown). The UWP application 202 is a drawing application. The screen provided by the MPD has a print preview function that allows the user to check the print result on the screen, and a function that allows the user to select basic print settings. A specific example is shown in Figure 22. In Figure 22(A), when a print command is issued on screen 2201 provided by the UWP application, the OS's MPD displays the settings screen 2202 shown in Figure 22(B). On this settings screen 2202, the user can select the driver to use. Furthermore, the user can also specify basic print settings on the settings screen 2202.
[0019] Furthermore, upon receiving instructions from the user, MPD launches the Windows Store Device Application (hereinafter referred to as WSDA) 207, which allows the user to select detailed print settings. Specifically, when the "Other Settings" button 2203 is selected on the settings screen 2202 in Figure 22(B), the detailed settings screen 2204 provided by WSDA, shown in Figure 22(C), is displayed. On this detailed settings screen 2204, the user can specify even more detailed print settings. WSDA 207 is an application that extends the functionality of the printer driver 201 provided by the vendor of the printing device (hereinafter referred to as the printer vendor). Note that the image that appears to be a document image displayed on the detailed settings screen 2204 provided by WSDA is a sample image originally included in WSDA. Therefore, it is not a preview image based on drawing data generated by the UWP application, but a sample image that does not change even if the drawing data changes. WSDA 207 receives information indicating print settings from MPD, modifies that setting information according to user operation, and returns it to MPD. Here, the information indicating print settings is written in XML format based on the format defined by the OS and is contained in data called PrintTicket. WSDA207 can access and modify PrintTicket, but it cannot access drawing data (images, text information, etc., that form the basis of the printout on the paper). Furthermore, WSDA207 is only activated when the user presses button 2203 on the print settings screen 2202 provided by MPD, and is not always activated when setting up print.
[0020] The PrintTicket is generated by the configuration module 208 of the selected printer driver 201. WSDA207 generates a PrintTicket that reflects the user's specifications by calling the configuration module 208. The configuration module 208 also has the function of generating PrintCapabilities, which describes the configurable functions and selection items of the selected printer driver 201 in XML format based on the OS-defined format. WSDA207 and PEX209 (described later) provide a user interface based on the information described in PrintCapabilities. Furthermore, the print-start application 205 (described later) can obtain the PrintCapabilities generated by the configuration module 208 through the OS's functions.
[0021] Note that in Figure 2, the configuration module 208 is described as a function of the printer driver 201, but the configuration module 208 is originally an OS component. However, in the V4 printer driver, since the driver itself does not have a configuration module, the configuration module 208, which is an OS component, is used as the driver's configuration module. Printer vendors can customize the operation of the configuration module 208 using GPD (not shown) and Java(registered trademark) script constraints included in the printer driver 201.
[0022] After the print settings shown in Figure 22, a print request is made when the "Print" button is selected on the settings screen 2202 provided by the OS's MPD. When the user requests print on the MPD, the UWP application 202 receives the request from the MPD and generates the print data necessary for printing. This print data is an XPS document written in XML Paper Specification (hereinafter referred to as XPS) format. The print data in this embodiment includes the aforementioned PrintTicket and drawing data generated by the drawing application.
[0023] The XPS document generated by the UWP application 202 is passed to the OS component, the print-on-demand application launcher 204. If the print-on-demand application launcher 204 determines that a print-on-demand application 205 associated with the printer driver 201 exists and is configured to be launched, it launches the print-on-demand application 205. If the corresponding print-on-demand application 205 does not exist, the print-on-demand application launcher 204 stores the XPS document as a spool file 206.
[0024] The print-start application 205, like WSDA207, is an application that extends the functionality of the printer driver 201 provided by the printer vendor. In other words, it is a GUI application that can provide a GUI based on the OS instructions when a driver that does not have the functionality to provide a GUI, such as the V4 driver, is selected. If a V3 driver, which has the functionality to provide a GUI, is selected, the OS will not start the print-start application launcher 204 and will store the XPS document generated by the drawing application as a spool file 206. In other words, if a V3 driver is selected, the print-start application 205 will not start and will not provide a GUI.
[0025] Note that WSDA207 and the print-start application 205 are not provided as components of the printer driver 201, but are standalone applications. While WSDA207 and the print-start application 205 can be configured together as a single application, for convenience, they will be described as separate applications here to explain the differences from the conventional WSDA.
[0026] WSDA207 and the print-start application 205 are typically obtained by the OS via the internet from an application distribution system (a server managed by Microsoft®) not shown in the diagram. Furthermore, by providing the metadata described below to a metadata server managed by Microsoft® in advance, the appropriate WSDA207 and print-start application 205 are automatically installed. Specifically, when the printing device 102 is connected to the input / output interface 116, the WSDA207 and print-start application 205 associated with the printing device 102 are automatically installed based on the metadata.
[0027] The print-start application 205 can display a user interface that accepts operation instructions from the user. It can also receive an XPS document, which is the print data, and edit the PrintTicket and drawing data within the XPS document. When the print-start application 205 outputs the edited XPS document as needed, the OS stores it as a spool file 206. Once the spool file 206 is stored, processing is passed to the filter pipeline manager 210. The filter pipeline manager 210 is a mechanism that performs printing by passing the data through multiple filters, and the number and order of filters are controlled by a configuration file (not shown). In this embodiment, the filter group consists of a layout filter 211, which is a layout processing unit, and a print command filter 212, which is a print command conversion unit.
[0028] The layout filter 211 takes an XPS document stored in the XPS spool file 206 as input, performs page layout processing based on print setting information, and outputs a laid-out XPS document. Layout processing includes, for example, layout printing which prints multiple pages on a single sheet of paper, and poster printing which prints a single page on multiple sheets of paper.
[0029] The print command filter 212 takes the output of the layout filter 211 as input and has the function of converting the XPS document into print commands that the printer 102 can interpret, according to the print setting information, and outputting them. When the print command filter 212 first converts the input XPS document into image data, the print command filter 212 is generally called a render filter. Render filters are often found in printer drivers for inexpensive raster printers, such as inkjet printers. When the print command filter 212 operates as a render filter, it first converts the input XPS document into image data. After that, it undergoes image processing processes such as color space conversion and binarization, and is converted into print commands that the raster printer can interpret.
[0030] In high-performance printers such as page printers, if the types of print commands that the printer device 102 can interpret include XPS, the print command filter 212 edits the input XPS document and outputs the XPS document. If processing by the print command filter 212 is not necessary, the input XPS document may be output as is, or the print command filter 212 does not need to be included in the printer driver 201. The above is the basic process for printing from a UWP application 202.
[0031] Legacy applications 203, such as Win32 applications, which are drawing applications, can launch Printer Extensions 209 (hereinafter referred to as PEX) to configure print settings. PEX is launched via the configuration module 208 and can provide a user interface that allows the user to specify print settings. PEX 209 may be provided as a component within the driver package together with the printer driver 201, or it may be distributed separately. Similar to WSDA 207, PEX 209 can refer to and modify the PrintTicket, but it cannot refer to drawing data (images, text information, etc. that form the basis of the print on the paper). Also, PEX 209 is only launched when instructed by the user on Legacy application 203, and is not always launched when printing. When printing is instructed on Legacy application 203, Legacy application 203 generates an XPS document as print data. The subsequent process is the same as when printing from UWP application 202, so it is omitted.
[0032] Note that in this configuration, printer driver 201 may also function as a fax driver. In this case, printer driver 201 generates a fax command to request fax transmission from the printer, rather than a print command that the printer can interpret. For convenience, in the following explanation, even if it is a fax driver, it will be referred to as printer driver 201, and even if it is a fax instruction, it will be referred to as a print instruction.
[0033] <Metadata that associates the printer with the application that starts when printing> Figure 3 shows an example of a description indicating corresponding device information in Metadata 301, which associates the printer 102 with the print-start application 205. Metadata 301 contains a HardwareIDList tag 302 that lists the printers 102 that use Metadata 301. Item 303 indicates that the printer 102 with the Hardware ID MFP1_abcd uses this Metadata. Similarly, item 304 indicates that the printer 102 with the Hardware ID MFP2_ijkl uses Metadata 301. In this way, multiple devices that use a single Metadata can be listed. Although two printers are specified as devices in Metadata 301, there could be one, three or more, or any number of devices. The Hardware ID is identification information returned from the printer 102 to uniquely identify the printer 102.
[0034] Figure 4 shows an example of a description indicating the associated print-start application 205 in Metadata 301, which associates a device, the printer 102, with a GUI application, the print-start application 205. Within the Metadata in Figure 4, there is a DeviceCompanionApplications tag 401 that indicates the print-start application 205 associated by Metadata 301. Item 402 indicates that the print-start application 205, named 1234abcd.MFPUtility, provided by the printer vendor 12345678-abcd-efgh-ijkl-123456789012, is associated with the printer 102 listed in HardwareIDList tag 302.
[0035] When a printing device 102 is connected to a host computer 101, the OS searches for Metadata registered in a predetermined server (a Metadata server managed by Microsoft (registered trademark)). Then, when it finds Metadata in the HardwareIDList that describes the Hardware ID returned by the connected printing device 102, it saves it in the external storage device 114 of the printing device 102. Further, the OS acquires the printing startup application 205 described in the DeviceCompanionApplication tag 401 of the saved Metadata from an application distribution system (not shown). Then, it installs the printing startup application 205 in the external storage device 114 and associates it with the printing device 102. As a result, when a printing request is generated via the printer driver 201 for the printing device 102, the associated printing startup application 205 is launched.
[0036] This Metadata is provided by the printer vendor. By providing this Metadata in advance to a Metadata server managed by Microsoft (registered trademark), the printer vendor can control to automatically install the printing startup application 205 optimal for the connected device when the printer driver 201 is installed in the user environment. Note that, at the user's instruction, multiple printer drivers 201 may be installed for one device.
[0037] <Printing Environment Constructed with Metadata301> Figure 5 shows an example of a printing environment built with Metadata 301. The printing device 102, MFP 501, has a printing function unit 504 and a fax function unit 505 that sends received print requests as faxes within a single device. The printing device unit 504 has a Hardware ID of MFP1_abcd. The fax function unit 505 has a Hardware ID of MFP1_efgh. The Hardware ID of the fax function unit 505 can also be set to be the same as that of the printing device unit 504, and processing can be switched by command.
[0038] When the MFP501 is connected to the host computer, the OS retrieves Metadata301, which has the Hardware ID MFP1_abcd written in the HardwareIDList tag.
[0039] Furthermore, the print-start application 205, MFP1_efgh, described in Metadata301, is retrieved and associated with MFP501. Although the Fax function unit 505 has a different Hardware ID from the printing device unit 504, the OS determines these two processing units to be the same device (composite device) based on the information obtained from the printing device 102. Therefore, the Fax function unit 505 is associated with the same Metadata301 and MFP1_efgh as the printing device unit 504. Alternatively, the HardwareIDList302 of Metadata301 may be configured to describe MFP1_efgh, which is the Hardware ID of the Fax function unit 505.
[0040] Multiple types of printer drivers 201 can exist for the printing unit 504 of the MFP501. In other words, multiple drivers can exist for a single device, the MFP501. The model-specific printer driver 508 is a dedicated printer driver for the printing unit 504 of the MFP501, provided by the printer vendor. The common printer driver 509 is a common printer driver provided by the printer vendor, capable of handling multiple types of printing devices 102 from that vendor. The standard printer driver 510, a class driver usable for printing devices provided by multiple vendors, is a printer driver provided as one of the functions within the OS package along with the OS. The standard printer driver 510 is a printer driver capable of handling a wide range of printing devices 102 by utilizing a standardized printing method.
[0041] Thus, multiple printer drivers 201 are available for a given printing device 102, and the printer driver 201 used varies depending on the internet connection status, OS type, and operating environment. Normally, the OS automatically selects and installs the most functional and newest printer driver 201 from among the available printer drivers 201 by referring to the printer driver version information, etc. Note that the printer driver 201 contains information to identify the device, called a Hardware ID and a Compatible ID. When the printing device 102 is connected to the host computer 101, the OS obtains this ID information from the printing device 102, searches for the printer driver 201 with the corresponding ID, and installs it.
[0042] For the FAX function unit 505 of MFP501, a Fax driver 511 containing the Hardware ID MFP1_efgh is installed. Also, when MFP502 with the Hardware ID MFP2_ijkl is connected to the host computer 101, MFP502 is associated with MFPPUtility 506. This is because, as shown in 304 of Figure 3, MFP2_ijkl is included in the HardwareIDList targeted by Metadata 301. For MFP503 with the Hardware ID MFP3_mnop, MFPPUtility 507, which is different from MFPPUtility 506, is associated with it due to the specification of Metadata (not shown) which is different from Metadata 301.
[0043] As described above, a printer vendor providing a printing device 102 can control which print-start application 205 is provided to each printing device 102 by providing metadata. For example, a printer vendor can provide a single print-start application 205 common to multiple printing devices 102, or they can provide different print-start applications 205 for each. However, it is not possible to provide different print-start applications 205 depending on the type of printer driver 201 associated with the printing device 102. In Figure 5, there are four types of printer drivers 201 used by the MFP 501, from driver 508 to driver 511, but the associated print-start application 205 is always the same.
[0044] Furthermore, WSDA207 is associated with the printer device 102 and printer driver 201 using the same mechanism as the print-start application 205. Therefore, the constraints regarding the association are the same as those for the print-start application 205.
[0045] <Setup process for applications launched during printing> Figure 6 shows the main processing flow of the setup process for the print-start application 205 in this printing system. This processing flow is an example of the processing of the print-start application 205 under a configuration such as the MFPUTility506 in Figure 5. Hereafter, the print-start application 205 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Note that not all processes are necessarily executed sequentially on a single process; there may be cases where processing is transferred to the OS and then called again by the OS. This is merely a flow that shows the main processing of the print-start application 205 for convenience and clarity.
[0046] When the print-activated application launcher 204 receives an XPS document from the drawing application that requested the print, it calls the initialization process of the print-activated application 205 associated with the printer 102. After the print settings described in Figure 22 above, if the "Print" button is selected on the OS-provided settings screen 2202, a print request is made and the drawing application outputs the XPS document.
[0047] The print-start application 205, during its initialization process, registers the setup process shown in Figure 6 and the editing and termination processes shown in Figure 8 (described later) as event handlers defined by the OS. When the print-start application 205 completes its initialization process, the OS executes the setup process of the print-start application 205, which was registered as a defined event handler. Figure 6 illustrates this setup process.
[0048] First, the print-start application 205 retrieves the PrintTicket stored in the XPS document (S601). As explained in Figure 2, the PrintTicket is data containing information indicating the print settings, and is generated by the configuration module 208 based on the print settings instructed by the user. The PrintTicket can be retrieved from the XPS document by calling a predetermined API of the OS.
[0049] Next, the print-start application 205 retrieves PrintCapabilities, which is data containing information indicating the capabilities of the printer driver 201. Then, by checking the namespace within this data, it determines the type of printer driver 201 that received the print request from the application (S602). Details of the PrintCapabilities namespace and the determination method will be described later.
[0050] Normally, PrintTicket also stores namespace information equivalent to PrintCapabilities, so S602 can be determined using PrintTicket. Since obtaining PrintCapabilities takes time, processing time can be shortened by using PrintTicket depending on the configuration. Alternatively, the printer driver 201 may store information for determination in a DriverPropertyBag (not shown). The application launched at print time 205 may be configured to retrieve the information stored in the DriverPropertyBag and use it for determination.
[0051] If the S602 determination indicates that the printer driver 201 that received the print request from the application is a fax driver, the print-start application 205 saves that the operating mode is fax driver mode (S603). The processing in S603, and the retention of information by the print-start application 205 described below, utilizes Local Storage provided by the OS as an example. The overall structure of the information stored in Local Storage will be described later. Similarly, the print-start application 205 saves in Local Storage that the UI display is enabled (S604).
[0052] Subsequently, the system calls a standard API provided by the OS to instruct the execution of the print-start application 205 to display the user interface (S605). Executing this API invokes the UI processing of the print-start application 205, as shown in Figure 7 below, and the print-start application 205 displays the user interface. This completes the setup process for the print-start application 205 in fax driver mode.
[0053] If the result of the S602 determination is that the printer driver 201 that received the print request from the application is not a fax driver, the application 205 that is launched at the time of printing saves that the operating mode is printer driver mode (S606).
[0054] Next, the PrintTicket is checked to see if a print preview activation command exists (S607). The specific method for checking the PrintTicket will be described later using Figure 13. In addition, the print preview activation command can be specified from WSDA207 and PEX209 and can be accessed from the print-start application 205, so it may be implemented by means other than the PrintTicket. For example, it may be configured to use UserPropertyBag or QueuePropertyBag, which are provided by the OS as the storage location for the printer driver 201's settings information. Note that print preview refers to displaying an image of the print result that will be generated on the paper based on the print settings and the print data generated by the application on the display unit 119. In other words, "the print preview activation command exists in the PrintTicket" indicates that the display of the print preview screen has been instructed by the user. By viewing the print preview screen, the user can check whether the desired print result can be obtained before printing, and can instruct the system to modify the print settings, delete specific pages, or cancel the printing process as needed.
[0055] If S607 determines that there is no instruction to start a print preview, the print-start application 205 proceeds to S609. If S607 determines that there is an instruction to start a print preview, the print-start application 205 saves that the print preview is enabled (S608).
[0056] Next, in S609, the print-start application 205 checks whether a feature extension instruction exists in the PropertyBag. As mentioned above, PropertyBag refers to either UserPropertyBag or QueuePropertyBag. This feature extension is for printer vendors to extend the functions that can be specified at the time of printing, for example, when the printer driver only has basic functions like the standard printer driver 510. Note that if a PrintTicket containing a specification that instructs a feature extension is passed to the standard printer driver 510, that specification will be deleted as invalid information because it is unknown to the standard printer driver 510. In such cases, the feature extension instruction is stored in the PropertyBag and retained without being deleted. On the other hand, PrintTicket is information contained in the XPS document, which is the print data, and is maintained on a per-print data basis. Therefore, even when multiple print requests occur consecutively, there is an advantage in being able to accurately switch the print preview and enable / disable feature extensions for each print request. Furthermore, the print-start application 205 may be configured to skip the S609 process and always enable feature extensions if possible.
[0057] If S609 determines that no feature extension instructions exist in PropertyBag, the print-start application 205 proceeds to S613. If S609 determines that feature extension instructions exist in PropertyBag, the print-start application 205 obtains PrintCapabilities (S610). If PrintCapabilities have already been obtained in S602, the process in S610 is skipped.
[0058] Next, the print-time startup application 205 determines whether there is a predetermined function not supported by PrintCapabilities (S611). The predetermined function refers to a function that the print-time startup application 205 has the ability to edit by itself and can be provided by the print-time startup application 205 as an extended function. That is, the print-time startup application 205 determines whether there is a function that is not described in PrintCapabilities and can be provided by the print-time startup application 205. Thereby, it is determined whether there is a function that the printer driver 201 does not support and that the print-time startup application 205 can provide. The details of this determination process will be described later using FIG. 15.
[0059] If it is determined in S611 that the corresponding function does not exist, the print-time startup application 205 proceeds to S613. If it is determined in S611 that the corresponding function exists, the print-time startup application 205 saves the corresponding function as an extended function in Local Storage (S612).
[0060] Next, the print-time startup application 205 determines whether print preview is enabled or whether there is an extended function to be provided (S613). If S613 is Yes, the print-time startup application 205 proceeds to S604 and instructs the display of the user interface. If S614 is No, the print-time startup application 205 ends the setup process.
[0061] As described above, in the setup process of the print-time startup application 205, it is determined whether it is necessary to start the user interface. If necessary, it is instructed, and the necessary information is stored for subsequent processing.
[0062] <Configuration Examples and Related Processes of PrintTicket and PrintCapabilities> Figures 9 through 12 show examples of PrintCapabilities for printer and fax drivers with different configurations. Note that these PrintCapabilities are described only for the parts necessary for explanation, and some parts have been omitted.
[0063] Figure 9 shows an example of PrintCapabilities for fax driver 511. At the beginning of PrintCapabilities is the psf:PrintCapabilities element, which defines the namespaces used by that PrintCapabilities. Typically, this lists namespaces that represent the OS standard definition called PrintSchema, as well as namespaces defined by the printer vendor providing this printer driver 201. The PrintCapabilities shown in Figure 9 includes namespace 901, which is defined by the printer vendor.
[0064] On the other hand, Figure 10 shows an example of PrintCapabilities for a model-specific printer driver 508. The PrintCapabilities shown in Figure 10 include a namespace 1001 defined by the printer vendor. Figure 11 shows an example of PrintCapabilities for a common driver 509, and Figure 12 shows an example of PrintCapabilities for a standard printer driver 510.
[0065] Namespaces are used to uniquely define selectable functions, options, and their definitions. Even for printer drivers 201 provided by the same printer vendor, it is common practice to use different values if the set of functions differs significantly, such as for printers and faxes. Using this, S602 can determine whether the namespace contains a URL like http: / / www.mfpvendor.com / ns / printschema / fax / v100, as shown in namespace 901 in Figure 9.
[0066] Figure 13 shows an example of a PrintTicket generated based on PrintCapabilities1000 of the model-specific printer driver 508 shown in Figure 10. As shown in Figure 13, the PrintTicket stores the setting values for each function defined in PrintCapabilities. For example, the feature psk:PageMediaType indicates the type of paper to be used for printing, and in the PrintTicket in Figure 13, psk:Plain, i.e., plain paper, is specified. The process of determining whether or not to start the print preview in S607 is determined by checking whether the specified value of the feature ns0000:JobPreview is set to ns0000:ON.
[0067] Next, the determination process in S611 will be explained in detail using the PrintCapabilities in Figures 10 to 12 and Figure 15. Figure 15 shows a list of predetermined functions that the print-start application 205 can provide as extended functions and their selection options. Here, the print-start application 205 has a page layout function that arranges multiple pages onto one page for printing, and a stamp function that overlays a specified stamp onto the print result.
[0068] The print-start application 205, in its S611 judgment process, analyzes PrintCapabilities to check whether the function indicated by the “function name” in Figure 15 exists. If the print target is PrintCapabilities1000 of the model-specific printer driver 508, then the features JobNUpAllDocumentsContiguously and PageStamp exist. Therefore, the judgment result of S611 is No.
[0069] When the printing target is the PrintCapabilities 1100 of the common printer driver 509, the Feature called JobNUpAllDocumentsContiguously exists, but the Feature called PageStamp does not exist. Therefore, the determination result of S611 is Yes. At that time, what the printing startup application 205 provides as an extended function is PageStamp, that is, the stamp function. When the printing target is the PrintCapabilities 1200 of the standard printer driver 510, neither the Feature called JobNUpAllDocumentsContiguously nor the Feature called PageStamp exists. Therefore, the determination result of S611 is Yes. At that time, what the printing startup application 205 provides as an extended function are JobNUpAllDocumentsContiguously and PageStamp, that is, the allocation function and the stamp function. <??
[0070] <Example of WSDA processing and user interface configuration> Figure 17 is a diagram showing an example of the user interface provided by WSDA 207 when the model-specific printer driver 508 is selected by the user. The screen of this Figure 17 is an example of the setting screen provided by WSDA 207 and is a screen provided before a print request is made from the drawing application. As shown in 1002, the model-specific printer driver 508 supports the Feature called JobPreview, which indicates the print preview function. Since WSDA 207 configures the user interface based on the PrintCapabilities obtained from the printer driver 201, it displays a control item 1701 for switching the validity of the print preview based on 1002. WSDA 207 stores the ON and OFF of the Feature called JobPreview in the PrintTicket according to the user's specification. The printing startup application 205 refers to this information in the process of S607 to determine whether there is an instruction to start the print preview.
[0071] It should be noted that there seems to be a typo in the original text where "<??
[0070] " is likely an incorrect tag. It remains as it is in the translation as per the requirements.Figure 18 shows an example of the WSDA207 user interface when the standard printer driver 510 is selected as the print destination. The screen in Figure 18 is also an example of a settings screen provided by WSDA207, and is provided before a print request is made from the drawing application. The standard printer driver 510 does not support the JobPreview feature. In such cases, WSDA207 displays a control item 1801 for selecting whether or not to enable the extended features. When the user presses the OK button 1802, WSDA207 stores the value specified in control 1801 into PropertyBag. Note that WSDA207 may also be configured to instruct the user to activate the print preview in addition to the extended features. In this case, the extended features and print preview may be specified by different controls, or they may be specified simultaneously by a single control.
[0072] Furthermore, PEX209 can also be provided with a means to control the startup of the print-time application 205 by processing equivalent to the above-mentioned processing for WSDA207.
[0073] <UI processing for applications launched during printing> If the UI display specification for S605 is executed, the OS calls the UI processing of the print-start application 205 after the setup process of the print-start application 205 has finished. Figure 7 shows the main processing flow of the UI processing of the print-start application 205 in this printing system. This processing flow is an example of the processing of the print-start application 205 under a configuration such as MFPUtility506 in Figure 5. Hereafter, the print-start application 205 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Note that not all processes are necessarily executed sequentially on a single process; there may be cases where processing is transferred to the OS side and then called again by the OS. This is merely a flow that shows the main processing of the print-start application 205 for convenience and clarity. If the UI display specification for S605 is not executed, the OS skips the UI processing shown in Figure 7 and calls the editing and termination processing described later.
[0074] First, the print-start application 205 reads the operating mode saved by S603 or S606 from Local Storage (S701) and determines whether it is in fax driver mode or printer driver mode (S702).
[0075] If the operating mode is Fax driver mode, the print-start application 205 configures the user interface for the Fax driver (S703). The user interface for the Fax driver has control items that allow the user to specify the recipient and Fax number. Details of the user interface for the Fax driver will be described later with reference to Figure 19.
[0076] The print-start application 205 accepts input from the user (S704), and when a fax transmission is instructed on the user interface, it saves the recipient and fax number specified by the user to Local Storage (S705).
[0077] This concludes the processing of the Fax driver mode of the print-start application 205. In this way, the print-start application 205 always displays a user interface as an input screen where the recipient and fax number can be specified in Fax driver mode (see Figure 19 below). In a Fax driver, the recipient and fax number are essential recipient information for sending a fax. Even if WSDA207 or PEX209 are configured to allow the user to specify the recipient and fax number, these user interfaces are not always opened when printing. By making it possible to specify the recipient and fax number in the print-start application 205, the user can reliably input the recipient for the current fax transmission process. Alternatively, the WSDA207 or PEX209 screens, which are only displayed when instructed by the user, may also be configured to allow the specification of the recipient and fax number. This provides a means of specifying the recipient and fax number even in cases where the print-start application 205 does not start for some reason. Furthermore, if WSDA207 or PEX209 is configured to allow the user to specify the recipient and fax number, the print-start application 205 may be configured to execute the UI display instruction only in certain cases. That is, the print-start application 205 executes the S605 UI display instruction if the PrintTicket includes the recipient and fax number, and does not execute the S605 UI display instruction if the PrintTicket does not include the recipient and fax number. In this way, the print-start application can be configured to start only if the user forgets to specify the recipient and fax number in WSDA207 or PEX209.
[0078] If S702 determines that the operating mode is not fax driver mode, the print-start application 205 loads the extended functions saved in S612 (S706).
[0079] Next, the print-start application 205 refers to the information saved in S608 and determines whether or not print preview is enabled (S707). If print preview is not enabled, the print-start application 205 proceeds to the user interface configuration process in S713. If print preview is enabled, the print-start application 205 obtains a PrintTicket (S708).
[0080] Furthermore, the application 205 launched at the time of printing obtains PrintCapabilities based on the PrintTicket (S709). Note that obtaining PrintCapabilities takes time, so the necessary information can be saved to Local Storage during the Setup process shown in Figure 6, and S709 can be configured to use this information.
[0081] Next, the print-start application 205 analyzes the acquired PrintCapabilities to search for whether specific functions are supported. It then saves the found functions and the settings specified in the PrintTicket as driver functions to Local Storage (S710). Here, as an example, the print-start application 205 searches for two specific functions: layout function and paper type setting. The search process is performed by determining whether a Feature with a specified name exists in PrintCapabilities. Note that while the extended functions saved in S612 indicated functions that the driver does not possess, the driver functions saved in S710 are functions that the driver does possess. Therefore, if these driver functions are enabled in the PrintTicket, the printer driver 201 can correctly execute the processing according to that specification.
[0082] Next, the print-start application 205 acquires the XPS document using a predetermined API of the OS (S711). Furthermore, the print-start application 205 analyzes the contents of the XPS document and displays it on the display unit 119 (S712). At this time, the print-start application 205 can achieve a more accurate print preview by reflecting the settings set in PrintTicket in the print result.
[0083] The XPS document received by the print-start application 205 is generated by the application requesting the print job and is data before processing by the printer driver 201. Therefore, even if, for example, assigned printing is specified in the PrintTicket within the XPS document, the XPS document received by the print-start application 205 has not undergone the assigned printing process. Considering such cases, the print-start application 205 displays a print image reflecting the print settings on the display unit 119 using logic equivalent to that performed by the driver afterward. If the print settings are changed on the user interface displayed by the print-start application 205, the print-start application 205 redisplays the print image reflecting the changes on the display unit 119. Note that in the case of printer drivers not provided by the printer vendor, such as the standard printer driver 510, it is unknown how the print settings are reflected in the XPS document. In that case, the print-start application 205 either skips reflecting the specified function or reflects it using its own logic and displays on the display unit 119 that it may be different. Furthermore, regarding the extended functionality provided by the print-start application 205, including the editing of XPS documents, the print-start application 205 should display a print image reflecting the print settings on the display unit 119 using the same logic as the actual editing.
[0084] Next, the print-start application 205 configures a user interface with controls that allow specifying the extended functions saved in S612 and the driver functions saved in S710 (S713). The items displayed as options for the extended functions saved in S612 are the "Options" information in Figure 15, that is, the items supported by the print-start application 205. The items displayed as options for the driver functions saved in S710 are a list of Options for the corresponding functions in PrintCapabilities. For example, if the paper type can be specified based on the information in PrintCapabilities1000, all supported Options for psk:PageMediaType (psk:Plain, ns0000:PhotoPaper, etc.) are listed as options. Although omitted in PrintCapabilities1000, each Feature and Option usually has an element called DisplayName. DisplayName stores appropriate localized name information, so the print-start application 205 displays the DisplayName as an option for each driver function.
[0085] The print-start application 205 accepts input from the user (S714), and when printing is instructed on the user interface, it saves the settings of each function specified by the user to Local Storage (S715). This completes the printer driver mode processing of the print-start application 205.
[0086] Furthermore, the processes from S708 to S710 may be configured to run even if the print preview is not enabled as determined in S707. This allows the print-start application 205 to prompt the user to reconfirm important print settings that must be checked before printing, and to provide the user with a means to make changes if necessary.
[0087] Figure 19 shows an example of the user interface as an input screen displayed when the print-start application 205 operates in fax driver mode. Display item 1901 is a control item for the user to specify the recipient. Display item 1902 is a control item for the user to enter the fax number. Display item 1903 is a button to launch the address book. When this button is pressed, the address book is launched, and the recipient and fax number are automatically entered by selecting a recipient in the address book. Display item 1905 is a button to start fax transmission. The user cannot press this button if the recipient and fax number have not been entered. Display item 1906 is a cancel button; when the user presses this button, the subsequent fax transmission process is canceled.
[0088] This configuration allows the print-start application 205 to always display a user interface as an input screen where the recipient and fax number can be specified when in fax driver mode. In a fax driver, the recipient and fax number are essential information for sending a fax. By allowing the recipient and fax number to be specified in the print-start application 205, the user can reliably enter the recipient for the current fax transmission process.
[0089] Figure 20 shows an example of a user interface for specifying extended functions that are displayed when the print-start application 205 operates in printer driver mode while the standard printer driver 510 is running. Note that the print preview function is not enabled in Figure 20. The PrintCapabilities 1200 of the standard printer driver 510 does not support either the layout printing function or the stamp function. Therefore, the print-start application 205 saves the layout printing function and the stamp function as extended functions in processing S611 and S612. As a result, these two functions are provided as extended functions. Display item 2001 is a control item for specifying the settings of the layout printing function. Display item 2002 is a control item for specifying the settings of the stamp function. Display item 2003 is a button to start printing. Display item 2004 is a cancel button; if the user presses this button, the subsequent printing process is canceled. Note that if the operating driver is the common printer driver 509, only the stamp function is displayed as an extended function. This is because the assignment function is supported in PrintCapabilities1100 of the common printer driver 509.
[0090] This configuration allows for the extension of printing functionality in drivers provided by Microsoft (registered trademark), similar to the OS, and which printer vendors cannot extend, by utilizing the print-start application 205, such as the standard printer driver 510. Furthermore, it determines information indicating the capabilities of the operating driver and provides only the missing functions as extensions. This enables the provision of optimal extensions for each printer driver 201 in cases where multiple types of printer drivers 201 are available. Additionally, the user can control whether or not to display the user interface and extend functionality during printing. This allows for use cases where displaying the user interface each time is undesirable.
[0091] Figure 21 shows an example of the user interface when the printer driver 508 is running and the print-start application 205 is running in printer driver mode. The print preview function is assumed to be enabled. Display item 2101 is a control item for changing the page displayed in the print preview. The user can use this control item to change the displayed page and also check the total number of pages to be printed based on the current print data and print settings. Display item 2102 is a print preview screen showing an image of the print result for the specified page. Display item 2103 is a control item for specifying the layout print function. Display item 2104 is a control item for specifying the paper type. Display items 2013 and 2014 display driver functions, not extended functions, so as mentioned above, the selection items are the same as the functions of printer driver 201. Display item 2105 is a button to start printing. Display item 2106 is a cancel button; pressing this button cancels the subsequent printing process. Note that while Figure 21 only shows the driver function, if both the driver function and the extended functions are enabled as a result of the processing in Figures 6 and 7, the print-start application 205 will display the controls that can be specified for all of those functions.
[0092] This configuration enables a print preview function that displays a print image close to the final print result before printing, based on the XPS document generated by the drawing application and the print settings specified by the user. It also allows users to check the print result and the number of pages printed, and to make final adjustments to the print settings. These functions help prevent misprints and provide a means for final adjustments, such as fitting the print to the desired number of pages.
[0093] <Editing and closing the application that starts when printing> After the UI processing of the print-start application 205 shown in Figure 7 is completed, the OS calls the editing and termination processing of the print-start application 205 shown in Figure 8. If the UI display specification processing of S605 is not executed, the OS calls this processing without calling the UI processing of the print-start application 205 shown in Figure 7. This processing flow is an example of the processing of the print-start application 205 under a configuration such as the MFPUTility506 shown in Figure 5. Hereafter, the print-start application 205 may be described as the main entity of each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program. Also, not all processes are necessarily executed sequentially on a single process; there may be cases where processing is transferred to the OS side and then called again by the OS. This is merely a flow that shows the main processing of the print-start application 205 for convenience and clarity.
[0094] The print-start application 205 reads the operation mode saved in S603 and S606, and the UI display information saved in S604 from Local Storage (S801). If it determines in S802 that there was no UI display, the print-start application 205 uses the OS API to obtain the XPS document (S806) and outputs the XPS document without making any modifications (S807). Thus, even if the print-start application 205 does not modify the XPS document, it is necessary to obtain and output the entire XPS document once. The processing of the print-start application 205 when the user interface was not displayed is now complete. In this way, if the print-start application 205 determines that displaying the user interface is unnecessary, it terminates processing without displaying the user interface.
[0095] If S802 determines that a UI display was present, the print-start application 205 determines whether the operating mode was Fax driver mode based on the information read by S801 (S808). If it is determined that it is Fax driver mode, the print-start application 205 retrieves the recipient and fax number saved in S705 from Local Storage (S803). Next, the print-start application 205 obtains a PrintTicket using the OS API (S804). Furthermore, the print-start application 205 stores the recipient and fax number obtained in S803 in the PrintTicket (S805).
[0096] An example of a PrintTicket containing this information is shown in Figure 14. Here, the recipient is stored as JobRecipientName and the fax number as JobFaxNumber. After editing the PrintTicket, the print-start application 205 stores the PrintTicket in an XPS document as needed, then outputs the XPS document and terminates the process. The fax driver 511 retrieves the recipient and fax number by referring to the PrintTicket and sends a job to the printer 102 to send a fax to the specified fax number.
[0097] If S808 determines that the operating mode is not fax driver mode, the print-start application 205 determines the functions to be provided in S710. Then, it reads the driver function settings specified by the user in 2104, etc., from Local Storage (S809). Next, the print-start application 205 determines whether the driver function settings have been changed from their initial state (S810).
[0098] If S810 determines that there have been no changes to the driver function settings, the print-start application 205 proceeds to process S813. If S810 determines that the driver function settings have been changed, the print-start application 205 obtains a PrintTicket (S811) and reflects the driver function settings obtained in S809 in the PrintTicket (S812). The configuration of the information stored in Local Storage and the method of reflecting these changes in the PrintTicket will be described later. If there are multiple driver functions whose settings have been changed, the print-start application 205 performs the process of reflecting all driver functions in the PrintTicket. After reflecting the changes in the PrintTicket, the print-start application 205 obtains the XPS document (S813).
[0099] Next, the print-start application 205 determines the functions to be provided in S612 and reads the settings for the extended functions specified by the user from Local Storage (S814) (2002, etc.). Next, the print-start application 205 determines whether or not settings for the extended functions have been specified (S815). If it determines in S815 that settings for the extended functions have not been specified, the print-start application 205 outputs the XPS document (S807) and terminates processing.
[0100] If S815 determines that an extension setting has been specified, the print-start application 205 edits the drawing data in the XPS document according to the extension specified by the user and its setting. For example, consider the case where a layout printing function that allocates two pages to one page has been specified. In this case, the print-start application 205 obtains two FixedPages, which are the concept of pages in the drawing data of the XPS document, and scales them down and places them on a single FixedPage. Then, the print-start application 205 deletes the original two FixedPages from the drawing data and adds the newly created FixedPage to the drawing data. This process is repeated for all pages. If multiple extensions are specified, drawing data reflecting all of those specifications is generated. Finally, the print-start application 205 outputs the XPS document containing the edited drawing data and terminates the process.
[0101] As described above, in this configuration, the print-start application 205 reflects any changes to the settings of the driver functions supported by the printer driver 201 in the PrintTicket. The editing of drawing data within the XPS document is then left to the printer driver 201. As a result, the print-start application 205 does not need to perform unnecessary editing of the XPS document, enabling high-speed processing. In addition, because it utilizes the functions of the printer driver 201, it is possible to obtain completely identical results whether the function is specified by WSDA207 or the print-start application 205.
[0102] On the other hand, in this configuration, the print-start application 205 itself performs editing of drawing data within the XPS document for extensions not supported by the printer driver 201. This allows the user to be provided with functions not supported by the printer driver 201.
[0103] Figure 16 shows an example of information stored in Local Storage. The stored information consists of a name and a value. In this example, the print-start application 205 operates in printer driver mode and provides a stamp function as an extension and an assigned print function as a driver function. In the S612 process, information with the name "extension_PageStamp" and an empty value is added to LocalStorage.
[0104] When the stamp function is specified on the user interface of the print-launched application 205, the specified value is stored as the value of the extension function _PageStamp by the processing of S715. Here, the setting value has been changed to "Confidential" by the user. For the driver function, the assigned printing function, the information of the initial value set in PrintTicket is added by the processing of S710, under the name of driver function _JobNUpAllDocumentsContiguously. When the specified value of the assigned printing function is changed on the user interface of the print-launched application 205, the changed value is stored by the processing of S715. Here, the setting value has been changed to "ns0000:PagesPerSheet_2" by the user. This name is the Option name defined in PrintCapabilities of the printer driver 201. As described above, whether it is an extension function or a driver function can be determined by the prefix of the information stored in Local Storage.
[0105] In the S810 process, the print-start application 205 determines whether a driver function predicated with "driver function_" exists in Local Storage. In the S812 process, the print-start application 205 directly uses the Option name stored as a value in Local Storage as the Option name in PrintTicket. In the S815 process, the print-start application 205 determines whether an extension predicated with "extension_" exists in Local Storage.
[0106] As described above, in this embodiment, the user interface of the print-start application 205 can be displayed after the user issues a print command (i.e., after the XPS document is output from the drawing application) and before the printer 102 performs the printing operation. Furthermore, in cases where the print-start application 205 is uniquely assigned to the printer 102 regardless of the type of printer driver 201, optimal functional enhancements can be achieved according to the type of printer driver 201. If a fax driver is connected, a user interface is displayed as an input screen for entering the recipient and fax number, which are essential for fax transmission.
[0107] If a printer driver is connected, a print preview function can be implemented to allow users to check the print result in advance on the display unit 119, according to their specifications. Furthermore, the system can determine the capabilities of the connected printer driver 201 based on the information it provides, and provide any missing functions as extensions. This means that even in cases where the connected driver is a standard printer driver provided by Microsoft (registered trademark) along with the OS, and the printer vendor cannot extend its functionality, the printer vendor can extend its own functions by using the print-start application 205.
[0108] In this embodiment, the fax driver mode, the printer driver mode print preview, and the function extension are all implemented in a single GUI application, the print-start application 205. However, it goes without saying that these three functions do not necessarily need to be implemented in combination, and the print-start application 205 can be configured to have one or two of the three functions.
[0109] <Embodiment 2> The above-described embodiment can also be performed by executing the following process: a recording medium containing program code for software that realizes the functions of the above-described embodiment is supplied to a system or device. The computer (or CPU or MPU) of that system or device then reads and executes the program code stored on the recording medium. This achieves the above-described objective. In this case, the program code read from the storage medium itself realizes the functions of the above-described embodiment, and the storage medium containing that program code constitutes the present invention.
[0110] For storing program code, storage media such as flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs can be used.
[0111] Furthermore, the functionality of the aforementioned embodiment is not only realized by the execution of program code read by the computer. It also includes cases where the operating system running on the computer performs some or all of the actual processing based on the instructions of that program code, and the functionality of the aforementioned embodiment is realized through that processing.
[0112] Furthermore, the program code read from the storage medium may be written to the memory of a function expansion board inserted into a computer or a function expansion unit connected to a computer. Then, based on the instructions of that program code, the CPU or other components of the function expansion board or function expansion unit may perform some or all of the actual processing. The functions of the embodiment described above are realized through this processing. [Explanation of symbols]
[0113] 102 Printing device 119 Display section 201 Printer Driver 202 UWP applications 203 Legacy Applications 203 Print-Activated Application Launcher 205 Applications that launch when printing 206 spool files 207 WSDA 208 Configuration Modules 209 Printer Extensions (PEX) 506 MFPUtility 508 Printer drivers by model 509 Common Printer Driver 510 Standard Printer Driver 511 Fax Driver
Claims
1. A GUI application program that can provide a GUI when a driver that does not have the functionality to provide a GUI (Graphical User Interface) is selected, The steps include obtaining drawing data generated by a drawing application, A step of acquiring at least one of the following: data including information indicating the settings when a predetermined process based on the drawing data is performed by a predetermined device, and data including information indicating the capabilities of the driver. A step of determining whether the first information is included in at least one of the data containing information indicating the settings and the data containing information indicating the capabilities of the driver, The first step is to provide the display item, Have the computer run it, A program characterized in that whether or not to provide the first display item depends on whether or not the first information is included.
2. If at least one of the data containing information indicating the above settings and the data containing information indicating the capabilities of the driver includes information indicating that the driver is a fax driver as the first information, then an input screen is provided as the first display item to allow the user to input the destination information necessary for sending a fax. The program according to claim 1, characterized in that if at least one of the data containing information indicating the above settings and the data containing information indicating the capabilities of the driver does not contain information indicating that it is the fax driver, the input screen is not provided.
3. The data containing the information indicating the above settings is data output from the drawing application together with the drawing data. The program according to claim 2, further characterized in that it performs a step of editing data including information indicating the settings based on the destination information entered on the input screen.
4. If the data containing information indicating the capabilities of the driver does not include information regarding a predetermined function that the GUI application can provide as first information, then a display item that can specify the predetermined function is provided as the first display item. The program according to claim 1, characterized in that if the data containing information indicating the capabilities of the driver includes information regarding the predetermined function, the display item is not provided.
5. The program according to claim 4, further characterized by causing the program to perform the step of editing the drawing data based on the information specified in the display item.
6. If the data containing the information indicating the above settings includes information indicating that a print preview screen should be displayed as the first information, then the print preview screen based on the drawing data will be provided as the first display item. The program according to claim 1, characterized in that if the data containing the information indicating the settings does not contain information indicating that the print preview screen should be displayed, the print preview screen is not provided.
7. The program according to claim 6, further characterized by causing the program to perform a step of editing data including information indicating the settings based on the information indicated in the print preview screen.
8. The program according to any one of claims 1 to 7, characterized in that the data including information indicating the above settings is a PrintTicket.
9. The program according to any one of claims 1 to 7, characterized in that the data containing information indicating the aforementioned settings is data contained within PropertyBag.
10. A GUI application program that can provide a GUI when a driver that does not have the functionality to provide a GUI (Graphical User Interface) is selected, The steps include obtaining information about the type of the aforementioned driver, Based on the information regarding the type of driver, if the driver is a fax driver, the step of providing an input screen for the user to input the destination information necessary for sending a fax; A program that causes a computer to execute something.
11. Information regarding the type of the driver is obtained from at least one of the following: data containing information indicating the settings and data containing information indicating the capabilities of the driver. The program according to claim 10, further characterized in that it performs a step of determining whether the driver is a fax driver based on the information obtained regarding the type of the driver.
12. The program according to claim 10 or 11, further characterized by causing the program to perform a step of editing data including information indicating the settings based on the destination information entered on the input screen.
13. A GUI application program that can provide a GUI when a printer driver that does not have the functionality to provide a GUI (Graphical User Interface) is selected, The steps include obtaining drawing data generated by a drawing application, The steps include: acquiring data that includes information indicating the capabilities of the aforementioned driver; The steps include providing a display item that allows specifying a predetermined function that is not included in the information indicating the capabilities of the driver and is a function that the GUI application can provide, based on data including information indicating the capabilities of the driver; A program that causes a computer to execute something.
14. The process further includes a step of determining whether the information indicating the settings includes the predetermined function, based on data including information indicating the capabilities of the driver and data including information indicating the settings. The program according to claim 13, characterized in that it provides the display item if the information indicating the setting includes the predetermined function.
15. The program according to claim 13 or 14, which further causes the program to perform the step of editing the drawing data based on the information specified in the display item.
16. A GUI application program that can provide a GUI when a printer driver that does not have the functionality to provide a GUI (Graphical User Interface) is selected, The steps include obtaining drawing data generated by a drawing application, A step to determine whether the print preview screen is set to be displayed, If the setting to display the print preview screen is enabled, the step of providing a print preview screen based on the drawing data, A program that causes a computer to execute something.
17. The program according to claim 15, further characterized in that it causes the program to perform a step of editing data including setting information, which is output from the application along with the drawing data, based on the information indicated in the print preview screen.
18. In the settings screen that is displayed before the drawing data is output from the drawing application in response to a print request, the print preview screen is instructed to be displayed. The program according to claim 16 or 17, characterized in that the print preview screen is provided after the drawing data is output from the drawing application in response to a print request.
19. The GUI application is a program according to any one of claims 1 to 18, characterized in that it acquires drawing data before the driver.
20. Upon installation of the aforementioned driver, Metadata is obtained by the OS via the internet. The GUI application is a program according to any one of claims 1 to 19, characterized in that it is obtained from an application distribution system via the Internet based on the description in the acquired Metadata.
21. The program according to claim 20, characterized in that the GUI application is associated with a device described in the Metadata.
22. The program according to claim 20 or 21, characterized in that the information processing device on which the GUI application is installed has at least one driver installed from among a plurality of drivers corresponding to the devices described in the Metadata.
23. The program according to any one of claims 1 to 22, characterized in that if a driver that does not have the function of providing the GUI is selected, the GUI application provides the GUI based on the instructions of the OS, and if a driver that has the function of providing the GUI is selected, the GUI application is not started.
24. The program according to claim 4 or 13, characterized in that the predetermined function is at least one of the stamping function and the page layout function.
25. The program according to any one of claims 1 to 24, characterized in that the driver that does not have the function of providing the GUI is a V4 printer driver.