Information processing device, control method and program for information processing device

The application program enhances printing capabilities by supporting manual double-sided printing through an IPP class driver, addressing the limitations of standard drivers and extension applications in existing systems.

JP7814866B2Active Publication Date: 2026-02-17CANON KK
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2021141465
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-08-31
Publication Date
2026-02-17
Estimated Expiration
2041-08-31

AI Technical Summary

Technical Problem

Existing printing systems lack enhanced functionality to support advanced features like manual double-sided printing, despite the availability of standard drivers and extension applications.

Method used

An application program that cooperates with an IPP class driver to enhance printing capabilities by allowing manual double-sided printing, displaying specific function screens, editing print data, and transmitting data to a printing device while monitoring its status, using an extension application to extend the functionality of standard drivers.

Benefits of technology

Enables better functionality by providing enhanced printing features such as manual double-sided printing, improving user interaction and device compatibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007814866000001
    Figure 0007814866000001
  • Figure 0007814866000002
    Figure 0007814866000002
  • Figure 0007814866000003
    Figure 0007814866000003
Patent Text Reader

Abstract

To allow an extension application to provide a better function.SOLUTION: A method for an extension application causes a computer of an information processing apparatus to function as: acquisition means of acquiring input data including print settings; display control means of causing a display unit to display a screen related to a specific function in a case where it is determined based on the printing setting that the specific function is to be executed; editing means of editing the input data such that the specific function is executed, to convert the input data into printing data; and transmission means of transmitting the printing data to a printing apparatus after the display control means causes the display unit to display the screen.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a technique for expanding printing functions. [Background technology]

[0002] In recent years, Windows (registered trademark) and other operating systems have provided standard class drivers (hereinafter referred to as "standard drivers") that can be used commonly with printing devices provided by multiple vendors. Such standard drivers are included in the operating system (hereinafter referred to as "OS") package. The standard driver is configured to allow printing functions to be specified according to PrintCapabilities generated based on information obtained from the connected printing device. This allows users using the standard driver to specify printing functions according to the capabilities of the connected printing device.

[0003] A standard driver can be associated with an application for function extension (hereinafter also referred to as an "extension application"). The extension application is provided by the vendor that provides the printing device. By providing the extension application, the vendor can provide functions (extension functions) that cannot be achieved with the standard driver alone. Patent Document 1 discloses a technology for extending functions such as a stamp function using an extension application. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Publication No. 2019-74906 Summary of the Invention [Problem to be solved by the invention]

[0005] Further efforts are needed to enable enhanced applications to provide better functionality. [Means for solving the problem]

[0006] A program according to one aspect of the present disclosure is an application program that cooperates with an IPP class driver, and causes a computer of an information processing device to function as an acquisition means for acquiring input data including print settings, a display control means for displaying a screen related to the specific function on a display unit when it is determined based on the print settings that a specific function is to be executed, an editing means for editing the input data and converting it into print data so that the specific function is executed, and a transmission means for transmitting the print data to a printing device after the display control means has displayed the screen on the display unit. The editing means generates first data to be printed on a first side of a printing medium and second data to be printed on a second side of the printing medium from the input data, and while the printing device is performing processing related to the first data, the editing means transmits the status of the printing device to the Internet. Printing The display control means acquires the status by communication according to the IPP protocol, and when the status indicating that the processing related to the first data has been completed is acquired, the display control means displays a paper setting procedure for performing the processing related to the second data on the display unit, and the IPP class driver cannot display the paper setting procedure. It is characterized by: [Effects of the Invention]

[0007] According to the present disclosure, the enhanced application can provide better functionality. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 2 is a block diagram illustrating a hardware configuration of the printing system. [Figure 2] FIG. 1 is a diagram schematically illustrating a configuration of a printing system. [Figure 3] 10 is a flowchart illustrating an example of a process for editing print function information. [Figure 4] FIG. 1 illustrates an example of a PDC. [Figure 5] FIG. 10 is a diagram illustrating an example of a PDC with added functions. [Figure 6] FIG. 10 illustrates an example of a print setting screen. [Figure 7] 10 is a flowchart illustrating an example of a print data editing process. [Figure 8] FIG. 10 is an explanatory diagram of pages arranged on the front and back sides during double-sided printing. [Figure 9] 10 is a flowchart illustrating an example of a print data editing process for a front-side job. [Figure 10]10 is a flowchart illustrating an example of a print data editing process for a back-side job. [Figure 11] FIG. 10 is a diagram showing an example of a guide for manual double-sided printing. [Figure 12] 10 is a flowchart illustrating an example of a print data editing process. [Figure 13] FIG. 10 is a diagram illustrating an example of an error dialog box. [Figure 14] 10 is a flowchart illustrating an example of a process for editing print function information. [Figure 15] FIG. 1 illustrates an example of a PDC. [Figure 16] 10 is a flowchart illustrating an example of a print data editing process. [Figure 17] FIG. 10 is a diagram illustrating an example of a guide screen. [Figure 18] FIG. 10 is a diagram illustrating a flow centered on manual double-sided printing processing of the printing device. [Figure 19] FIG. 10 is a diagram illustrating an example of a guide screen displayed on the printing device. [Figure 20] 10 is a flowchart illustrating an example of a print data editing process. [Figure 21] FIG. 10 is a diagram illustrating an example of a postcard printing guide. DETAILED DESCRIPTION OF THE INVENTION

[0009] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the present disclosure, and not all combinations of features described in the present embodiments are necessarily essential to the solutions of the present disclosure. Note that identical components are given the same reference numerals and will not be described again.

[0010] <<First Embodiment>> <Printing system hardware configuration> FIG. 1 is a block diagram showing the hardware configuration of a printing system according to this embodiment. The printing system includes a host computer 101, and FIG. 1 mainly shows the block configuration of the host computer. The host computer 101 is an example of an information processing device. The host computer 101 includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, an input / output interface 116, and a network interface (NETIF) 120. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and display devices such as a display unit 119 are connected to the output interface 115. The NETIF 120 controls data transfer between the host computer and external devices via a network. In the example of FIG. 1, the display unit 119, the pointing device 117, and the keyboard 118 are shown as examples of devices separate from the host computer 101, but these may also be included in the host computer 101. The display unit 119 may also be a touch panel display with input / output device functionality.

[0011] An initialization program is stored in ROM 112. An external storage device 114 stores application programs, an operating system (OS), print data generation software, and various other data. In the following description, the OS refers to the OS of the host computer 101 stored in ROM 112 unless otherwise specified. In the following, application programs will be abbreviated as applications. RAM 113 is used as a work memory when executing the various programs stored in the external storage device 114, thereby enabling the various programs to run within the host computer 101.

[0012] In this embodiment, the CPU 111 executes the processes according to the procedures of the programs stored in the ROM 112, thereby executing the functions and processes of the host computer 101, which will be described later.

[0013] The printing device 102, which is an output device, is connected to the host computer 101 via an input / output interface 116. In the example of FIG. 1, the host computer 101 and the printing device 102 are separate, but they may also be configured as a single information processing device. Note that the printing device will be described as an inkjet printer that prints by ejecting ink onto paper, but printing may also be performed using other methods (e.g., electrophotography). The host computer 101 may be a desktop personal computer, a smartphone, a tablet terminal, or a laptop computer. The input / output interface 116 may be wired or wireless. The host computer 101 and the printing device 102 may also be connected via a LAN or a WAN such as the Internet.

[0014] <Software-based printing system configuration> FIG. 2 is a diagram schematically illustrating the configuration of a printing system. Here, the description is based on the premise that the printing system uses a host computer 101 with Microsoft® Windows® 10 installed as its OS. FIG. 2(a) is a diagram illustrating a typical configuration in which an extended application 204 is not associated with print data generation software 202 and the printing device 102. In other words, it is a diagram illustrating the configuration of a printing system in which the extended application 204 is not used. Meanwhile, FIG. 2(b) is a diagram illustrating the configuration of a printing system according to this embodiment in which the extended application 204 is associated with the print data generation software 202 and the printing device 102.

[0015] First, an example of a printing system with a general configuration will be described using Figure 2(a). A printing system with a general configuration includes a drawing application 201 and print data generation software 202. In addition, print function information 203 is stored in RAM 113 or external storage device 114. The drawing application 201 and print data generation software 202 are programs that can be run on the host computer 101, and are stored in RAM 113 or external storage device 114.

[0016] The drawing application 201 is software that creates content (drawing data) to be printed. Examples of the drawing application 201 include various applications operated by the user, such as a word processing application, a spreadsheet application, and a presentation data creation application. When the drawing application 201 receives a print request through a user operation, 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 abbreviated as "PT").

[0017] The drawing application 201 can display a print setting screen to accept print setting operations from the user and set print setting information (PT). The print setting screen is a screen provided by any of the print data generation software 202, the OS, and the drawing application 201. The print setting screen includes setting items (hereinafter also referred to as "control items") that indicate configurable print functions and control items that indicate their setting values. The print setting screen displays the control items 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 abbreviated as "PC"). The print data generation software 202 determines the PC based on the print function information 203.

[0018] The print capability information 203 is data indicating all configurable print functions, their setting values, and the mutual exclusion relationships between the setting values. The print capability information 203 is also called PDC (Print Device Capabilities). The print capability information 203 is included in a configuration file of the print data generation software 202 and stored in the external storage device 114 as an unmodifiable file. Alternatively, the print capability information 203 can be 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 print capability information 203 based on the attribute information in the acquired attribute data. When the print capability information 203 is dynamically generated, the generated print capability information 203 can be edited. The printing device attribute data acquired from the printing device 102 is the response data acquired by issuing an IPP Get-Printer-Attributes operation to the printing device. IPP stands for Internet Print Protocol. The response includes attribute information indicating functions (printing device capabilities) that can be specified by the printing device 102, and setting values ​​related to the attribute information. The response data is saved in RAM 113.

[0019] This configuration allows the print data generation software 202 to be configured so that the user can specify print functions available on each connected printing device 102, depending on the 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 so that the user can specify print functions available on the connected printing device. Here, a configuration using the IPP Class Driver included in Windows® 10 will be described as the print data generation software 202. The IPP Class Driver is a printer driver that executes printing processing in accordance with the specifications of a standard printing protocol called IPP, and is software that is bundled with the OS and pre-installed on the host computer 101. Furthermore, the IPP Class Driver is not a specific printer driver provided by the vendor of the printing device 102 for each model of the printing device 102. The IPP Class Driver is a standard class driver provided by the OS vendor that can be used commonly for multiple printing devices. The IPP Class Driver also acquires attribute information of the connected printing device 102 and generates print function information 203 based on that information so that the user can specify the print functions supported by the connected printing device 102. In this way, the IPP Class Driver, which is print data generation software 202, can dynamically generate print function information 203 (PDC).

[0020] The print setting information (PT) specified through the print setting screen displayed on the PC based on such print function information 203 (PDC) is included in the print instruction output from the drawing application 201. Note that the print instruction output from the drawing application 201 includes the data to be drawn in addition to the print setting information (PT).

[0021] The OS generates intermediate 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 (XPS format data). When an IPP Class Driver is used as the print data generation software 202, if the data output by the drawing application 201 is data in GDI format, the OS converts the data format. That is, the OS converts the GDI format data output from the drawing application 201 into data in XPS format. The converted XPS format data is then passed to the print data generation software 202 as intermediate data. On the other hand, if the data output by the drawing application 201 is data in XPS format, the OS passes the XPS format data to the print data generation software 202 as intermediate data. The intermediate data includes drawing data, which is information about the image to be formed on paper, and print setting information (PT) set by the user.

[0022] The print data generation software 202 converts the acquired intermediate data into print data that can be interpreted by the printing device 102 and sends it to the printing device 102. The print data includes drawing data, which is information about the 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 that indicates functions that can be specified by the printing device 102 (capabilities of the printing device) and setting values ​​related to that attribute information.

[0023] The printing device 102 prints on 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 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 values ​​for specifying print quality (priority on image quality or priority on speed, etc.) and double-sided printing, etc. For example, if the print setting attribute information includes attribute information specifying double-sided printing, the printing device 102 executes double-sided printing.

[0024] 2(b) is a diagram showing the configuration of this embodiment 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 equivalent to the configurations and processes in FIG. 2(a). Note that in the following explanation, processes described as being executed by each piece of software provided in the host computer 101 are actually realized as follows. That is, they are realized by the CPU 111 loading each piece of software stored in the ROM 112, etc., into the RAM 113 and executing it.

[0025] The extension application 204 is software for extending the functions of the print data generation software 202, and is not software that is bundled with the OS and pre-installed on the host computer 101. Therefore, a user operates the host computer 101 to download the extension application 204 from a server via the Internet and install it on the host computer 101. Alternatively, the extension application 204 may be automatically installed on the host computer 101 when the printing device 102 is connected 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 OS may download the extension application 204 corresponding to the acquired device identification information from a server via the Internet and install it on the host computer 101. In this way, the print data generation software 202 and the extension application 204 are held in the host computer 101 as separate files.

[0026] 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. Furthermore, 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. Furthermore, 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. When the extension application 204 is installed, the OS associates the extension application 204 with the print data generation software 202 and the corresponding printing device 102.

[0027] 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, and a notification unit 209. The extension application 204 also includes shared information 210 that can be commonly accessed by each unit. The extension application 204 is provided by the vendor that provides the printing device 102. 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.

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

[0029] Furthermore, the extended application 204 may cancel processing during the processing of each unit. When the extended application 204 cancels processing, the job being processed in the print queue is deleted by the OS. The print queue is a spooler provided in the OS that stores generated jobs. A job is generated based on a print instruction output from the extended application 204 and stored in the print queue. The intermediate data generated based on a print instruction output from the extended application 204 becomes data associated with the job stored at that time. When the intermediate data associated with the job is being processed, the status of the job also becomes "in processing." The job is deleted from the print queue by the OS when print data converted from the intermediate data associated with the job (in other words, the print data associated with the job) is sent to the printing device 102.

[0030] 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 (PT), as in the configuration of FIG. 2(a). In the configuration of FIG. 2(b), as in the configuration of FIG. 2(a), the drawing application 201 can display a print setting screen for specifying the print setting information (PT). In the configuration of FIG. 2(b), a print setting screen provided by the extension application 204 is displayed. Specifically, a print setting screen provided by the print setting screen extension unit 205 included in the extension application 204 is displayed. In other words, the print setting screen display control is performed by the print setting screen extension unit 205. Whether or not the print setting screen provided by the print setting screen extension unit 205 is displayed depends on the user's operation.

[0031] When the drawing application 201 accepts a print request from a user and issues a print instruction to the OS, the OS activates the skip control unit 206. The skip control unit 206 performs control processing to determine whether or not to perform skip processing, which skips the processing of the print data generation software 202. After the skip control processing of the skip control unit 206, the OS generates intermediate data based on the print instruction output from the drawing application 201 and passes the intermediate data to the print data generation software 202. Here, if the skip processing is not performed by the skip control unit 206, the intermediate 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 skip processing of the print data generation software 202 is performed, the intermediate data is passed to the print data editing unit 208 without being processed by the print data generation software 202. This makes it possible for the print data editing unit 208 to process the intermediate data.

[0032] The print data editing unit 208 edits the intermediate data passed from the print data generation software 202 or the print data processed by the print data generation software 202. Taking layout printing as an example of the editing content, the print data editing unit 208 changes the layout of the intermediate data or print data based on the print setting information for layout printing received from the OS. Layout printing, for example, involves laying out and printing N pages of data onto one page, and is referred to as N-in-1 or N-up (N indicates the number of pages). Furthermore, the print data editing unit 208 can execute a UI display function that displays a UI screen on the display unit 119 in response to receiving intermediate data or print data from the print data generation software 202 or the skip control unit 206. For example, the print data editing unit 208 can use this UI display function to display the layout results of the intermediate data or print data as a preview screen. In this embodiment, this UI display function can also display a guide screen, as will be described in more detail below. Furthermore, in the print data editing unit 208, print data is not sent to the printing device 102 while the screen is open; closing the screen starts the print data sending process. After the print data editing unit 208 edits the print data, the print data is passed to the printing device 102 via the OS. The printing device 102 prints on paper based on the accepted print data. Note that if the skip control unit 206 skips the print data generation software 202, the print data editing unit 208 may convert the received intermediate data into print data that can be interpreted by the printing device 102. Alternatively, a function provided by the OS may be used to convert the intermediate data into print data.

[0033] The extension application 204 also has a print function extension unit 207. The print function extension unit 207 can edit the print function information 203 (PDC) generated by the print data generation software 202 or the OS. In other words, the print function extension unit 207 can change the print function information 203 even if the print function information 203 is stored in the external storage device 114 as an unchangeable file. In this way, the extension application 204 has the ability to edit the print function information 203 (PDC). The print function extension unit 207 can add functions provided by the extension application 204. The print function extension unit 207 can also add functions that are supported by the printing device 102 but not by the print data generation software 202, add exclusive relationships between setting values ​​of print functions, and so on.

[0034] 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 any other timing, such as when the OS starts up. This allows the print function extension unit 207 to detect the extension and add it to the print function information 203 in cases where an optional device (e.g., a finisher) is added to the printing device 102 later and printing-related functions are extended.

[0035] 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 the error. The OS then uses a notification function called a toast notification, which is an OS function, to display a message on the display unit 119. When the user presses this toast notification, the OS calls the notification unit 209 of the extension application 204, and the UI screen of the notification unit 209 is displayed. The UI screen of the notification unit 209 can display, for example, a detailed message about the out-of-paper error or instructions on how to refill paper. Note that pressing includes not only a click operation with a mouse or the like, but also a touch or tap operation on a touch panel display.

[0036] Note that once the extended application 204 has sent print data to the printing device 102 and the job associated with the print data has been deleted from the print queue, the extended application 204 cannot display on the screen any guides or other information associated with the print data. In other words, once the job associated with the print data has been deleted from the print queue, the extended application 204 cannot display on the screen any guides or other information associated with the print data, even if each unit is in the middle of processing.

[0037] The configuration of the extension application 204 for realizing this embodiment is not limited to having all of the above-mentioned functions (units), but may have only some of the functions or other functions. The extension application 204 may also be simply called print software. As described above, the extension application 204 has at least one of the following functions: a function for displaying a print setting screen (print setting screen extension unit 205), a function for controlling whether or not to skip processing by the print data generation software 202 (skip control unit 206), a function for editing print data input to the printing device (print data editing unit 208), and a function for extending functions that can be specified by the print data generation software 202 (print function extension unit 207). Another function is a function for displaying a screen in response to an error occurring in the printing device 102 (notification unit 209).

[0038] <Editing process of print function information by the print function extension unit> 3 is a diagram showing the main processing flow of the editing process of print function information by the print function extension unit 207 in this printing system. Hereinafter, the print function extension unit 207 may be described as the main body of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0039] In this embodiment, a manual double-sided printing function will be described as an example of an extended function provided by the extension application 204. That is, an example will be described in which the extension application 204 adds the manual double-sided printing function even when the printing device 102 to which the extension application 204 is associated does not have the manual double-sided printing function. Note that manual double-sided printing is a printing mode in which, for example, a user manually flips a sheet of paper printed on the front side by a printing device and causes the printing device to print again on the back side of the sheet. On the other hand, automatic double-sided printing is a mode in which the printing device automatically flips the sheet and performs double-sided printing without manual flipping by the user. The extension application 204 of this embodiment extends the manual double-sided printing function of a printing device, regardless of whether the printing device has an automatic double-sided printing function or not.

[0040] 3 starts when the OS starts the print function extension unit 207, for example, when the extension application 204 is associated for the first time. Alternatively, the process of FIG. 3 may be executed at any other timing.

[0041] In S301, the print function extension unit 207 determines whether the print function information 203 (PDC) includes capability information for manual double-sided printing. Specifically, it determines whether the JobDuplexMode feature and its associated options include Manual. Note that the feature names and option names in the PDC and PT used in the following explanation are merely examples, and other names (information indicating functions) or configurable values ​​may also be used.

[0042] FIG. 4 is a diagram illustrating an example of a PDC. PDC 401 includes information about features supported by the printing device 102 and information about setting values ​​(options) for certain features. For example, information 402 indicates that ISOA4 and North America Letter can be specified as PageMediaSize (paper size). Information 403 indicates that the following setting values ​​(options) can be specified for JobDuplexAllDocumentsContiguously (duplex printing function): OneSided (single-sided), TwoSidedLongEdge (duplex long-edge binding), and TwoSidedShortEdge (duplex short-edge binding). FIG. 4 illustrates an example in which the printing device 102 associated with the extension application 204 supports the duplex printing function but does not support the manual duplex printing function.

[0043] If it is determined in S301 that the PDC includes capability information for manual double-sided printing, the print function extension unit 207 skips the process of S302 and proceeds to S303. In the example of Fig. 4, since the PDC 401 does not include JobDuplexMode, it is determined in S301 that the PDC does not include capability information for manual double-sided printing, and the process proceeds to S302.

[0044] In S302, the print function expansion unit 207 adds a manual double-sided printing function to the PDC. Figure 5 shows an example of a PDC 501 after the editing process in S302. In PDC 501, the manual double-sided printing function is indicated by a feature name called JobDuplexMode and options Auto and Manual that indicate its settable values, as shown in information 502. This feature and option are merely examples, and other names (information indicating functions) and settable values ​​may also be used.

[0045] In this embodiment, when indicating the manual double-sided printing function, an Auto option is added in addition to the Manual option, making it possible to switch between manual and automatic double-sided printing. However, if switching between manual and automatic double-sided printing is not necessary, only the Manual option may be described. In addition, in the PDC 501, the printing device 102 supports the double-sided printing function (automatic), so Auto is described as the option. Here, in the case of a PDC of a printing device that does not support the double-sided printing function, only the Manual option is added as an option. After S302, processing proceeds to S303.

[0046] In S303, the print function extension unit 207 determines whether the PDC includes front / back discrimination information for manual double-sided printing. Specifically, it determines whether the PDC includes a Feature called JobDuplexSide and its associated Options including Front and Back. The Feature called JobDuplexSide is a Feature for distinguishing between the front and back sides in manual double-sided printing. If it is determined in S303 that the PDC includes front / back discrimination information for manual double-sided printing, the process of this flowchart ends. If it is determined that the PDC does not include front / back discrimination information for manual double-sided printing, the process proceeds to S304. In the example of FIG. 4, the PDC 401 does not include JobDuplexSide, so in S303 it is determined that the PDC does not include front / back discrimination information for manual double-sided printing.

[0047] In S304, the print function expansion unit 207 adds front / back discrimination information for manual double-sided printing to the PDC. In the example of Fig. 5, information 503 used for internal processing of the manual double-sided printing function is added to the PDC 501. The information 503 is identification information indicating printing on the front side and printing on the back side in manual double-sided printing, and indicates the feature name JobDuplexSide and the option names Front and Back.

[0048] Note that information 503 is information used for internal processing of the manual double-sided printing function. Therefore, it is preferable to configure information 503 so that it is not erroneously specified by a user or upper-level software (drawing application 201). For example, it is preferable to configure it as follows: A PC, which is capability information generated based on PDC 501, can include a property called DisplayUI, which can specify whether or not to display the corresponding function on the UI. Therefore, UI display attribute information, which can specify whether or not to display the corresponding function on the UI, is added to PDC 501, and the UI display attribute information is specified so that information 503 is not displayed on the UI. Then, when a PC is generated based on PDC 501, the DisplayUI property and the UI display attribute information are mapped, and the function of information 503 is specified as hidden as PC information. By having this PC referred to by upper-level software (drawing application 201), it is possible to prevent information 503 from being erroneously specified by a user or upper-level software.

[0049] Through the above processing, each Feature and Option is added as information relating to the manual double-sided printing function to PrintCapabilities (PC), which is capability information generated based on the PDC, which is the printing function information 203.

[0050] <Example of the screen displayed by the print setting screen expansion unit> Fig. 6 is a diagram showing an example of a print setting screen displayed by the print setting screen expansion unit 205. The print setting screen 600 in Fig. 6 is an example of a screen displayed by the print setting screen expansion unit 205 based on the PC generated by the above-mentioned process. The print setting screen expansion unit 205 is called by the OS when the user instructs the drawing application 201 to display the print setting screen. The print setting screen expansion unit 205 displays a screen on which the user can specify print functions that can be specified in the print data generation software 202, based on the PC that can be obtained from the OS.

[0051] Control item 601 is a control item that allows the user to set the type of paper to be used for printing, such as plain paper or photo paper. Control item 602 is a control item that allows the user to set the paper size to be used for printing, such as A4 or letter. Control item 603 is a control item that allows the user to set the print orientation, such as portrait or landscape. Control item 604 is a control item that allows the user to enable or disable double-sided printing. Control item 605 is a control item that allows the user to enable or disable the automatic double-sided function. Control item 606 is a control item that allows the user to set the binding direction for double-sided printing, such as long-edge binding or short-edge binding. Control item 607 is a cancel button; when control item 607 is pressed, the screen closes without reflecting the settings. Control item 608 is an OK button; when control item 608 is pressed, the screen closes with the settings reflected.

[0052] Here, the control item 605 is a control item that is displayed according to a PC generated based on a PDC by the print function extension unit 207 adding information related to manual double-sided printing to the PDC. The print setting screen extension unit 205 displays the control item 605 according to a feature called JobDuplexMode added to the PC. The user can specify the manual double-sided function by disabling (i.e., not checking) the check box control of the control item 605. The user can also specify the automatic double-sided function by enabling (i.e., checking) the check box control of the control item 605. As described above, in this embodiment, the printing device associated with the extension application 204 supports the automatic double-sided printing function, so the control item 605 is displayed. If the printing device associated with the extension application 204 does not support the automatic double-sided printing function, the control item 605 will not be displayed on a screen displayed based on a PC that indicates that function.

[0053] Although the print setting screen 600 is configured to allow the double-sided printing enable / disable setting and the automatic double-sided printing / manual double-sided printing setting to be set using two checkbox controls, the setting method is not limited to this. For example, a combo box may be configured with items for double-sided printing off, automatic double-sided printing, and manual double-sided printing, allowing the setting to be made using a single control. Furthermore, the JobDuplexSide feature and the Front and Back options added by the print function extension unit 207 are used internally by the extension application 204. Therefore, it is preferable not to include them in the print setting screen so that they are not specified by the user. As mentioned above, the print setting screen 600 in FIG. 6 is displayed based on a PC in which JobDuplexSide is set to be hidden, so control items related to JobDuplexSide are not displayed.

[0054] <Manual duplex function processing flow> Next, the processing when manual double-sided printing is specified will be described. When the user sets manual double-sided printing (automatic double-sided printing off) on the print setting screen 600 and instructs printing using a print queue associated with the extension application 204, the OS calls the skip control unit 206. The skip control unit 206 can control whether or not to skip the processing of the print data generation software 202. In this embodiment, an example will be described in which conversion from intermediate data to print data is performed by the print data editing unit 208 rather than the print data generation software 202, but the print data generation software 202 may also convert the intermediate data.

[0055] In this embodiment, the skip control unit 206 controls the skip of the print data generation software 202. When the skip control unit 206 completes processing, the intermediate data is passed from the OS to the print data generation software 202. Note that in this embodiment, the intermediate data is passed to the print data generation software 202 regardless of whether skip processing is performed, but when skip processing is performed, the OS may pass the intermediate data directly to the print data editing unit 208. Also, in this embodiment, the skip control unit 206 does not display on the display unit 119.

[0056] The intermediate data is passed to the print data generation software 202, and processing by the print data generation software 202 is skipped based on the skip control of the skip control unit 206. Thereafter, the intermediate data is passed to the print data editing unit 208 by the OS.

[0057] 7 is a diagram showing the main processing flow of the print data editing unit 208 when manual double-sided printing is set in this embodiment. Hereinafter, the print data editing unit 208 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0058] First, in S701, the print data editing unit 208 acquires the intermediate data (input data) received from the print data generation software 202 and the print settings (PT) included in the intermediate data. Next, in S702, the print data editing unit 208 determines whether manual double-sided printing is set in the print settings acquired in S701. For example, if the check box control of the control item 605 on the print setting screen 600 in FIG. 6 is disabled, a PT in which manual double-sided printing is set is acquired. If manual double-sided printing is not set, the print data editing unit 208 does not perform processing related to manual double-sided printing and exits this processing flow. On the other hand, if manual double-sided printing is set, the print data editing unit 208 advances the processing to S703 to perform processing related to manual double-sided printing.

[0059] In S703, the print data editing unit 208 classifies the pages included in the intermediate data (job) into pages to be placed on the front side during double-sided printing and pages to be placed on the back side, based on the print settings acquired in S701. Note that if the pages of the intermediate data are divided and passed to the print data editing unit 208, the unit waits until all pages have been passed to the print data editing unit 208 before performing the classification process in S703.

[0060] FIG. 8 is an explanatory diagram of a method for classifying pages to be placed on the front and pages to be placed on the back during double-sided printing. FIG. 8 shows an example in which the print setting is long-edge binding and the intermediate data contains four pages. In this embodiment, the binding directions that can be set during double-sided printing are limited to long-edge left binding and short-edge top binding. However, the PDC and print setting screen 600 may be configured so that the left, right, top, and bottom closing directions can be set on the print setting screen 600. In this case, the classification and page order can be changed in step S702 according to the closing direction setting. Note that if the extension application 204 is associated with a printing device that does not support automatic double-sided printing, information indicating the closing direction, corresponding to information 403 in FIG. 4, is assumed to have been added to the PDC by the print function extension unit 207.

[0061] Group 801 in Figure 8 shows the page group and page order of the intermediate data before classification. In group 801, the pages of the intermediate data are stored in the order of pages 804, 805, 806, and 807 (in Figure 8, Page 1 indicates the first page). If group 801 is bound long edge-on and the binding direction is left-hand, the pages are classified into group 802, which will be arranged as front pages during double-sided printing, and group 803, which will be arranged as back pages. Furthermore, group 802 is arranged in the order of pages 804 and 806 (Page 1, Page 3), and group 803 is arranged in the order of pages 805 and 807 (Page 2, Page 4).

[0062] Next, in S704, the print data editing unit 208 generates front-side intermediate data and back-side intermediate data from the intermediate data based on the page classification in S703. In the example of FIG. 8, the front-side intermediate data is composed of pages in group 802, and the back-side intermediate data is composed of pages in group 803. That is, first divided input data composed of pages in group 802 and second divided input data composed of pages in group 803 are generated. By dividing the intermediate data into front-side intermediate data and back-side intermediate data in this way, it becomes possible for the extension application 204 to display a guide screen at the required timing, as described below. When print data is sent from the extension application 204 (print data editing unit 208) to the printing device 102 via the OS, the extension application 204 is unable to perform display control at the appropriate timing. In this embodiment, generating front-side intermediate data and back-side intermediate data from the intermediate data makes it possible to appropriately display a guide screen when the extension application 204 subsequently processes the back-side intermediate data after processing the front-side intermediate data has finished. Details will be described below. In S704, the print settings (PT) included in the intermediate data are copied and added to the front intermediate data and back intermediate data as print settings, respectively. Note that at this time, the manual double-sided printing settings are not added.

[0063] In S705, the print data editing unit 208 adds front / back discrimination information to the print settings (PT) included in the front intermediate data and back intermediate data generated in S703. That is, front or back identification information is added. Specifically, the JobDuplexSide option is set to Front in the PT of the front intermediate data, and the JobDuplexSide option is set to Back in the PT of the back intermediate data. Adding this front / back identification information enables control that takes into account the interruption of other print jobs when processing the front intermediate data and back intermediate data. Details will be described later using FIG. 12. Note that when adding the information 503 in FIG. 5, it is also possible to skip the process of setting the JobDuplexSide option to Front for the PT of the front job by setting the Front option as the default.

[0064] Next, in S706, the print data editing unit 208 sets the print settings included in the front intermediate data and back intermediate data to single-sided printing. Specifically, the Option in the Feature of JobDuplexAllDocumentsContiguously in the print settings is set to OneSided. This causes the front intermediate data and back intermediate data to be printed single-sided by the printing device 102. After the user prints the front intermediate data single-sided, the user can flip the paper and print the back intermediate data on that paper single-sided, thereby realizing the manual double-sided printing function.

[0065] Next, in S707, the print data editing unit 208 identifies the print queue to which the job set for manual double-sided printing has been added. The print data editing unit 208 then adds the front surface intermediate data and back surface intermediate data generated in S704 to the acquired print queue as jobs to print, in the order of the front surface intermediate data and the back surface intermediate data. With this job addition, the front surface intermediate data is added to the print queue as a front surface job, and the back surface intermediate data is added as a back surface job. Note that in the process of FIG. 7, in S707, the front surface intermediate data and back surface intermediate data are added to the print queue as jobs almost simultaneously from the intermediate data. This reduces the possibility that another job will be inserted between the job for the front surface intermediate data and the job for the back surface intermediate data.

[0066] Next, in S708, the print data editing unit 208 performs a cancellation process for the job consisting of the pages of group 801 and exits the processing flow. In response to the cancellation instruction in S708, the canceled job is deleted by the OS, and the processing of the extension application 204 for the job consisting of group 801 ends.

[0067] After the process flow of FIG. 7 is completed in this manner, the print data editing unit 208 continues processing the front and back jobs added in S707 as the next processing step for the manual double-sided function.

[0068] First, the processing of the front side job added in S707 will be described. When the job being processed is canceled in S708, processing of the front side job added in S707 begins, and processing of each unit of the extension application 204 is called. First, the skip control unit 206 is called by the OS. In this embodiment, the print data generation software 202 does not convert the intermediate data, so the skip control unit 206 controls the skip of the print data generation software 202. After processing by the skip control unit 206, the intermediate data is not processed by the print data generation software 202, but is passed to the print data editing unit 208.

[0069] Figure 9 shows the main processing flow when the print data editing unit 208 processes the front-side job added in S707. After acquiring the intermediate data, the print data editing unit 208 executes the processing flow in Figure 9. In practice, a determination is made as to whether the received intermediate data is a front-side job, and if it is determined to be a front-side job, the processing flow in Figure 9 is executed. The determination of a front-side job will be described later with reference to Figure 12.

[0070] First, in S901, the print data editing unit 208 turns on a processing flag indicating that the front side has been processed and stores the processing flag in the shared information 210. In this embodiment, the front and back pages are stored in the print queue as separate print jobs. This means that there is a possibility that another job will be inserted between the front and back side jobs. Storing the processing flag makes it possible to perform exception control in the case where the back side job is not processed immediately after the front side job is processed. Note that this processing flag is preferably managed for each print queue, taking into consideration the case where there are multiple print queues associated with the extension application 204.

[0071] Next, in S902, the print data editing unit 208 converts the intermediate data of the front-side job into print data that can be interpreted by the printing device 102. Furthermore, in S903, the print data editing unit 208 passes the print data including the front-side page converted in S902 to the printing device 102 via the OS. Thereafter, the printing device 102 prints the front-side page.

[0072] Next, processing of the back side job added by the extension application 204 in S707 will be described. As described above, the extension application 204 adds jobs in the order of the front side job and then the back side job. Therefore, once the extension application 204 has completed processing the front side job, it starts processing the back side job added to the print queue. First, the OS passes intermediate data to the skip control unit 206. As with the processing of the front side job, the skip control unit 206 performs skip control of the print data generation software 202. Next, the intermediate data is passed to the print data generation software 202, and processing is skipped based on the control of the skip control unit 206. After that, the intermediate data is passed to the print data editing unit 208, and the print data editing unit 208 processes the back side job.

[0073] Figure 10 shows the main processing flow when the print data editing unit 208 processes the back-side job added in S707. After acquiring the intermediate data, the print data editing unit 208 executes the processing flow in Figure 10. In practice, a determination is made as to whether the received intermediate data is a back-side job, and the processing flow in Figure 10 is executed only if it is determined to be a back-side job. The determination of a back-side job will be described later with reference to Figure 12.

[0074] First, in S1001, the print data editing unit 208 acquires information about the paper feed slots provided in the printing device 102 from the capability information (PC) based on the print settings (PT) included in the intermediate data. Examples of paper feed slots include a cassette or a rear tray. The print data editing unit 208 acquires the capability information (PC) based on the print settings (PT) from the print data generation software 202 and performs processing. Next, in S1002, the print data editing unit 208 sets the paper feed slots in the print settings (PT) included in the intermediate data for the back-side job. The print data editing unit 208 sets the paper feed slots that can be set in the printing device 102 based on the paper feed slot information acquired in S1001. Note that a printing device generally has different usable paper feed slots depending on the paper size or type of paper to be printed on. When the print data editing unit 208 acquires the PC corresponding to the PT in S1001, it acquires as the PC a printable paper feed inlet from among the paper feed inlets of the printing device 102, based on the print settings such as paper size or paper type set in the PT. If the number of paper feed inlets has been narrowed down to one at this point, that one paper feed inlet is set in S1002. On the other hand, if there are multiple paper feed inlet candidates at this point, the print data editing unit 208 can store a table that predefines the paper feed inlet setting priority order, and set the paper feed inlet according to that table.

[0075] Next, in S1003, the print data editing unit 208 displays a guide screen showing the paper setting procedure.

[0076] FIG. 11 is a diagram showing an example of a guide for manual double-sided printing. The guide screen 1100 includes a paper setting procedure 1101 and a print start button 1102. The paper setting procedure 1101 is a guide on how to set the paper in the paper feed slot after the front page has been ejected. The print data editing unit 208 displays the paper setting procedure 1101 that matches the paper feed slot set in S1002. For example, if a rear tray is set in S1002, the paper setting procedure 1101 also displays the procedure for setting paper in the rear tray. Furthermore, if the printing device 102 is equipped with only a cassette as a paper feed slot, the cassette is set in S1002, and the paper setting procedure 1101 displays the procedure for setting paper in the cassette of the printing device 102. The print start button 1102 is a control item that the user uses to instruct the start of printing a back-side job. When the button is pressed, the print data editing unit 208 closes the guide screen 1100, and processing continues from S1004 onwards.

[0077] The guide screen 1100 shown in FIG. 11 is merely an example and may take other forms. For example, while the front page is being processed by the printing device 102, the print data editing unit 208 may obtain the status of the printing device 102 by issuing an IPP Get-Printer-Attributes operation to the printing device 102. In this case, the guide screen may be configured to transition between screens according to the obtained status. For example, a message indicating that printing is in progress may be displayed while printing is in progress, and after printing is complete, the screen may switch to a screen displaying paper setting procedures. Furthermore, for example, a preview screen of the layout results of the intermediate data or print data may also be displayed based on a trigger for displaying the guide screen. The order of display is not particularly limited; the preview screen may be displayed after the guide screen, or the guide screen may be displayed after the preview screen.

[0078] Returning to Fig. 10, the explanation continues. In S1004, the print data editing unit 208 turns OFF the processing flag stored in the shared information 210 in S901 (deletes the flag). In this way, by turning ON the processing flag when processing the front side job and turning OFF the processing flag after processing the back side job, it becomes possible to determine whether the front side job and the back side job are being processed consecutively. Error processing using this determination will be described later with reference to Fig. 12.

[0079] Next, in S1005, the print data editing unit 208 converts the intermediate data into print data that can be interpreted by the printing device 102. In S1006, the print data editing unit 208 passes the print data converted in S1005 to the printing device 102 via the OS, causing the printing device 102 to print the back page.

[0080] As described above, when the extension application 204 accepts manual double-sided printing settings, it adds the front and back pages to the print queue as separate jobs. This allows the extension application 204 to process each of the front and back pages using the processing flow. In other words, it is possible to display a UI such as a guide screen when processing each of the front and back pages. Therefore, during manual double-sided printing, it is possible to display a screen such as a paper setting guide after the front page is passed to the printing device 102.

[0081] In this embodiment, an example has been described in which two jobs, a front-side job and a back-side job, are generated and added. This is because adding the front-side job and the back-side job consecutively reduces the possibility of another job interrupting the front-side processing and the back-side processing. However, the manual double-sided printing function can also be provided in other forms. For example, in S703, the print data editing unit 208 may classify the pages into front and back sides, and then generate and add only a back-side job consisting of back sides. In this case, after adding only the back-side job, the print data editing unit 208 performs the processes of S901 to S903 for the front sides, thereby providing the manual double-sided printing function and displaying a guide without generating a job for the front side.

[0082] Next, the flow of determining whether to execute each process shown in FIGS. 7, 9, and 10 and the error processing will be described with reference to FIG. 12. In this embodiment, the print data editing unit 208 switches which process to execute among those shown in FIGS. 7, 9, and 10 based on the front and back side identification information (front and back side discrimination information) included in the print settings of the intermediate data and the processing in progress flag added in S901. In addition, in this embodiment, a job is divided into a front side job and a back side job, and a series of processes are performed. Therefore, if another job is added between the front side job and the back side job by interruption, manual double-sided printing cannot be performed normally. Therefore, error processing is performed using the front side and back side identification information and the processing in progress flag.

[0083] 12 shows a processing flow including the above-described execution process switching determination and error determination in the print data editing unit 208. That is, the processing in FIG. 12 is processing performed in the print data editing unit 208 prior to each of the processing in FIGS. 7, 9, and 10.

[0084] In S1201, the print data editing unit 208 acquires intermediate data and print settings. Next, in S1202, the print data editing unit 208 determines whether manual double-sided printing is set in the print settings acquired in S1201. If manual double-sided printing is not set, the print data editing unit 208 proceeds to S1203. On the other hand, if manual double-sided printing is set, the process proceeds to S1213.

[0085] In S1213, the print data editing unit 208 executes the process for the manual double-sided print job and exits this processing flow. The process of S1213 is the same as the process flow of S703 to S708 in FIG.

[0086] In S1203, the print data editing unit 208 determines whether the in-process flag set in S901 is ON. If the in-process flag is ON, i.e., if the front-side job is being processed and the corresponding back-side job is not being processed, the process proceeds to S1204. On the other hand, if the in-process flag is not stored, i.e., if the front-side job is not being processed, the process proceeds to S1205.

[0087] In S1204, the print data editing unit 208 determines whether the print settings acquired in S1201 include front / back identification information (front / back discrimination information). If the front / back discrimination information is not included, that is, if the job is not a front or back job added to the print queue by the extension application 204, the process proceeds to S1208. On the other hand, if the front / back discrimination information is included, that is, if the job is either a front or back job, the process proceeds to S1206.

[0088] In S1206, the print data editing unit 208 determines whether the front / back identification information included in the print settings indicates the back side. If it is not the back side, that is, if it is the front side, the process proceeds to S1208, and if it is the back side, the process proceeds to S1209. The condition for proceeding to the process of S1209 is that the front side job is being processed and the job being processed is a back side job with back side identification information. In S1209, the print data editing unit 208 processes the back side job. The process of S1209 is the same as the processes of S1001 to S1005 in FIG. 10. After S1209, the process proceeds to S1212.

[0089] On the other hand, the condition for proceeding to the processing of S1208 is when the front-side job has been processed but the job being processed is not a back-side job. In S1208, the print data editing unit 208 performs error processing, which will be described later, and exits this processing flow.

[0090] In S1205, the print data editing unit 208 determines whether front / back discrimination information is included in the print settings of the job. If front / back discrimination information is not included, i.e., if it is not a front or back job, the process proceeds to S1212. The process proceeds from S1205 to S1212 when manual double-sided printing settings are not configured and a general job that is not a front or back job and is added by processing of the print data editing unit 208 is being processed. Therefore, processing for manual double-sided printing is not performed.

[0091] In S1205, if the print data included in the intermediate data includes front / back discrimination information, i.e., if it is either a front-side job or a back-side job, the process proceeds to S1207. In S1207, the print data editing unit 208 determines whether the front / back discrimination information included in the print settings indicates the front side. If it indicates the front side, the process proceeds to S1210, and if it does not, the process proceeds to S1211.

[0092] The condition for proceeding to the processing of S1210 is when the front-side job is not being processed and the job being processed is a front-side job. Therefore, in S1210, the print data editing unit 208 processes the front-side job. The processing of S1210 is the same as the processing of S901 to S902 in FIG. 9. Thereafter, the processing proceeds to S1212. Note that in the processing of S1210, the print data editing unit 208 may use a UI display function to display the layout result of the intermediate data or print data corresponding to the front-side job as a preview screen.

[0093] On the other hand, the condition for proceeding to the process of S1211 is that the immediately preceding job processing for the front side has not been performed and the job being processed is a job for the back side. In S1211, the print data editing unit 208 performs error processing (described later) and exits this processing flow.

[0094] In S1212, the print data editing unit 208 passes the intermediate data to the printing device via the OS, and then exits the processing flow.

[0095] FIG. 13 is a diagram showing an example of an error dialog displayed as an example of error processing in this embodiment. Error processing in S1208 and S1211 will be described using FIG. 13. There are several possible methods for error processing. For example, in S1208, since the front side job processing has already been performed, the print data editing unit 208 may display a screen that displays a message such as a warning message 1301 and allows the user to instruct whether to cancel the job being processed or to proceed with printing. If a cancel instruction is received, the job being processed is canceled, and if printing is proceeded with, the job being processed is printed.

[0096] Another error handling method may involve controlling the job processing order by adding a job. In step S1208, the extended application 204 detects jobs in the print queue associated with the application. If a job exists, the extended application 204 adds the currently processed job to the print queue again and cancels the currently processed job, thereby changing the job processing order. In this way, a configuration may be adopted in which the application waits until the back-side job becomes the target for processing. Furthermore, if the back-side job is not processed within a certain time or within a certain number of job processing attempts, a process may be added to turn off the processing flag so that the back-side job does not continue to wait.

[0097] On the other hand, in the case of S1211, the back side job is being processed even though the front side job has not been processed in the previous process. As an error processing method, for example, the print data editing unit 208 may be configured to display a screen like the warning message 1301 in Fig. 13, as in S1208, and make it possible to cancel the back side job being processed.

[0098] By performing this type of error processing, it is possible to prevent the occurrence of erroneous print results caused by the front and back jobs split during manual double-sided printing not being printed consecutively.

[0099] As described above, in the printing system of this embodiment, the manual double-sided printing function can be extended by an extension application. In a configuration such as the extension application 204 described in this embodiment, once print data is sent to the printing device, the extension application 204 cannot display guides or other information during processing. In the printing system of this embodiment, by dividing a print job and re-adding the job, it becomes possible to display screens such as guides on the display unit at the timing of each divided print job. Furthermore, according to this embodiment, even if the printing device 102 does not have a manual double-sided printing function, it is possible to provide the manual double-sided printing function. As a result, the extension application can provide better functionality.

[0100] <<Second embodiment>> In the first embodiment, an example was described in which a paper set guide for manual double-sided printing is displayed on the extended application side (host computer side). In this embodiment, an example is described in which a paper set guide for manual double-sided printing is displayed on the printing device side. In addition, the extended application side displays a guide screen to notify the user in advance that a paper set guide will be displayed on the printing device side. Note that configurations and processes not mentioned in the following explanation are the same as those described in the first embodiment, and therefore will not be described again.

[0101] <Editing process of print function information by the print function extension unit> 14 is a diagram showing the main processing flow of the editing process of print function information by the print function extension unit 207 in the printing system in the second embodiment. Hereinafter, the print function extension unit 207 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0102] Fig. 15 is a diagram showing an example of a PDC edited by the process of Fig. 14. The flow of Fig. 14 starts when the OS starts the print function extension unit 207, for example, when the extension application 204 is associated for the first time. In other words, it is performed at the same timing as the example described in Fig. 3.

[0103] In S1401, the print function extension unit 207 determines whether the PDC includes capability information for manual double-sided printing. Specifically, it determines whether a feature called JobDuplexMode and its associated option include "Manual." If it is determined in S1401 that the PDC includes capability information for manual double-sided printing, the print function extension unit 207 exits this processing flow. If it is determined in S1401 that the PDC does not include capability information for manual double-sided printing, the process proceeds to S1402.

[0104] In S1402, the print function expansion unit 207 adds a manual double-sided printing function to the PDC. In the PDC 1501 in Fig. 15, the manual double-sided printing function is indicated in information 1502 by a Feature name of JobDuplexMode and Option of Auto and Manual, which indicate the settable values.

[0105] Through the above processing, each Feature is added as information relating to the manual double-sided printing function in this embodiment to PrintCapabilities (PC), which is capability information generated based on the PDC, which is printing function information 203. Note that in this embodiment, identification information indicating printing on the front side and printing on the back side in manual double-sided printing, as described in the first embodiment, is not added to the PDC.

[0106] <Manual double-sided printing process flow> Next, the process flow for manual double-sided printing will be described. When a user sets manual double-sided printing (automatic double-sided printing off) on the print setting screen 600 and prints to a print queue linked to the extended application 204, the OS calls the skip control unit 206. In this embodiment, the skip control unit 206 performs skip control, and the print data editing unit 208 converts the intermediate data into print data that can be interpreted by the printing device 102. However, this is not a limitation. For example, the skip control unit 206 may not perform skip control, and the print data generation software 202 may convert the intermediate data into print data that can be interpreted by the printing device 102.

[0107] The processing of the print data generation software 202 is skipped based on the skip control of the skip control unit 206. After that, the intermediate data is passed to the print data editing unit 208 by the OS.

[0108] 16 is a diagram showing the main processing flow of the print data editing unit 208 when manual double-sided printing is set in this embodiment. Hereinafter, the print data editing unit 208 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0109] First, in S1601, the print data editing unit 208 acquires the intermediate data received from the print data generation software 202 and the print settings included in the intermediate data.

[0110] Next, in S1602, the print data editing unit 208 determines whether manual double-sided printing is set in the print settings. If manual double-sided printing is not set, the process related to manual double-sided printing is not performed, and the process flow is terminated. On the other hand, if manual double-sided printing is set, the print data editing unit 208 proceeds to S1603 to perform the process related to manual double-sided printing.

[0111] In S1603, the print data editing unit 208 classifies the pages included in the intermediate data into pages to be placed on the front side during double-sided printing and pages to be placed on the back side, based on the print settings acquired in S1601. The classification method is the same as the method described in Figure 8 of the first embodiment. Note that, as in the first embodiment, when the pages of the intermediate data are divided and passed to the print data editing unit 208, the unit waits until all pages have been passed to the print data editing unit 208 before classifying them.

[0112] Group 801, which shows the pages of the intermediate data before classification in Figure 8, is classified into group 802 of front pages and group 803 of back pages when the pages are classified so that they are bound on the long edge and bound in the left direction. As in the first embodiment, pages 804 and 806 are arranged in group 802, and pages 805 and 807 are arranged in group 803. Next, the print data editing unit 208 rearranges the page order of the intermediate data so that the front pages are first, and then the back pages. In the example of Figure 8, the pages are rearranged in the order of group 802, group 803, and as a result, pages are rearranged in the order of 804, 806, 805, and 807 (Pages 1, 3, 2, and 4).

[0113] Next, in S1604, the print data editing unit 208 acquires the number of front pages based on the classification result of S1603. This number of front pages is information indicating up to which pages of the intermediate data in which the pages have been rearranged are front pages. By transmitting this information to the printing device 102, the printing device 102 can display a guide when all the front pages have been printed. In the example of FIG. 8, there are two front pages, so the number of front pages is "2."

[0114] Next, in S1605, the print data editing unit 208 converts the intermediate data into print data. Furthermore, in S1606, the print data editing unit 208 adds the number of front pages acquired in S1604 as attribute information to the print setting attribute information in the print data. The print setting attribute information includes attribute information indicating paper size, etc., and the printing device 102 performs printing in accordance with this attribute information. Next, in S1607, the print data editing unit 208 displays a guide screen.

[0115] 17 is a diagram showing an example of a guide screen displayed by the print data editing unit 208. The manual double-sided printing guide 1700 is a screen including a message 1701 and an OK button 1702. The message 1701 displays a message indicating that a paper setting guide will be displayed on the printing device 102. When the user presses the OK button 1702, the manual double-sided printing guide 1700 is closed, and the print data editing unit 208 continues with subsequent processing. In S1608, the print data editing unit 208 passes the print data to the printing device 102 via the OS.

[0116] <Printing device processing flow> 18 is a diagram showing a flow centered on the manual double-sided printing process of the printing device 102 when the printing device 102 accepts a print job in this embodiment. The processing of the printing device 102 in this embodiment will be explained using FIG. 18. Hereinafter, the printing device 102 may be explained as the subject of each process, but in reality, the corresponding function is realized by the CPU provided in the printing device executing the corresponding program.

[0117] First, in S1801, the printing device 102 accepts print data and acquires the print data and print setting attribute information contained in the print data. Next, the printing device 102 determines whether manual double-sided printing is set in the print setting attribute information. If manual double-sided printing is not set, the printing device 102 does not perform manual double-sided printing processing and exits this processing flow. On the other hand, if manual double-sided printing is set, the printing device 102 proceeds to S1803.

[0118] Next, in S1803, the printing device 102 obtains the number of front pages included in the print setting attribute information. Next, in S1804, the printing device 102 prints only the number of front pages based on the number of front pages. In the case of the page configuration example in FIG. 8, the obtained number of front pages is "2". Therefore, the printing device 102 prints the first two pages of the print data accepted in S1801. Next, in S1805, the printing device 102 displays a guide screen regarding paper setting procedures on a display unit such as an LCD panel provided in the printing device 102.

[0119] FIG. 19 shows an example of a guide screen for paper setting procedures displayed on the LCD panel of the printing device 102. The guide screen 1900 includes a paper setting procedure 1901 and a print start button 1902. The paper setting procedure 1901 describes how to set the paper into the paper feed slot after the front page has been printed and ejected. The paper setting procedure 1901 displays the settings corresponding to the paper ejection destination after printing the front page and the paper feed destination when printing the back page. When the user presses the print start button 1902, the printing device 102 proceeds to step S1806. Here, the printing device 102 may return an error using the IPP attribute. In this case, the notification unit 209 of the extension application 204, which is called in response to the error, may be configured to display a screen such as a paper procedure guide.

[0120] Next, in S1806, the printing device 102 prints the remaining pages of the print data accepted in S1801. That is, the printing device 102 prints the back pages.

[0121] As described above, the printing device 102 can achieve a manual double-sided printing function when displaying a paper setting guide. In this embodiment, the printing device 102 needs to have a function for processing manual double-sided printing. That is, the printing device 102 needs to have a function for displaying the processing flow of FIG. 18 and the paper procedure guide of FIG. 19. However, unlike the first embodiment, the processing of this embodiment has the advantage that the manual double-sided printing processing of the extension application 204 is not interrupted by another job.

[0122] Furthermore, according to this embodiment, the extension application 204 can notify the user in advance that a paper set guide will be displayed on the printing device when a job is processed. This makes it possible to create a path to the paper set guide, thereby improving usability.

[0123] <<Third Embodiment>> In the first and second embodiments, an example was described in which a manual double-sided printing function was added as an extended function as a specific function, and a paper set guide was displayed at the appropriate time. In this embodiment, an example is described in which a paper set guide is displayed at the appropriate time even in a form other than the manual double-sided printing function. For example, the extended application can also display a paper set guide when printing postcards. In this embodiment, an example is described in which a postcard paper set guide is displayed when "postcard" is set as the paper size or paper type in the print setting information. Below, configurations and processes not mentioned in the description are the same as those in the first embodiment, and therefore will not be described again.

[0124] When a user sets the paper size or paper type to "postcard" on the print setting screen 600 and adds a job to a print queue associated with the extended application 204, the OS calls the skip control unit 206. In this embodiment, the skip control is performed by the skip control unit 206, and the print data editing unit 208 converts the intermediate data into print data that can be interpreted by the printing device 102, but this is not limiting.

[0125] The processing of the print data generation software 202 is skipped based on the skip control of the skip control unit 206. After that, the intermediate data is passed to the print data editing unit 208 by the OS.

[0126] 20 is a diagram showing the main processing flow when the print data editing unit 208 displays a postcard guide. First, in S2001, the print data editing unit 208 acquires the intermediate data and the print settings included in the intermediate data.

[0127] Next, in S2002, the print data editing unit 208 determines whether the print settings acquired in S2001 are postcard printing. In this embodiment, postcard printing is described as a case where "postcard" is set for either the paper size or paper type. If postcard printing is not selected, the print data editing unit 208 does not perform processing related to postcard guide display and exits this processing flow. On the other hand, if postcard printing is selected, the print data editing unit 208 advances the processing to S2003 to perform processing related to guide display.

[0128] Next, in S2003, the print data editing unit 208 acquires paper feed port information of the printing device 102 from the capability information (PC) based on the print settings included in the intermediate data. The process of acquiring paper feed port information is the same as the process described in S1001 of the first embodiment.

[0129] Next, in S2004, the print data editing unit 208 sets the paper feed port to be used for postcard printing in the print settings included in the intermediate data. Based on the paper feed port information acquired in S2003, the print data editing unit 208 sets the paper feed port that can be set in the printing device 102. There are no limitations on the method for determining the paper feed port, and for example, a method of setting a predetermined paper feed port based on a combination of paper feed ports installed in the printing device may be used.

[0130] Next, in S2005, the print data editing unit 208 displays a guide screen showing the paper setting procedure.

[0131] 21 is a diagram showing an example of a postcard printing guide. Guide screen 2100 includes a paper setting procedure 2101 and a print start button 2102. Paper setting procedure 2101 is a guide on how to set postcard paper in the paper feed slot. The paper setting procedure 2101 displayed matches the paper feed slot set in S2004. The print start button 2102 is a button that the user presses to start printing. When the button is pressed, the print data editing unit 208 closes the guide screen 2100 and processing continues from S2006 onwards.

[0132] In S2006, the print data editing unit 208 converts the intermediate data into print data that can be interpreted by the printing device 102. In S2007, the print data editing unit 208 passes the print data converted in S2006 to the printing device via the OS. Thereafter, the printing device 102 feeds paper from the paper feed slot specified in S2004, and printing begins.

[0133] As a result, the extended application can display a guide on how to feed paper when printing postcards. This embodiment can also be applied to cases where you want to display a guide when printing disc labels or envelopes, in addition to displaying a guide when printing postcards. The target print medium can also be a medium other than paper.

[0134] As described above, by applying the technology of the present disclosure, it is possible to provide a guide display function as a function (extended function) that cannot be realized by the standard driver alone. Therefore, it is possible to provide better functions by using an extended application.

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

[0136] 102 Printing device 202 Printing data generation software 203 Printing function information 204 Extended Applications

Claims

1. An application program that cooperates with an IPP class driver, The computer of the information processing device, an acquisition means for acquiring input data including print settings; a display control means for displaying a screen related to a specific function on a display unit when it is determined based on the print setting that the specific function is to be executed; editing means for editing the input data and converting it into print data so that the specific function is executed; a transmitting means for transmitting the print data to a printing device after the display control means has caused the screen to be displayed on the display unit; It functions as the editing means generates first data to be printed on a first side of a printing medium and second data to be printed on a second side of the printing medium from the input data, and acquires a status of the printing device through communication in accordance with the Internet Printing Protocol (IPP) while the printing device is performing processing related to the first data; A program characterized in that, when the status indicating that processing related to the first data has been completed is obtained, the display control means displays a paper setting procedure for performing processing related to the second data on the display unit, and the IPP class driver is unable to display the paper setting procedure.

2. 2. The program according to claim 1, wherein the specific function is a function of manual double-sided printing.

3. The computer The program described in claim 2, further functioning as a function expansion means that adds the manual double-sided printing information as an extended function if the manual double-sided printing function is not included in the printing function information used in the IPP class driver.

4. 4. The program according to claim 3, wherein the function expanding means further adds information for distinguishing between front and back sides in manual double-sided printing to the printing function information.

5. If the acquired print settings include manual double-sided printing settings, The editing means classifying the input data into a first page group to be printed on the front side of a printing medium and a second page group to be printed on the back side of the printing medium; generating first divided input data from the first page group and second divided input data from the second page group; adding the first divided input data and the second divided input data to a print queue such that the second divided input data is added after the first divided input data; canceling processing of the input data in response to adding the first divided input data and the second divided input data to the print queue; the display control means causes the display unit to display the screen while processing the second divided input data.

5. The program according to claim 1, wherein the program is a program for executing a program for executing a program.

6. If the acquired print settings include manual double-sided printing settings, The editing means classifying the input data into a first page group to be printed on the front side of a printing medium and a second page group to be printed on the back side of the printing medium; generating second divided input data from the second page group; adding the second divided input data to a print queue and editing the data of the first page group of the input data; the display control means causes the display unit to display the screen while processing the second divided input data.

5. The program according to claim 1, wherein the program is a program for executing a program for executing a program.

7. 7. The program according to claim 5, wherein the editing means includes print settings in which information about a paper feed port is set based on the print settings in the second divided input data.

8. 8. The program according to claim 7, wherein the display control means causes the display unit to display a screen corresponding to the information about the paper feed port.

9. 9. The program according to claim 7, wherein the information on the paper feed port is acquired from the IPP class driver.

10. A program according to any one of claims 5 to 9, characterized in that the editing means performs error processing if the second divided input data is not acquired by the acquisition means after printing of the first page group is executed.

11. 11. The program according to claim 10, wherein the error processing is processing in which the display control means displays an error dialog on the display unit.

12. The program described in claim 10 or 11, characterized in that the editing means turns a flag ON after processing the data of the first page group, and performs the error processing by referring to the flag when processing the second divided input data.

13. 13. The program according to claim 12, wherein the flag is provided for each print queue.

14. If the acquired print settings include manual double-sided printing settings, The editing means classifying the input data into a first page group to be printed on the front side of a printing medium and a second page group to be printed on the back side of the printing medium; Editing the input data so that the data of the second page group is arranged after the first page group, and adding the number of pages of the first page group to the print settings; After the display control means causes the display unit to display the screen, the transmission means transmits the print data including the print setting to which the number of pages has been added to a printing device.

5. The program according to claim 1, wherein the program is a program for executing a program for executing a program.

15. 15. A program according to claim 5, wherein the editing means classifies the pages into the first page group and the second page group based on information that specifies the binding direction for double-sided printing included in the print settings.

16. 2. The program according to claim 1, wherein the specific function is a function of printing postcards, disc labels, or envelopes.

17. the screen includes a control item for instructing printing; 17. The program according to claim 1, wherein the transmission means transmits the print data to a printing device when a printing instruction is given through the control item.

18. A program described in any one of claims 1 to 17, characterized in that the IPP class driver or the application displays a print setting screen based on capability information based on print function information, and the print setting information set through the print setting screen is included in the input data.

19. 19. The program according to claim 1, wherein the IPP class driver is a standard driver provided by a provider of an operating system of the information processing device.

20. 20. The program according to claim 1, wherein the IPP class driver can be commonly used for a plurality of printing devices from different vendors.

21. An information processing device that executes an application that cooperates with an IPP class driver, the application comprising: an acquisition means for acquiring input data including print settings; a display control means for displaying a screen related to a specific function on a display unit when it is determined based on the print setting that the specific function is to be executed; editing means for editing the input data and converting it into print data so that the specific function is executed; a transmitting means for transmitting the print data to a printing device after the display control means has caused the screen to be displayed on the display unit; a processor for causing the device to function as a the editing means generates first data to be printed on a first side of a printing medium and second data to be printed on a second side of the printing medium from the input data, and acquires a status of the printing device through communication in accordance with the Internet Printing Protocol (IPP) while the printing device is performing processing related to the first data; When the status indicating that processing related to the first data has been completed is obtained, the display control means displays a paper setting procedure for performing processing related to the second data on the display unit, and the IPP class driver is unable to display the paper setting procedure.

22. 1. A method for controlling an information processing device that executes an application that cooperates with an IPP class driver, comprising: an acquisition step of acquiring input data including print settings; a display control step of displaying a screen related to the specific function on a display unit when it is determined based on the print setting that the specific function is to be executed; an editing step of editing the input data and converting it into print data so that the specific function is executed; a transmission step of transmitting the print data to a printing device after the screen is displayed on the display unit in the display control step; is executed, the editing step generates first data to be printed on a first side of a printing medium and second data to be printed on a second side of the printing medium from the input data, and acquires a status of the printing device through communication in accordance with the Internet Printing Protocol (IPP) while the printing device is performing processing related to the first data; A control method for an information processing device, characterized in that when the status indicating that processing related to the first data has been completed is obtained, the display control process displays a paper setting procedure for performing processing related to the second data on the display unit, and the IPP class driver is unable to display the paper setting procedure.

Citation Information

Patent Citations

  • Device and method for printing control

    JP1999020272A

  • Image formation device, image forming method, computer program and recording medium

    JP2006001207A

  • Information processor, information processing method and print control program

    JP2007034795A

  • Control system and control method

    JP2010092385A

  • Printing apparatus

    JP2013176903A