Application program, storage medium, method, and information processing device
The application program enhances standard drivers by modifying page order for reverse printing, addressing the lack of refinement in existing extension applications and improving functionality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2024-11-12
- Publication Date
- 2026-05-22
AI Technical Summary
Existing extension applications for standard drivers lack refinement in functionality, particularly in modifying page order for reverse printing, which is not adequately addressed by current technologies.
An application program that supports standard drivers to modify the page order of multiple image data for reverse printing and instructs the operating system to generate print data accordingly, enhancing the functionality of standard drivers.
Provides better functionality and performance by enabling reverse printing capabilities through the modification of page order in standard drivers.
Smart Images

Figure 2026085121000001_ABST
Abstract
Description
Technical Field
[0004] , ,
[0001] The present invention relates to an application program, a storage medium, a method, and an information processing apparatus.
Background Art
[0002] There is known a configuration in which a printer driver installed in a host computer as software for controlling a printing device is used to give a printing instruction to the printing device connected to the host computer. An operating system (OS), which is basic software, is installed in the host computer, and the printer driver is configured according to the specifications defined by the OS and is called from the OS to operate. A vendor providing a printing device can provide a means for instructing the printing device to perform printing using the OS by providing a printer driver conforming to the specifications of the OS.
[0003] In recent years, in Windows (registered trademark), a standard class driver (hereinafter also referred to as a "standard driver") that can be commonly used with printing devices provided by a plurality of vendors has been provided. Such a standard driver is included in the OS package and can be easily used by connecting an arbitrary printing device to the host computer. Therefore, there is no need to separately install a model-specific printer driver suitable for the printing device, which is highly convenient. Further, the standard driver is configured to be able to specify a printing function according to PrintDeviceCapabilities (hereinafter referred to as "PDC") generated based on information acquired from the connected printing device. Thereby, a user using the standard driver can specify a printing function according to the capabilities of the connected printing device even though using one standard driver.
[0004] Standard drivers can be associated with applications for extending functionality (hereinafter also referred to as "extension applications"). Extension applications can be provided by the vendor providing the printing device. By editing the PDC generated by the standard driver, extension applications can provide functions (extensions) that cannot be achieved with the standard driver alone. Editing the PDC refers to rewriting existing printing functions in the PDC generated by the standard driver, deleting printing functions, or adding new printing functions.
[0005] Furthermore, extension applications can edit the intermediate print data generated by the standard driver. This enables layout features not supported by the standard driver (for example, a feature called Nin1 printing, which allows multiple pages to be placed on a single sheet of paper).
[0006] Patent Document 1 discloses a technique for extending the functionality of a standard driver by editing the PDC based on information obtained from the printer using an extended application. [Prior art documents] [Patent Documents]
[0007] [Patent Document 1] Japanese Patent Publication No. 2021-108001 [Overview of the Initiative] [Problems that the invention aims to solve]
[0008] Traditional extension applications can extend the functionality of standard drivers by editing the PDC (Print Data Center) based on information obtained from the printer. However, further refinement is needed for extension applications that extend the functionality of standard drivers to provide better performance. [Means for solving the problem]
[0009] To solve the above-mentioned problems, the invention according to claim 1 of this application is an application program that supports a standard driver provided by an operating system provider, characterized in that it causes the standard driver of an information processing device to perform a modification process to change the page order of multiple image data of multiple pages generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the page order; and after the standard driver has finished performing the modification process, it causes the operating system of the information processing device to instruct the standard driver to generate print data based on the image data. [Effects of the Invention]
[0010] According to the invention of claim 1 of this application, better functionality can be provided as an extended application. [Brief explanation of the drawing]
[0011] [Figure 1] Block diagram showing the hardware configuration of the printing system [Figure 2] Printing system software configuration diagram [Figure 3] This figure shows an example of a PDC203 generated by the print data generation software 202. [Figure 4] This figure shows an example of a PDC203 edited by the printing function extension unit 207. [Figure 5] This diagram shows an example of the print settings screen displayed by the print settings screen extension unit 205. [Figure 6] This diagram shows the flow of a series of processes that occur when the print data editing unit 208 receives a print command from OS212. [Figure 7] This diagram shows the flow of a series of processes that occur when the print data generation software 202 receives a print data generation instruction from the print data editing unit 208. [Figure 8] This diagram shows the flow of a series of processes that occur when the print data editing unit 208 receives a print command from OS212. [Figure 9] Figure showing the flow of a series of processes when the print data generation software 202 receives a print data generation instruction from the print data editing unit 208 [Figure 10] Figure showing the flow of a series of processes when the print data editing unit 208 receives a print instruction from the OS 212 [Figure 11] Figure showing the flow of a series of processes when the print data editing 208 edits intermediate print data [Figure 12] Figure showing an example of response information responded by issuing a Get-Printer-Attribute command to the printing device 102 [Figure 13] Figure showing an example of a list of print settings and their setting values
BEST MODE FOR CARRYING OUT THE INVENTION
[0012] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the present invention according to the claims, and not all combinations of the features described in this embodiment are essential for the solution means of the present invention.
[0013] In addition, the same reference numerals are given to the same components, and the description thereof is omitted.
[0014] <<Embodiment 1>> <Hardware Configuration of the Printing System> FIG. 1 is a block diagram showing the hardware configuration of a printing system. In this figure, host computer 101 is an example of an information processing device, and has an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. The CPU is an abbreviation for Central Processing Unit. The ROM is an abbreviation for Read Only Memory. The RAM is an abbreviation for Random Access Memory. Also, input devices such as keyboard 118 and pointing device 117 are connected to input interface 110, and display devices such as display unit 119 are connected to output interface 115. NETIF (Network Interface) 120 controls data transfer with external devices via the network.
[0015] An initialization program is stored in ROM 112.
[0016] RAM 113 is used as a work memory etc. during the execution of various programs stored in external storage device 114, and the various programs can operate within host computer 101.
[0017] External storage device 114 is, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive). Application program groups, an OS (Operating System), print data generation software, and other various data are stored in external storage device 114.
[0018] In this embodiment, the CPU 111 executes the functions and flowchart-related processes described later on the host computer 101 by following the procedures of the program stored in the ROM 112. The printing device 102 is connected to the host computer 101 via the input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they may also be configured as a single information processing device. The printing device is described using an inkjet printer as an example, which prints by ejecting ink onto a sheet surface such as paper, but printing may be performed by other methods (for example, electrophotography). The host computer 101 may be a desktop computer, a smartphone, or a laptop computer.
[0019] In this embodiment, a locally connected inkjet printer is described as an example of the type of printing device 102. The printing device 102 may be, for example, a laser beam printer (locally connected and cloud connected), or it may be not limited to the two types mentioned above, but may be multiple other device types or configurations that distinguish between connection types. Local connection refers to a configuration in which the host computer 101 and the printing device 102 are connected in a state where they can communicate directly via the input / output interface 116 or NETIF 120. Cloud connection refers to a connection configuration in which the host computer 101 issues a printing instruction to the printing device 102 via NETIF 120 and an unillustrated cloud printing service on the internet. In the diagrams and tables illustrated below, specific examples of Features and Options are given for printing devices where the device type is an inkjet printer, unless otherwise specified.
[0020] <Configuration of a software-centric printing system> Figure 2 schematically shows the software configuration of a printing system. Here, we will explain a printing system using a host computer 101 equipped with Microsoft's Windows® 11 as the OS (Operating System) 212. We will explain a configuration using the IPP Class Driver, which is included in Windows® 11, as the print data generation software 202. The IPP Class Driver is a printer driver that performs printing processing according to the specifications of a standard printing protocol called IPP (Internet Print Protocol). The IPP Class Driver is provided by the OS 212 provider and is included in the OS 212 package. The IPP Class Driver is not a specific printer driver for each model of the printing device 102, but a standard class driver that can be used in common by multiple printing devices from multiple printer vendors. In other words, the IPP Class Driver can generate printable data that can be printed by multiple printing devices from multiple printer vendors (printer manufacturers or manufacturers). Furthermore, the IPP Class Driver can transmit that print data to multiple printing devices from multiple printer vendors. Figure 2(a) shows a typical configuration when the extended application 204 is not associated with the print data generation software 202 and the printing device 102.
[0021] The drawing application 201 is software that creates content (drawing data) to be printed. For example, this includes image editing application programs that allow editing of images, such as word processing applications and spreadsheet applications. When the drawing application 201 receives a print request from the user, it issues a print command to the OS 212. The print command includes print setting information to instruct the operation of the print data generation software 202 and the printing device 102. The print setting information is also called a PrintTicket (hereinafter, "PT").
[0022] The drawing application 201 can display a print settings screen provided by either the print data generation software 202, the OS, or the drawing application 201 itself, in order to output print setting information. The print settings screen includes setting items (hereinafter also called "control items") that indicate the configurable printing functions, and control items that indicate the setting values, according to the capability information (information that can be set as print settings) obtained from the print data generation software 202. Capability information is also called PrintCapabilities (hereinafter "PC"). The print data generation software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating the printing functions that describes all configurable printing functions and their setting values, as well as the mutual exclusion relationships between the setting values. The print function information 203 is also called PDC (Print Device Capabilities). PDC 203 is included in the configuration file of the print data generation software 202 and is dynamically generated by the print data generation software 202. Specifically, the print data generation software 202 can be configured to acquire attribute data of the printing device 102 and generate a PDC 203 according to the attribute information in the acquired attribute data. The attribute data of the printing device acquired from the printing device 102 is a response obtained by issuing the IPP (Internet Print Protocol) Get-Printer-Attributes operation to the printing device. The response includes attribute information (Feature) indicating the functions (capabilities of the printing device) that can be specified by the printing device 102 and setting values (Option) related to that attribute information. This response is stored in RAM 113.
[0023] By configuring it in this way, the print data generation software 202 can be configured so that the user can specify the printing functions available on each connected printing device 102, depending on the connected printing device 102. In other words, even when printing devices with different functions or printing devices developed by different vendors are connected, the print data generation software 202 can be configured so that the user can specify the printing functions available on each connected printing device.
[0024] OS212 generates intermediate print data (also called input data or image data) based on the print instructions 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 either Graphic Device Interface format data (GDI format data) or XML Paper Specification format data (XPS format data). We assume that the IPP Class Driver is used as the print data generation software 202. In this case, if the data output by the drawing application 201 is in GDI format, the OS converts the GDI format data output from the drawing application 201 to XPS format data. Then, the converted XPS format data is passed to the print data generation software 202 as intermediate print data. If the data output by the drawing application 201 is in XPS format, the OS passes the XPS format data to the print data generation software 202 as intermediate print data. The intermediate print data includes drawing data, which is information about the image to be formed on the paper, and print setting information set by the user.
[0025] The print data generation software 202 is, for example, an IPP ClassDriver, which converts the acquired intermediate print data into print data that can be interpreted by the printing device 102 and transmits it to the printing device 102. The print data includes drawing data, which is information about the image to be formed on the paper, and print setting attribute information (attribute information that specifies the print settings) generated based on the print setting information set by the user. The print setting attribute information includes attribute information (Feature) that indicates the functions (capabilities of the printing device) that can be specified by the printing device 102, and setting values (Option) related to that attribute information.
[0026] The printing device 102 prints on the 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 contained in the print data on the paper in accordance with the print setting attribute information contained in the print data. The print setting attribute information includes attribute information and setting values for specifying print quality (image quality priority, speed priority, etc.) and double-sided printing. For example, if the print setting attribute information includes attribute information for specifying double-sided printing and a setting value indicating that it should be performed, the printing device 102 will perform double-sided printing.
[0027] Figure 2(b) shows the configuration when the extended application 204 is associated with the print data generation software 202 and the printing device 102. Unless otherwise specified below, the configuration and processes are equivalent to those in Figure 2(a).
[0028] The extension application 204 is software that extends the functionality of the print data generation software 202, and is not pre-installed (not bundled) with the OS. Therefore, the user needs to operate the host computer 101 to download and install the extension application 204 from a server via the internet. Alternatively, it may be automatically installed based on the connection of the printer 102 to the host computer 101. Specifically, when the printer 102 is connected to the host computer 101, the OS 212 obtains device identification information from the printer 102. The OS 212 may download and install the extension application 204 corresponding to the obtained device identification information from a server via the internet. In other words, the print data generation software 202 and the extension application 204 are stored as separate files on the host computer 101.
[0029] The print data generation software 202 and the extended application 204 may be updated and upgraded, but these update processes are performed at different times. In other words, the timing at which the host computer 101 acquires the print data generation software 202 and the timing at which the extended application 204 is acquired are different. Also, the triggers for the host computer 101 to acquire the print data generation software 202 and the triggers for the acquisition of the extended application 204 are different. When the extended application 204 is installed, the OS 212 associates the extended application 204 with the print data generation software 202 and the printing device 102.
[0030] The extended application 204 described in this embodiment includes a print settings screen extension unit 205, a skip control unit 206, a print function extension unit 207, a print data editing unit 208, a notification unit 209, and a capability information acquisition unit 211. The extended application 204 also includes shared information 210 that can be accessed from all units in common. The shared information 210 is actually a file stored in the external storage device 114 or information stored on the RAM 113. The extended application 204 writes to and reads information from the shared information 210 by using the API (Application Program Interface) provided by the OS 212.
[0031] Furthermore, the extended application 204 may terminate its operation each time the processing of each unit is completed. In that case, the OS 212 will start the extended application 204 each time a request to use each unit is received. Another configuration is also possible. For example, the OS 212 may terminate the operation of the extended application 204 when the processing of the print settings screen extended unit 205 is completed, but the OS 212 may keep the extended application 204 running even after the processing of the skip control unit 206 is completed.
[0032] Furthermore, the extended application 204 may cancel processing within each unit. If canceled, the OS 212 will delete the job in progress on the print queue.
[0033] When the drawing application 201 receives a print request from the user, it issues a print command to the OS 212. In this configuration, as in the configuration shown in Figure 2(a), the drawing application 201 can display the print settings screen. In this configuration, the print settings screen provided by the extension application 204 is displayed. Specifically, the print settings screen provided by the print settings screen extension unit 205 of the extension application 204 is displayed. Whether or not the print settings screen provided by the print settings screen extension unit 205 is displayed depends on the user's operation. Details of the print settings screen extension unit 205 will be described later using Figure 5.
[0034] Furthermore, when the drawing application 201 receives a print request from the user and a print command is issued to the OS 212, the OS 212 activates the skip control unit 206. The skip control unit 206 controls whether or not to skip the processing of the print data generation software 202. After the skip control processing by the skip control unit 206, the OS 212 generates intermediate print data based on the print command output from the drawing application 201, and the intermediate print data is passed to the print data generation software 202. If the skip control unit 206 does not perform skip control, the intermediate print data is processed by the print data generation software 202 into print data that the printing device 102 can interpret, and then passed to the print data editing unit 208. On the other hand, if the print data generation software 202 performs a skip, the intermediate print data is not processed by the print data generation software 202 and is passed directly to the print data editing unit 208. This makes it possible for the print data editing unit 208 to process the intermediate print data.
[0035] The print data editing unit 208 edits intermediate print data received from the OS 212 or print data processed by the print data generation software 202. For example, in the case of layout printing, the print data editing unit 208 modifies the layout of the intermediate print data or print data based on the layout printing settings information received from the OS 212. The print data editing unit 208 can also display a UI screen on the display unit 119, providing functions such as displaying the layout result of the intermediate print data or print data as a preview screen. Note that while the GUI screen displayed on the display unit 119 is open, print data is not sent to the printing device 102; the print data transmission process is initiated when the GUI screen is closed.
[0036] After the print data editing unit 208 edits the intermediate print data or print data, the print data is passed to the printing device 102. The printing device 102 prints on the paper based on the received print data.
[0037] If the skip control unit 206 skips the processing of the print data generation software 202, the print data editing unit 208 may convert the received intermediate print data into print data that the printing device 102 can interpret. Alternatively, the functions provided by OS212 may be used to convert the intermediate print data into print data.
[0038] The extended application 204 includes a printing function extension unit 207. The printing function extension unit 207 can edit the PDC 203 generated by the print data generation software 202. Details of PDC editing by the printing function extension unit 207 will be described later with reference to Figures 3, 4, and 12. Through PDC editing, the printing function extension unit 207 can add functions provided by the extended application 204, add functions that are supported by the printing device 102 but not by the print data generation software 202, and so on.
[0039] OS212 starts the print function expansion unit 207 when the extended application 204 is first associated with the printer 102 and the print data generation software 202. Furthermore, OS212 may also start the print function expansion unit 207 at other times, such as when the OS starts up. In this way, in cases where optional devices (e.g., a finisher) are later added to the printer 102 and the functions related to printing are expanded, the print function expansion unit 207 can detect the expansion and add it to PDC203.
[0040] Furthermore, the extended application 204 has a notification unit 209. The notification unit 209 can display a notification to the user in response to an error occurring in the printer 102. For example, if a paper out error occurs in the printer 102, the OS 212 detects it and uses a notification function called a toast notification, which is a function of the OS 212, to display a message on the display unit 119. When the user presses this toast notification, the notification unit 209 of the extended application 204 is called by the OS 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 paper out error and instructions on how to load paper.
[0041] Furthermore, once the extended application 204 sends print data to the printer 102, it is not possible to display screens such as guides associated with the print data during the processing of each unit.
[0042] Furthermore, the configuration of the extension application 204 for realizing this embodiment is not limited to having all of the aforementioned functions (units), but may have only some of the functions or other functions. Also, the extension application 204 may simply be called a printing application or printing software. As described above, it can be said that the extension application 204 has at least one of the following functions. Function to display the settings screen (Print settings screen extension unit 205) A function (skip control unit 206) that controls whether or not to skip processing in the print data generation software 202. A function for editing print data input to the printing device (print data editing unit 208) A function that extends the functions that can be specified in the print data generation software (print function extension unit 207) Function to display a screen in response to an error occurring in the printing device 102 (notification unit 209) Function to acquire capability information from the printing device 102 (Capability Information Acquisition Unit 211)
[0043] <Example of PDC editing using a printing function extension unit> First, the print data generation software 202 acquires capability information of the printing device 102 connected to the host computer 101, and generates a PDC 203 based on that information. The capability information acquired from the printing device 102 includes information that the user can set as print settings when printing to the printing device 102. When the OS 212 associates the extended application 204 with the print queue for the printing device 102, it starts the print function extension unit 207 of the extended application 204 and requests editing of the PDC 203. In addition to when the extended application 204 is first associated, the OS also starts the print function extension unit 207 and requests editing of the PDC 203 when the print settings screen is opened by the print settings screen extension unit 205. When the print function extension unit 207 receives a PDC editing request from the OS, it acquires the PDC 203 generated by the print data generation software and starts editing the PDC.
[0044] Next, we will explain the details of the PDC203 generated by the print data generation software 202. Here, we will explain an example of a response obtained by the print data generation software 202 by issuing the IPP Get-Printer-Attributes operation to the printing device 102, using Figure 12. Information 1201 is an example of a response that can be obtained by issuing the IPP Get-Printer-Attributes operation to the printing device 102. Information 1201 includes attribute information (Feature) that indicates the functions that can be specified as IPP attributes in the printing device 102, and setting values (Option) related to that attribute information. As shown in Information 1201, information on functions (Feature) such as size and media, and setting values (Option) that can be set for each function can be obtained from the printing device 102. document-format-supported shown in Information 1202 represents the print data format that the printing device 102 can accept. The example in Information 1202 indicates that the information device 102 supports the data formats 'application / octet-stream', 'image / jpeg', 'image / urf', and 'image / pwg-raster'. The print-color-mode-supported shown in Information 1203 indicates the color modes that can be specified when printing with the printer device 102. The example in Information 1203 indicates that the printer device 102 supports the color modes 'color', 'monochrome', and 'auto'. The sides-supported shown in Information 1204 indicates that the printer device 102 supports two-sided printing, specifically two-sided printing with short-edge binding and two-sided printing with long-edge binding. The printer-firmware-name and printer-firmware-version shown in Information 1205 indicate that the name of the printer device 102's firmware is "Inkjet-AAA" and the version information is 1.090, respectively.Information 1206, `media-size-supported`, represents the media sizes supported by the printer 102, expressed in units of 1 / 100 mm for width and height. In the example of Information 1206, it indicates that the printer 102 supports printing on A5, A4, and B5 size paper. Information 1207, `media-supported`, represents the names of the media sizes supported by the printer 102. Information 1208, `media-type-supported`, represents the media types supported by the printer 102. In the example of Information 1208, it indicates that printing on glossy (glossy standard) and gold (glossy gold) media types is supported. In the example of Information 1208, it also indicates that printing on mat (matt photo paper), stationary (plain paper), photographic (photographic paper), and envelope (envelope paper) media types is supported. Information 1209, `media-source-supported`, represents a list of paper feeding methods supported by the printer 102. The example in Information 1209 shows that the printer 102 supports auto (automatic selection), main (main tray), rear (rear tray), and disc (CD / DVD tray) as paper feeding methods. The media-top(bottom / right / left)-margin-supported shown in Information 1210 represents the margin lengths that can be set when printing with the printer 102, on the top, bottom, left, and right sides of the paper. The example in Information 1210 shows that it is possible to have margins of 5mm, 0mm, 8mm, and 6mm on the top of the paper, and 3.4mm, 0mm, 6.4mm, 5.6mm, 6mm, and 5mm on the left side of the paper. The example in Information 1210 also shows that it is possible to have margins of 3.4mm, 0mm, 6.3mm, 5.6mm, 6mm, and 5mm on the right side of the paper, and 0.5mm, 0mm, 12.7mm, and 6mm on the bottom of the paper. The example in information 1211 shows that the minimum time for the printing device 102 to accept continuous operations from a client device such as the information processing device 101 is 60 seconds.This attribute defines that when the printer 102 receives a specific operation from the information processing device 101, it will reserve resources for a continuous operation for 60 seconds. If more than 60 seconds have passed, the resources will be released, and even if the information processing device 101 performs any operation on the printer 102, it cannot be treated as a subsequent process. For example, if the information processing device 101 sends a print start command to the printer 102 and no print data is sent for more than 60 seconds, the print job will be canceled. This attribute prevents the printer 102 from reserving unnecessary resources by setting a time limit between continuous operations, thereby enabling efficient resource management of the printer 102. The attribute values exemplified in Information 1202 to Information 1211 are merely examples. In reality, other attribute values besides those exemplified will also be included. Furthermore, the example shown in Information 1201 is also merely an example, and the response obtained by actually issuing the IPP Get-Printer-Attributes operation to the printer 102 will include attribute information other than those exemplified.
[0045] The print data generation software 202 obtains information such as the information 1201 described above by issuing the IPP Get-Printer-Attributes operation to the printing device 102, and generates PDC 203 based on the obtained information.
[0046] An example of a PDC203 generated by the print data generation software 202 is shown using the information 301 in Figure 3. The PDC203 is written in XML format as shown in the information 301 in Figure 3, and contains attribute information (Feature) indicating the functions that can be specified by the printing device 102, and setting values (Option) related to that attribute information.
[0047] Information 302 represents a string defined as a prefix for the namespace to which each Feature and Option, described later in Information 304 and Information 305, belongs. A NameSpace represents a set or range to which each Feature and Option belongs. NameSpaces are used by the print data generation software 202, the OS, and extension applications 204 to uniquely identify each Feature and Option when referencing PDC or PT / PC. For example, even if Feature and Option are defined with the same name, NameSpaces can indicate whether they are defined by the OS standard or by the vendor. Specifically, suppose information 302 is defined as xmlns:psk="http / / schemas.com / printing / printingschemakeywords". In this case, "psk" will be added as a prefix to each Feature and Option described later in Information 304 and Information 305. This allows us to define that the Feature or Option in question belongs to the aforementioned NameSpace “http / / schemas.com / printing / printingschemakeywords”. If the aforementioned NameSpace is defined by the OS standard, then it becomes possible to express that the Feature or Option belongs to the OS standard. In this way, a NameSpace represents the set or range to which each Feature or Option belongs. The NameSpace is then used to uniquely identify each Feature or Option when the print data generation software 202, the OS, or the extension application 204 references the PDC203 or PT / PC.
[0048] Information 303, "RenderCopiesInPrinter," indicates whether the printing device 102 itself can duplicate and print multiple copies of the print data when printing multiple copies. The value of information 303 is set to either "true" or "false." If the value of information 303 is true, even when printing multiple copies, the print data generation software 202 only needs to send one copy of the print data to the printing device 102. On the other hand, if the value of information 303 is "false," when printing multiple copies, the print data generation software 202 needs to send the print data to the printing device 102 with a configuration that includes the number of pages for that number of copies. For example, when printing three copies of two-page print data, the print data generation software 202 needs to generate a total of six pages of print data, which is a duplicate of the two-page print data across three copies.
[0049] Information 305 indicates the default settings and minimum / maximum values for the number of copies that can be specified when printing with the printing device 102. In the example of information 305, the default number of copies is 1, and it is shown that values from 1 to 9999 can be specified as the number of copies.
[0050] Information 306 indicates that ISOA4, ISOA5, and ISOB5 can be specified as PageMediaSize (paper size). Here, PageMediaSize represents a feature, and ISOA4, etc., represent the setting value (option) for that feature. The features described later are also indicated with the same notation for feature and setting value (option).
[0051] Information 306 indicates that Plain (plain paper), Photographic (photographic paper), and EnvelopePlain (envelope paper) can be specified as PageMediaType (media).
[0052] Information 307 indicates that the JobInputBin (paper feed method) can be specified as Main (main tray), Rear (rear tray), or Disc (CD / DVD tray).
[0053] Information 308 indicates that either Standard (forward order) or Reverse (reverse order) can be specified as JobpageOrder (page order). The print data generation software 202 generates the print data in either forward or reverse order according to the Option set for the Feature.
[0054] Information 309 indicates that OneSided (single-sided printing) can be specified as JobDuplexAllDocumentContiguously. Information 309 also indicates that TwoSidedShortEdge (double-sided short-edge binding) and TwoSidedLongEdge (double-sided long-edge binding) can be specified.
[0055] As described above, the print data generation software 202 obtains information such as information 1201 by issuing the IPP Get-Printer-Attributes operation to the printing device 102, and generates PDC203 based on the obtained information. The PDC203 generated here only contains features and options known to the print data generation software 202. That is, vendor-specific information such as media: glossy gold or matte photo paper, as shown in information 1208, is not included in PDC203, and only standard media such as plain paper and photo paper are included in PDC203. Thus, the PDC203 generated by the print data generation software 202 contains only standard features and options from the information 1201 obtained from the printing device 102.
[0056] The print function extension unit 207 of the extension application 204 edits the PDC 203 generated by the print data generation software 202. This makes it possible to extend the functions available to the user when printing to the printing device 102 using the print data generation software 202. Specifically, the print function extension unit 207 describes new features and options in the PDC 203. This makes it possible to add functions provided by the extension application 204, or functions that the printing device 102 supports but the print data generation software 202 does not. In this embodiment, when the print function extension unit 207 extends the print function, the capability information acquisition unit 211 of the extension application 204 acquires capability information from the printing device 102. Specifically, the capability information acquisition unit 211 of the extension application 204 uses the capability information 1201 information acquired by issuing the IPP Get-Printer-Attributes operation.
[0057] An example of a PDC203 edited by the printing function extension unit 207 will be explained using information 401 shown in Figure 4. Here, an example of the printing function extension unit 207 adding media and layout printing functions as editing processes for the PDC203 will be explained. Information 401 is the result of the printing function extension unit 207 editing information 304. Note that the attributes of the information shown in information 402 to 405 and information 407 to 409 are the same as those of information 302 to 305 and information 307 to 309, so their explanation will be omitted. The printing function extension unit 207 adds capability information to the PDC203 that is not listed in the PDC203 shown in the example of information 301, from the capability information acquisition unit 211 acquired from the printing device 102. Specifically, information 406 shows that the printing function extension unit 207 added the vendor-specific media, PhotoPaperGlossy (glossy standard) PageMediaType. Furthermore, this indicates that PhotoPaperGold (glossy gold) and MattePhotoPaper (matte photo paper) have been added to PageMediaType. Also, when the printing function extension unit 207 adds a Feature or Option to PDC203, it is necessary to define a new NameSpace to which each Feature or Option belongs. In the example of information 401, information 402 shows that a new NameSpace, “http: / / sample.com / printing / printingschemakeywards / v100,” has been defined with the prefix “ns0002.” Information 406 also shows that by adding “ns0002” to the prefix of the added media, the media belongs to the NameSpace identified by “ns0002.”
[0058] In this way, the print function expansion unit 207 edits the PDC 203 based on the information acquired by the capability information acquisition unit 211 from the printing device 102. This makes it possible to add functions provided by the expansion application 204, or functions that are supported by the printing device 102 but not by the print data generation software 202.
[0059] Furthermore, the printing function expansion unit 207 may add information to the PDC 203 even if it has not been obtained from the printing device 102. For example, if the print data editing unit 208 supports the allocation processing of print data, the printing function expansion unit 207 may detect this and add information about the allocation printing function to the PDC 203. Information 410 shows an example in which the printing function expansion unit 207 has added information about the allocation printing function to the PDC 203. According to information 410, it is possible to specify 1in1, 2in1, 4in1, 6in1, 9in1, and 16in1 as allocation printing.
[0060] The example of adding a function given here as an example of PDC editing for the print function extension unit 207 is merely an example; in reality, you may also add or delete functions, or add mutual exclusion relationships (hyphenation information) between print function settings.
[0061] <Example of a screen displayed by the print settings screen extension unit> The print settings screen displayed by the print settings screen extension unit 205 will be explained using Figure 5. A PC is generated based on the PDC 203 edited by the print function extension unit 207. The print settings screen 501 in Figure 5(a) is an example of a screen displayed by the print settings screen extension unit 205 based on the generated PC. The example screen shown in Figure 5 is merely an example and may include controls other than those shown. The user-specifiable screen control 502 is a control item that allows setting the type of paper to be used for printing. Here, for example, items such as "AutoSelect", "Plain", "Photograpchic", and "EnvelopePlain", which are defined in information 404, can be set. In addition, items such as "PhotoPaperGlossy", "PhotoPaperGold", and "MattePhotoPaper" can be set.
[0062] Control 503 is a control item that allows the user to set the paper size to be used for printing. For example, it can be set to items such as A4, B5, or A5 as defined in Information 402. The list 513 shown in Figure 5(b) shows the display state when Control 503 is expanded, and the user can select the paper size from the expanded list.
[0063] Control 504 is a control that allows setting the paper feeding method for the printer 102. Here, for example, items such as "AutoSelect", "Main" (main tray), "Rear" (rear feed), and "Disc" (CD / DVD feed), as defined in Information 405, can be set. Control 505 is a control item that allows setting the print orientation, and can be set to portrait or landscape. Control 506 is a control item that allows switching between enabling and disabling duplex printing. Control 507 is a control item that allows setting the binding direction during duplex printing, and for example, items such as long-edge binding and short-edge binding can be set. Control 508 is a control that allows setting the number of copies to print, and the user can specify a number of copies within the range defined in Information 304. Control 509 is a control that allows specifying the page order of the print data, and the user can specify whether the print data generation software 202 generates the print data in forward or reverse order. Control 510 is a control that allows specifying the number of assignments for the assignment printing function. The list 514 shown in Figure 5(c) illustrates the display state when the control 510 is expanded, allowing the user to select the number of allocations from the expanded list.
[0064] Control 511 is the cancel button; when the cancel button is pressed, screen 501 closes without the changed settings being applied. Control 512 is the OK button; when the OK button is pressed, the changed settings are applied and screen 501 closes.
[0065] <Example of print data editing using print data editing unit 208> Next, we will explain the processing of the print data editing unit 208.
[0066] When the drawing application 201 receives a print request from the user, a print command is issued to the OS 212. If the skip control unit 206 skips the processing by the print data generation software 202, the OS 212 starts the print data editing unit 208 and issues a print command. At this time, the print data editing unit 208 can obtain intermediate print data from the print data generation software 202. Furthermore, the print data editing unit 208 can edit the intermediate print data obtained from the print data generation software 202, and can perform layout processing on the intermediate print data, such as allocating multiple pages to a single sheet of paper. The number of pages allocated to a single sheet of paper can be, for example, 2 pages, 4 pages, 6 pages, 9 pages, 16 pages, etc. Here, the series of processes when the print data editing unit 208 is started by the OS 212 will be explained using the flowchart shown in Figure 6.
[0067] The flowchart shown in Figure 6 illustrates an example of a series of processes initiated when the print data editing unit 208 receives a print command from the OS 212. Each step in the flowchart in Figure 6 is realized by the CPU 111 reading a program stored in the ROM 112 into the RAM 113 and executing it. For the sake of explanation, wherever it is written, for example, "the print data editing unit 208," it will mean that the CPU 111 executes the print data editing unit 208. The same interpretation should be applied to all subsequent flowcharts.
[0068] First, upon receiving a print command from OS212, S601 indicates that the print data editing unit 208 acquires intermediate print data from the print data generation software 202. In this embodiment, XPS (XML Paper Specification) is used as an example of the intermediate print data format. In reality, the format of the intermediate print data is not limited to XPS and may be other data formats. In this embodiment, it is assumed that the data to be printed consists of a total of 8 pages, all of which are A4 size and have a page number in the center of each page, as shown in Figure 8(a).
[0069] Next, the print data editing unit 208 obtains print settings from the print data generation software 202 in S602. The print settings are obtained by referring to the PrintTicket that is passed along with the intermediate print data passed from the print data generation software 202. The method of obtaining print settings is not limited to this, and other methods may be used, for example, the print settings set on the print settings screen 501 may be stored in the shared information 210 by the print settings screen extension unit 205. Then, the print data editing unit 208 may obtain the print settings by referring to the shared information 210. An example of a list of print settings obtained here is shown in Table 1301 in Figure 13. Table 1301 lists the print settings in the Feature column and the print setting values set for each Feature in the Option column. According to Table 1301, the print settings list obtained here shows that the paper type is set to "plain paper", the paper size to "A4", the paper feed slot to "automatic", the print orientation to "portrait", and the double-sided printing to "single-sided printing". It also indicates that the number of copies is set to "2", the page order to "reverse", and the number of pages to allocate to "2". The list of print settings actually obtained by processing S1602 is not limited to the example in Table 1301, and other print settings may also be obtained.
[0070] The print data editing unit 208 obtains a list of print settings from the print data generation software 202 in S602, and then performs intermediate print data editing processing in S603 based on the obtained print settings list. The print data editing unit 208 is capable of performing print data editing processing that is not supported by the print data generation software 202. For example, the print data generation software 202 does not support processing such as layout editing of print data, such as layout printing. Therefore, in this example, the print data editing unit 208 will perform layout processing as the processing in S603. The print data editing unit 208 performs layout processing of print data based on the print settings list obtained in S602. According to the example in Table 1301, the paper size is set to A4 and the number of layouts is set to 2. Therefore, the print data editing unit 208 edits the layout of the intermediate print data so that the 8 pages of data shown in Figure 8(a) are laid out on A4 size paper for 2 pages. Figure 8(b) shows the layout of the intermediate print data after the print data editing unit 208 has performed an allocation process with a allocation count of 2 on the intermediate print data as shown in Figure 8(a). Processing S603 generates intermediate print data with two pages of data allocated to an A4 size sheet of paper, as shown in Figure 8(b).
[0071] After the intermediate print data editing process in S603, the print data editing unit 208 issues a print data generation instruction in S604. In S604, the print data editing unit 208 issues a print data generation instruction to the print data generation software 202 to generate print data based on the intermediate print data edited in S603. The print data generation process executed by the print data generation software 202 in response to the instruction from the print data editing unit 208 in S604 is explained using Figure 7. The flowchart shown in Figure 7 is an example of a series of flowcharts of the print data generation process executed by the print data generation software 202 in response to the print data generation instruction from the print data editing unit 208. First, when the print data generation software 202 is instructed by the print data editing unit 208 to perform the print data generation process, it performs the determination process in S701. In the determination process in S701, the print data generation software 202 determines whether the timing for issuing the print start command is specified before the intermediate print data editing. The timing for issuing the print start command is instructed by the print data editing unit 208, and if no instruction is given, it is determined to be "before intermediate print data editing". Furthermore, the timing for issuing the print start command is either "before intermediate print data editing" or "after intermediate print data editing". If it is determined in S701 that it is before intermediate print data editing, the print data generation software 202 performs the print command issuance process in S702. If it is determined in S701 that it is after intermediate print data editing, the process proceeds to S703. In this example, in the processing of the print data editing unit 208 in Figure 6, the timing for issuing the print start command is not instructed, so it is determined in S701 that it is before intermediate print data editing. Specifically, in the print command issuance process in S702, the print data generation software 202 issues the Create-job command, which is an IPP command, to the printing device 102 that will perform the printing. By issuing this command, the printing device 102 enters the print data acceptance state. Subsequently, in S703, the print data generation software 202 performs the determination process for the reverse order setting of the print settings.Specifically, if the setting value for the reverse order setting in the print settings list, which is the same as that obtained by the print data editing unit 208 in S602, is in reverse order, the process proceeds to S704. If the setting value for the reverse order setting is in forward order, the process proceeds to S705. In S704, the print data generation software 202 performs the process of rearranging the page order of the intermediate print data in reverse order. In the following S705, the print data generation software 202 performs the process of determining whether the number of copies setting in the print settings is 2 or more. If the print setting for the number of copies in the print settings list, which is the same as that obtained by the print data editing unit 208 in S602, is set to 2 or more, the process proceeds to S706. If the number of copies is set to 1, the process proceeds to S708. In S706, the print data generation software 202 determines whether the printing device 102 supports the duplication process for the number of copies. Specifically, it refers to PrintCapabilities generated by OS212 based on PDC203. The printer 102 determines whether it supports the duplication process for the specified number of copies based on whether the value of "RenderCopiesInPrinter" in PrintCapabilities is true or false. If it is determined in S706 that it does support it, that is, if the value of "RenderCopiesInPrinter" in PrintCapabilities is true, the print data generation software 202 proceeds to process S708. If it is determined in S706 that it does not support it, the print data generation software 202 proceeds to process S707. In other words, if the value of "RenderCopiesInPrinter" in PrintCapabilities is false, the print data generation software 202 proceeds to process S707. Alternatively, if "RenderCopiesInPrinter" itself is not listed, the print data generation software 202 proceeds to process S707. In S707, the print data generation software 202 duplicates the pages of the intermediate print data so that the intermediate print data includes the number of pages set as the number of copies. After that, the print data generation software 202 performs the process in S708.In S708, the print data generation software 202 generates print data from intermediate print data. The print data is in a format that the printing device 102 can interpret, and the printing device 102 actually prints on paper or other printing media based on the received print data. Formats that the printing device 102 can interpret include PWG-Raster and PDF. In this example, in the print data generation process in S708, the print data generation software 202 performs conversion from intermediate print data in XPS format to PWG-Raster format. In reality, the intermediate print data may be in a format other than XPS, and the print data format may be in a format other than PWG-Raster, as long as it is a format that the printing device 102 supports. Furthermore, the print data editing unit 208 may be configured to select which format of print data the print data generation software 202 generates. Subsequently, the print data generation software 202 performs the determination process for the timing of issuing the print start command in S709. Here, the print data generation software 202 determines whether the timing of issuing the print start command is specified after the editing of the intermediate print data. If the timing for issuing the print start command is specified as after editing the intermediate print data in S709, the print data generation software 202 proceeds to the process in S710. In the process in S710, the print data generation software 202 issues a print start command to the printing device 102. If the print start command is not specified as after editing the intermediate print data, the process ends. In this example, since the timing for issuing the print start command is not specified from the print data editing unit 208, the timing for issuing the print start command is treated as before editing the intermediate print data, and in S702, the print start command is already issued. Therefore, the process in S710 is not executed. In summary, when the print data editing unit 208 issues a print data generation instruction to the print data generation software 202 in S604, the series of processes from S701 to S7010 are executed. Here, the state of the print data at the time the series of processes from S701 to S7010 are executed, assuming that the print setting list in Table 1301 is set as the print setting, will be explained using Figure 8.According to the example print settings in Table 1301, the intermediate print data at the time the print data generation software 202 is instructed to generate print data, i.e., at the start of the flowchart in Figure 7, is in the state shown in Figure 8(b). Here, according to Table 1301, the print setting is set to reverse order printing, so S703 is judged as Yes, and the change process in S704 is executed. At this point, the page order of the intermediate print data is rearranged in reverse order, resulting in the state shown in Figure 8(c). Furthermore, since the print setting for the number of copies is 2, S705 is judged as Yes. Also, according to information 401, RenderCopiesInPrinter is defined as false, and the printer 102 does not support the duplication process for the number of copies, so S706 is judged as No. As a result, the print data generation software 202 duplicates the intermediate print data to include the number of pages specified by control 508 in Figure 5(a), so the intermediate print data is in the state shown in Figure 8(d). As described above, according to the example print settings in Table 1301, the final print data will have the layout shown in Figure 8(d) due to the processing performed by the print data editing unit 208 and the print data generation software 202.
[0072] Once the process in S604 is executed and the print data generation software 202 begins generating print data, the print data editing unit 208 proceeds to the process in S605, and becomes able to sequentially acquire the generated print data. Specifically, the print data generation software 202 starts generating the first page of the final print data, but the print data editing unit 208 can sequentially acquire the print data as soon as the data for the first page is generated. In the subsequent process in S606, the print data editing unit 208 sequentially transmits the generated print data to the printing device 102. With this configuration, by transmitting the print data to the printing device 102 as soon as the first page of the print data is generated, it is not necessary to wait for all the print data to be generated, and printing can be started more quickly.
[0073] The above illustrates an example of a series of processes initiated when the print data editing unit 208 receives a print command from the OS 212. In this example, the print data editing unit 208 can perform processes such as layout editing on the intermediate print data that are not supported by the print data generation software 202.
[0074] <Challenges> However, in the examples described so far, the specifications of printing using the IPP protocol result in the problem of printing failing. As shown in the example in Information 1211, in printing using the IPP protocol, if a predetermined amount of time elapses between the issuance of a print start command to the printing device 102 and the start of transmission of print data to the printing device 102, the printing device 102 cancels the print job. In this example, after the print data generation software 202 issues a print start command to the printing device 102 in processing S702, S703 to S707 show an example of editing intermediate print data. The reverse processing in S704 and the duplication process for the number of copies in S707 must be executed after all pages have been read. For example, if the intermediate print data contains a large number of pages and a very large number is set for the number of copies, the processing in S703 to S707 will take a long time in proportion to the number of pages and copies. In other words, the time between the issuance of the print start command (S702) and the start of print data transmission (S606) may exceed the time limit shown in the example in Information 1211 (a timeout occurs), resulting in a printing failure.
[0075] Therefore, in this embodiment, the configuration for solving the above problems will be described below. Hereafter, unless otherwise specified, the configuration and processing will be the same as in the examples described so far.
[0076] <Example configuration for controlling the print data generation processing order of print data generation software 202> This example describes an example of controlling the processing order when the print data generation software 202 generates print data, as an example of a configuration that solves the above-mentioned problem. The above-mentioned problem stems from the fact that the print data generation software 202 issues a print start command to the printing device 102 immediately after receiving a print data generation instruction from the print data editing unit 208. Therefore, in this example, the print data generation software 202 is controlled to issue a print start command to the printing device 102 as soon as it has finished editing the intermediate print data and started generating the print data after receiving a print data generation instruction from the print data editing unit 208. Figure 9 shows a diagram illustrating the flow of a series of processes when the print data editing unit 208 receives a print instruction from the OS 212 in this configuration. Note that each step in the flowchart in Figure 9 is realized by the CPU 111 reading the program stored in ROM 112 into RAM 113 and executing it. Also, for the processes in Figure 9 that are the same as the processes in Figure 6, the same number is assigned and the explanation is omitted. When the print data editing unit 208 receives a print command from OS212, it executes processes S601 to S603.
[0077] Subsequently, in S901, the CPU 111 instructs the print data generation software 202 on the timing for issuing the print start command. Specifically, the print data editing unit 08 instructs the print data generation software 202 to issue the print start command after editing the intermediate print data. As a result of this instruction, after the print data generation software 202 receives the print data generation instruction from the print data editing unit 208, it issues the print start command to the printing device 102 as soon as it has finished editing the intermediate print data and started generating the print data. Figure 7 shows a flowchart illustrating the sequence of steps in the print data generation process of the print data generation software 202. The details of each process are omitted as they are as described above. In this example, since the print data editing unit 208 instructs that the timing for issuing the print start command is after editing the intermediate print data, the judgment in S701 is No. Subsequently, the print data generation software 202 executes the processes in S703 to S708. In the subsequent S709 decision, the decision is made as Yes, and the print data generation software 202 performs the print start command issuance process of S7010. Therefore, according to this example, as soon as the print data generation software 202 starts the print data generation process, it issues a print command to the printing device 102. With this configuration, as soon as print data is generated from the intermediate print data in S708, the print data editing unit 208 can start the print data transmission process to the printing device 102 of S606. In other words, as soon as the print start command is issued by the print data generation software 202, the print data editing unit 208 becomes able to transmit print data to the printing device 102. Therefore, according to this example, the time from the issuance of the print start command to the printing device 102 to the start of transmission of print data is minimized, making it possible to prevent printing failures due to exceeding the continuous operation acceptance limit time of the printing device 102.
[0078] <<Embodiment 2>> In Embodiment 1, an example configuration was described in which printing failures due to exceeding the acceptance limit time for continuous operation of the printing device 102 are prevented by controlling the processing order of the printing data generation software 202. However, since the printing data generation software 202 is software that is standardly installed in OS212, it may not be possible to easily control the processing order of the printing data generation. Therefore, as Embodiment 2, an example configuration is shown below in which printing failures due to exceeding the acceptance limit time for continuous operation of the printing device 102 are prevented without controlling the processing order of the printing data generation software 202. Configurations and processes that are not specifically mentioned below are assumed to be the same as in Embodiment 1.
[0079] <Example configuration for reducing the print data generation processing time of print data generation software 202> In this example, as a configuration to solve the above-mentioned problems, the print data editing unit 208 performs a portion of the print data generation process executed by the print data generation software 202. This shortens the time from when the print data generation software 202 issues a print start command to the printing device 102 until the print data is generated, and prevents printing failures due to exceeding the continuous operation acceptance limit of the printing device 102.
[0080] Figure 10 shows the flow of a series of processes when the print data editing unit 208 is started by the OS 212 in this example. Each step in the flowchart of Figure 10 is realized by the CPU 111 reading the program stored in ROM 112 into RAM 113 and executing it. Among the processes in Figure 10, those that are common with the flowchart in Figure 6 are given the same number and detailed explanations are omitted.
[0081] When the print data editing unit 208 is started by the OS 212, it executes processes S601 and S602. Then, as process S1001, it performs print data editing processing. In this example, the print data editing unit 208 executes some of the processes that the print data generation software 202 performs as part of the print data generation process. Figure 11 shows the flow of the series of print data editing processes performed by the print data editing unit 208. Here, processes that are common with the flow diagram in Figure 7 are given the same numbers, and detailed explanations are omitted. First, when the print data editing unit 208 starts the print data editing process, as process S1101, it determines whether the number of allocations is set to 2 or more in the print setting list obtained in S602 of the flow diagram shown in Figure 10. If it is determined to be Yes in S1101, the data editing unit 208 proceeds to process S1102. If it is determined to be No in S1101, the print data editing unit 208 proceeds to process S703.
[0082] In S1102, the print data editing unit 208 performs the allocation process according to the allocation number setting obtained in S602 of the flow shown in Figure 10. According to the example in Table 1301, the paper size is set to A4 and the allocation number is set to 2. Also, assume that the intermediate print data obtained by the print data editing unit 208 from the print data generation software 202 in S601 of Figure 10 is in the state shown in Figure 8(a). In this case, the print data editing unit 208 edits the layout of the intermediate print data so that the 8 pages of data shown in Figure 8(a) are allocated two pages each on A4 size paper. After executing the allocation process in S1102, the print data editing unit 208 executes the processes in S703 to S707. In other words, in this example, the print data editing unit 208 performs a part of the print data generation process that would normally be executed by the print data generation software 202, specifically the processes in S703 to S707, in advance. As a result, when the print data editing unit 208 executes the print data editing process in S1101, the intermediate print data will be in the state shown in Figure 8(d).
[0083] After executing the print data editing process in S1001, the print data editing unit 208 issues a skip instruction in S1002. In the skip instruction in S1002, the print data editing unit 208 instructs the print data generation software 202 to skip intermediate print data editing processes related to reverse order and number of copies. Specifically, when the print data generation software 202 executes the print data generation process shown in Figure 7, it is instructed to skip S703 to S707. This is because the processes in S703 to S707 have already been executed by the print data editing unit 208 in S1001, so the print data generation software 202 does not need to execute them. The print data editing unit 208 uses the OS212 API to have the print data generation software 202 execute print data generation. This API also refers to flag information that skips a part of the print data generation process. The print data editing unit 208 issues the skip instruction in S1001 by manipulating this flag information.
[0084] After the skip instruction in S1002, the print data editing unit 208 issues the print data generation instruction in S604. As a result, the print data generation software 202 starts the print data generation process shown in the flowchart in Figure 7, but S1002 has instructed it to skip S703 to S707. Therefore, the print data generation software 202 can execute the print data generation process in S708 immediately after issuing the print start command in S702. Furthermore, since the processes in S703 to S707 are skipped, the print data for the first page is generated immediately in the print data generation process in S708. Therefore, the print data transmission process in S606 is executed shortly after the print start command is issued in S701, making it possible to prevent printing failures due to exceeding the continuous operation acceptance limit time of the printing device 102.
[0085] In this example, we have described a configuration in which the print data editing unit 208 executes a portion of the print data generation process performed by the print data generation software 202, thereby preventing printing failures due to exceeding the continuous operation acceptance limit time of the printing device 102.
[0086] <<Embodiment 3>> Up to this point, Embodiment 1 and Embodiment 2 have been described as different forms, but a configuration that combines the configurations of Embodiment 1 and Embodiment 2 is also possible. Specifically, according to this embodiment, as in the example in Embodiment 2, the print data editing unit 208 performs the intermediate print data editing processing of the print data generation software 202. Also, as in the example in Embodiment 1, the print data editing unit 208 instructs the print data generation software 202 to issue the print start command after the intermediate print data editing. Alternatively, the print data editing unit 208 may execute only one of the intermediate print data editing processes of the print data generation software 202, and have the print data generation software 202 execute the other intermediate print data editing process. For example, the processing related to the reverse order in S704 may be processed by the print data editing unit 208, and the processing related to the number of copies in S707 may be processed by the print data generation software 202. Which intermediate print data editing process is performed by the print data editing unit 208 or the print data generation software 202 may be determined from various perspectives. For example, if, from the standpoint of performance speed, it is more effective for the print data generation software 202 to perform some intermediate print data editing processes, the system may be configured in that manner. Conversely, if, from the standpoint of performance speed, it is more effective for the print data editing unit 208 to perform some intermediate print data editing processes, the system may be configured in that manner. When any of the intermediate print data editing processes are performed by the print data generation software 202, it is desirable that the print start command be issued after the intermediate print data has been generated. Therefore, when adopting this configuration, it is effective to implement both Embodiment 1 and Embodiment 2 together. Embodiment 3 not only solves the problem of preventing printing failures due to exceeding the acceptance limit time for continuous operation of the printing device 102, but also makes it possible to obtain the above-mentioned performance improvements and other effects.
[0087] <<Other Embodiments>> The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions.
[0088] Although preferred embodiments of the present invention have been described above, the present invention is not limited to these embodiments, and various modifications and changes are possible within the scope of its gist.
[0089] This embodiment includes the following programs, methods, and configurations.
[0090] (Program 1) An application program that supports standard drivers provided by the operating system provider, An execution step in which the standard driver of the information processing device is instructed to perform a modification process to change the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the page order; An application program characterized by causing the operating system of the information processing device to execute an instruction step instructing the standard driver to generate print data based on the image data after the standard driver has completed the aforementioned modification process.
[0091] (Program 2) The application program according to Program 1, characterized in that the information processing device further causes the standard driver to perform a copying process to copy the image data, whose page order has been changed by the modification process, for a specified number of copies.
[0092] (Program 3) The application program according to Program 2, characterized in that, in the instruction step, after the standard driver has completed the modification process and the duplication process, the standard driver is instructed to perform the generation.
[0093] (Program 4) The application program according to Program 2, characterized in that the information processing device further causes the standard driver to perform an allocation process in which two or more pages included in the image data of the multiple pages to be allocated to a single sheet.
[0094] (Program 5) The application program according to program 4, characterized in that, in the instruction step, after the standard driver has completed the allocation process, the modification process, and the duplication process, the standard driver is instructed to perform the generation.
[0095] (Program 6) The application program according to Program 1, characterized in that the information processing device further causes the information processing device to execute a transmission step, which involves sending the print data generated by the instructions in the instruction step to a printing device.
[0096] (Program 7) The application program according to program 6, characterized in that the transmission step causes the printing device to transmit the print data in accordance with the Internet Print Protocol.
[0097] (Program 8) A storage medium storing an application program described in any one of the items 1 through 7 of the program.
[0098] (Program 9) An application program that supports standard drivers provided by the operating system provider, In an information processing device, A modification process that changes the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. An application program characterized by having the program perform an instruction step, which, after completing the modification process in the modification step, instructs the standard driver to generate print data based on the image data.
[0099] (Program 10) The application program according to Program 9, characterized in that the information processing device is further instructed to perform a duplication process that duplicates the image data, whose page order has been changed by the modification process, for a specified number of copies.
[0100] (Program 11) The application program according to program 10, characterized in that, in the instruction step, after completing the modification process and the duplication process, the standard driver is instructed to perform the generation.
[0101] (Program 12) The application program according to program 10, characterized in that the information processing device is further instructed to perform an allocation process that allocates two or more pages included in the image data of the multiple pages onto a single sheet.
[0102] (Program 13) The application program according to program 12, characterized in that, in the instruction step, after the standard driver has completed the allocation process, the modification process, and the duplication process, the standard driver is instructed to perform the generation.
[0103] (Program 14) The application program according to program 9, characterized in that the information processing device further causes the information processing device to execute a transmission step, which involves sending the print data generated by the instructions in the instruction step to a printing device.
[0104] (Program 15) The application program according to program 14, characterized in that the transmission step causes the printing device to transmit the print data in accordance with the Internet Print Protocol.
[0105] (Program 16) A storage medium storing an application program described in any one of items 9 through 15 of the program.
[0106] (Method 1) A method for supporting standard drivers provided by the operating system provider, An execution step in which the standard driver of the information processing device is instructed to execute an application program to change the page order of multiple image data generated by the image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. A method characterized in that, after the standard driver has completed the modification process, the operating system of the information processing device executes an instruction step instructing the standard driver to generate print data based on the image data by executing the application program.
[0107] (Composition 1) An information processing device having an application program that supports standard drivers provided by the operating system provider, An execution means that performs a modification process by executing an application program to change the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. An information processing device characterized in that, after the standard driver has completed the modification process, the operating system of the information processing device executes an instruction means for instructing the standard driver to generate print data based on the image data. [Explanation of symbols]
[0108] 101 Host computer 202 Print Data Generation Software 203 PDC 204 Extended Applications
Claims
1. An application program that supports standard drivers provided by the operating system provider, An execution step in which the standard driver of the information processing device is instructed to perform a modification process to change the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the page order; An application program characterized by causing the operating system of the information processing device to execute an instruction step instructing the standard driver to generate print data based on the image data after the standard driver has completed the aforementioned modification process.
2. The application program according to claim 1, characterized in that the information processing device further causes the standard driver to perform a copying process to copy the image data, whose page order has been changed by the modification process, for a specified number of copies.
3. The application program according to claim 2, characterized in that the instruction step involves instructing the standard driver to perform the generation after the standard driver has completed the modification process and the duplication process.
4. The application program according to claim 2, characterized in that the information processing device further causes the standard driver to perform an allocation process in which two or more pages included in the image data of the plurality of pages are allocated to a single sheet.
5. The application program according to claim 4, characterized in that, in the instruction step, the standard driver is instructed to perform the generation after the standard driver has completed the allocation process, the modification process and the duplication process.
6. The application program according to claim 1, characterized in that the information processing device further causes the information processing device to execute a transmission step, which involves sending the print data generated by the instructions in the instruction step to a printing device.
7. The application program according to claim 6, characterized in that the transmission step causes the printing device to transmit the print data in accordance with the Internet Print Protocol.
8. A storage medium storing an application program as described in any one of claims 1 to 7.
9. An application program that supports standard drivers provided by the operating system provider, In an information processing device, A modification process that changes the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. An application program characterized by having the program perform an instruction step, which, after completing the modification process in the modification step, instructs the standard driver to generate print data based on the image data.
10. The application program according to claim 9, characterized in that the information processing device is further instructed to perform a duplication process that duplicates the image data, whose page order has been changed by the modification process, for a specified number of copies.
11. The application program according to claim 10, characterized in that the instruction step, after completing the modification process and the duplication process, instructs the standard driver to perform the generation.
12. The application program according to claim 10, further characterized in that the information processing device is made to perform an allocation process that allocates two or more pages included in the image data of the plurality of pages onto a single sheet.
13. The application program according to claim 12, characterized in that, in the instruction step, the standard driver is instructed to perform the generation after it has completed the allocation process, the modification process and the duplication process.
14. The application program according to claim 9, characterized in that the information processing device further causes the information processing device to execute a transmission step, which involves sending the print data generated by the instructions in the instruction step to a printing device.
15. The application program according to claim 14, characterized in that the transmission step causes the printing device to transmit the print data in accordance with the Internet Print Protocol.
16. A storage medium storing an application program as described in any one of claims 9 to 15.
17. A method for supporting standard drivers provided by the operating system provider, An execution step in which the standard driver of the information processing device is instructed to execute an application program to change the page order of multiple image data generated by the image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. A method characterized in that, after the standard driver has completed the modification process, the operating system of the information processing device executes an instruction step instructing the standard driver to generate print data based on the image data by executing the application program.
18. An information processing device having an application program that supports standard drivers provided by the operating system provider, An execution means that performs a modification process by executing an application program to change the page order of multiple image data generated by an image editing application program to a page order for reverse printing, which prints the images in the reverse order of the original page order. An information processing device characterized in that, after the standard driver has completed the modification process, the operating system of the information processing device executes an instruction means for instructing the standard driver to generate print data based on the image data.