Application and information processing device control method

By creating a virtual print queue using a general-purpose printer driver, the solution addresses the limitation of existing printer drivers by enabling print data management and output to applications without a connected physical printer, enhancing functionality for virtual and cloud printing scenarios.

JP7604601B1Active Publication Date: 2024-12-23CANON KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023189827
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-11-07
Publication Date
2024-12-23
Estimated Expiration
2043-11-07

AI Technical Summary

Technical Problem

Existing printer drivers do not support the creation of a print queue for virtual printing devices that are not connected to an actual printing device, limiting the functionality of applications that handle print data without direct communication with a physical printer.

Method used

The implementation of a print queue generation process associated with a general-purpose printer driver, allowing print data to be generated and managed without a connected printing device, through the use of an information processing apparatus that acquires and processes necessary information to create a virtual print queue.

Benefits of technology

Enables the use of a print queue with a general-purpose printer driver even when an actual printing device is not connected, facilitating the processing and output of print data to applications such as layout editing or cloud printing services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007604601000001_ABST
    Figure 0007604601000001_ABST
Patent Text Reader

Abstract

The present invention aims to utilize a print queue associated with a generic printer driver even when not connected to an actual printing device. [Solution] The application described in an embodiment of the present application is characterized in that it executes within an information center a generation process of generating a print queue that is associated with a generic printer driver while not connected to a printing device, and an acquisition process of acquiring the generated print data by specifying the print queue.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an application and a method for controlling an information processing device. [Background technology]

[0002] There is a known configuration in which a printer driver installed on a host computer is used as software for controlling the printing device to issue print instructions to a printing device connected to the host computer. An operating system (OS), which is the basic software, is installed on the host computer, and the printer driver is configured according to the specifications defined by the OS and runs when called by the OS. By providing a printer driver that conforms to the OS specifications, a vendor that provides a printing device can provide a means of issuing print instructions to the printing device using the OS.

[0003] In recent years, Windows (registered trademark) has provided standard class drivers (hereinafter also referred to as "generic printer drivers") that can be commonly used by printing devices provided by multiple vendors. Such standard drivers are included in the OS package and can be easily used by connecting any printing device to the host computer. This makes it unnecessary to separately install a model-specific printer driver suitable for the printing device, which is highly convenient. In addition, the standard driver is configured to be able to specify printing functions according to PrintDeviceCapabilities (hereinafter "PDC") generated based on information obtained from the connected printing device. This allows a user who uses the standard driver to specify printing functions according to the capabilities of the connected printing device, even though the user is using one standard driver.

[0004] A standard driver can be associated with an application for extending functions (hereafter also referred to as an "extension application"). An extension application can be provided by the vendor that supplies the printing device. An extension application can provide functions (extension functions) that cannot be realized by the standard driver alone by editing the PDC generated by the standard driver. Editing a PDC means rewriting or deleting existing print functions in the PDC generated by the standard driver, and adding new print functions.

[0005] Patent Document 1 discloses a technique for extending the functions of a standard driver by editing a PDC based on information acquired from a printer using an extension application. [Prior art documents] [Patent documents]

[0006] [Patent Document 1] Patent Publication No. 2021-108001 Summary of the Invention [Problem to be solved by the invention]

[0007] There are applications that handle print data generated using a virtual queue, which is a print queue that is not connected to an actual printing device or print server. In such applications, for example, a process is performed to lay out drawing data included in multiple print data generated using the virtual queue on one sheet of paper.

[0008] A generic printer driver obtains information about the capabilities of an actual printing device from the actual printing device and generates a print queue, so it is not intended to generate a virtual queue for use with an application that does not communicate with the actual printing device as described above.

[0009] The present invention aims to utilize a print queue associated with a generic printer driver even when not connected to an actual printing device. [Means for solving the problem]

[0010] The application described in an embodiment of the present application is characterized in that it causes an information processing device to execute a generation process of generating a print queue that is associated with a generic printer driver while not connected to a printing device, and an acquisition process of acquiring the generated print data by specifying the print queue. Effect of the Invention

[0011] One aspect of the present invention allows for the use of a print queue associated with a generic printer driver even when not connected to an actual printing device. [Brief description of the drawings]

[0012] [Figure 1] FIG. 2 is a block diagram showing an example of a hardware configuration of a printing system according to the present embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a software configuration of a printing system according to the present embodiment. [Diagram 3] 2 is a diagram showing an example of a PDC 203 generated by print data generation software 202 in this embodiment. [Figure 4] 1 is a diagram showing an example of a PDC 203 edited by a print function extension unit 207 in this embodiment. [Diagram 5] 2 is a diagram showing an example of a print setting screen provided by a print setting screen extension unit 205 in this embodiment. FIG. [Figure 6] FIG. 11 is a diagram showing an example of a sequence when an application 213 is installed in the first embodiment. [Figure 7] 10 is a diagram showing an example of a sequence when data is output to an application 213 and printed in the first embodiment. FIG. [Figure 8]FIG. 2 is a diagram showing an example of a print setting screen of a drawing application 201 in this embodiment. [Figure 9] FIG. 2 is a diagram showing an example of a print setting screen of an application 213 in this embodiment. [Figure 10] FIG. 11 is a diagram showing an example of a sequence when an application 213 is installed in the second embodiment. [Figure 11] FIG. 11 is a diagram showing an example of a sequence for outputting data to an application 213 and printing in the second embodiment. [Figure 12] FIG. 11 is a diagram showing an example of a sequence for outputting data to an application 213 and printing in the third embodiment. [Figure 13] 11 is a diagram showing an example of information returned by the printing device 102 as a response to Get-Printer-Attributes in this embodiment. FIG. [Figure 14] 4 is a diagram showing an example of PrintCapabilities generated based on a PDC 401 in this embodiment. FIG. [Figure 15] FIG. 2 is a diagram showing an example of information for an application 213 to indicate virtual queue capability information to an OS 214 in this embodiment. [Figure 16] 13 is a diagram showing an example of a PDC in which a print function extension unit 207 has edited a PDC 401 in the first embodiment. FIG. [Figure 17] 16 is a diagram showing an example of PrintCapabilies generated based on a PDC 1601 in the first embodiment. FIG. [Figure 18] 13 is a diagram showing an example of a PDC in which a print function extension unit 207 has edited a PDC 401 in the second embodiment. FIG. [Figure 19] 5 is a flowchart showing an example of processing executed by an application in the first embodiment. [Figure 20] 5 is a flowchart showing an example of processing executed by an extension application in the first embodiment. [Figure 21]11 is a flowchart showing an example of processing executed by an extension application in the second embodiment. [Figure 22] 11 is a flowchart showing an example of a process executed by an extension application when generating print data in the second embodiment. [Figure 23] 5A to 5C are diagrams illustrating examples of commands issued by an application in the present embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] 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 scope of the present invention, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention.

[0014] The same components are given the same reference numbers and their explanations are omitted.

[0015] <<Embodiment 1>> <Printing system hardware configuration> 1 is a block diagram showing the hardware configuration of a printing system. In this diagram, 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. Input devices such as a keyboard 118 and a pointing device 114 are connected to the input interface 110, and display devices such as a display unit 119 are connected to the output interface 115. A NETIF 120 is a network interface, and performs control for transferring data between the host computer 101 and an external device via a network.

[0016] An initialization program is stored in the ROM 112. Application programs, an operating system (OS), print data generation software, and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory or the like when the various programs stored in the external storage device 114 are executed, and the various programs can run within the host computer 101.

[0017] In this embodiment, the CPU 111 executes processes according to the procedures of a program stored in the ROM 112, thereby executing functions described below in the host computer 101 and processes related to flowcharts described below. The printing device 102, which is a device, is connected to the host computer 101 via an input / output interface 116. In this embodiment, the printing device 102 is described as an inkjet printer that prints by ejecting ink onto a paper surface. However, the printing device 102 may be a printing device that prints using another method (for example, an electrophotographic method). The host computer 101 may be a desktop personal computer, a smartphone, or a notebook computer.

[0018] In this embodiment, a locally connected inkjet printer will be described as an example of the type of the printing device 102. The printing device 102 may be, for example, a laser beam printer (local connection and cloud connection), and may be configured to distinguish a plurality of device types and connection forms other than the above-mentioned two types. The local connection refers to a connection form in which the host computer 101 and the printing device 102 are connected in a state in which they can directly communicate with each other via the input / output interface 116 and the NETIF 120. The cloud connection refers to a connection form in which the host computer 101 instructs the printing device 102 to print via the NETIF 120 and a cloud printing service (not shown) on the Internet. In the diagrams and tables exemplified below, examples of Features and Options are described as examples of a printing device whose device type is an inkjet printer, unless otherwise specified.

[0019] <Software-centric printing system configuration> FIG. 2 is a diagram showing a schematic software configuration of a printing system. Here, the description is based on the premise that the printing system uses a host computer 101 equipped with Microsoft Windows 11 as the OS. The description is based on the configuration using an IPP Class Driver equipped in Windows 11 as the print data generation software 202. The IPP Class Driver is a printer driver that executes print processing according to the specifications of a standard print protocol called IPP (Internet Printing Protocol), and is included in the OS package. The IPP Class Driver is not a printer driver specific to the model of the printing device 102, but a standard class driver that can be commonly used by multiple models of printing devices of multiple printer vendors (manufacturers). The IPP Class Driver is provided by the vendor (manufacturer) that provides the OS. FIG. 2(a) is a diagram showing a general configuration when the extension application 204 is not associated with the print data generation software 202 and the printing device 102.

[0020] The drawing application 201 is software that creates content (drawing data) to be printed. For example, this corresponds to a word processing application or a spreadsheet application. When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. The print instruction includes print setting information for instructing the operation of the print data generation software 202 and the printing device 102. The print setting information is also called a PrintTicket (hereinafter, "PT").

[0021] In order to output print setting information, the drawing application 201 can display a print setting screen provided by the print data generation software 202, the OS, or the drawing application 201. The print setting screen includes setting items (hereinafter also referred to as "control items") indicating print functions that can be set and control items indicating their setting values ​​according to capability information (information that can be set as print settings) acquired from the print data generation software 202. The capability information is also called PrintCapabilities (hereinafter "PC"). The print data generation software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating all print functions that can be set, their setting values, and the exclusive relationship between the setting values. The print function information 203 is also called PDC (Print Device Capabilities). The PDC 203 is included in a configuration file of the print data generation software 202, and is dynamically generated by the print data generation software 202. Specifically, the print data generation software 202 or the OS can be configured to acquire printing device attribute data from the printing device 102 and generate the PDC 203 according to the attribute information in the acquired attribute data. Note that the printing device attribute data acquired from the printing device 102 is a response acquired by issuing an IPP Get-Printer-Attributes operation to the printing device. The response includes attribute information (Feature) indicating functions (printing device capabilities) that can be specified by the printing device 102 and setting values ​​(Option) related to that attribute information. This response is saved in the RAM 113.

[0022] By configuring in this manner, the print data generation software 202 can be configured to allow the user to specify print functions available on each printing device 102 according to the connected printing device 102. In other words, even when printing devices with different functions or printing devices developed by different vendors are connected, the print data generation software 202 can be configured to allow the user to specify print functions available on the connected printing device.

[0023] The OS generates intermediate print data (also called input data) based on the print instruction output from the drawing application 201, and passes it to the print data generation software 202. The data output by the drawing application 201 for printing is data in Graphic Device Interface format (GDI format data) or XML Paper Specification format data (XPS format data). When an IPP Class Driver is used as the print data generation software 202, the OS converts the data output by the drawing application 201 from GDI format data to XPS format data. Then, passes the converted XPS format data to the print data generation software 202 as intermediate print data. If the data output by the drawing application 201 is XPS format data, the OS passes the XPS format data to the print data generation software 202 as intermediate print data. The intermediate print data includes drawing data, which is information on an image to be formed on paper, and print setting information set by the user.

[0024] The print data generation software 202 converts the acquired intermediate print data into print data that can be interpreted by the printing device 102, and transmits it to the printing device 102. The print data includes drawing data, which is information about an image to be formed on paper, and print setting attribute information (attribute information that specifies print settings) generated based on print setting information set by the user. The print setting attribute information includes attribute information (Feature) that indicates functions (capabilities of the printing device) that can be specified by the printing device 102, and setting values ​​(Option) related to that attribute information.

[0025] The printing device 102 prints on a recording medium such as paper based on the print data sent from the print data generation software 202. At this time, the printing device 102 forms the drawing data included in the print data on a recording medium such as paper in accordance with the print setting attribute information included in the print data. The print setting attribute information includes attribute information and its setting value for specifying print quality (priority on image quality, priority on speed, etc.) and double-sided printing, etc. For example, if the print setting attribute information includes attribute information specifying double-sided printing and a setting value indicating that it is to be performed, the printing device 102 executes double-sided printing.

[0026] 2B is a diagram showing a configuration when the extension application 204 is associated with the print data generation software 202 and the printing device 102. Note that configurations and processes not specifically mentioned below are the same as those in FIG. 2A.

[0027] The extension application 204 is software for extending the function of the print data generation software 202, and is not included (bundled) in advance in the OS. Therefore, the user needs to operate the host computer 101 to download and install the extension application 204 from a server via the Internet. Alternatively, the extension application 204 may be automatically installed based on the connection of the printing device 102 to the host computer 101. Specifically, when the printing device 102 is connected to the host computer 101, the OS acquires device identification information from the printing device 102. The device identification information is, for example, the hardware ID of the printing device 102. The OS may download and install the extension application 204 corresponding to the acquired device identification information from a server via the Internet. In other words, the print data generation software 202 and the extension application 204 are held in the host computer 101 as separate files.

[0028] Note that the print data generation software 202 and the extension application 204 may be updated and upgraded, but these update processes are also performed at different times. That is, the timing at which the host computer 101 acquires the print data generation software 202 is different from the timing at which the extension application 204 is acquired. In addition, the trigger at which the host computer 101 acquires the print data generation software 202 is different from the trigger at which the extension application 204 is acquired. Note that when the extension application 204 is installed, the OS associates the extension application 204 with the print data generation software 202 and the printing device 102.

[0029] The extension application 204 described in this embodiment includes a print setting screen extension unit 205, a skip control unit 206, a print function extension unit 207, a print data editing unit 208, a notification unit 209, and a capability information acquisition unit 211. The extension application 204 also includes shared information 210 that can be commonly accessed by each unit. The shared information 210 is actually a file saved in the external storage device 114, or information stored in the RAM 113. The extension application 204 writes and reads information to and from the shared information 210 by using an API (Application Program Interface) provided by the OS.

[0030] The extension application 204 may terminate operation each time the processing of each unit is completed. In that case, the OS will start the extension application 204 each time a request to use each unit is received. Other configurations are also possible. For example, when the processing of the print setting screen extension unit 205 is completed, the OS will terminate the operation of the extension application 204, but the OS may keep the extension application 204 running even after the processing of the skip control unit 206 is completed.

[0031] Furthermore, the extension application 204 may cancel processing during the processing of each unit. When the processing is canceled, the job being processed in the print queue is deleted by the OS.

[0032] When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. In this configuration, as in the configuration of FIG. 2(a), the drawing application 201 can display a print setting screen. A print setting screen unique to the drawing application 201 may be displayed, or it can be configured so that a print setting screen provided by the extended application 204 is then displayed. The print setting screen provided by the extended application 204 is specifically a print setting screen provided by a print setting screen extension unit 205 included in the extended application 204. Whether or not the print setting screen provided by the print setting screen extension unit 205 is displayed depends on the user's operation. Details of the print setting screen extension unit 205 will be described later with reference to FIG. 5.

[0033] Furthermore, when the drawing application 201 accepts a print request from a user and issues a print instruction to the OS, the OS starts the skip control unit 206. The skip control unit 206 controls whether or not to skip the print data generation process by the print data generation software 202. After the skip control process by the skip control unit 206, the OS generates intermediate print data based on the print instruction output from the drawing application 201, and the intermediate print data is passed to the print data generation software 202. Here, if the skip control is not performed by the skip control unit 206, the intermediate print data is processed by the print data generation software 202 into print data that can be interpreted by the printing device 102, and passed to the print data editing unit 208. On the other hand, if the print data generation software 202 is skipped, the intermediate print data is passed to the print data editing unit 208 without being processed by the print data generation software 202. This makes it possible to process the intermediate print data by the print data editing unit 208.

[0034] The print data editing unit 208 edits the intermediate print data passed from the print data generation software 202 or the print data 212 processed by the print data generation software 202. An example of the editing content is layout printing. The print data editing unit 208 edits the intermediate print data or the print data 212 so that an image in which multiple pages of images are laid out on one side of one sheet of paper is output based on the print setting information of layout printing received from the OS. The print data editing unit 208 can also display a UI screen on the display unit 119, and can provide a function such as displaying the layout result of the intermediate print data or the print data 212 as a preview screen. Note that while the GUI screen displayed by the print data editing unit 208 on the display unit 119 is left open, the print data 212 is not sent to the printing device 102, and the transmission process of the print data 212 is performed by closing the GUI screen.

[0035] After the print data editing unit 208 edits the print data 212, the print data 212 is passed to the printing device 102. The printing device 102 prints the received print data 212 onto a recording medium such as paper.

[0036] Furthermore, the print data editing unit 208 may be configured to output print data to an application 213 different from the drawing application 201. An example in which the print data editing unit 208 outputs print data to the application 213 will be described later.

[0037] When the print data generation software 202 is skipped by the skip control unit 206, the print data editing unit 208 may convert the received intermediate print data into print data that can be interpreted by the printing device 102. Also, a function provided by the OS may be used to convert the intermediate print data into print data.

[0038] The extension application 204 has a print function extension unit 207. The print function extension unit 207 can edit the PDC 203 generated by the print data generation software 202. The PDC 203 generated by the print data generation software 202 will be described later. By editing the PDC, the print function extension unit 207 can add functions provided by the extension application 204, and add functions that are supported by the printing device 102 but not supported by the print data generation software 202. Hereinafter, unless otherwise specified, the print setting screen refers to a print setting screen provided by any of the OS, the drawing application 201, and the print setting screen extension unit 205.

[0039] The OS starts the print function extension unit 207 when the extension application 204 is first associated with the printing device 102 and the print data generation software 202. Furthermore, the OS may start the print function extension unit 207 at other times, such as when the OS starts up. In this way, in cases where an optional device (e.g., a finisher, etc.) is later added to the printing device 102 and printing-related functions are extended, the print function extension unit 207 can detect the extended function and add it to the PDC 203.

[0040] The extension application 204 also has a notification unit 209. The notification unit 209 can display a notification to the user in response to an error occurring in the printing device 102. For example, when an out-of-paper error occurs in the printing device 102, the print data generation software 202 detects it, and the OS uses a notification function of the OS called a toast notification to display a message on the display unit 119. When the user presses this toast notification, the notification unit 209 of the extension application 204 is called by the OS, and the UI screen of the notification unit 209 is displayed. On the UI screen of the notification unit 209, for example, a detailed message of the out-of-paper error and a method for loading paper can be displayed.

[0041] In addition, the configuration of the extended application 204 for realizing this embodiment is not limited to having all of the above-mentioned functions (units), and may have only some of the functions or other functions. Also, the extended application 204 may be simply called printing software. As described above, it can be said that the extended application 204 has at least one of the functions described in 205 to 209 and 211 in FIG. 2(b).

[0042] <Example of PDC generated by print data generation software 202> First, the print data generation software 202 acquires attribute data of the printing device 102 connected to the host computer 101, and generates a PDC 203 based on that information. The attribute data acquired from the printing device 102 includes information that the user can set as print settings when printing on the printing device 102.

[0043] An example of a response acquired by the print data generation software 202 by issuing an IPP Get-Printer-Attributes operation to the printing device 102 will be described with reference to FIG. 13. Information 1301 is an example of a response that can be acquired by issuing an IPP Get-Printer-Attributes operation to the printing device 102. The information 1301 includes attribute information (Feature) indicating functions that can be specified as IPP attributes on the printing device 102 and setting values ​​(Option) related to the attribute information. As shown in the information 1301, information on features (Feature) such as size and media, and setting values ​​(Option) that can be set for each feature can be acquired from the printing device 102. The document-format-supported shown in the information 1302 indicates a print data format that the printing device 102 can accept. The example of the information 1302 indicates that the printing device 102 supports the data formats 'application / octet-stream', 'image / jpeg', 'image / urf', and 'image / pwg-raster'. The print-color-mode-supported information 1303 indicates a color mode that can be specified when printing with the printing device 102. The example of the information 1303 indicates that the printing device 102 supports the color modes: 'color', 'monochrome', and 'auto' (automatic selection). The sides-supported information 1304 indicates options that the printing device 102 can select for double-sided printing. The example of the information 1304 indicates that double-sided printing of Two-Sided-Short-Edge and Two-Sided-Long-Edge is supported. The printer-name information 1305 indicates the name of the printing device. The information 1305 indicates that the name of the connected printing device 102 is "Inkjet-AAA". The media-size-supported information 1306 indicates the media size supported by the printing device 102, with the width and height expressed in units of 1 / 100 mm.The example of information 1306 indicates that the printing device 102 is capable of printing on A5, A4, and B5 size paper. The media-supported information 1307 indicates the names of media sizes supported by the printing device 102. The media-type-supported information 1308 indicates the types of media supported by the printing device 102. The example of information 1308 indicates that printing on glossy, gold, mat, stationary, photographic, and envelope is supported. Glossy indicates glossy standard paper. Gold indicates glossy gold paper. Mat indicates matte photo paper. Stationary indicates plain paper. Photographic indicates photo paper. Envelope indicates envelope paper.

[0044] The media-source-supported information 1309 indicates a list of paper feeding methods supported by the printing device 102. The example of the information 1309 indicates that the printing device 102 supports auto (automatic selection), main (main tray), rear (rear tray), and disc (CD / DVD tray) as paper feeding methods for printing. The media-top (bottom / right / left)-margin-supported information 1310 indicates the length of the margin that can be set when printing with the printing device 102. The example of the information 130 indicates that the top of the paper can have 5 mm, 0 mm, 8 mm, and 6 mm. The information 130 indicates that the left side of the paper can have 3.4 mm, 0 mm, 6.4 mm, 5.6 mm, 6 mm, and 5 mm. The information 130 indicates that the right side of the paper can have 3.4 mm, 0 mm, 6.3 mm, 5.6 mm, 6 mm, and 5 mm. Information 130 indicates that it is possible to provide margins of 0.5 mm, 0 mm, 12.7 mm, and 6 mm at the bottom of the paper. The attribute values ​​exemplified for information 1302 to information 1310 are merely examples, and actually each attribute value includes attribute values ​​other than those exemplified. Also, the example shown in information 1301 is merely an example, and a response obtained by actually issuing an IPP Get-Printer-Attributes operation to printing device 102 includes attribute information other than that exemplified.

[0045] The print data generation software 202 obtains information such as the above-mentioned information 1301 by issuing an IPP Get-Printer-Attributes operation to the printing device 102, and generates a PDC 203 based on the obtained information.

[0046] An example of a PDC 203 generated by the print data generation software 202 is shown using information 301 in Fig. 3. The PDC 203 is described in xml format as shown in information 301 in Fig. 3, and describes attribute information (Feature) indicating functions that can be specified on the printing device 102 and setting values ​​(Option) related to that attribute information.

[0047] Information 306 represents a character string defined as a prefix of a NameSpace to which each Feature and each Option described in information 302 and information 304 described later belong. A NameSpace represents a set or range to which each Feature and Option belong. A NameSpace is used to uniquely identify each Feature and Option when the print data generation software 202, the OS, and the extended application 204 refer to a PDC or a PT / PC. For example, even if a Feature or Option is defined with the same name, it is possible to express by the NameSpace whether it is defined by the OS standard or is uniquely defined by a vendor. Specifically, it is assumed that xmlns:psk="http / / schemas.com / printing / printingschemakeywords" is defined as information 306. In this case, by adding "psk" as a prefix to each Feature and each Option described in information 302 and information 303 described later, it is possible to define that the Feature or Option belongs to the NameSpace described above. If the NameSpace mentioned above is defined in the OS standard, it is possible to express that the Feature or Option belongs to the OS standard. In this way, a NameSpace represents a set or range to which each Feature or Option belongs. The NameSpace is used to uniquely identify each Feature or Option when the print data generation software 202, the OS, or the extension application 204 refers to the PDC 203 or the PT / PC.

[0048] Information 302 indicates that ISOA4, ISOA5, and ISOB5 can be specified as PageMediaSize (paper size). Here, PageMediaSize indicates a feature, and ISOA4 and the like indicate a setting value (Option) for that feature. For features described later, the feature and setting value (Option) are written in the same manner. Information 303 indicates that Borderless and None can be set as PageBorderless (borderless print setting). Information 304 indicates that Plain (plain paper), Photographic (photo paper), and EnvelopePlain (envelope paper) can be specified as PageMediaType (media). Information 305 indicates that Main (main tray), Rear (rear tray), and Disc (CD / DVD tray) can be specified as JobInputBin (paper feeding method). As described above, the print data generation software 202 or the OS issues an IPP Get-Printer-Attributes operation to the printing device 102. As a response to this operation, information such as the above-mentioned information 1301 is obtained, and a PDC 203 is generated based on the obtained information. The PDC 203 generated here describes only Features and Options known to the OS. In other words, vendor-specific information such as media: glossy gold or matte photo paper shown in information 1308 is not described in the PDC 203, and only media such as standard plain paper and photo paper are described in the PDC 203. In this way, the PDC 203 generated by the print data generation software 202 or the OS describes only standard or general-purpose Features and Options from the information 1301 obtained from the printing device 102.

[0049] The print function extension unit 207 of the extension application 204 edits the PDC 203 generated by the print data generation software 202 or the OS. This makes it possible to extend the functions available to the user when printing to the printing device 102 using the print data generation software 202. Specifically, the print function extension unit 207 writes new Features and Options in the PDC 203. In this way, it is possible to add functions provided by the extension application 204 and add functions that are supported by the printing device 102 but not supported by the print data generation software 202. Editing the PDC 203 makes it possible not only to add functions, but also to delete existing functions and add exclusive relationships (prohibition information) between setting values ​​of print functions. The functions that the print function extension unit 207 adds to the PDC 203 may be determined using information 1301 that the capability information acquisition unit 211 acquires from the printing device 102. The capability information acquisition unit 211 acquires the capability information 1301 by issuing a Get-Printer-Attributes operation of IPP to the printing device 102. The print function extension unit 207 may be configured to add to the PDC 203 features or options that are not present in the existing PDC 203, among the capability information acquired by the capability information acquisition unit 211. The functions that the print function extension unit 207 adds to the PDC 203 may also be determined by other methods. For example, the print function extension unit 207 may determine the functions to add to the PDC 203 based on information stored in advance in the shared information 210.

[0050] <Example of the screen displayed by the print setting screen expansion unit> First, before describing an example of a print setting screen display by the print setting screen extension unit 205, a specific example of PC will be described. PC stands for PrintCapabilities, which describes print setting items that can be set for the printing device 102 and are generated by the print data generation software 202 based on the contents of the PDC 203. Like the PDC 203, the PC is described in xml format, and a specific example is shown in FIG. 14. The PC shown in information 1401 is generated by the print data generation software 202 based on the PDC 301. Since the PC is generated based on the PDC 301, its contents are similar to the PDC 301. Therefore, the nature of the information 1401 to information 1405 is the same as the nature of the information 301 to 305, and therefore a description thereof will be omitted here. According to the information 1402 to information 1405, it is shown that the features of "paper size", "media type", "paper feed method", and "borderless printing" can be set as print settings for the printing device 102. It is also shown that "A4", "B5", and "A5" can be set as "paper size". It is also shown that "auto selection", "plain paper", "photo paper", and "envelope paper" can be set as "media type". It is also shown that "auto selection", "main tray", "rear feed", and "CD / DVD feed" can be set as "paper feed method". It is also shown that "on" and "off" are configurable options for "borderless printing". On the other hand, a difference between the PDC301 and the PC1201 is that "DisplayName" is described as an attribute value of each Feature or Option. The DisplayName represents the wording when each Feature or Option is displayed on the print setting screen, and is a value set by the print data generation software 202. In this way, a list of configurable Features and their Option values ​​for the printing device 102 is described in the PC.

[0051] Next, the print setting screen displayed by the print setting screen extension unit 205 will be described with reference to FIG. 5. A PC is generated based on the PDC 203 edited by the print function extension unit 207. A print setting screen 501 in FIG. 5(a) is an example of a screen displayed by the print setting screen extension unit 205 based on the generated PC. The example of the screen shown in FIG. 5 is merely an example and is not based on the above-mentioned PC 1201. A control 502 is a control item that can set the type of paper to be used for printing. In the control 502, for example, "AutoSelect", "Plain", "Photograpchic", and "EnvelopePlain", which are defined in the information 1403, can be set.

[0052] Control 503 is a control item that can set the paper size used for printing, and can set items such as A4, B5, and A5 defined in information 1402. List 510 shown in Fig. 5(b) shows the display state when control 503 is expanded, and the user can select a paper size from the expanded list.

[0053] Control 504 is a control that can set the paper feed method for printing device 102. Control 504 can set items such as "AutoSelect" (automatic selection), "Main" (main tray), "Rear" (rear feed), and "Disc" (CD / DVD feed) that are defined in information 405. List 511 shown in Fig. 5(c) shows the display state when control 504 is expanded, and the user can select a paper feed method from the expanded list.

[0054] Control 505 is a control item that can set the print orientation, and can be set to either portrait or landscape. Control 506 is a control item that can switch between enabling and disabling double-sided printing. Control 507 is a control item that can set the binding direction when printing on both sides, and can set items such as long edge binding or short edge binding, for example. Control 509 is a cancel button that closes the screen without reflecting the settings. Control 508 is an OK button that reflects the settings and closes the screen.

[0055] The example of the screen shown in FIG. 5 is merely an example, and in reality, the screen may be configured to allow other features and options to be set, and information other than the print settings may be displayed.

[0056] <Issues with print data generation software> So far, the printing system using the print data generation software 202 and the extended application 204 has been described. The print data generation software 202 and the extended application 204 can be used by connecting to the printing device 102 and generating a print queue corresponding to the printing device 102 by the OS 214. Specifically, when the printing device 102 is connected to the host computer 101, the OS 214 acquires device identification information from the printing device 102 and creates a print queue corresponding to the print data generation software 202. The OS 214 downloads the extended application 204 corresponding to the acquired device identification information from a server via the Internet and installs it. When the host computer 101 is not connected to the printing device 102, the print queue is not created. Also, when the host computer 101 and the printing device 102 are not connected, the device identification information cannot be acquired, and therefore the extended application 204 is not associated. Therefore, when the user wants to output the print data to the application 213 instead of the printing device 102, the printing system using the print data generation software 202 and the extended application 204 cannot be used. In order to output print data to the application 213, the OS 214 needs to be able to create a print queue corresponding to the print data generation software 202 even if the host computer 101 and the printing device 102 are not connected to each other.

[0057] Therefore, in addition to the configuration described above, this embodiment has a means for the application 213 to instruct the OS 214 to generate a virtual print queue to which the print data generation software 202 is assigned. The OS 214 has a means capable of creating a print queue to which the print data generation software 202 is assigned even without connection to the printing device 102. Furthermore, the configuration has a means for providing the application 213 with print data generated by the extension application 204 dedicated to the application 213 based on the intermediate print data submitted to the queue. The above-mentioned problem is solved by the above-described configuration.

[0058] With this configuration, the OS 214 can create a print queue corresponding to the print data generation software 202 even if the information processing device 101 and the printing device 102 are not connected. A print queue created by connecting to the printing device 102 in this way is hereinafter referred to as a virtual queue. A print queue that actually corresponds to the printing device 102 is simply referred to as a print queue. It is possible to associate the extended application 204 with the virtual queue. This makes it possible to output to the application 213 the print data that is processed and generated by the print data editing unit 208 based on the intermediate print data generated by the OS 214, based on the skip instruction by the skip control unit 206, as described above. This is possible because the print intermediate data is passed to the print data editing unit 208 of the extended application 204, not to the print data generation software 202, by the skip instruction by the skip control unit 206. In other words, when a user instructs a virtual queue dedicated to the application 213 to print desired data, the application 213 can import the desired data converted into print data.

[0059] In this embodiment, the application 213 is, for example, a layout editing / document management application. In the layout editing application or document management application, it is desirable to hold data to be laid out or managed in a unified format. The unified format is, for example, an xps format or a PDF format. It is considered that the document file or image file output by the drawing application 201 is in a data format unknown to the application 213. If it is possible to specify a virtual queue from the drawing application 201 and print, it is possible to convert the output of the drawing application 201 into print data (xps or PDF). In other words, when a user prints a document file or image file created using a certain drawing application 201 to a virtual queue, the file is converted into print data by the extension application 204. By importing the converted print data, the application 213 can hold a wide variety of data in a unified format.

[0060] Furthermore, the application 213 may be an application for a vendor-specific cloud printing service. In cloud printing, print data is transmitted to each printing device via a cloud server on the Internet. Therefore, the information processing device 101 and the printing device 102 do not need to be connected via the input / output interface 116, and the application 213 may transmit print data to the cloud server. Since the print data transmitted by the application 213 to the cloud server needs to be in a predetermined format that can be interpreted by the printing device 102, this configuration capable of converting a wide variety of data into a unified format is useful. According to this configuration, the cloud printing service can import a wide variety of data in a predetermined format by importing print data converted by the extension application 204, and therefore it is possible to perform cloud printing of a wide variety of data.

[0061] <Example of creating a virtual queue for print data generation software> Hereinafter, a specific example of this embodiment will be described using a layout editing application as an example of the application 213. The application 213 can freely edit the arrangement of multiple layout target objects imported in XPS format on the layout editing screen of the application 213, and can specify the printing device 102 to instruct printing. The name of the application 213 is assumed to be "Layout App."

[0062] 6 is a sequence diagram when the application 213 is installed in the OS 214. First, the OS 214 accepts an instruction to install the application 213 from the user at P601. When the OS 214 accepts an instruction to install the application 213 from the user, it executes the installer for the application 213 and instructs the application 213 to execute the installation. The application 213 is installed by reading the CD-ROM included with the printing device 102 into the host computer 101 and executing the installer. The application 213 may be available from the homepage of the company that manufactures or sells the printing device 102.

[0063] When the application 213 receives an installation instruction from the OS 214, it performs installation processing in P602. The installation processing includes processing for arranging each module that executes various processes of the application 213 in the external storage device 114 of the information processing device 101. Furthermore, as part of the installation processing of P602, the application 213 performs processing for registering a URI (Uniform Resource Identifier) ​​indicating the location of the startup module of the application 213 in the external storage device 114 in the OS 214. For example, the location of the startup module of the application 213 is registered as a URI "LayoutAppLauncher:". In this way, it becomes possible to start the application 213 by specifying the URI "LayoutAppLauncher" from a different application on the OS 214 using the API of the OS 214.

[0064] After the installation process is completed, the application 213 issues a virtual queue creation instruction described on P603 to the OS 214. The virtual queue creation instruction issued by the application 213 to the OS 214 instructs the OS 214 to create a virtual queue to which the print data generation software 202 is assigned, and is issued using the function Printui.dll installed in the OS 214. Specifically, the application 213 issues the instruction by executing the command shown in FIG.

[0065] The above command will be described in detail. Printui.dll is an executable file including functions used in the printer configuration dialog box installed in the OS 214. Rundll32 printui.dll,PrintUIEntry specifies the above executable file. / ir is a parameter that instructs to create a print queue by specifying a driver installed in the OS 214. / b is a parameter that specifies the name of the print queue to be created, and the name is specified by the following character string "Layout App". Since printing to the virtual queue created here is data output to the application 213, it is desirable to use the name of the application 213 as the name of the print queue so that the user can easily distinguish it, but other names may also be used. / m is a parameter that specifies the model name of the printing device, and the following character string "LayoutApp" specifies the model name of the virtual printing device. As will be described in detail later, the model name is a name that can uniquely identify the application 213. / r is a parameter that specifies the port to which the data of the print queue is output, and the following character string "NUL:\" specifies a NULL port. / dn is a parameter that specifies the driver name to be assigned to the created queue, and the following character string "IPP Class Driver" specifies the print data generation software 202. / pc is a parameter that indicates that a file describing capability information related to printing in a virtual queue is specified. The following character string "C\...\LayoutAppQueueConfig.xml" specifies the location of the file describing the capability information. As described above, the print data generation software 202 generates a PDC for a print queue that corresponds to the printing device 102 based on the capability information acquired from the printing device 102. However, since the print queue created here does not correspond to the printing device 102, the print data generation software 202 cannot acquire capability information for generating a PDC for the virtual queue. Therefore, the print data generation software 202 generates a PDC for the virtual queue based on the capability information described in the file designated by the application 213 using the parameter / pc.

[0066] FIG. 15 shows an example of capability information related to printing in a virtual queue specified by the application 213 using the / pc parameter. Information 1501 is an example of capability information related to printing in a virtual queue, written in a file specified by the application 213 using the / pc parameter. Although the information 1501 is written in an xml format, it may be written in another format as long as the print data generation software 202 can interpret it. As described in the information 306, information 1502 is information that defines the prefix of the name space of each Feature or Option. Information 1503 indicates that ISOA4, ISOA5, and ISOB5 can be specified as PageMediaSize (size of print data) when printing to a virtual queue. Information 1504 indicates that Color and Monochrome can be set as PageOutputColor (color setting) when printing to a virtual queue. When a layout editing application is assumed as an example of the application 213, printing to a virtual queue is only for generating print data, so it is only necessary to define capability information related to print data generation. The settings related to the paper to be actually printed may be set when the application 213 instructs the printing device 102 to print. The example shown in the information 1501 is merely an example, and information other than the illustrated capability information may be described in practice, and on the other hand, this is not the case when the application 213 is an application for the above-mentioned cloud print service. In this case, the application 213 is an application responsible for transmitting data to the cloud server, and is not expected to perform print settings. Therefore, the settings related to the paper to be actually printed must also be set when printing in the virtual queue. The print settings set when printing in the virtual queue may be included in the data output by the extended application 204 to the application 213, and the application 213 may transmit the print setting information to the cloud server together with the image to be printed.Therefore, when application 213 is an application for the above-mentioned cloud print service, it is desirable that the capability information related to printing in a virtual queue is information equivalent to the capability information of printing device 102, such as information 1301. In this manner, the capability information related to printing in a virtual queue may be capability information that differs depending on the type of application 213. As described above, application 213 can use the function Printui.dll installed in OS 214 to instruct OS 214 to generate a virtual queue to which print data generation software 202 is assigned.

[0067] When the OS 214 receives a virtual queue creation instruction from the application 213, the OS 214 creates a virtual queue based on the instruction received from the application 213 at P604. According to the above example, the OS 214 creates a print queue whose output port is a NUL port, whose name is "LayoutApp", and to which the print data generation software 202 is assigned. Although not shown in the figure, the OS 214 issues a PDC creation instruction to the print data generation software 202. The print data generation software 202 creates a PDC for the virtual queue based on the capability information described in the file "C\...\LayoutAppQueueConfig.xml" specified by / pc. An example of a PDC created by the print data generation software 202 is shown in FIG. 4. Information 401, i.e., PDC 401, was created by the print data generation software 202 based on information 1501. Information 402 to information 404 are similar to information 1502 to information 1504, and therefore description thereof will be omitted.

[0068] Next, if the extension application 204 dedicated to the application 213 is not installed in the OS 214, the OS 214 downloads the extension application 204 dedicated to the application 213 from a server via the Internet in P605. The OS 214 determines the extension application 204 to be downloaded based on the model name "LayoutApp" of the created virtual queue. After downloading the extension application 204 dedicated to the application 213, the OS 214 executes installation of the extension application 204 in P606. When the OS 214 executes installation of the extension application 204 in P606, the extension application 204 executes installation processing in P607. The installation processing in P607 of the extension application 204 includes processing of arranging modules that execute various processes of each unit of the extension application 204 in the external storage device 114 of the information processing device 101, and the like.

[0069] The OS 214 then transitions to P608 and associates the virtual queue with the extension application 204. By associating the virtual queue with the extension application 204 in P608, the OS 214 is able to start up the various units of the extension application 204 when it receives a print instruction to the virtual queue.

[0070] When the association process in P608 ends, the OS 214 instructs the extension application 204 to extend the print function in P609, i.e., to edit the PDC 401. The OS 214 starts the print function extension unit 207 of the extension application 204 and issues a print function extension instruction when the extension application 204 is associated with a print queue, etc. The OS 214 starts the print function extension unit 207 and issues a print function extension instruction not only when the extension application 204 is associated for the first time, but also when the print setting screen is opened by the print setting screen extension unit 205, etc.

[0071] When the print function extension unit 207 of the extension application 204 receives a print function extension instruction from the OS 214, it acquires the PDC 401 generated by the print data generation software 202 in P610 and edits the PDC 401. Specifically, the print function extension unit 207 writes information in the PDC 401 that specifies an area in which the print data editing unit 208 temporarily stores the print data in order to output the print data to the application 213. As described above, the information written in the PDC 401 is reflected in PrintCapabilities. In addition, the application 213 can refer to PrintCapabilities. Therefore, the application 213 can determine the area in which the print data editing unit 208 stores the print data by referring to PrintCapabilities. The process in which the application 213 acquires the print data will be described later. FIG. 16 shows an example of the PDC after the print function extension unit 207 edits the PDC 401 in P610. Information 1601 is the PDC after the print function extension unit 207 edits the PDC 401. The information 1602 to 1604 are similar to the information 402 to 404, and therefore the description thereof will be omitted. The information 1605 is information added by the print function extension unit 207 to the PDC 401. The information 1605 expresses, as a character string, an area in which the print data generated by the print data editing unit 208 is temporarily stored as FileOutputPath. In this example, it is indicated that the print data editing unit 208 stores the print data in an area called C:\Users\test\AppData\Roaming\Temp\LayoutApp\ in the external device 114 of the information processing apparatus 101. The area described in the information 1605 may be arbitrarily determined by the extension application 204, or may use information indicating a storage area for LayoutApp statically held by the extension application 204, or may be determined by other methods. The print function extension unit 207 may also add capability information other than the above to the PDC 401. For example, if the application 213 is an application for a cloud print service, capability information equivalent to the capability information 1501 of the printing device 102 may be added to the PDC 401 .Furthermore, the information that the print function extension unit 207 adds to the PDC 401 may be obtained by other methods, for example, by obtaining the information from a server (not shown).

[0072] The information in the PrintCapabilities is also updated by the print function extension unit 207 processing the PDC 401 into the PDC 1601. An example of the PrintCapabilities reflecting the PDC 1601 is shown in FIG. 17. Information 1701 is the PrintCapabilities based on the PDC 1601. Information 1702 and information 1705 are the same as the information 1402 and information 1406, respectively, and therefore will not be described. Information 1703 indicates that the options of the color mode function "color" and "monochrome" can be set as print settings for the virtual queue. Information 1704, like the information 1605, is information indicating an area in which the print data edit unit 208 stores the print data generated. The application 213 can determine the area in which the print data edit unit 208 stores the print data by referring to the information 1704 of the PC 1701. As described above, the print function extension unit 207 edits the PDC 401 as a print function extension process in the P610. For example, the information added by the print function extension unit 207 to the PDC 401 is merely an example, and print functions related to print data generation in virtual queues other than those illustrated, such as paper size, may be added to the PDC 401.

[0073] When the print function extension process of P610 ends, the extension application 204 notifies the OS 214 of the end of the print function extension process in P611. When the OS 204 receives the end notification of the print function extension process from the extension application 204, it notifies the application 213 of the end of the virtual queue creation in P612.

[0074] Here, the details of the operation of application 213 shown in Fig. 6 will be described with reference to the flowchart of Fig. 19. The flowchart in Fig. 19 is implemented by CPU 111 executing the program of application 213. Below, the symbol S indicates the step of each process.

[0075] The CPU 111 determines whether or not an installation instruction for the application 213 has been received from the OS 214 (S1901). If an installation instruction has not been received, the CPU 111 returns the process to S1901. If an installation instruction has been received, the CPU 111 executes the process described in S1902.

[0076] The CPU 111 performs an installation process for the application 213 (S1901). In S1901, the CPU 111 stores a file describing the capability information stored by the application 213 in an area specified by an arbitrary file path. This file path is a path notified to the OS 214 in S1903, and is a path specified in the command issued by P603 in FIG. 6.

[0077] The CPU 111 instructs the OS 214 to generate a virtual queue (S1902). The CPU 111 issues a command shown on page 603 of Fig. 6 to instruct the OS 214 to generate a virtual queue.

[0078] The CPU 111 determines whether the generation of the virtual queue was successful (S1903). If the CPU 111 receives information from the OS 214 indicating that the generation of the virtual queue was successful, the process proceeds to S1907. If the CPU 111 receives information from the OS 214 indicating that the generation of the virtual queue was unsuccessful, or if the CPU 111 does not receive information indicating that the generation of the virtual queue was successful even after a predetermined time has elapsed since the instruction to generate the virtual queue, the CPU 111 proceeds to S1905.

[0079] If the creation of the virtual queue is not successful, the CPU 111 issues an error notification (S1905). For example, the CPU 111 causes an error message (not shown) to be displayed on the display unit 119. Note that the process of S1906 may be performed without performing S1905.

[0080] CPU 111 sets a virtual queue not yet generated flag to TRUE, which indicates that a virtual queue has not been generated (S1906). CPU 111 refers to the virtual queue not yet generated flag when application 213 is started. If the virtual queue not yet generated flag is set to TRUE, CPU 111 executes the processes described in S1903 to S1909 of Fig. 19. In this manner, even if generation of a virtual queue fails when application 213 is installed, a virtual queue can be generated when the application is started.

[0081] If the virtual queue is successfully generated, the CPU 111 sets the virtual queue ungenerated flag to FALSE (S1907).

[0082] The CPU 111 determines whether the installation of the extended application dedicated to the application 213 is completed (S1908). The CPU 111 refers to the properties of the virtual queue and determines whether the application ID of the extended application is set in the virtual queue associated with the print queue. If the ID of the extended application is set, the CPU 111 ends the process described in this flowchart. If the installation of the extended application is not completed, the CPU 111 displays an error notification (S1909). In S1909, the CPU 111 causes the display unit 119 to display an error message. Thereafter, the CPU 111 displays a download screen for the extended application (S1910). The application 213 stores the URL of the download page of the extended application in advance. The CPU 111 accesses the URL stored in the application 213 and displays the download page of the extended application. When the download of the extended application is completed, the CPU 111 may request the OS 214 to perform a process of associating the virtual queue with the extended application.

[0083] Also, in the notification displayed in S1909, a screen for receiving an instruction from the user as to whether or not to display the download page of the extension application 204 may be displayed, and whether or not to perform S1910 may be switched according to the user instruction.

[0084] The above are examples of various processes related to the installation of application 213. As explained above, when application 213 is installed, it instructs OS 214 to create a virtual queue, and causes OS 214 to generate a virtual queue corresponding to application 213. By the process described below, data printed to the virtual queue is converted into a predetermined format by print data editing unit 208 and output to application 213.

[0085] <Example of data output to an application using virtual queues> 7 is a sequence diagram of various processes related to data output to the application 213 and printing from the application 213 in this embodiment. Various processes when data is output to the application 213 and printing from the application 213 will be described with reference to FIG.

[0086] First, various processes related to data output to the application 213 will be described. Data output to the application 213 is possible by printing to a virtual queue. First, the drawing application 201 accepts a print instruction from a user at P701. It is assumed that the user has created a document, a drawing, or the like in advance using the drawing application 201, and has designated the document or drawing as a print target. In this case, in order to output data to the application 213, the user selects a virtual queue corresponding to the application 213 as a print destination on a print setting screen of the drawing application 201. FIG. 8 shows an example of the print setting screen of the drawing application 201. A screen 801 is a print setting screen of the drawing application 201 that the drawing application 201 displays on the display unit 119. Objects 802 to 807 are arranged on the screen 801. A control 802 is a control that can designate a print queue as a print destination from a list of print queues including virtual queues registered in the OS 214, and is illustrated in FIG. 8 in an expanded state. In the control 802, a virtual queue "Layout App" corresponding to the application 213 is designated. The drawing application 201 obtains PrintCapabilities 1701 generated based on the PDC 401 corresponding to the virtual queue selected in the control 802. The print setting screen 801 of the drawing application 201 is configured so that the user can specify the functions described in the PC 1701, and printing can be performed by specifying the functions specified by the user. For example, the control 803 is a control that can specify the paper size. Note that when a virtual queue is selected, the paper size is the size of an image based on the drawing data included in the print data to be generated. In addition to A4, paper sizes such as A5 and B5 can be selected. The control 804 is a control that can select whether to perform color printing or monochrome printing. In this way, the options described in the PC 1701 can be selected in the control 803 and the control 804. The button 805 is a button that can be pressed by the user using the pointing device 114 or the like to instruct printing to be performed.A button 806 is a button that causes the screen 801 to transition to a data editing screen of the drawing application 201 when the user presses it using the pointing device 114 or the like. An image 807 is an image of a document or drawing created by the user on the data editing screen of the drawing application 201, arranged on a sheet of paper selected by the control 803. An object indicating the page being displayed and an object for switching the page to be displayed are arranged below the image 807. The reception of a print instruction on P701 of the drawing application 201 means that the user presses the button 805. The print setting screen shown in FIG. 8 is merely an example, and controls and other elements other than those shown in the figure may be displayed. When a print instruction from the user is received, the drawing application 201 transitions to P702, sets the image 807 as the image to be printed, sets the virtual queue of the “Layout App” selected by the control 802 as the print destination, and sends a print instruction to the OS 214.

[0087] When a print instruction is issued, a skip control unit 206 of the extension application 204 is started. The skip control unit 206 sets the print data generation software 202 to skip the generation of print data by the print data generation software 202.

[0088] When a print instruction is sent from the drawing application 201 to the OS 214, the OS 214 generates intermediate print data in P703. As described above, assuming that the print data generation software 202 is an IPP Class Driver, the OS 214 generates data in XPS format as the intermediate print data. After generating the intermediate print data, the OS 214 proceeds to print data generation instruction processing in P704. The OS 214 detects that the print instruction in P702 designates a virtual queue associated with the extension application 204 as the print destination, and sends a print data generation instruction together with the intermediate print data to the extension application 204.

[0089] When the extension application 204 receives a print data generation instruction from the OS 214, it starts the process of P705. In P705, the print data editing unit 208 of the extension application 204 generates print data based on the intermediate print data received from the OS 214. The format of the print data differs depending on the application 213. It is assumed that the extension application 204 stores in advance the file format used by the application 204. Here, it is assumed that the application 213 is a layout editing application, and the print data format is the xps format that is easy to edit the layout. If the application 213 is a document management application, the print data format may be the PDF format. When the print data editing unit 208 completes the print data generation process, it performs the print data storage process of P706. Here, in order to pass the print data to the application 213, the print data editing unit 208 stores the print data in the area described in the information 1605 of the PDC 1601. Note that the data that the print data editing unit 208 stores in the area described in the information 1605 in P706 may include data other than the print data. For example, the print data editing unit 208 may create and store a low-resolution bitmap image of the print target for the application 213 to display on the layout editing screen of the application 213. In P706, the print data editing unit 208 stores the various data required by the application 213 in the area described in the information 1605. When the processing of P706 is completed, the extension application 204 performs processing to launch the application 213 in P707. Specifically, the extension application 204 uses an API related to URI launch of the OS 214 to specify the URI "LayoutAppLauncher" and launch the application 213.

[0090] When the application 213 is started by the extension application 204, it first performs the print data acquisition process of P708. In P708, the application 213 refers to the information 1704 of the PC 1701 to determine the area in which the print data is stored, and acquires the print data stored in that area. Note that since the print data stored in the above area is stored temporarily, as soon as the application 213 acquires the print data, the application 213 deletes the data stored in that area. At this time, the extension application 204 may notify the application 213 of the print data storage area using parameters when starting the application 213. In this case, the application 213 determines the print data storage area using parameters at the time of startup. At this time, the extension application 204 may also include the file name of the print data in the startup parameters of the application 213.

[0091] When the application 213 starts and acquires print data, it starts accepting data editing instructions in P709. Here, the application 213 is a layout editing application, so the acceptance of data editing instructions refers to a process of accepting a user operation to arrange an image to be edited on the layout editing screen of the application 213. If the application 213 is a document management application, the acceptance of data editing instructions may be a process of accepting a user operation to determine a file name or classification of the acquired data and to determine in which area of ​​the application 213 the data is to be stored. In this way, the acceptance of data editing instructions in P709 may be a process of accepting a user operation according to the main purpose of use of the application 213. The above describes various processes in which the application 213 acquires data instructed to be printed from a virtual queue. In this way, a virtual print queue to which the print data generation software 202 installed as standard in the OS 214 is assigned is combined with the extended application 204. In this way, the application 213 can acquire data of various formats in a predetermined format.

[0092] Various processes related to printing from the application 213 will be described. At P710, the application 213 accepts a print execution instruction from the user on the print setting screen of the application 213. The print setting screen of the application 213 will be described with reference to FIG. 9. A screen 901 is the print setting screen of the application 213. The screen 901 is composed of objects 902 to 909. A control 902 is a control that can specify a print queue to print from a list of print queues excluding some print queues from among print queues including virtual queues registered in the OS 214. The "some" includes the virtual queues of the application 213. In this way, the application 213 can select any print queue from among the print queues registered in the OS 214 with the control 902. Here, "Printer 1" in FIG. 9 refers to the printing device 102. The application 213 can obtain PrintCapabilities 1401 generated based on the PDC 301 corresponding to the print queue selected with the control 902. The print setting screen 901 of the drawing application 201 is configured so that the user can specify the functions described in the PC 1401, and can execute printing by specifying the functions specified by the user. For example, a control 903 is a control that can set the size of paper to be printed. In this way, the control 903 can select the paper size described in the information 302 of the PDC 301 corresponding to the printing device 102. A control 904 is a control that displays the frame line of the layout target image and allows the user to select whether or not to reflect it in the print result. If the user selects "with frame line" in the control 904, a frame line surrounding the object 908 or object 909 to be laid out is displayed, and the frame line is also actually printed. A button 905 is a print button that can be pressed by the user using the pointing device 114 or the like to instruct printing. A button 906 is a cancel button that can be pressed by the user using the pointing device 114 or the like to transition the screen 801 to a layout editing screen of the application 213.The object 907 is an object showing an image of a result of the user arranging the images to be laid out on the layout editing screen of the application 213 on the paper size selected by the control 903. The user can check the image to be printed on the actual paper by checking the object 907. The object 908 is an object showing an image file of the object 807 output from the drawing application 201 by the processing of P701 to P707. The object 909 is an object showing a document file output from a document creation application (not shown). In this embodiment, when a virtual queue is selected from the drawing application 201 and a print instruction is given, the application 213 is started. With the application 213 started, a virtual queue is selected from the drawing application 201 and a print instruction is given. At this time, the started application 213 acquires and displays the print data generated according to the print instruction. In this way, one application 213 can acquire the print data output from a plurality of drawing applications 201. The objects 908 and 909 are laid out like the object 907 by the processing of P709 that accepts a user operation on the layout editing screen of the application 213. The subsequent print instruction acceptance on P710 of the application 213 means accepting that the user has pressed the button 905. The print setting screen shown in Fig. 9 is merely an example, and controls and other elements other than those shown may be displayed. Upon accepting a print instruction from the user, the application 213 proceeds to P711 and sends a print instruction to the OS 214 specifying the object 907 as the image to be printed.

[0093] When a print instruction is sent from the application 213 to the OS 214, the OS 214 generates intermediate print data in P712. As described above, assuming that the print data generation software 202 is an IPP Class Driver, the OS 214 generates data in XPS format as the intermediate print data. After generating the intermediate print data, the OS 214 proceeds to print data generation instruction processing in P713. The OS 214 detects that the print instruction in P711 designates a print queue corresponding to the printing device 102 as the print destination, and sends a print data generation instruction together with the intermediate print data to the print data generation software 202.

[0094] When the print data generation software 202 receives a print data generation instruction together with the intermediate print data from the OS 214, it performs print data generation processing in P714. In P714, the print data generation software 202 generates print data based on the intermediate print data received from the OS 214. The format of the print data is determined based on information 1302 that the print data generation software 202 acquires from the printing device 102. When the print data generation software 202 completes the print data generation processing, it executes processing in P715. In P715, the print data generation software 202 transmits the generated print data to the printing device 102. When the printing device 102 receives the print data from the print data generation software 202, it executes printing processing in P716 to print the print data on paper. The above describes the various processes from when the data acquired by the application 213 is edited by the user to when it is printed by the printing device 102.

[0095] 7 will be described in detail with reference to Fig. 20. The processing of the extension application 204 from P705 to P707 in Fig. 7 is realized by the CPU 111 executing a program provided by the extension application 204.

[0096] The CPU 111 determines whether or not intermediate print data and print setting information have been received from the OS 214 (S2001). Note that, although the intermediate print data is received from the OS 214 in FIG.

[0097] If the intermediate print data has not been received, the CPU 111 returns the process to S2001. If the intermediate print data has been received, the CPU 111 advances the process to S2002.

[0098] The CPU 111 processes the intermediate print data based on the print setting information (S2002). When an image addition function or a function for allocating images of multiple pages onto one page is enabled on the print setting screen provided by the drawing application 201, the CPU 111 edits the intermediate print data.

[0099] The CPU 111 determines the format of the drawing data included in the print data (S2003). The extension application 204 pre-stores the format supported by the application 213. The CPU 111 calls up the pre-stored format and sets it as the format of the drawing data. Note that in S2003, a predetermined external server may be accessed to obtain the format of the drawing data supported by the application 213. In this case, the extension application 204 does not need to store the format of the drawing data supported by the application 213.

[0100] The CPU 111 converts the intermediate print data and the print setting information into drawing data and print setting attribute information, and generates print data (S2004).

[0101] Thereafter, the CPU 111 stores the generated print data in the path indicated by 1605 of the PDC 1601 (S2005).

[0102] The CPU 111 launches the application 213 (S2006). The CPU 111 launches the application 213 by specifying the URI “LayoutAppLauncher” using an API related to URI launch of the OS 214.

[0103] The CPU 111 determines whether or not the start of the application 213 has been successful (S2007). If the start of the application 213 has been successful, the process shown in Fig. 20 ends, and the extension application 204 ends. If the start of the application has failed, the CPU 111 executes the process shown in S2008.

[0104] CPU 111 notifies the user that application 204 has failed to start (S2008). At this time, the print data remains stored in the storage location of S2005. Then, when the user manually starts application 213, application 213 automatically acquires the print data from the storage location and displays it. Note that application 213 does not automatically display the drawing data included in the print data when started, but the data may be read in response to an instruction from the user to read the data from the storage folder.

[0105] In this embodiment, if an application fails to start, a notification is given to the user. However, S2008 may be skipped and no notification may be given.

[0106] In this way, according to the first embodiment, a virtual print queue to which the print data generation software 202 that is standard on the OS 214 is assigned is used in combination with the extended application 204. In this way, the application 213 can obtain data of various types in a predetermined format and print it on the printing device 102.

[0107] 7, for simplicity's sake, no reference is made to the extension application 204 "compatible with the printing device 102." In reality, however, the extension application 204 compatible with the printing device 102 may be installed in the OS 214. In this case, the processes of P714 and P715 of the print data generation software 202 are executed by the extension application 204 compatible with the printing device 102.

[0108] In the present embodiment, the application 213 and the extended application 204 are described as being acquired in different procedures. The application 213 may be acquired in a form including the extended application 204, and the extended application 204 may be installed when the application 213 is installed.

[0109] In addition, in the above description, a layout editing application has been used as an example of the application 213, but this embodiment does not limit the type of application 213. The application 213 may be other than a layout editing application. As described above, for example, the application 213 may be a cloud print service. In that case, the print instruction in P711 is sent not to the OS 214 but to a cloud server (not shown). The print instruction in P711 also includes information specifying the image to be printed and the print destination. Therefore, the cloud server can identify the printing device 102 from the print destination information received from the application 213, which is a cloud print service, and send the image to be printed, which has also been received, to the printing device 102.

[0110] <<Embodiment 2>> In the first embodiment, an example was shown in which the extended application 204 operates as an extended application dedicated to the application 213. In order to achieve data output using a virtual queue even for an application other than the application 213, an extended application 204 dedicated to that application is required. Therefore, in the second embodiment, the extended application 204 is configured to determine, based on the name of the print queue, which application 213 or which printing device 102 is the print destination. An example will be described in which a single extended application 204 operates as an extended application corresponding to a plurality of different applications 213 or printing devices 102. Hereinafter, unless otherwise specified, the configuration of the second embodiment is the same as the configuration of the first embodiment.

[0111] The various processes performed when the application 213 is installed in the second embodiment will be described with reference to Fig. 10. Fig. 10 is a sequence diagram of the various processes performed when the application 213 is installed. The processes from P1001 to P1009 are similar to the processes from P601 to P609, and therefore will not be described. When the extension application 204 receives a print function extension instruction from the OS 214 in P1009, the extension application 204 performs a process in P1010 in which the print queue identifies the application 213. Specifically, the extension application 204 identifies which application 213 or printing device 102 is the print destination corresponding to the print queue, based on the model name of the print queue. The model name of the print queue can be acquired using the API of the OS 214.

[0112] Next, in P1011, the print function extension unit 207 of the extension application 204 performs PDC editing as a print function extension process. Specifically, in P1011, the print function extension unit 207 adds to the PDC 401 a print data output destination area corresponding to the application 213 identified by the extension application 204 in P1010. In the second embodiment, the print function extension unit 207 writes in the PDC 401 a combination of information that can identify the application 213 and information on the print data output destination area for the application 213. FIG. 18 shows an example of a PDC after the print function extension unit 207 edits the PDC 401 in P1011. Note that FIG. 18 is an example of a PDC after two document management applications are installed as the application 213. Information 1801 is an example of a PDC after the print function extension unit 207 edits the PDC 401 in P1011.

[0113] The information 1802 to 1804 are similar to the information 1602 to 1604, and therefore a description thereof will be omitted. The information 1805 is information in which the path of the area to which the print data editing unit 208 of the extended application 204 outputs print data is expressed as a character string for each application 213. An attribute name capable of identifying the application corresponding to the virtual queue is set as the information 1805. The extended application 204 can specify the application associated with the virtual queue by referring to the information 1805. Here, it is shown that a document management application is used as the application associated with the virtual queue. The following character string "C:\Users\test\AppData\Roaming\Temp\DocManagemetApp\" describes information on the area to which the print data editing unit 208 outputs print data.

[0114] 10 is a sequence diagram when the application 213 is installed, and therefore a description thereof will be omitted. However, even when the printing device 102 and the information processing device 101 are connected, the OS 214 issues a print function extension instruction to the print function extension unit 207. In this case, the print function extension unit 207 may edit the PDC 401 based on the capability information of the printing device 102. Specifically, the print function extension unit 207 may be configured to add to the PDC 401 a feature or option that does not exist in the existing PDC 203, among the capability information acquired by the capability information acquisition unit 211. The function that the print function extension unit 207 adds to the PDC 401 may be determined by a method other than the above. For example, the print function extension unit 207 may determine the function to be added to the PDC 203 based on information previously stored in the shared information 210.

[0115] When the print function extension process of P1011 ends, the extension application 204 proceeds to the process of P1012. Note that P1012 to P1013 are similar to P611 to P612, so the explanation will be omitted.

[0116] Here, the details of the processing of the extension application 204 in P1010 to P1012 in Fig. 10 will be described with reference to the flowchart in Fig. 21. The processing described in the flowchart in Fig. 21 is realized by the CPU 111 executing the program of the extension application 204.

[0117] The CPU 111 determines whether or not a print function extension instruction has been received from the OS 214 (S2101). If the CPU 111 has not received a print function extension instruction, the process returns to S2101. If a print function extension instruction has been received, the CPU 111 starts the print function extension unit 207 of the extension application 204, and executes the process described in S2102.

[0118] CPU 111 determines whether the selected print queue is a virtual queue (S2102). If the name of the print queue corresponds to a prestored application 213, CPU 111 determines that the print queue is a virtual queue. If the selected print queue is not a virtual queue, CPU 111 advances the process to S2103. If the selected print queue is a virtual queue, CPU 111 advances the process to S2105.

[0119] If the selected print queue is not a virtual queue, i.e., if it is a print queue that transmits print data to the printing device 102, the CPU 111 acquires attribute data from the printing device 102 (S2103). The CPU 111 performs the process of acquiring the attribute data using the Get-Printer-Attributes operation defined in IPP.

[0120] CPU 111 edits the PDC based on the attribute data acquired from the printing device (S2104). Here, it is possible to update the PDC based on attribute data that cannot be handled by print data generation software 202 alone.

[0121] Next, the case where the selected print queue is a virtual queue will be described.

[0122] The CPU 111 determines whether the application 213 corresponding to the selected virtual queue is a layout application (S2105). The CPU 111 performs the determination described in S2105 based on the model name of the virtual queue. If the application corresponding to the virtual queue is a layout application, the CPU 111 advances the process to S2106. The CPU 111 reads out the path of the print data storage destination for the layout application stored in the extension application 204, and edits the PDC (S2106). If the application 213 corresponding to the virtual queue is not a layout application, the CPU 111 executes the process described in S2107. The CPU 111 reads out the path of the print data storage destination for the document management application stored in the extension application 204, and edits the PDC (S2106).

[0123] Note that, although two applications 213, a layout application and a document management application, are listed here as the applications 213 supported by the extended application 204, three or more applications may be supported. Also, in the above description, when the print queue is a virtual queue, it is assumed that it is connected to the actual printing device 102. In addition to the case where it is connected to the actual printing device 102, the case where it is connected to a cloud print service may also be determined to be not a virtual queue.

[0124] After editing the PDC, the CPU 111 notifies the OS 214 of the completion of the processing (S2108), and then the CPU 111 ends the processing shown in FIG.

[0125] In this way, the print function extension unit 207 identifies the application 213 and writes information about the area where the print data editing unit 208 outputs print data to the PDC 1801. This allows the application 213 to refer to a PC (not shown) and determine where the print data to be output to itself is stored when printing, which will be described later. Also, by separately writing different print data output destinations for each application 213 in the same PDC 1801, as in information 1805, it becomes possible for a single extension application 204 to support multiple different applications 213.

[0126] Next, various processes performed when printing by the application 213 will be described with reference to FIG. 11. FIG. 11 is a sequence diagram of an example of various processes performed when printing by the application 213. P1101 to P1104 are the same as P701 to P704, and therefore will not be described. When the extended application 204 receives a print data generation instruction from the OS 214 in P1104, the extended application 204 performs a process of determining the print destination of the print queue for which the print instruction was received in P1105. The details of the process of determining the print destination are the same as those in P1010. In the following P1106, the print data editing unit 208 of the extended application 204 performs a print data generation process. In the second embodiment, the print data editing unit 208 switches the details of the process depending on the print destination determined by the extended application 204 in P1106. For example, if the application 213 is a layout editing application, it generates print data in XPS format. For example, if the application 213 is a document management application, it generates print data in PDF format. Or, if the print destination is the printing device 102, the print data (such as PWG-Raster or PDF) that can be interpreted by the printing device 102 is generated. If the print destination determined by the extended application 204 in P1105 is the application 213, the print data editing unit 208 proceeds to processing of P1107. In P1107, the print data editing unit 208 stores the print data generated in P1106 in an area in which the print data for each application 213 described in PDC1801 is described as a path of the output destination area. At this time, the print data editing unit 208 stores the print data in an area corresponding to the application 213 determined in P1105. Note that, here, as in the first embodiment, the data that the print data editing unit 208 stores in the area described in the information 1805 in P1107 may include data other than print data. When the processing of P1107 is completed, the extended application 204 proceeds to processing of P1108. The processing from P1108 to P1116 is similar to that from P707 to P715, so the explanation will be omitted.

[0127] On the other hand, if the print destination determined by the extended application 204 in P1105 is the printing device 102, the print data editing unit 208 proceeds to processing in P1117. In P1117, the print data editing unit 208 sends the print data generated in P1106 to the printing device 102. When the printing device 102 receives the print data in P1116 or P1117, the printing device 102 starts a printing process P1118 on printing paper.

[0128] Here, details of the processing from P1105 to P1108 in Fig. 11 will be explained with reference to Fig. 22. The processing shown in Fig. 22 is realized by the CPU 111 executing a program provided by the extension application 204.

[0129] The CPU 111 determines whether or not intermediate print data and print setting information have been received from the OS 214 (S2201). If the intermediate print data and print setting information have not been received, the CPU 111 returns the process to S2201. If the intermediate print data and print setting information have been received, the CPU 111 advances the process to S2202. Note that, although this embodiment will be described as receiving the intermediate print data and print setting information from the OS 214, this information may also be received from the print data generation software 202.

[0130] The CPU 111 processes the intermediate print data based on the print setting information (S2202). The process in S2202 is similar to the process in S2002 in FIG.

[0131] The CPU 111 determines whether the selected print queue is a virtual queue (S2203).

[0132] If the selected print queue is not a virtual queue, CPU 111 selects a data format supported by printing device 102 as the format of the drawing data (S2204). CPU 111 references the PDC or PC corresponding to printing device 102 and sets the data format of the drawing data supported by printing device 102. The data format supported by printing device 102 is, for example, PWG-Raster format or PDF format. CPU 111 generates print data in the format selected in S2204 and transmits it to printing device 102 (S2205). CPU 111 generates and transmits the print data using an API provided by OS 214.

[0133] If the selected print queue is not a virtual queue, the CPU 111 determines whether the application corresponding to the virtual queue is a layout application (S2206). If the application corresponding to the virtual queue is a layout application, the CPU 111 selects a data format for the layout application stored in advance (S2207). If the application corresponding to the virtual queue is not a layout application, the CPU 111 selects a data format for a document generation application stored in advance (S2208). Note that in the present embodiment, the description has been given assuming that the extension application 204 stores in advance data formats supported by the layout application and the document generation application. In S2207 and S2208, the CPU 111 may obtain a data format supported by each application from an external server and select the data format.

[0134] The CPU 111 converts the intermediate print data into the rendering data selected in either S2207 or S2208, and generates print data (S2209).

[0135] CPU 111 determines whether the application corresponding to the virtual queue is a layout application (S2211). If the application corresponding to the virtual queue is a layout application, CPU 111 reads a path for the layout application stored in advance and stores the generated print data (S2212). If the application corresponding to the virtual queue is a document generation application, CPU 111 reads a path for the document generation application stored in advance and stores the print data (S2213).

[0136] The CPU 111 starts an application associated with the virtual queue (S2214). The process of S2214 is similar to S2006 in Fig. 20. Note that in Fig. 22, an application corresponding to the selected virtual queue is started, not a fixed application.

[0137] CPU 111 determines whether or not the application has been successfully started (S2215). If the application has been successfully started, CPU 111 ends the process shown in Fig. 22. If the application has not been successfully started, CPU 111 notifies the user of an error indicating that the application has not been started (S2216).

[0138] Thus, in the second embodiment, the print data editing unit 208 switches the print data generation process and the print data output destination according to the print destination determined by the extended application 204. According to the second embodiment, even a single extended application 204 can perform processing appropriate for each of a plurality of different applications 213 and printing devices 102.

[0139] Furthermore, the print destination determination process of P1105 may be a determination method other than the process described above. For example, the print setting screen extension unit 205 of the extended application 204 may be configured so that the user can specify the application 213 to which the print data is to be sent. In this case, even if the printing device 102 is selected as the destination of the print data in the print destination determination process of P1105, it is possible to set the print destination to the application 213 based on the above settings. In this case, the generated print data is stored in the print data storage area of ​​the application 213 and is not sent to the printing device 102.

[0140] As described above, in the second embodiment, even a single extension application 204 can be made to operate in correspondence with a plurality of different applications 213 and printing apparatuses 102.

[0141] <<Embodiment 3>> In the first embodiment, the extended application 204 directly launches the application 213 at P707. In the third embodiment, a configuration will be described in which the application 213 detects the storage of print data and automatically launches the application 213, without the extended application 204 directly launching the application 213. Hereinafter, unless otherwise specified, the configuration of the third embodiment is the same as that of the first embodiment.

[0142] FIG. 12 is a sequence diagram of an example of various processes during printing by the application 213 in the third embodiment. P1201 to P1206 are similar to P701 to P706, so the description will be omitted. In the third embodiment, after the print data editing unit 208 of the extended application 204 stores the print data in the area described in the information 1605 in P1206, the application 213 is not started. That is, the application 213 constantly monitors whether the print data is stored in the area described in the information 1605, and when it detects that the print data has been stored, it performs a process of starting the application 213 itself in P1207. Specifically, a submodule of the application 213 is constantly running on the OS 214, and checks at a predetermined interval (for example, once every two seconds) whether data exists in the area described in the information 1605. If it is detected that data exists in the area described in the information 1605, the submodule of the application 213 starts the main module of the application 213. When the application 213 is started from the submodule, it proceeds to the process of P1208. The processing from P1208 to P1216 is similar to the processing from P708 to P716, so the explanation will be omitted.

[0143] In this way, in the third embodiment, the application 213 is configured to detect the storage of print data and automatically start up. In this way, even if the extension application 204 does not know how to start up the application 213, the application 213 can obtain the print data stored in a predetermined area by the print data editing unit 208. An example of a case in which the extension application 204 does not know how to start up the application 213 is when the URI of the start-up module of the application 213 is unknown.

[0144] <<Other embodiments>> Needless to say, the object of the present invention can also be achieved by supplying a recording medium on which is recorded the program code of software for realizing the functions of the above-mentioned embodiments to a system / apparatus, and having a computer in the system / apparatus read and execute the program code. In this case, the program code itself read from the recording medium will realize the functions of the above-mentioned embodiments, and the recording medium on which the program code is stored constitutes the present invention.

[0145] Examples of storage media for supplying the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs.

[0146] Needless to say, this also includes cases where an Operating System (OS) running on a computer performs some or all of the actual processing based on the instructions of the program code, and the functions of the above-mentioned embodiments are realized through that processing.

[0147] Furthermore, the program code read from the storage medium may be written to a memory provided on a function expansion board inserted into a computer or a function expansion unit connected to the computer, and then, based on the instructions of the program code, a CPU provided on the function expansion board or function expansion unit may perform part or all of the actual processing, and the functions of the above-mentioned embodiments may be realized by the processing. [Explanation of symbols]

[0148] 101 Host Computer 102 Printing device 202 Printing data generation software 203 PDC 204 Extended Applications 205 Print setting screen expansion unit 207 Printing function expansion unit 208 Print Data Editing Unit 213 Applications 214 OS

Claims

1. 1. An application, comprising: a generating step of generating a print queue associated with a generic printer driver in a state where the print queue is not connected to a printing device; and acquiring the generated print data by specifying the print queue.

2. 2. The application according to claim 1, wherein the generating step is executed in response to installation of the application.

3. 2. The application according to claim 1, further comprising a notification step of notifying an operating system of the information processing device of a file path in which capability information of the printing device associated with the print queue is stored.

4. 4. The application according to claim 3, wherein the application stores a file in which the capability information is stored.

5. 4. The application according to claim 3, wherein the generic printer driver is a driver provided by a vendor that provides the operating system.

6. A method for controlling an information processing device executed by an application, comprising: generating a print queue associated with a generic printer driver in an operating system of the information processing device while the information processing device and a printing device are not connected; and acquiring the generated print data by specifying the generated print queue.

7. An application for use with a generic printer driver, a generating step of generating print data in a data format supported by another application based on a print queue being selected for generating print data to be used by the other application; a control step of storing the generated print data in a file path referenced by the other application; An application characterized by causing an information processing device to execute the above.

8. When another print queue is selected to send print data to a printing device, another generating step of generating print data in a format based on capability information of the printing device; and causing the information processing device to transmit the print data generated in the other generation step to the printing device.

9. 8. The application according to claim 7, wherein the generic printer driver is a driver provided by a manufacturer that provides an operating system for the information processing apparatus.

10. 8. The application according to claim 7, wherein the application adds a storage destination of the print data to a file that describes information about the print queue.

11. A method for controlling an information processing device executed by an application used together with a generic printer driver, comprising: a generating step of generating print data in a data format supported by another application based on a print queue being selected for generating print data to be used by the other application; a control step of storing the generated print data in a file path referenced by the other application; A control method comprising the steps of:

Citation Information

Patent Citations

  • Printing service method by reference

    JP2003067148A

  • Information processing apparatus, control method and program

    JP2021107999A

  • Program and control method

    JP2021108001A