Program and Information Processing Device

The application program addresses the lack of customizability in V4 printer drivers by providing a GUI and editing print data to enhance print settings and preview functionality.

JP7856822B2Active Publication Date: 2026-05-11CANON KK
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CANON KK
Filing Date
2025-05-28
Publication Date
2026-05-11

Smart Images

  • Figure 0007856822000001
    Figure 0007856822000001
  • Figure 0007856822000002
    Figure 0007856822000002
  • Figure 0007856822000003
    Figure 0007856822000003
Patent Text Reader

Abstract

To provide a technique that provides more appropriate functions in accordance with print setting.SOLUTION: Provided is a program of editing application with which it is possible to edit intermediate data including drawing data generated by a drawing application. The program causes a computer to execute the steps of: acquiring information associated with print setting; determining an interface used in the acquisition of intermediate data among a plurality of interfaces on the basis of the acquired information associated with print setting; and acquiring the intermediate data using the determined interface. The intermediate data outputted from the editing application is acquired by a printer driver and converted to a print command.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a program and an information processing apparatus. In particular, it relates to a program and an information processing apparatus for an editing application.

Background Art

[0002] A configuration in which a printer driver installed in a host computer is used as software for controlling a printing apparatus to perform printing on a printing apparatus connected to the host computer is generally known. An operating system (OS), which is basic software, is installed in 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 apparatus can provide a means for instructing the printer to perform printing using the OS by providing a printer driver conforming to the specifications of the OS. When a version prior to Windows (registered trademark) 8 of Microsoft (registered trademark) is used as the OS, the printer driver is configured with an architecture called a V3 printer driver. The V3 printer driver displays a graphical user interface (hereinafter also referred to as "GUI" or "user interface") at the timing when a printing request from a user occurs. By this GUI, a function for prompting the user to perform some operation can be provided. 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 that 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 extend the functionality of the printer driver. One such application is called the Windows Store Device App (WSDA). By providing a WSDA, vendors providing printing devices can customize the print settings screen when printing drawing data (Patent Document 1). [Prior art documents] [Patent Documents]

[0004] [Patent Document 1] Japanese Patent Publication No. 2017-33052 [Overview of the Initiative] [Problems that the invention aims to solve]

[0005] 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 using a driver that does not have the functionality to provide a GUI, like a V4 printer driver. However, conventional WSDA still had limitations. In addition, there is an application called Printer Extensions (PEX) that extends the functionality of printer drivers, but PEX also has the same limitations as WSDA. In view of these problems, the present invention aims to provide a technology that provides more appropriate functions according to the settings. [Means for solving the problem]

[0006] The present invention is an application program that cooperates with a class driver, which is a class driver incorporated into the operating system of an information processing device, and which generates print commands that can be interpreted by multiple image forming devices provided by multiple vendors, and outputs the print commands to the multiple image forming devices, and is configured on a computer, In response to a print request from the user, The print settings screen provided by the class driver displays an item for accepting print settings that cannot be accepted, and an image showing the print image, and in response to a change in the print settings via the item, displays an image showing the print image corresponding to the changed print settings. [Effects of the Invention]

[0007] This invention makes it possible to provide more appropriate functions depending on the settings. [Brief explanation of the drawing]

[0008] [Figure 1] A block diagram showing the hardware configuration of the printing system. [Figure 2]Block diagram of the driver printing system. [Figure 3] A schematic diagram illustrating the screen used when issuing a print command. [Figure 4] A flowchart illustrating the setup process for an editing application. [Figure 5] An example of PrintCapabilities. [Figure 6] An example of PrintTicket. [Figure 7] A flowchart of the UI processing for an editing application. [Figure 8] A schematic diagram of the user interface of an editing application. [Figure 9] A flowchart for editing and closing processes in an editing application. [Figure 10] Examples of information stored in Local Storage. [Figure 11] Flowchart of the editing and termination processes of the editing application in Embodiment 2. [Figure 12] Flowchart of the editing and termination processes of the editing application in Embodiment 3. [Figure 13] Conceptual diagram of the logical structure of XPS. [Modes for carrying out the invention]

[0009] In each of the following embodiments, a more appropriate function is provided using an application called a Print Workflow Application (WFA). This WFA is an editing application that can edit intermediate data, including drawing data generated by the drawing application, and is launched in response to a print request, so it is also called a print-time launched application. Details of the editing application will be described later.

[0010] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the present invention according to the claims, and not all combinations of the features described in these embodiments are essential for the solution means of the present invention.

[0011] <Embodiment 1> FIG. 1 is a block diagram showing the hardware configuration of a printing system. In this figure, a 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. Further, input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and a display device such as a display unit 119 is connected to the output interface 115.

[0012] An initialization program is stored in the ROM 112, and an application program group, an operating system (OS), a printer driver, and other various data are stored in the external storage device 114. The RAM 113 is used as a work memory or the like when executing various programs stored in the external storage device 114.

[0013] In this embodiment, the CPU 111 performs processing according to the procedures of the programs stored in the ROM 112, whereby the functions described later in the host computer 101 and the processing according to the flowchart described later are realized. A printing device 102, which is a device, is connected to the host computer 101 via the input / output interface 116. Here, the host computer 101 and the printing device 102 are separately configured, but they may be configured as one information processing device.

[0014] <Block Configuration of Driver Printing System> Figure 2 is a block diagram of a driver printing system. Here, a host computer 101 equipped with an OS of Windows (registered trademark) 8 or later of Microsoft (registered trademark) is used, and the explanation is based on a printing system operating in an architecture called a V4 printer driver. Note that, as the printer driver of this embodiment, a per-model printer driver, which is a model-specific printer driver provided by a printer vendor for a printing device 102, will be described as an example. However, the printer driver of this embodiment is not limited to the per-model printer driver. For example, it may be a common printer driver provided by a printer vendor that can support a plurality of types of printing devices of the printer vendor. Also, it may be a driver provided as one of the functions within the package of the OS together with the OS, and a class driver (a standard printer driver that uses a standardized printing method) that can be commonly used for printing devices provided by a plurality of vendors.

[0015] When a user gives a print instruction from a UWP (Universal Windows Platform) application 202, a predetermined screen is displayed by an MPD (Modern Print Dialog), which is a function of the OS and not shown in the figure. The UWP application 202 is a drawing application for generating drawing data (such as images and text information that are the basis for forming a print on paper). The screen provided by the MPD has a print preview function that allows the user to confirm the print result on the screen and a function that allows the user to select basic print settings.

[0016] Fig. 3 shows an example of a specific screen displayed during print settings. In Fig. 3(A), when a print instruction is given on a screen 301 provided by a UWP application, which is a drawing application, the setting screen 302 shown in Fig. 3(B) is displayed by the MPD of the OS. On this setting screen 302, the user can select the driver to be used. Furthermore, on the setting screen 302, basic print settings can also be specified.

[0017] 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 303 is selected on the settings screen 302 in Figure 3(B), the detailed settings screen 304 provided by WSDA, shown in Figure 3(C), is displayed. On this detailed settings screen 304, 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 that provides the printing device (hereinafter referred to as the printer vendor). Note that the image that appears to be a document image displayed on the right side of the detailed settings screen 304 provided by WSDA in Figure 3(C) is a sample image that is originally included in WSDA. In other words, this sample image 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.

[0018] WSDA207 receives print setting information from MPD, modifies that information according to user settings, and returns it to MPD. Here, the print setting information is written in XML format based on the OS-defined format and is contained in data called PrintTicket. WSDA207 can refer to and modify PrintTicket, but it cannot refer to drawing data.

[0019] The PrintTicket is generated by the configuration module 208 of the selected printer driver 201. WSDA207 generates (edits) 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 editing application 205 (described later) can obtain the PrintCapabilities generated by the configuration module 208 through the OS functions.

[0020] 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 Javascript® Constraint included in the printer driver 201.

[0021] After the print settings shown in Figure 3, a print request is made when the "Print" button is selected on the settings screen 302 provided by the OS's MPD. When the user instructs to print on MPD, the UWP application 202 receives the request from 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, and is also called intermediate data. The print data in this embodiment includes the aforementioned PrintTicket and drawing data generated by the drawing application.

[0022] The XPS document generated by the UWP application 202 is passed to the OS component, the editor application launcher 204. The editor application launcher 204 determines, via DeviceMetadata (hereinafter simply referred to as Metadata), whether an editor application 205 associated with the printer driver 201 exists and is configured to be launched. If it is determined that the editor application 205 exists and is configured to be launched, the editor application 205 is launched. If the corresponding editor application 205 does not exist, the editor application launcher 204 stores the XPS document as a spool file 206.

[0023] Here, we will explain the relationship between WSDA207 and the editing application 205. WSDA207 is an extension application that extends the functionality of the printer driver. Specifically, WSDA207 can provide a GUI, such as a print settings screen, when a driver is selected that does not have the functionality to provide a Graphical User Interface (hereinafter also referred to as "GUI" or simply "User Interface"), like the V4 printer driver. However, WSDA207 cannot provide a function that prompts the user to perform some operation by displaying a GUI at the time a print request is made by the user, as is the case with the V3 printer driver. Therefore, in this embodiment, an editing application 205 that operates in response to a print request from the user is used.

[0024] The editing application 205, also known as the Print Workflow Application, is an extension application that, like WSDA207, extends the functionality of the printer driver 201 provided by the printer vendor. In other words, if a driver that does not have the functionality to provide a GUI, such as a V4 printer driver, is selected, it can provide a GUI, such as a print settings screen, based on the OS instructions. However, if a V3 driver, which has the functionality to provide a GUI, is selected, the OS does not launch the editing application launcher 204 and stores the XPS document generated by the drawing application as a spool file 206. In other words, if a V3 driver is selected, the editing application 205 will not launch and will not provide a GUI.

[0025] Note that WSDA207 and editing application 205 are not provided as components of printer driver 201, but are standalone applications. While WSDA207 and editing 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 conventional WSDA.

[0026] WSDA207 and editing 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. Printer vendors also provide metadata to a metadata server managed by Microsoft® in advance. Therefore, the appropriate WSDA207 and editing application 205 are automatically installed on the host computer 101. More specifically, the metadata contains the device identification information (Hardware ID) of the printing device and the software identification information (Identity Name) of the WSDA and editing application. The printer driver's Inf file also contains the device identification information (Hardware ID). Therefore, when the printer driver is installed, the OS downloads the corresponding metadata based on the device identification information. The OS then refers to that metadata, identifies the software identification information (Identity Name) associated with the corresponding device identification information (Hardware ID), and obtains the corresponding WSDA and editing application. Therefore, printer driver 201, WSDA207, and editing application 205 are associated with each other.

[0027] The editing application 205 can display a user interface that accepts operation instructions from the user. It can also receive XPS documents, which are print data, and edit the PrintTicket and drawing data within those documents. In contrast, the extension application WSDA207 can display a user interface, but it cannot obtain XPS documents and therefore cannot view or edit the drawing data within them.

[0028] When the editing 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 (not shown) in the driver 201, where the number and order of filters are controlled by the configuration file (not shown). The filter pipeline manager is a mechanism that performs printing by passing the document through multiple filters. In this embodiment, the filter group 210 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. Although the filter pipeline manager operates as a function of the printer driver 201, the filter pipeline manager itself is originally an OS component. However, in the V4 printer driver, since the driver itself does not have a filter pipeline manager, the filter pipeline manager, which is an OS component, is used as a function of the driver.

[0029] The layout filter 211 takes an XPS document stored in the 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.

[0030] The print command filter 212 takes the output from the layout filter 211 as input and, according to the print setting information, converts the intermediate data, an XPS document, into print commands that the printer 102 can interpret and outputs 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 commonly 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 before being converted into print commands that the raster printer can interpret.

[0031] 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.

[0032] In the case where the drawing application is a Legacy application 203 such as a Win32 application, in order to set the print settings, Printer Extensions 209 (hereinafter referred to as PEX) is launched instead of WSDA. PEX 209 is launched via the configuration module 208 and can provide a user interface through which the user can specify the print settings. PEX 209 may be provided as a component within the driver package together with the printer driver 201, or may be distributed separately. Similar to WSDA 207, PEX 209 can reference and modify the PrintTicket, but cannot obtain the XPS document and cannot reference or edit the drawing data within the XPS document. Also, PEX 209 is launched only when instructed by the user on the Legacy application 203 and is not necessarily launched at the time of printing. When printing is instructed on the Legacy application 203, the Legacy application 203 generates an XPS document as the print data. Then, the editing application 205 acquires and outputs the XPS document output from the Legacy application 203. The subsequent process is omitted because it is the same as the printing process from the UWP application 202.

[0033] <Configuration of XPS Document (XPS Document)> Here, we will briefly explain XPS documents using Figure 12. An XPS document has a tree structure with a FixedDocumentSequence (hereinafter FDS) as the root. An FDS has multiple FixedDocuments (hereinafter FDs), and an FD has multiple FixedPages (hereinafter FPs). An FP describes the content of the document pages in XML format and contains the content that will actually be displayed or printed. Each of the FDS, FD, and FP is sometimes called an XPS part. Resources such as fonts and images used in the page content of an FP can be shared among multiple FPs. In addition, each of the FDS, FD, and FP can have print settings in PrintTicket. The print settings used when printing each FP are a merged PrintTicket of the FDS's PrintTicket, the PrintTicket of the parent FD of the FP to be printed, and the PrintTicket of the FP to be printed. The FDS's PrintTicket is also called the job's PrintTicket.

[0034] Figure 12 is an example of a block diagram showing the logical structure of an XPS document. The logical structure of XPS document 401 is a tree structure with FDS402 as the root. FDS402 has FD403 and FD404 as children. FD403 has FP405 and FP406 as children. FD404 has FP407 as a child. Regarding PrintTickets that describe print settings, FDS402 holds PrintTicket408. Additionally, FD403 holds PrintTicket409, FP405 holds PrintTicket410, and FD404 holds PrintTicket412. Here, PrintTicket408 of FDS402 corresponds to the PrintTicket of the job. PrintTicket409 of FD403 and PrintTicket412 of FD404 correspond to the PrintTicket of the document, respectively. And in the lower hierarchy, PrintTicket410 of FP405 corresponds to the PrintTicket of the page.

[0035] Furthermore, in Figure 12, FP406 and FP407 do not hold PrintTickets. For example, when printing FP405, the PrintTicket used will be a merged PrintTicket of PrintTicket408, PrintTicket409, and PrintTicket410. Also, FP406 and FP407, which do not hold PrintTickets, use the PrintTickets of their respective higher layers. For example, when printing FP406, the PrintTicket used will be a merged PrintTicket of PrintTicket408 and PrintTicket409.

[0036] In Figure 12, FP405 and FP406 share resources 411, such as fonts and images, while FP507 utilizes resources 413, such as fonts and images. Furthermore, FP407 holds a thumbnail image 414.

[0037] <Setup process for editing applications> Figure 4 shows the main processing flow of the setup process for editing application 205 in this printing system. Hereafter, editing application 205 may be described as the main entity for each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program (the program for editing application 205). Note that not all processes are necessarily executed sequentially on a single process; in some cases, processing may be transferred to the OS and then called again by the OS. This is merely a simplified and easy-to-understand flow illustrating the main processes of editing application 205.

[0038] When the editing application launcher 204 receives an XPS document from the drawing application that requested the print, it calls the initialization process of the editing application 205 associated with the printer 102. After the print settings described in Figure 3 above, when the "Print" button is selected on the settings screen 302 provided by the OS, a print request is made and the drawing application outputs the XPS document. In its initialization process, the editing application 205 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 editing application 205 finishes its initialization process, the OS executes the setup process of the editing application 205, which was registered as a defined event handler. Figure 4 shows this setup process.

[0039] First, the editing application 205 retrieves the job's PrintTicket stored in the XPS document (S401). 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.

[0040] Next, the PrintTicket of the acquired job is referenced to check if a print preview activation instruction exists (S402). The specific method for checking the PrintTicket will be described later using Figure 6. In addition, the print preview activation instruction can be implemented by means other than PrintTicket, as long as it can be specified from WSDA207 or PEX209 and referenced from the editing application 205. 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 configuration 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 drawing data generated by the drawing application on the display unit 119. In other words, "the presence of a print preview activation instruction in PrintTicket" indicates that the user has instructed the display of the print preview screen. By viewing the print preview screen, the user can check whether the desired print result can be obtained before printing, and can instruct the user to modify the print settings, delete specific pages, or cancel the printing process as needed.

[0041] If S402 determines that a print preview activation command exists, the editing application 205 saves information indicating that the print preview is "enabled" (S403). The processing in S403, and the retention of information by the editing application 205 as described below, utilize, for example, Local Storage provided by the OS. The information stored in Local Storage is related to print settings, and details will be described later using Figure 10.

[0042] Subsequently, a standard API provided by the OS is called to instruct the editing application 205 to provide a user interface during its subsequent processing (S404). Executing this API invokes the UI processing of the editing application 205, as shown in Figure 7 below, causing the editing application 205 to display the user interface.

[0043] If it is determined in S402 that there is no print preview start instruction, the editing application 205 stores in Local Storage that the print preview is "invalid" in the stored information in Local Storage (S405).

[0044] As described above, in the setup process of the editing application 205, the editing application 205 determines whether the startup of the user interface is necessary, and if necessary, instructs it and stores the information necessary for subsequent processing.

[0045] <Configuration Examples of PrintTicket and PrintCapabilities> FIG. 5 is an example of PrintCapabilities of a printer driver. Note that these PrintCapabilities are described mainly for the parts necessary for the explanation, and some are omitted.

[0046] PrintCapabilities represents the functions (Features) of the driver and the setting items (Options) that can be set for each function. In the example of FIG. 5, PrintCapabilities 500 represents that for the paper type (PageMediaType), plain paper (Plain) and photo paper (PhotoPaper) can be set.

[0047] FIG. 6 is an example of a PrintTicket generated based on PrintCapabilities 500 of the printer driver shown in FIG. 5. As shown in FIG. 6, the PrintTicket stores the setting values of each function defined in PrintCapabilities. For example, the Feature "psk:PageMediaType" indicates the paper type to be used for printing. In the PrintTicket of FIG. 6, it indicates that "psk:Plain", that is, plain paper is specified. The determination process of whether there is a print preview start instruction in S402 is to determine whether the specified value of the Feature "ns0000:JobPreview" is "ns0000:ON".

[0048] <UI processing for editing applications> If the UI display specification of S404 is executed, the OS calls the UI processing of editing application 205 after the setup process of editing application 205 has finished. Figure 7 shows the main processing flow of the UI processing of editing application 205 in this printing system.Hereafter, editing 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, and 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 editing application 205 for convenience and clarity.If the UI display specification of S404 is not executed, the OS skips the UI processing shown in Figure 7 and calls the editing and termination processing described later.

[0049] First, the editing application 205 obtains the job's PrintTicket using a predetermined API of the OS (S701). The editing application 205 is provided with a means of obtaining the job's PrintTicket as an OS function. By using this, the editing application 205 can easily refer to and change the job's print settings without directly handling the PrintTicket in the XPS document. In addition, the job's PrintTicket can be obtained even before the XPS document is fully generated, and processing it in advance contributes to improved performance. Furthermore, the editing application 205 obtains PrintCapabilities using a predetermined API of the OS based on the obtained PrintTicket (S702).

[0050] Next, the editing application 205 configures (generates) a user interface with control items that allow the user to specify the functions to be provided in the print preview, based on the acquired PrintTicket and PrintCapability (S703).

[0051] The editing application 205 then retrieves the XPS document using a predetermined API of the OS (S704). Furthermore, the editing application 205 analyzes the contents of the XPS document and displays a screen based on the XPS document on the display unit 119 (S705).

[0052] As an example of the user interface generated by editing application 205, Figure 8 shows an example of the print preview screen provided by editing application 205. Display item 801 is a control item for changing the page displayed on 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 with the current print data and print settings. Display item 802 is a print preview screen that shows an image of the print result for the specified page. Display item 803 is a control item for specifying the layout print function. Display item 804 is a control item for specifying the paper type. Display items 803 and 804 display functions that the driver has (functions that the driver supports), so as mentioned above, the selection items are in accordance with PrintCapabilities. Display items 805 and 806 are control items for specifying the print range. Display item 805 allows the user to specify the type of print range. Examples of print range types include "Print all pages" and "Print specified range". Furthermore, display item 806 allows the user to specify the print range when "Print specified range" is selected in display item 805. In the example in Figure 8, pages 1 to 2 are specified as the print target. Note that the printer driver 201 in this example does not have a function to change the print range. In other words, the PrintCapability of the printer driver 201 in this example does not include a function to change the print range. Display item 807 is a button to start printing. Display item 808 is a cancel button; if the user presses this button, the subsequent printing process will be canceled.

[0053] In this embodiment, the editing application 205 can achieve a more accurate print preview by reflecting the settings configured in PrintTicket.

[0054] The XPS document acquired by the editing application 205 is generated by the drawing application that requested the print, and is data before it is processed by the printer driver 201. In other words, the editing application 205 acquires the XPS document before the printer driver 201. Therefore, even if, for example, the PrintTicket in the XPS document specifies the setting for assigned printing, the drawing data in the XPS document received by the editing application 205 has not undergone the assigned printing process. Considering such cases, the editing application 205 can display a print preview screen that reflects the print settings on the display unit 119. Then, if the print settings are changed on the user interface displayed by the editing application 205, the editing application 205 redisplays the print preview screen that reflects the changes on the display unit 119.

[0055] There are two ways to create the data for the preview display in the editing application 205. The first is for the editing application 205 to edit the drawing data of the XPS document itself. In this method, the editing application 205 makes edits to the drawing data to reflect the layout printing settings. The second method is for the editing application 205 to change how the drawing data is displayed without editing the drawing data of the XPS document. In this method, for example, in the case of a 2-in-1 layout setting, the editing application 205 simply arranges the two pages in the drawing data side by side, making it appear as if the layout printing settings are reflected. In S705, the second method is used to perform the preview display. However, the preview display in this embodiment can also be performed using the first method.

[0056] The editing application 205 receives input from the user (S706), and when printing is instructed on the user interface shown in Figure 8, it saves the settings of each function specified by the user as storage information in Figure 10 to Local Storage (S707). This completes the UI processing of the editing application 205.

[0057] This configuration enables a print preview function that displays a print image close to the final print result before printing, based on the drawing data generated by the drawing application and the print settings specified by the user. Furthermore, the print preview screen provided by the editing application 205 allows users to check the print results 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 job to the desired number of pages.

[0058] <Interface used by editing application 205> Thus, by using editing application 205, it becomes possible to provide functions that could not be provided by WSDA207 alone. However, since editing application 205 is launched in response to a print request from the user, the following considerations are necessary. In other words, when editing application 205 is launched in response to a print request, it will always acquire and output an XPS document. To put it another way, editing application 205 will launch even if it does not provide any functions to the user, as long as the launch conditions are met. For example, if the print preview function is provided by editing application 205, editing application 205 will launch and acquire and output an XPS document even if the user does not use the print preview function. This meant that there was a possibility that performance would degrade simply because the editing application was present, even if the user was not using the preview function.

[0059] In editing application 205, there are two types of access methods for the input / output interface that acquires and outputs XPS documents: a stream-format interface and a document-format interface. The stream-format interface treats the XPS document as a byte stream. In other words, the data acquired in stream format is a ZIP-compressed collection of XPS parts. Therefore, performance degradation is suppressed when using the stream-format interface. Here, XPS parts refer to FDS, FD, FP and their associated PrintTickets, as well as resources such as images and fonts. However, when editing data acquired using the stream-format interface, it is necessary to parse the byte stream data, which requires complex processing. On the other hand, the document-format interface treats the XPS document as a package with APIs that allow access to each XPS part. When using the document-format interface, editing application 205 acquires the XPS document in an object model format. In the document-format interface, the XPS document is handled in units of XPS parts, and input / output is performed for each XPS part. Therefore, when using the document-format interface, there is no need to parse the XPS document and extract the XPS parts. Therefore, data obtained using a document-based interface makes editing XPS documents easier compared to stream-based formats. However, because data analysis is required to generate packages, processing cannot begin until all the necessary data in the XPS document is available, which can lead to performance degradation.

[0060] Therefore, in this embodiment, an appropriate interface is used as the input / output interface for XPS documents in the editing application 205. Details are described below. Note that the input / output interface for XPS documents in the UI processing of the editing application 205 in Figure 7 does not involve editing the XPS document, so either stream format or document format may be used. Note that if editing of the XPS document is performed during the display processing of S705, it is preferable to use the document format interface.

[0061] The processing of the editing application 205 in Figures 4 and 9 is background processing, while the processing of the editing application 205 in Figure 7 is foreground processing.

[0062] <Editing and closing processes for the editing application> The editing process of editing application 205 will be explained using Figure 9. After the UI processing of editing application 205 in Figure 7 is completed, the OS calls the editing and termination processing of editing application 205 in Figure 9. If the UI display specification processing in S404 is not executed, the OS calls this process without calling the UI processing of editing application 205 in Figure 7. Hereafter, editing 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 and then called again by the OS. This is merely a flowchart that shows the main processes of editing application 205 for convenience and clarity.

[0063] The editing application 205 reads the UI display information from the stored information saved in S403 (S901). Then, in S902, the editing application 205 determines whether the UI display was performed. If it is determined in S902 that the UI display was not performed, it is decided to use a stream-format interface, and the editing application 205 obtains the XPS document using the stream-format interface (S903). This is because if the UI display was not performed, editing the XPS document is not necessary, and using a stream-format interface is advantageous in terms of performance.

[0064] Furthermore, the editing application 205 outputs the XPS document acquired by S903 without editing it, using the same stream-format interface as when it was acquired (S904). Once the editing application 205 outputs the XPS document, the OS stores it as a spool file 206. Then, processing by the printer driver 201 begins.

[0065] If S902 determines that the UI has been displayed, the editing application 205 reads the print settings information saved as stored information in S707 (S905). In S906, the editing application 205 determines whether the user has changed any settings before or after the UI display. If S906 determines that no settings have been changed before or after the UI display, the editing application 205 obtains the XPS document using a stream-based interface (S903). Then, it outputs the XPS document as is using the stream-based interface (S904). This is because if there were no instructions to change settings, there is no need to edit the XPS document, and using a stream-based interface is advantageous in terms of performance.

[0066] If the editing application 205 determines that a setting change has been made in S906, it determines whether there are any settings among the changed settings that require editing of the job's PrintTicket by the editing application 205 (S907). If there are settings among the changed settings that require editing of the PrintTicket, the editing application 205 obtains the job's PrintTicket using the OS's designated API (S908). Then, the editing application 205 edits the job's PrintTicket to reflect the setting values ​​related to the driver function in the stored information obtained in S905 (S909). Note that the driver function refers to the functions that the printer driver 201 has (supports). The configuration of the information stored in Local Storage and the method of reflecting these processes in the job's PrintTicket will be described later using Figure 10. Note that if there are multiple driver functions that have been changed by UI input in S706, the editing application 205 will perform the process of reflecting the setting values ​​of all driver functions in the job's PrintTicket.

[0067] Next, in S910, the editing application 205 determines whether the changed settings include any settings that require editing of the XPS document by the editing application 205. This determination involves determining whether editing by the editing application 205 is necessary for at least one of the following: the drawing data within the XPS document, or the PrintTicket within the XPS document (excluding the job's PrintTicket). Note that the job's PrintTicket is excluded from the determination in S910 because the job's PrintTicket has already been edited in S907-S909.

[0068] If, during the configuration changes in S910, it is determined that there are no settings that require XPS editing by the editing application 205, it is decided to use the stream-format interface. The editing application 205 then uses the stream-format interface to acquire and output the XPS document (S903, S904). If, during the configuration changes in S910, it is determined that there are settings that require XPS editing by the editing application 205, it is decided to use the document-format interface. The editing application 205 then uses the document-format interface to acquire the XPS document (S911).

[0069] In S912, the editing application 205 edits the XPS document acquired in S911 based on the functions and settings specified by the user. The editing application 205 then outputs the edited XPS document using a document format interface (S913). Once the editing application 205 outputs the edited XPS document, the OS stores it as a spool file 206. When the XPS document is stored in the spool file 206, processing by the printer driver 201 begins.

[0070] In Figure 9, the editing application 205 determines whether editing of the job's PrintTicket is necessary in S907-S909, before acquiring the XPS document in S911, and then acquires and edits the job's PrintTicket. In other words, the editing application 205 references and modifies the job's print settings without directly handling the PrintTicket in the XPS document. This is because, as explained in the processing of S701, the job's PrintTicket can be acquired even before the XPS document is fully generated. Acquiring and editing the job's PrintTicket first contributes to improved performance. However, this embodiment is not limited to this. S907-S909 may be omitted. In other words, it may be determined in S910 whether editing of the XPS document is necessary, including whether editing of the job's PrintTicket is necessary. Then, in S912, editing of the XPS document, including editing of the job's PrintTicket, may be performed.

[0071] Here, we will explain the information stored in Local Storage using Figure 10. Figure 10 is a diagram showing an example of the information stored in Local Storage. The stored information consists of a name and a value, and includes information related to print settings.

[0072] In the S403 process in Figure 4, an ON setting value is added to Local Storage with the name RequestUI to indicate that the UI display is enabled. In the S405 process, an OFF setting value is added to Local Storage with the name RequestUI to indicate that the UI display is disabled.

[0073] In the S707 process shown in Figure 7, the settings for each function specified by the user on the print preview screen are saved in Local Storage. In the example shown in Figure 10, it is assumed that the user has changed three settings on the preview screen shown in Figure 8: Page Layout, Pages, and Range.

[0074] When the layout is changed, an item named JobNUpAllDocumentsContiguously, which is the corresponding PrintTicket setting item, is stored in Local Storage. Then, PagePerSheet_2, which is the Option name corresponding to the Page Layout setting item specified by the user, is added as the setting value to that item. In other words, when the layout is changed on the UI in Figure 8, information indicating the change in print settings is newly added to the stored information related to print settings in Figure 10.

[0075] For Pages settings, Local Storage adds information named "Pages" with a setting value of "Range" indicating the specified range. Furthermore, because a range is specified in Pages, Local Storage adds information indicating the specific range, named "Range," with a setting value of "1-2," indicating the print range. In other words, changes to the Pages and Ranges settings on the UI in Figure 8 result in the addition of information indicating the change in print settings to the stored information related to print settings in Figure 10.

[0076] In this way, the stored information in Figure 10, which was stored in Figures 4 and 7, is referenced, and the processing in Figure 9 is performed. Specifically, in the S902 process, the editing application 205 checks the setting value in RequestUI in Figure 10. If the setting value is ON, it is determined that the UI should be displayed.

[0077] Furthermore, in the S906 process, the editing application 205 checks the settings items from the second row onward in Figure 10, which are stored in Local Storage. In the case of Figure 10, since information for JobNUpAllDocumentsContiguously, Pages, and Range has been added, it is determined that the settings have been changed.

[0078] In the S907 process, the editing application 205 determines whether the job's PrintTicket needs to be changed based on the information stored in Local Storage. Specifically, if it determines that the settings for a driver-supported function, such as assigned printing, have been changed, it determines that the job's PrintTicket needs to be changed. In the example in Figure 10, since information about JobNUpAllDocumentsContiguously has been added, it determines that the assigned printing settings have been changed and therefore determines that the job's PrintTicket needs to be changed.

[0079] Then, in S909, the editing application 205 edits the job's PrintTicket. Specifically, it sets the setting value in the stored information as an Option for the Feature in the PrintTicket that corresponds to the name of the stored information in Figure 10. In other words, it changes the Option of the Feature called JobNUpAllDocumentsContiguously in the job's PrintTicket in Figure 6 to PagePerSheet_2. This reflects the setting change instructed by the user in the job's PrintTicket. Then, the printer driver 201 can generate a print command to send to the printer according to the settings in the PrintTicket. In other words, in this example, the printer driver 201 edits the drawing data in the XPS document and generates a print command in order to perform a layout print that prints two pages on one sheet based on the job's PrintTicket.

[0080] In the S910 process, the editing application 205 determines, based on the information stored in Local Storage, whether there are any changes that require editing of the XPS document by the editing application 205. For example, if the printer driver 201 does not support the function of changing the print range, the printer driver 201 cannot modify the XPS document to change the print range. Therefore, editing of the XPS document by the editing application 205 is necessary, and in such cases, it is determined that there are changes that require editing of the XPS document. In the example in Figure 10, since the Range item has been added, it is determined that the print range has been changed, which is a function not supported by the printer driver 201, and therefore it is determined that editing of the XPS document by the editing application 205 is necessary.

[0081] Then, in S912, the editing application 205 edits the XPS document. Specifically, in the Range item of the stored information in Figure 10, the print range is set to "page 1 to page 2," so the page data from page 3 onwards in the acquired XPS document's drawing data is deleted from the XPS document. As a result, the printer driver 201 generates a print command using the XPS document edited by the editing application 205 as input. Therefore, the printer driver 201 itself can print only the specified range without editing the XPS document to change the print range.

[0082] As described above, in this embodiment, by using the editing application 205, it is possible to provide a GUI in response to a print request. Furthermore, based on the print settings entered on the GUI provided by the editing application 205, the editing application 205 enables editing of the job's PrintTicket and XPS document.

[0083] Furthermore, while printer drivers support different functions (provided functions) depending on their type, the editing application 205 of this embodiment can reduce the functional disparity caused by the type of printer driver. In other words, the editing application 205 can edit XPS documents for functions (extensions) that the printer driver does not support. Therefore, even functions not supported by the printer driver can be provided to the user. In particular, even printer drivers that only have basic functions, such as standard printer drivers, can provide functions close to those of model-specific printer drivers by using the editing application 205. Note that for functions supported by the printer driver, after editing to reflect the setting changes in PrintTicket, the editing of the drawing data of the XPS document may be left to the printer driver. Alternatively, the editing application 205 may determine whether or not a function is supported by the driver based on pre-stored information about functions, or it may determine this by obtaining PrintCapability.

[0084] Furthermore, in this embodiment, the editing application 205 uses a stream-format interface when editing the XPS document by the editing application 205 is not required. Conversely, when editing the XPS document by the editing application 205 is required, a document-format interface is used. In other words, if the user does not use the print preview display, or does not change the settings even if they do use it, editing the XPS document by the editing application 205 is unnecessary, and therefore the editing application 205 uses a stream-format interface. This makes it possible to reduce the impact of performance degradation caused by the launch of the editing application 205. On the other hand, when editing the XPS document by the editing application 205 is required, editing of the XPS document by the editing application 205 is made possible by using the document-format interface.

[0085] <Embodiment 2> Next, Embodiment 2 will be described. In Embodiment 1, the editing application 205 presents the user with configurable functions by displaying a UI, and determines whether editing of the XPS document by the editing application 205 is necessary in response to user instructions. The interface is then switched depending on whether or not editing of the XPS document by the editing application 205 is necessary. On the other hand, Embodiment 2 is characterized in that the editing application 205 switches the interface depending on whether or not the UI display by the editing application 205 has been shown.

[0086] The hardware configuration of the printing system is the same as in Embodiment 1, so its description will be omitted. Furthermore, the flow of each process is the same in Embodiment 2, except for the editing and termination processes of the editing application 205 in Embodiment 1 (Figure 9). Therefore, the following will mainly describe the differences from Embodiment 1.

[0087] Figure 12 shows an example of the editing and termination process in Embodiment 2. After the UI processing of the editing application 205 in Figure 7 is completed, the OS calls the editing and termination process of the editing application 205 in Figure 12. If the UI display specification process in S404 is not executed, the OS calls this process without calling the UI processing of the editing application 205 in Figure 7. Hereafter, the editing 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 flowchart that shows the main processes of the editing application 205 for convenience and clarity.

[0088] The editing application 205 reads the UI display information from the storage information of Figure 10, which was saved in S403 (S1201). Then, in S1202, the editing application 205 determines whether the UI was displayed. If it is determined in S1202 that the UI was not displayed, the editing application 205 obtains the XPS document using a stream-type interface (S1203). This is because if the UI was not displayed, no changes were made to the print settings, and therefore no editing of the XPS document is necessary. Thus, using a stream-type interface is advantageous in terms of performance.

[0089] In S1204, the editing application 205 outputs the XPS document acquired in S1203 without editing it, using a stream-format interface. Once the editing application 205 outputs the XPS document, the OS stores it as a spool file 206, and processing by the printer driver 201 begins.

[0090] If it is determined in S1202 that the UI has been displayed, the editing application 205 reads the information related to the print settings in Figure 10, which was saved as stored information in S707 (S1205). Next, the editing application 205 determines whether there are any setting changes in the stored information in Figure 10 that require editing of the job's PrintTicket (S1206). If there are setting changes that require editing of the job's PrintTicket, the editing application 205 uses a predetermined API of the OS to obtain the job's PrintTicket (S1207). Then, it reflects the setting values ​​related to the functions supported by the printer driver 201 (driver functions) in the stored information obtained in S1205 into the job's PrintTicket (S1208). Note that the processing in S1201 to S1208 is the same as the processing in S901 to S909 in Figure 9, excluding S906, so the details are omitted.

[0091] Next, the editing application 205 retrieves the XPS document using the document format interface (S1209). In S1210, based on the stored information obtained in S1205, it is determined whether there are any configuration changes that require editing of the XPS document by the editing application 205. The determination process in S1210 is the same as S910 in Figure 9, although the steps that follow after the determination differ, so the details are omitted.

[0092] If, in S1210, it is determined that there are configuration changes in the stored information that require editing of the XPS by the editing application 205, the editing application 205 edits the acquired XPS document based on the function specified by the user and its setting value (S1211). Then, the editing application 205 outputs the edited XPS document using a document format interface (S1212). Note that the processes in S1211 and S1212 are the same as S911 and S912 in Figure 9, so the details are omitted.

[0093] If, in S1210, it is determined that there are no configuration changes in the stored information that require editing of the XPS by the editing application 205, the editing application 205 outputs the acquired XPS document using the document format interface without editing it (S1212).

[0094] As described above, the editing application 205 in this embodiment uses a stream-type interface when UI display is not performed, and a document-type interface when UI display is performed. This makes it possible to suppress the performance degradation caused by the launch of the editing application 205 when the user does not use UI functions such as the print preview function.

[0095] <Embodiment 3> Next, Embodiment 3 will be described. In Embodiments 1 and 2, the editing application 205 provides user-configurable functions by displaying a UI. However, the editing application 205 can edit XPS documents without displaying a UI. Therefore, the editing application 205 in this embodiment does not issue an instruction to display the UI during the setup process. By not issuing an instruction to display the UI, the editing application 205 does not call the UI process and executes the editing and termination processes. For example, in the case of forcibly adding a specific watermark (stamp) according to pre-set settings, the editing application 205 does not require user instruction. Therefore, the editing application 205 does not display the UI, but it does edit the XPS document to add the watermark. The processing of this embodiment will be described in detail below.

[0096] The hardware configuration of the printing system is the same as in Embodiment 1, so its description will be omitted. Furthermore, the flow of each process will mainly be described in terms of the differences from Embodiment 1.

[0097] Figure 11 shows an example of the editing and termination process in Embodiment 3. After the setup process of the editing application 205 in Figure 4 is completed, the OS calls the editing and termination process of the editing application 205 in Figure 11. Hereafter, the editing 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. Also, not all processes are necessarily executed sequentially on a single process; there may be cases where the process is transferred to the OS and then called again by the OS. This is merely a flowchart that shows the main processes of the editing application 205 for convenience and clarity.

[0098] The editing application 205 retrieves pre-stored setting enforcement information (S1101). While the OS provides UserPropertyBag or QueuePropertyBag as storage locations for this information, PrintTicket or Local Storage may also be used. The setting enforcement information is pre-configured by the system administrator or user. Examples of setting enforcement include adding a specific watermark or forcibly enabling duplex printing.

[0099] In S1102, the editing application 205 determines whether setting enforcement information exists. In other words, the editing application 205 determines whether there are registered functions that are forcibly set even if user settings are not accepted on the UI provided by the editing application 205.

[0100] In S1102, if it is determined that no configuration enforcement information exists, editing the XPS document is unnecessary, so the editing application 205 uses a stream-type interface to acquire and output data (S1103, S1104). On the other hand, in S1102, if it is determined that configuration enforcement information exists, editing the XPS document becomes necessary, so the editing application 205 uses a document-type interface to acquire data (S1105).

[0101] Then, in S1106, the editing application 205 edits the acquired XPS document, and in S1107, the edited XPS document is output using the document format interface.

[0102] Furthermore, if the driver function includes a mechanism for forcing settings, the editing application 205 only needs to reflect the settings in the PrintTicket within the XPS document. In other words, the editing application 205 does not need to edit the drawing data within the XPS document, but only the PrintTicket within the XPS document. In this example as well, as shown in S910 of Figure 9, it may be possible to first determine whether a setting change requiring modification of the XPS document occurs, and to configure the application to use the document format interface only if modification of the XPS document is necessary.

[0103] This embodiment makes it possible to suppress performance degradation caused by the launch of the editing application 205, even in cases where editing of an XPS document is required but the UI is not displayed.

[0104] <Embodiment 4> Each of the embodiments described above can also be realized by performing the following: a recording medium containing program code for software that realizes the functions of the above embodiments is supplied to a system or device. The computer (CPU or MPU, etc.) of the system or device then reads and executes the program code stored on the recording medium. In this case, the program code read from the storage medium itself realizes the functions of the above embodiments, and the storage medium containing that program code constitutes the present invention. Furthermore, it is not necessary to realize all of the above processes in software; some or all of the processes may be realized in hardware such as an ASIC. Also, the CPU is not limited to one CPU that performs all the processing; multiple CPUs may perform the processing in cooperation as appropriate.

[0105] 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.

[0106] Furthermore, an Operating System (OS) or the like running on a computer may perform some or all of the processing based on the instructions in the program code of the embodiment described above.

[0107] Furthermore, program code read from a 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. [Explanation of Symbols]

[0108] 102 Printing device 119 Display section 201 Printer Driver 202 UWP applications 203 Legacy Applications 204 Editing App Launcher 205 Editing Applications 206 spool files 207 WSDA 208 Configuration Modules 209 Printer Extensions (PEX)

Claims

1. An application program that cooperates with a class driver, which is embedded in the operating system of an information processing device, and which generates print commands that can be interpreted by multiple image forming devices provided by multiple vendors, and outputs the print commands to the multiple image forming devices, and which is configured on a computer, In response to a print request from the user, the class driver displays an item for accepting print settings that cannot be accepted on the print settings screen provided by the class driver, and an image showing the print image. In response to changes in print settings via the aforementioned item, an image showing the print image corresponding to the changed print settings is displayed. An application program characterized by the following features.

2. The application program according to claim 1, characterized in that the image showing the print image is an image that reflects the print settings received from the user via the item.

3. The application program according to claim 1, characterized in that the image showing the print image is an image for confirming the print result.

4. The application program according to claim 1, characterized in that the image showing the print image includes the frame of the paper used for printing.

5. The application program according to claim 1, characterized in that the image showing the print image is a preview image.

6. The application program according to claim 1, characterized in that the print settings are entered by the user.

7. The application program according to claim 1, characterized in that the image showing the print image is displayed on the same screen as the screen on which the application program controls the display.

8. The application program according to claim 1, characterized in that the print settings include a setting to specify the print range of the data to be printed.

9. The application program according to claim 1, characterized in that the print settings include a setting to specify the page range of the data to be printed.

10. The application program according to claim 9, characterized in that the aforementioned page range is specified by the user entering the page number of the data to be printed.

11. The application program according to claim 9, characterized in that all pages of the data to be printed can be specified as the page range.

12. The application program according to claim 1, characterized in that the image showing the print image is generated based on intermediate data including image data generated by a drawing application and data including information indicating print settings.

13. The application program according to claim 12, characterized in that, without allowing editing of the intermediate data, the method of displaying the intermediate data is changed to correspond to the print settings, thereby displaying an image representing the print image on a screen where the application program controls the display.

14. The application program according to claim 12, characterized in that it generates an image showing the print image by editing the intermediate data.

15. The application program according to claim 12, characterized in that when the print settings are changed via the aforementioned item, it causes at least one of the intermediate data and the information indicating the print settings to be edited.

16. The application program according to claim 12, characterized in that the intermediate data is XPS data and the data containing information indicating the print settings is a PrintTicket.

17. The application program according to claim 1, characterized in that the class driver is a standard printer driver that utilizes a standardized printing method.

18. A control method for an information processing device comprising: a class driver incorporated into the operating system of an information processing device, which generates print commands interpretable by multiple image forming devices provided by multiple vendors and outputs the print commands to the multiple image forming devices; and an application program that cooperates with the class driver, wherein by executing the application program, In response to a print request from the user, the class driver displays an item for accepting print settings that cannot be accepted on the print settings screen provided by the class driver, and an image showing the print image. In response to changes in print settings via the aforementioned item, an image showing the print image corresponding to the changed print settings is displayed. A control method characterized by the following:

19. An information processing device having a class driver incorporated into the operating system of the information processing device, which generates print commands that can be interpreted by multiple image forming devices provided by multiple vendors, and outputs the print commands to the multiple image forming devices, and an application program that cooperates with the class driver, wherein by executing the application program, In response to a print request from the user, the class driver displays an item for accepting print settings that cannot be accepted on the print settings screen provided by the class driver, and an image showing the print image. In response to changes in print settings via the aforementioned item, an image showing the print image corresponding to the changed print settings is displayed. An information processing device characterized by the following: