Application program, storage medium, control method for information processing device, and information processing device.

The application program addresses the limitations of existing extension applications by processing raster and vector data to implement advanced printing functions, enhancing standard drivers with spoofed resolutions and mutual exclusion controls for improved performance.

JP7856706B2Active Publication Date: 2026-05-11CANON KK
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing extension applications for standard printer drivers lack the capability to effectively enhance printing functions, particularly in handling vector data and layout printing, leading to suboptimal performance.

Method used

An application program that supports the acquisition of printing device capabilities via the Internet Printing Protocol (IPP), processes raster data from drawing applications, and converts unprocessed vector data, enabling advanced functions like layout and booklet printing by adding spoofed resolutions and mutual exclusion controls.

Benefits of technology

Enhances printing capabilities by allowing users to specify advanced functions such as layout and booklet printing without degrading image quality, through the integration of spoofed resolutions and mutual exclusion controls, thereby improving the functionality of standard drivers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007856706000001
    Figure 0007856706000001
  • Figure 0007856706000002
    Figure 0007856706000002
  • Figure 0007856706000003
    Figure 0007856706000003
Patent Text Reader

Abstract

To provide a better function as an extension application.SOLUTION: Provided is a program for an extension application for extending a function not supported by print data generation software that generates print data, the program causing a computer to execute a step of adding information related to a first function that is a function not supported by the print data generation software, a step of, when the first function is designated, designating information related to a second function that is a function supported by the print data generation software, and a step of generating print data for realizing the first function on the basis of the designated information related to the second function.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to application programs , storage medium, control method for information processing device, and Information processing device related to 。

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 print instruction to a printing device connected to the host computer. An operating system (OS), which is basic software, is installed in the host computer. The printer driver is configured according to the specifications defined by the OS and is called from the OS to operate. A vendor providing a printing device can provide a means for instructing the printing device to print using the OS by providing a printer driver that conforms to the specifications of the OS.

[0003] In recent years, in Windows (registered trademark), standard class drivers (hereinafter also referred to as "standard drivers") that can be commonly used by printing devices provided by a plurality of vendors have been provided. Such standard drivers are 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, and the convenience is high. In addition, the standard driver is configured to be able to specify a printing function according to PrintCapabilities 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 vendors of printing devices. By providing these extension applications, vendors can provide functions (extensions) that cannot be realized with standard drivers alone. Patent Document 1 discloses a technology for extending functions such as stamping using extension applications. [Prior art documents] [Patent Documents]

[0005] [Patent Document 1] Japanese Patent Publication No. 2019-74906 [Overview of the Initiative] [Problems that the invention aims to solve]

[0006] The extension application described in Patent Document 1 can edit spool files. By editing spool files, the extension application can implement a layout printing function. However, further improvements are needed for extension applications that extend the functionality of standard drivers to provide better performance. [Means for solving the problem]

[0007] To solve the above-mentioned problems, one aspect of the application program of the present invention supports a software program that causes an information processing device to acquire capability information of a printing device in accordance with the Internet Printing Protocol (IPP), and the computer of the information processing device, A first process which receives and processes raster data converted by the software program based on vector data output from a drawing application, and the Output from the drawing application vector data And, The aforementioned software program raster Converted into data Receives and processes unprocessed vector data. ru Second The characteristic feature is that it causes the process to be executed. [Effects of the Invention]

[0008] According to one aspect of the present invention, an application program supports a software program that causes an information processing device to acquire the capability information of a printing device according to the Internet Printing Protocol (IPP), and causes a computer of the information processing device to A first process involves receiving and processing raster data converted by the software program based on vector data output from a drawing application, the vector data And, output from a drawing application raster to be converted Receives and processes unprocessed vector data. by Second a software program and execute processing.

Brief Description of the Drawings

[0009] [Figure 1] Block diagram showing the hardware configuration of a printing system. [[ID=​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ [Figure 15] Example of layout editing by booklet function. [Figure 16] Flowchart of print setting change process of print setting editing unit. [Figure 17] Flowchart of print data editing process of print data editing unit.

Best Mode for Carrying Out the Invention

[0010] Hereinafter, 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 features described in the present embodiments are essential for the solution means of the present invention. The same components are denoted by the same reference numerals, and the description thereof is omitted.

[0011] <<Embodiment 1>> <Hardware Configuration of Printing System> FIG. 1 is a block diagram showing the hardware configuration of a printing system. In this figure, the host computer 101 is an example of an information processing apparatus, and has an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Further, input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and display devices such as a display unit 119 are connected to the output interface 115.

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

[0013] 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, but printing may be performed by other methods (e.g., electrophotography). The host computer 101 may be a desktop computer, a smartphone, or a laptop computer.

[0014] <Printing System Configuration> Figure 2 is a schematic diagram showing the configuration of a printing system. Here, we will explain a printing system using a host computer 101 equipped with Microsoft's Windows 10 as the operating system. 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.

[0015] The drawing application 201 is software that creates content (drawing data) to be printed. Examples include 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. 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 referred to as "PT").

[0016] 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 their setting values, according to the capability information (information that can be set as print settings) obtained from the print data generation software 202. The capability information is also called PrintCapabilities (hereinafter "PC"). The print data generation software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating 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). The print function information 203 is included in the configuration file of the print data generation software 202 and is placed on the external storage device 114 as an immutable file. Alternatively, the print function 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 attribute data of the printing device from the printing device 102 and generate print function information 203 according to the attribute information in the acquired attribute data. If the print function information 203 is generated dynamically, the generated print function information 203 is editable. 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 indicating the functions (capabilities of the printing device) that can be specified by the printing device 102, and setting values ​​related to that attribute information. This response is stored in RAM 113.

[0017] 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, according to the connected printing device 102. In other words, even when printing devices with different functions or printing devices developed by different vendors are connected, the print data generation software 202 can be configured so that the user can specify the printing functions available on each connected printing device. Here, we will describe a configuration using the IPP Class Driver included in Windows® 10 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), and is included in the OS package. The IPP Class Driver is not a unique printer driver specific to the model of the printing device 102, but a standard class driver that can be used in common with multiple printing devices. Furthermore, the IPP Class Driver acquires capability information of the connected printing device 102 and generates print function information 203 based on that information so that the user can specify the printing functions supported by the connected printing device 102.

[0018] The OS generates intermediate data (also called input 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). When using the IPP Class Driver as the print data generation software 202, 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, it passes the converted XPS format data to the print data generation software 202 as intermediate 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 data. The intermediate data includes drawing data, which is information about the image to be formed on the paper, and print setting information set by the user.

[0019] The print data generation software 202 converts the acquired intermediate 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 that indicates the functions that can be specified by the printing device 102 (capabilities of the printing device) and setting values ​​related to that attribute information.

[0020] 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, etc. For example, if the print setting attribute information includes attribute information for specifying double-sided printing, the printing device 102 will perform double-sided printing.

[0021] 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).

[0022] 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 obtains device identification information from the printer 102. The OS may then 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.

[0023] 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 associates the extended application 204 with the print data generation software 202 and the printing device 102.

[0024] The extended application 204 described in this embodiment includes a print settings screen extension unit 205, a print settings editing unit 206, a print function extension unit 207, and a print data editing unit 208. The extended application 204 also includes shared information 209 that can be accessed from all units. The shared information 209 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 209 by using the API (Application Program Interface) provided by the OS.

[0025] Furthermore, the extended application 204 may terminate its operation after each unit has finished processing. In that case, the OS 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 may terminate the operation of the extended application 204 after the processing of the print settings screen extended unit 205 has finished, but the OS may keep the extended application 204 running even after the processing of the print settings editing unit 206 has finished.

[0026] When the drawing application 201 receives a print request from the user, it issues a print command to the OS. 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 12.

[0027] The OS generates intermediate data based on the print instructions output from the drawing application 201 and passes it to the print settings editing unit 206. The print settings editing unit 206 edits the print settings information (PT) contained in the generated intermediate data and passes the edited print settings information to the OS. The print settings editing unit 206 can choose to display a screen on the display unit 119 or not. Regardless of user operation, the print settings editing unit 206 can decide whether or not to display a screen provided by the print settings editing unit 206 itself on the display unit 119. Therefore, it is preferable to configure settings and functions that must be specified by the user every time a print job is created to be selectable on the screen displayed by the print settings editing unit 206. Examples of such functions include secure printing using a personal identification number (PIN) and information regarding the recipient for fax transmission (recipient, fax number, etc.). In this example, the print settings editing unit 206 stores the PIN information specified by the user in the print settings information and passes it to the OS. The PIN information specified by the user may also be stored in shared information 209, which is accessible from all units.

[0028] The OS passes intermediate data containing edited print settings information to the print data generation software 202. The print data generation software 202 converts the intermediate data into print data that can be interpreted by the printing device 102. The OS passes the converted print data to the print data editing unit 208. Furthermore, the OS may be configured to pass the print settings information contained in the intermediate data to the print data editing unit 208.

[0029] The print data editing unit 208 edits the print data generated by the print data generation software 202 and passes the edited print data to the OS. For example, in the case of secure printing, the print data editing unit 208 reads the PIN information specified by the print settings editing unit 206 from the print settings information or shared information 209 received from the OS and adds it to the print settings attribute information included in the print data.

[0030] The OS sends the print data edited by the print data editing unit 208 to the printing device 102. The printing device 102 prints on the paper based on the print data sent from the print data generation software 202.

[0031] Furthermore, the extended application 204 includes 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. This allows the print function extension unit 207 to add functions provided by the extended application 204, add functions supported by the printing device 102 but not by the print data generation software 202, add mutual exclusion relationships between print function settings, and so on. The OS starts the print function extension unit 207 when the extended application 204 is first associated with the printing device 102 and the print data generation software 202. In addition, the OS may start the print function extension unit 207 at other times, such as when the OS starts up. In this way, in cases where optional devices (e.g., finishers) are later added to the printing device 102 and the functions related to printing are extended, the print function extension unit 207 can detect the extended functions and add them to the print function information 203.

[0032] Furthermore, the configuration of the extended 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. The extended application 204 is sometimes simply called the printing software. As described above, the extended application 204 can be said to have at least one of the following functions: a function to display a settings screen (print settings screen extension unit 205), a function to edit intermediate data input to the print data generation software 202 (print settings editing unit 206), a function to edit print data input to the printing device (print data editing unit 208), and a function to extend the functions that can be specified in the print data generation software (print function extension unit 207).

[0033] <Editing of print function information by the print function expansion unit> Figure 3 shows the main processing flow of the editing process of print function information by the print function extension unit 207 in this printing system.Hereafter, the print function extension unit 207 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0034] First, the flow shown in Figure 3 begins when the OS starts the print function extension unit 207, for example, when the extension application 204 is first associated with it.

[0035] In S301, the print function expansion unit 207 determines whether the PDC (Print Device Capabilities) includes a feature called JobNUpAllDocumentsContiguously.

[0036] Here, an example of a PDC is explained using Figure 4(a). PDC401 contains information about the features supported by the printer 102, information about the settings (Options) for certain features, and exclusive information indicating that certain features cannot be selected simultaneously. For example, information 402 indicates that 600x600dpi can be specified as the PageResolution (resolution). If S301 is Yes, the print function extension unit 207 terminates processing of this flow. In this case, since JobNUpAllDocumentsContiguously is not included in PDC401, the determination of S301 is No. If S301 is No, proceed to S302.

[0037] In S302, the print function extension unit 207 adds a layout function to the PDC. An example of the PDC after editing using this flowchart is shown in Figure 4(b). Here, in PDC 403, the layout function is added with the feature name JobNUpAllDocumentsContiguously, as shown in information 406. In addition, options such as None and PagePerSheet_2 are supported as configurable values. This feature name and options are merely examples, and other names (information indicating the function) and configurable values ​​may also be used.

[0038] In S303, the print function extension unit 207 adds the assignment function to the additional function list and stores it in the shared information 209. An example of the additional function list is shown in Figure 5. The additional function list 501 stores the Feature name of the function added to the PDC in the S302 process and a list of available Options, linked together. It also includes information on which of the Options is the default value. Here, the Option None is preceded by an asterisk (*), indicating that None is the default value. Note that the print function extension unit 207 in this flowchart only adds the assignment printing function, but it may be configured to add two or more functions. Therefore, the additional function list is configured to store information for two or more functions.

[0039] In S304, the print function expansion unit 207 adds a false resolution to the PDC. A false resolution is a resolution that the printing device 102 does not support, but the print data generation software 202 or the expansion application 204 supports, and is a false resolution used in the expansion application 204.

[0040] Here, an example of the spoofed resolution information added to the PDC will be explained again using PDC403 in Figure 4(b). In PDC401 before the spoofed resolution was added, 600x600dpi was specified as the resolution, but the additional processing in S304 adds further options (information 405) for 100x100dpi, 200x200dpi, 300x300dpi, 400x400dpi, and 500x500dpi.

[0041] In other words, five new options are added in increments of 100 dpi. It is also possible to configure the system to add even more options in finer increments, or to add the necessary spoofed resolutions determined by the calculations described later. Furthermore, the printing function extension unit 207 adds information 404 regarding the namespaces of the added options to the PDC.

[0042] Finally, in S305, the print function extension unit 207 adds exclusive control functions and exclusive information to the PDC. The information added to the PDC will be explained again using PDC403 in Figure 4(b). First, information 407 is added to PDC403 as an exclusive control function. Information 407 includes a feature called PreventInternalSettings and two options, On and Off, as its setting values. Next, information 408 is added as exclusive information. Information 408 indicates that each option (405) of the spoofed resolution added to the PageResolution function and the On option of the PreventInternalSettings function are mutually exclusive and cannot be set simultaneously. As a result, in order to use the spoofed resolution, the Off option of the PreventInternalSettings function must be explicitly specified, preventing users or higher-level software from mistakenly specifying the spoofed resolution. In other words, this exclusive control information is preventative information to prevent the spoofed resolution from being specified.

[0043] Through the above process, the PrintCapabilities (PC), which is capability information generated based on the PDC (Print Function Information 203), has the various options for spoofed resolutions and functions for mutual exclusion added as information related to the allocation function.

[0044] <Example of a screen displayed by the print settings screen extension unit> Next, the print settings screen displayed based on the generated PC will be explained using Figure 12. The print settings screen 1201 in Figure 12 is an example of a screen displayed by the print settings screen extension unit 205 based on the PC generated by the process described above. The print settings screen extension unit 205 is called by the OS when the user instructs the display of the print settings screen on the drawing application 201. Based on the PC obtained from the OS, the print settings screen extension unit 205 displays a screen in which the user can specify the print functions that can be specified in the print data generation software 202.

[0045] The print settings screen extension unit 205 displays a control item 1202 that allows the user to switch the allocation function on or off, according to the JobNUpAllDocumentsContiguously feature added to the PC. The print settings screen extension unit 205 also displays a control item 1203 that allows the user to select the number of allocations based on each option in JobNUpAllDocumentsContiguously on the PC. This allows the user to specify the allocation function added by the print function extension unit 207. Note that the Option indicating a spoofed resolution and the exclusive control function within the resolution function 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 settings screen so that the user cannot specify them.

[0046] <Processing flow of the print settings editing unit> Figure 8 shows the main processing flow of the print settings change process in the print settings editing unit 206 of this printing system. Hereafter, the print settings editing unit 206 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0047] The process shown in Figure 8 begins when the OS generates intermediate data based on the print command output from the drawing application 201, and the print setting editing unit 206 is activated. In this embodiment, the print setting editing unit 206 does not display anything on the display unit 119.

[0048] In S801, the print settings editing unit 206 retrieves the PrintTicket (PT), which is print setting information included in the intermediate data.

[0049] In S802, the print settings editing unit 206 determines whether the PT contains a specification for a function in the additional functions list. An example of a PT is shown in Figure 6(a). As shown in information 602, PT 601 has the option PagesPerSheet_2 specified for the function JobNupAllDocumentContiguously. This is a function that exists in the additional functions list 501 and is different from the default option None. Here, it is assumed that in the print settings screen 1201 in Figure 12, the user has specified a layout function with a layout count of 2 (also called 2up, 2in1, or 2on1) to print two pages of drawing data onto one sheet. Therefore, the PT has the option PagesPerSheet_2 specified, which corresponds to the setting value of that layout function. In such a case, the print settings editing unit 206 determines Yes in S802 and proceeds to S803. If the determination in S802 is No, the processing of this flowchart ends.

[0050] In S803, the print settings editing unit 206 specifies a false resolution to the PT. An example of a PT modified by the print settings editing unit 206 is shown in Figure 6(b). Here, in PT603, as shown in information 604, a false resolution of DPI400x400 is specified for the PageResolution function, which indicates the resolution, through the process described below.

[0051] The method for specifying the spoofed resolution will be explained using Figure 7. Figure 7(a) is a schematic diagram showing one page of drawing data included in the intermediate data. Each page information included in the drawing data has a printable area 702 within the paper size 701, and the printable area 702 contains drawing data generated for printing by the drawing application 201. Here, the width of the printable area 702 is x and the height is y.

[0052] Figure 7(b) shows an example of the output result of the printer 102 when printing two pages of drawing data as shown in Figure 7(a), with a layout function of 2 layouts specified. Two pages of images based on the drawing data are printed side by side within the printable area of ​​the paper size 703. Here, the width of the area 704 where Page 1 can be placed is (yn) / 2, and the height is x. n indicates the width of the blank area to be placed between Page 1 and Page 2. The aspect ratio of area 704 does not necessarily match the aspect ratio of the printable area 702 of the original drawing data. If the aspect ratios do not match, the drawing information contained in the printable area 702 is not lost by arranging the printable area 702 to be inscribed within area 704.

[0053] For example, let's assume the paper size is A4, and the printable area 702, excluding margins, has a width x of 203.2 mm and a height y of 287 mm. If n is 5 mm, then the width of area 704 is (287-5) / 2 = 141 mm, and the height is x, which is 203.2 mm. The reduction ratio required to fit the printable area 702 into this area 704 is as follows in the width and height directions, respectively. Width direction: 141 / 203.2=0.694 Height direction: 203.2 / 287 = 0.708

[0054] Looking at the specifications for PT601, the resolution is specified as 600dpi. In this case, the expected values ​​of the spoofed resolution in the width and height directions are as follows: Width direction: 0.694x600=416.4(dpi) Height direction: 0.708 x 600 = 424.8 (dpi)

[0055] As mentioned above, in order to obtain a result in which the printable area 702 is inscribed within area 704, we adopt the smaller of the two disguised resolutions, which is 416.4. If the size of the print data obtained by the print data generation software 202 converting the intermediate data at 600 dpi is the size of the printable area 702 in Figure 7, then converting the same intermediate data at 416.4 dpi will result in the size of the print data being size 705 in Figure 7. Note that in this embodiment, the PDC 403 has been extended to allow the specification of five disguised resolutions in 100 dpi increments, and it is not possible to specify a disguised resolution of 416.4 dpi. Therefore, in the processing of S804, the print setting editing unit 206 specifies the largest possible disguised resolution that is closest to 416.4. In the example above, the print setting editing unit 206 specifies the Option DPI400x400, which indicates 400 dpi, in PT. As mentioned above, the S305 process of the print function expansion unit 207 can be configured to pre-calculate and register the required spoofed resolution, which in this example is 416 dpi. However, adding too many types of resolutions may slow down the process, so it is preferable to limit the additions to a number of representative resolutions.

[0056] Next, in S804, the print settings editing unit 206 specifies a feature called PreventInternalSettings for PT and sets its setting value to Off. Information 605 of PT603 is an example of the information added by this process. In other words, information 408 defines an exclusive relationship such that if PreventInternalSettings is On, each option for the spoofed resolution cannot be specified. Due to this definition, if PreventInternalSettings is On, the spoofed resolution may be treated as an invalid value and changed to a different resolution by the print data generation software 202, etc. Therefore, in S804, the print settings editing unit 206 performs a process to change the setting value to indicate that the spoofed resolution can be specified in order to prevent this.

[0057] Finally, in S805, the print settings editing unit 206 creates a settings change list and saves it to shared information 209. An example of a settings change list saved in shared information 209 is shown in Figure 9. The settings change list 901 contains information about the changes made to the PT by the print settings editing unit 206. The following describes examples of information stored in the settings change list, following the example above. The first piece of information stored indicates that the Option of the Feature called PageResolution was changed from DPI600x600 to DPI400x400. This is information received from the print settings editing unit 206 as a result of processing S803. The second piece of information stored indicates that the Option of the Feature called PreventInternalSettings was changed from On to Off. This is information received from the print settings editing unit 206 as a result of processing S804.

[0058] As described above, the print setting editing unit 206 of this embodiment edits the PT included in the intermediate data when a specific function is specified. The print data generation software 202, which processes after the print setting editing unit 206, generates print data based on the intermediate data including the edited PT. In the example above, since the resolution is changed from 600 dpi to 400 dpi, the drawing data included in the print data generated by the print data generation software is reduced to 2 / 3 of its original size in both height and width. This is the size that fits within area 704 in Figure 7(b). The print data editing unit 208, which will be described later, can convert this drawing data into drawing data for the expected layout print simply by moving it to the appropriate location without scaling (resizing) it.

[0059] <Processing flow of the print data editing unit> Figure 10 shows the main processing flow of the print data editing unit 208 in this printing system. Hereafter, the print data editing unit 208 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0060] The process shown in Figure 10 begins when the OS passes the print data, converted from intermediate data by the print data generation software 202, to the print data editing unit 208.

[0061] In S1001, the print data editing unit 208 obtains the PT. The PT obtained here is the PT that has been edited by the print settings editing unit 206 in the processing of S803 and S804. The print data editing unit 208 may obtain the PT using the OS API, or it may be configured so that the print settings editing unit 206 stores it in shared information 209 and retrieves it from there.

[0062] Next, in S1002, the print data editing unit 208 determines whether the PT includes a specification of a function from the additional function list. If the determination in S1002 is No, the processing of this flowchart ends. Here, we will explain using the example where the additional function list is the additional function list 501 in Figure 5 and the PT is PT603 in Figure 6(b). Since PT603 has the option PagesPerSheet_2 specified for the function JobNupAllDocumentContiguously, the determination in S1002 is Yes, and the process proceeds to S1003.

[0063] In S1003, the print data editing unit 208 edits the drawing data included in the print data received from the OS. The option PagesPerSheet_2 of the JobNupAllDocumentContiguously function specified in PT603 means a two-page spreadsheet print job. Since this function was added by the extension application 204, the print data generation software 202 does not perform the processing necessary to realize this function even if it is specified. However, in this embodiment, an option indicating a false resolution is specified in the processing of S803 for PT. The print data generation software 202 is configured to correctly refer to the resolution in PT and generate print data of a size corresponding to the resolution. Therefore, although the drawing data in the print data generated by the print data generation software 202 does not reflect the two-page spreadsheet print function, the data reflects the reduction processing of each page required for two-page spread print jobs.

[0064] Therefore, in the S1003 process, the print data editing unit 208 can generate drawing data that reflects the allocation printing function with an allocation of 2, as shown in Figure 7(b), by arranging the reduced drawing data for two pages onto one page. Since the drawing data for each page has already been reduced to an appropriate size, the print data editing unit 208 does not perform any further reduction of the drawing data. If each drawing data is small relative to the area 704, the print data editing unit 208 places the drawing data in the center of the area 704. Alternatively, it may be shifted to the upper left corner, etc. The blank area between each page uses the same value of n as used in the calculation process in S803.

[0065] Through the above process, the print data editing unit 208 converts the drawing data, created at 400 dpi on A4 size paper, into 600 dpi drawing data that reflects the layout printing function with a layout of 2, by placing two A4-sized drawing data files side by side. Although the explanation here uses a layout of 2, the same process can be applied to other layouts as well.

[0066] Next, in S1004, the print data editing unit 208 modifies the print setting attribute information in the print data based on the setting change list. Figure 11 shows a conceptual example of the Validate-Job operation in IPP. The Validate-Job operation 1101 is data indicating the operation issued at the beginning of the print data in IPP. The Validate-Job operation includes a job-attributes-tag indicating the print setting attribute information 1102. The print setting attribute information 1102 includes attribute information such as paper size and resolution information, and the printing device 102 performs printing according to this attribute information.

[0067] Here, according to the setting change list 901 in Figure 9, the resolution has been changed from 600dpi to 400dpi. The print data generation software 202 generates 400dpi drawing data based on the 400dpi resolution specified to the PT in the S803 process, and also specifies 400dpi in the print setting attribute information. However, the 400dpi resolution is a false resolution added by the extended application 204, and the printing device 102 cannot print based on this resolution. Therefore, the print data editing unit 208 changes the resolution included in the print setting attribute information 1102 to 600x600dpi according to the setting change list 901. An example of the change is shown in information 1103.

[0068] Through the above process, the 400dpi print data without layout settings, generated by the print data generation software 202, is converted into 600dpi print data with a layout printing function set to 2 layouts. Therefore, when the printing device 102 prints this data, it obtains the result of layout printing with 2 layouts.

[0069] As described above, the printing system in this embodiment can have its printing functions extended by the extension application 204. Furthermore, functions requiring editing that involves scaling drawing data can be added. Since the drawing data included in the intermediate data is vector data, characters and the like do not degrade when scaled. However, the drawing data included in the print data generated by the print data generation software 202 based on the intermediate data is raster data, and therefore degrades when scaled. In particular, when scaling, certain lines are omitted, significantly worsening the visibility of small characters and the like. In this embodiment, the printing system uses a false resolution to have the print data generation software 202 perform the scaling required by the extended functions. Since the print data generation software 202 generates print data, which is raster data, from the intermediate data, which is vector data, it generates raster data without degradation according to the resolution at the time of generation. The print data editing unit 208 then edits the thus generated raster data without scaling it again, thereby realizing the extended functions. With this configuration, the printing system in this embodiment can add functions that require editing involving scaling without causing image quality degradation.

[0070] In this embodiment, the allocation printing function with an allocation count of 2 was explained as an example, but it goes without saying that it can be applied to allocation counts other than 2. Furthermore, it can be applied to functions other than allocation counts, such as reduction printing, with a similar configuration, and can also be applied to functions that involve enlargement rather than reduction. Moreover, it may be configured to extend two or more different functions. In this case, the print setting editing unit 206 should specify a disguised resolution in S803 that takes into account the enlargement / reduction ratio required when using two or more different functions in combination. Furthermore, the print data editing unit 208 should perform the necessary editing for two or more different functions in S1003.

[0071] <<Embodiment 2>> Next, Embodiment 2 will be described. In this embodiment, the extended application 204 adds a booklet printing function. The booklet printing function is a function that rearranges the printed results of the printing device 102 so that they can be read like a booklet by folding them in the middle. Configurations and processes not mentioned in the following description are the same as in Embodiment 1 and will therefore not be described.

[0072] Figure 13 shows the main processing flow of the editing process of print function information by the print function extension unit 207 of the printing system in this embodiment.Hereafter, the print function extension unit 207 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0073] The processes S1301 to S1305 in Figure 13 are equivalent in purpose to the processes S301 to S305 in Figure 3, except for the points mentioned below; therefore, the explanation of the common processes will be omitted.

[0074] One difference is that in this embodiment, in S1302, the print function expansion unit 207 adds a booklet printing function instead of a layout printing function. Therefore, the Feature name added to the PDC is JobBooklet, not JobNUpAllDocumentsCongiuously.

[0075] The second difference is that, in the booklet printing function, only a reduction equivalent to a layout print with a layout count of 2 occurs, so in S1304, small spoofed resolutions such as 100dpi or 200dpi are not added. Note that in the flow in Figure 13, the print function expansion unit 207 is configured to expand only the booklet printing function, but it may also be configured to expand the layout printing function. In this case, the print function expansion unit 207 will also execute the processes from S301 to S305 in Figure 3. In other words, if the OS and print data generation software 202 determine that they do not support the layout printing function, the print function expansion unit 207 will add the layout printing function to the additional function list and also edit the PDC appropriately.

[0076] Figure 14 shows the main processing flow of the print settings change process in the print settings editing unit 206 of this printing system. Hereafter, the print settings editing unit 206 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0077] The processes in Figure 14, excluding S1403 and S1406, are equivalent in purpose to the processes S801 to S805 in Figure 8, but are performed for the booklet printing function. Therefore, the explanation of the common processes is omitted.

[0078] In S1402, the print settings editing unit 206 determines whether the PT is set to booklet printing or layout printing.

[0079] In S1403, the print settings editing unit 206 determines whether booklet printing is specified for PT and whether JobNUpAllDocumentsContiguously is not included in the additional functions list. As mentioned above, the print function extension unit 207 also executes the processes from S301 to S305 in Figure 3. If the answer in S1403 is YES, it means that the booklet printing function is specified in the print settings screen extension unit 205 and the layout printing function has not been added to the additional functions list by the print function extension unit 207 (i.e., the layout printing function is supported by the OS and the print data generation software 202). On the other hand, if the answer in S1403 is NO, there are two cases. The first is that an extension function other than booklet printing (i.e., the layout printing function) is specified in the print settings screen extension unit 205. The second case is when the booklet printing function is specified in the print settings screen extension unit 205, and the layout printing function has not been added to the additional function list by the print function extension unit 207 (i.e., the layout printing function is supported by the OS and the print data generation software 202).

[0080] If the determination in S1403 is Yes, the print setting editing unit 206 specifies a layout print with a layout count of 2 for PT (S1406). Layout print with a layout count of 2 results in a different page order, but the page reduction is equivalent to that of booklet printing. In this embodiment, taking advantage of this, the print setting editing unit 206 uses the layout print function to achieve reduction, rather than using a false resolution.

[0081] When the print settings editing unit 206 executes the process in S1406, the print data generation software 202 generates edited print data for the allocation printing function with an allocation count of 2. Since the extended application 204 has not changed the resolution, the resolution remains the resolution specified by the printer 102.

[0082] If the determination for S1402 is No, booklet printing or layout printing is specified, but the layout printing function is not supported by the OS and the print data generation software 202. In this case, the print setting editing unit 206 uses a disguised resolution to achieve the reduction necessary for booklet printing or layout printing, similar to the method in Embodiment 1.

[0083] Subsequently, the print data editing unit 208 performs a process to edit the print data generated by the print data generation software 202. This processing flow is shown in Figure 10, similar to Embodiment 1.

[0084] The processes in S1001 and S1002 are as described in Embodiment 1, so a detailed explanation will be omitted. In S1002, the print data editing unit 208 determines whether the PT is set to booklet printing function or layout printing function.

[0085] In S1003, if the determination in S1403 is YES, the print data editing unit 208 edits the drawing data as follows. This editing will be explained using Figure 15. Figure 15(a) is a schematic diagram showing the drawing data of the print data generated by the print data generation software 202. As shown in Figure 15(a), Page 1 and Page 2 are placed on one sheet of paper, and similarly thereafter, two consecutive pages generated by the drawing application 201 are placed on one sheet of paper. An example of the drawing data edited in the S1003 process is shown in Figure 15(b). In booklet printing, each page is arranged as shown in Figure 15(b) so that the printed material becomes a booklet when folded in the middle. The print data editing unit 208 rearranges (i.e., moves) the drawing data of each page in Figure 15(a) without scaling it up or down, converting it into data like that shown in Figure 15(b). Furthermore, in S1003, if the determination in S1403 is No, the print data editing unit 208 performs editing equivalent to that in Embodiment 1. In addition, if booklet printing is specified, the print data editing unit 208 performs the sorting (movement) process described above, in addition to editing equivalent to that in Embodiment 1.

[0086] Finally, in S1004, the print data editing unit 208 modifies the print setting attribute information included in the print data. If the process in S1406 is executed, as mentioned above, the resolution remains the resolution specified by the printer 102, so there is no need to change it. Here, if booklet printing is specified and duplex printing is not specified, the print data editing unit 208 performs the process of specifying duplex printing in the print setting attribute information. Note that the print setting screen extension unit 205 or the print setting editing unit 206 may be configured to forcibly enable duplex printing when booklet printing is specified.

[0087] The extended application 204 of this embodiment utilizes the layout printing function rather than the false resolution function to achieve the scaling required for booklet printing as an extended function. When using false resolution, there is a possibility that the image may be reduced to a smaller size, but when using the layout printing function, the image is always reduced to the expected size. Thus, in order to have the print data generation software 202 perform scaling, it is sufficient to use a function that the print data generation software 202 supports and that involves scaling, and is not limited to false resolution or the layout printing function.

[0088] <<Embodiment 3>> Embodiment 3 will now be described. In this embodiment, if predetermined conditions are not met, processing is performed to skip the processing by the print data generation software 202. Configurations and processes not mentioned in the following description are equivalent to those in Embodiment 1 and will therefore not be described.

[0089] Figure 16 shows the main processing flow of the editing process of print function information by the print setting editing unit 206 of the printing system in this embodiment.Hereafter, the print setting editing unit 206 may be described as the main entity of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.

[0090] The processes in Figure 16, excluding S1603 and S1607, are equivalent in purpose to the processes S801 to S805 in Figure 8, and therefore their explanation is omitted.

[0091] In S1603, the print setting editing unit 206 determines whether an appropriate spoofed resolution can be specified to achieve the specified function. For example, suppose that the method in S803 of Embodiment 1 calculates an appropriate spoofed resolution of 480 dpi. In this case, specifying 500 dpi would result in print data that is larger than expected, and some of the drawing data would be missing. On the other hand, specifying 400 dpi would result in drawing data that is too small. In such cases, the print setting editing unit 206 determines S1603 to be No.

[0092] In S1607, the print settings editing unit 206 specifies to the OS that intermediate data should be passed through. As a prerequisite, in this embodiment, the print settings editing unit 206 can specify to the OS that intermediate data should be passed to the print data editing unit 208 without passing through the print data generation software 202. The print settings editing unit 206 makes this specification in S1607 and terminates the processing of this flow. Alternatively, the system may be configured to always execute the process in S1607 if a specific function is specified in S1602 without performing the check in S1603.

[0093] Figure 17 shows the main processing flow of the print data editing process of the print data editing unit 208 in this embodiment. Hereafter, the print data editing unit 208 may be described as the main entity for each process, but in reality, the corresponding functions are realized by the CPU 111 executing the corresponding program.

[0094] The process in Figure 17 is equivalent in purpose to the processes S1001 to S1004 in Figure 10, except for processes S1702, S1706, S1707, and S1708, so its explanation is omitted.

[0095] In S1702, the print data editing unit 208 determines whether the print settings editing unit 206 has specified that intermediate data be passed through by the print data generation software 202. If the print settings editing unit 206 has executed the process in S1607, the determination in S1702 will be Yes.

[0096] In S1706, the print data editing unit 208 edits the intermediate data according to the additional functions specified in PT. Since the intermediate data consists of vector data, even if this editing includes scaling, no degradation of characters or other elements occurs.

[0097] Next, in S1707, the print data editing unit 208 disables the additional functions specified in the PT included in the intermediate data. This process is performed to prevent the editing process for the additional functions from being executed again when the intermediate data is converted into print data in the process described later.

[0098] Finally, in S1708, the print data editing unit 208 converts the intermediate data into print data. This conversion can be performed by the print data editing unit 208 itself, or it can be achieved by instructing the print data generation software 202 to process the edited intermediate data again. In other words, the print data generation software 202 can be instructed to perform the conversion from intermediate data to print data. The latter requires the OS to support such functionality, but because the conversion process from intermediate data to print data is centralized in the print data generation software 202, a stable conversion result can always be obtained regardless of the settings.

[0099] In the printing system of this embodiment, when an extended function involving scaling is specified, intermediate data is passed through and edited to prevent degradation associated with scaling. If scaling is not required, intermediate data is not passed through, so the print data editing unit 208 only needs to perform special processing for specific functions, and most processing can be performed by the print data generation software 202.

[0100] <<Embodiment 4>> The above-described embodiment can also be performed by executing the following process: a recording medium containing program code for software that realizes the functions of the above-described embodiment is supplied to a system or device. The computer (or CPU or MPU) of that system or device then reads and executes the program code stored on the recording medium. This achieves the above-described objective. In this case, the program code read from the storage medium itself realizes the functions of the above-described embodiment, and the storage medium containing that program code constitutes the present invention.

[0101] For storing program code, storage media such as flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs can be used.

[0102] Furthermore, the functionality of the aforementioned embodiment is not only realized by the execution of program code read by the computer. It also includes cases where the operating system running on the computer performs some or all of the actual processing based on the instructions of that program code, and the functionality of the aforementioned embodiment is realized through that processing.

[0103] Furthermore, the program code read from the storage medium may be written to the memory of a function expansion board inserted into a computer or a function expansion unit connected to a computer. Then, based on the instructions of that program code, the CPU or other components of the function expansion board or function expansion unit may perform some or all of the actual processing. The functions of the embodiment described above are realized through this processing. [Explanation of symbols]

[0104] 102 Printing device 119 Display section 201 Applications 202 Print Data Generation Software 203 Print Function Information 204 Extended Applications 205 Print Settings Screen Extension Unit 206 Print Settings Editing Unit 207 Printing Function Expansion Unit 208 Print Data Editing Unit 209 Shared Information

Claims

1. An application program, It supports a software program that causes an information processing device to acquire performance information of a printing device in accordance with the Internet Printing Protocol (IPP). The computer of the aforementioned information processing device, A first process involves receiving and processing raster data converted by the software program based on vector data output from a drawing application, An application program characterized by causing it to perform a second process that receives and processes vector data output from the drawing application, which has not been converted to raster data by the software program.

2. The application program according to claim 1, characterized in that it causes the second process to be executed when the conditions are met.

3. The application program according to claim 2, characterized in that if the above conditions are not met, the first process is executed.

4. The application program according to any one of claims 1 to 3, characterized in that, in the second process, it instructs the operating system of the information processing device not to convert the data output from the drawing application into print data by the software program.

5. The application program according to any one of claims 1 to 4, characterized in that the software program is incorporated into the operating system of the information processing device.

6. The application program according to any one of claims 1 to 5, characterized in that the software program is an IPP class driver.

7. The software program is an application program according to any one of claims 1 to 6, characterized in that it causes the information processing device to acquire capability information of the printing device in accordance with Get-Print-Attributes of the Internet Printing Protocol (IPP).

8. The computer of the aforementioned information processing device, The display unit of the information processing device displays the print settings screen. The application program according to any one of claims 1 to 7, characterized in that it further performs a process of applying the print settings set on the print settings screen to the raster data received in the first process.

9. The computer of the aforementioned information processing device, The application program according to any one of claims 1 to 8, further characterized by performing a process to convert the vector data received in the second process into raster data.

10. A storage medium storing an application program according to any one of claims 1 to 9.

11. A method for controlling an information processing device, The application program supports a software program that causes the information processing device to acquire the capability information of the printing device in accordance with the Internet Printing Protocol (IPP). A first processing step involves receiving and processing raster data converted by the software program based on vector data output from a drawing application, A control method for an information processing device, characterized in that a second processing step of receiving and processing vector data output from the drawing application, which has not been converted to raster data by the software program, is performed by executing the application program.

12. An information processing device, It has an application program that supports a software program that causes an information processing device to acquire performance information of a printing device in accordance with the Internet Printing Protocol (IPP), A first process involves receiving and processing raster data converted by the software program based on vector data output from a drawing application, An information processing apparatus characterized in that it performs a second process, which involves receiving and processing vector data output from the drawing application that has not been converted to raster data by the software program, by executing the application program.