Program, control method, and information processing apparatus
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2024-01-17
- Publication Date
- 2026-06-11
AI Technical Summary
Existing general-purpose printing software lacks the capability to implement a blank-page saving function, necessitating manual deletion of blank pages, which is inconvenient for users, especially when dealing with large numbers of such pages.
A program that extends the functions of general-purpose printing software to include a screen for receiving a blank-page saving setting, controlling the software to skip printing pages without image data.
Enables the use of the blank-page saving function, automating the deletion of blank pages and enhancing user convenience by reducing manual effort.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a program, a control method, and an information processing apparatus.
Background Art
[0002] A configuration is known in which a printer driver installed in a host computer is used as software for controlling a printing device, and a printing instruction is given to the 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. By providing a printer driver that conforms to the specifications of the OS, a manufacturer that provides a printing device can provide a means for instructing the printing device to print using that OS.
[0003] In recent years, in Windows (registered trademark), standard class drivers (hereinafter also referred to as "standard drivers") that can be commonly used in printing devices provided by multiple manufacturers 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, it is not necessary to separately install a model-specific printer driver suitable for the printing device, which is highly convenient. In addition, the standard driver is configured to be able to specify a printing function according to PrintDeviceCapabilities (hereinafter, "PDC") generated based on information obtained from the connected printing device. As a result, a user who uses a standard driver can specify a printing function according to the capabilities of the connected printing device even though only one standard driver is used. However, since this is only a function that can be realized by the standard driver alone, a printer manufacturer's unique function cannot be specified.
[0004] Therefore, Patent Document 1 discloses a technique for extending the function so that a page aggregation function unique to a printer manufacturer can be realized by an extended application of a standard driver.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] Here, there is a blank - page saving function (blank - page removal function) as a function unique to printer manufacturers. The blank - page saving function is a function that deletes and prints blank pages with nothing drawn on them. With this function, the user can skip printing blank pages without having to delete the blank pages themselves.
[0007] However, although the extended application of Patent Document 1 can achieve toner - saving processing in printing using a standard driver, it cannot realize the blank - page saving function. When the user cannot use the blank - page saving function, they need to delete the blank pages themselves before printing. This causes inconvenience to the user.
[0008] An object of the present invention is to provide a mechanism that enables the use of the blank - page saving function by a program that extends the functions of general - purpose printing software.
Means for Solving the Problems
[0009] A program for extending the functions of general - purpose printing software that can be commonly used in image forming apparatuses of a plurality of manufacturers, which displays a screen for receiving a blank - page saving setting, and controls, based on the blank - page saving setting received on the screen, so that pages without image data among the data generated by the general - purpose printing software are not printed.
Effects of the Invention
[0010] According to the present invention, a program for expanding the functions of general-purpose printing software can be used to utilize the blank page saving function.
Brief Description of the Drawings
[0011]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Modes for Carrying Out the Invention
[0012] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments do not limit the present invention according to the claims, and not all combinations of the features described in the present embodiment are essential for the solution means of the present invention.
[0013] In addition, the same reference numerals are assigned to the same components, and the description thereof will be 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 apparatus, and includes 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. NETIF 120 is a network interface and controls data transfer with external devices via the network.
[0015] An initialization program is stored in the ROM 112. Application programs, an operating system (OS), print data generation software, and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory or the like when executing various programs stored in the external storage device 114, and the various programs can operate within the host computer 101.
[0016] In this embodiment, the CPU 111 executes the functions described below and the processes according to the flowchart described below in the host computer 101 by performing processing according to the procedures of the programs stored in the ROM 112. The printing apparatus 102, which is a device, is an example of an image forming apparatus and is connected to the host computer 101 via the input / output interface 116.
[0017] The configuration of the printing apparatus 102 will be described with reference to FIG. 20.
[0018] The CPU 2001 comprehensively controls the printing apparatus 102.
[0019] The ROM 2002 is a storage medium that stores programs read by the CPU 2001.
[0020] RAM 2003 functions as the working memory of CPU 2001 and stores the programs read from ROM 2002.
[0021] NET IT 2004 is a network interface and controls data transfer with external devices via the network.
[0022] External storage device 2005 is a large-capacity storage medium that stores image data.
[0023] Printing device 102 is connected to host computer 101 via input / output interface 2006. Note that host computer 101 and printing device 102 may be connected via NET IF 120 and NET IF 2004 and communicate with each other via them.
[0024] Printing device 102 is connected to operation unit 2008 via input / output interface 2010. Operation unit 2008 has a touch panel that functions as a display unit and hard keys. Operation unit 2008 displays the setting screen and the status of printing device 102 via the touch panel. Also, operation unit 2008 receives operations from the user via the touch panel or hard keys.
[0025] Here, host computer 101 and printing device 102 are configured separately, but they may be configured as one information processing device. Also, the printing setting screen and detailed setting screen described later are displayed on display unit 119. Note that in this embodiment, an electrophotographic digital multifunction device having a plurality of functions such as copy, print, and FAX is taken as an example of the printing device for explanation. However, the present embodiment is not limited to this, and for example, devices using other processes such as the inkjet method are also applicable to the present embodiment. Also, host computer 101 may be a desktop personal computer, a smartphone, or a notebook personal computer.
[0026] <Configuration of a printing system centered on software> FIG. 2 is a diagram schematically showing the software configuration of the printing system. Here, a printing system using a host computer 101 equipped with Microsoft (registered trademark) Windows (registered trademark) 11 as the OS will be described as a premise. FIG. 2(a) is a diagram showing a general configuration when the extended application 204 is not associated with the general-purpose printing software 202 and the printing device 102. FIG. 2(b) is a diagram showing a configuration when the extended application 204 is associated with the general-purpose printing software 202 and the printing device 102.
[0027] <Configuration of a Printing System Centered on Software (When the Extended Application 204 is not Associated)> First, with reference to FIG. 2(a), the configuration of the printing system when the extended application 204 is not associated will be described.
[0028] The drawing application 201 is software that creates content (drawing data) to be printed. For example, it corresponds to a document creation application or a spreadsheet application. When the drawing application 201 receives a printing request from the user, it issues a printing instruction to the OS. The printing instruction includes printing setting information for instructing the operations of the general-purpose printing software 202 and the printing device 102. The printing setting information is also called a PrintTicket (hereinafter, "PT").
[0029] The drawing application 201 can display a print settings screen provided by any of the general-purpose printing software 202, the OS, or the drawing application 201 in order to output the PT. Also, when the detailed settings within the print settings screen are pressed, the general-purpose printing software 202 additionally displays a detailed settings screen. The print settings screen and the detailed settings screen will be described later with reference to FIG. 3. The detailed settings screen includes a setting item (hereinafter also referred to as a "control item") indicating a printable function and a control item indicating its setting value according to the capability information (configurable information) of the general-purpose printing software 202. The capability information is also called PrintCapabilities (hereinafter "PC"). The general-purpose printing software 202 determines the PC based on the print function information 203. The print function information 203 is data indicating all printable functions, their setting values, and the printing functions indicating the exclusive relationship between the setting values. The print function information 203 is also called PDC (Print Device Capabilities). The PDC 203 is included in the configuration file of the general-purpose printing software 202 and is arranged in the external storage device 114 as a non-modifiable file. Alternatively, the PDC 203 can also be dynamically generated by the general-purpose printing software 202. Specifically, the general-purpose printing software 202 or the OS can be configured to acquire the attribute data of the printing device from the printing device 102 and generate the PDC 203 according to the attribute information in the acquired attribute data. When the PDC 203 is dynamically generated, the generated PDC 203 is editable. The attribute data of the printing device acquired from the printing device 102 is a response obtained by issuing an 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 the setting values related to the attribute information. This response is stored in the RAM 113.
[0030] By configuring in this way, the general-purpose printing 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. That is, even when printing devices with different functions or printing devices developed by different manufacturers (or vendors) are connected, the general-purpose printing software 202 can be configured so that the user can specify the printing functions available according to the connected printing device. Here, a configuration using the IPP Class Driver installed in Windows (registered trademark) 11 will be described as the general-purpose printing software 202. The IPP Class Driver is a printer driver that executes printing processing according to the specifications of a standard printing protocol called IPP (Internet Print Protocol) and is pre-installed in the OS package. The IPP Class Driver is not a specific printer driver corresponding to the model of the printing device 102, but a standard class driver that can be commonly used on multiple printing devices. Also, the IPP Class Driver acquires the capability information of the connected printing device 102 so that the user can specify the printing functions supported by the connected printing device 102, and generates the PDC 203 based on that information. However, the IPP Class Driver does not support the blank page saving function (blank page removal function). This is because the blank page saving function is a function unique to the printer manufacturer. Here, the blank page saving function and the use case of the blank page saving function will be described.
[0031] <Blank Page Saving Function> As described above, the blank page saving function is a function that deletes and prints a blank page so that a blank page with nothing drawn on the print data is not printed. In a multi-page document created by document creation software or the like, there may be a blank page with no text, image, or the like drawn. And when printing such a document, there may be a case where you want to delete and print the blank page for reasons such as paper saving. In such a case, if there is a blank page saving function, you can print in a state where the blank page is deleted without manually deleting the blank page.
[0032] <Use Case of Blank Page Saving Function> Data such as documents to be printed may contain unintended blank pages. For example, when the software used to create the document is different from the software to be printed, or when the versions are different, when the document format has changed, or when the received document data contains blank pages instead of being self-created. There are many other cases where unintended blank pages are included in the document data, but if there are only a few blank pages, it is not very laborious to manually delete them and then print. However, when there are a large number of blank pages, such as dozens of blank pages, it is very time-consuming to do it manually. In such cases, if there is a blank page saving function, the blank pages can be automatically deleted, and it is possible to easily print only the pages other than the blank pages.
[0033] Return to the description of Fig. 2(a). When a print instruction is issued from the drawing application 201, a module of the OS in the general-purpose printing software 202 generates intermediate data (also called input data). Note that the data output by the drawing application 201 for printing is data in the Graphic Device Interface format (GDI format data) or data in the XML Paper Specification format (XPS format data). When using the IPP Class Driver as the general-purpose printing software 202, the general-purpose printing software 202 performs the following conversion. If the data output by the drawing application 201 is GDI format data, the OS converts the GDI format data output from the drawing application 201 into XPS format data. Note that the intermediate data includes drawing data, which is information about the picture formed on the paper surface, and the PT set by the user.
[0034] The general-purpose printing 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. Here, the print data in this embodiment is Page Description Language (PDL) data compliant with IPP. The PDL data compliant with IPP is, for example, data in the PDF (Portable Document Format) or PWG-Raster format. Note that the print data includes drawing data that is information of a picture to be formed on the paper surface and print setting attribute information (attribute information specifying the print settings) generated based on the PT set by the user. The print setting attribute information includes attribute information indicating functions (capabilities of the printing device) that can be specified by the printing device 102 and setting values related to the attribute information.
[0035] The printing device 102 performs printing on the paper surface based on the print data sent from the general-purpose printing software 204. At this time, the printing device 102 forms the drawing data included in the print data on the paper surface (sheet surface) by operating in accordance with the print setting attribute information included in the print data. The print setting attribute information includes attribute information for specifying print quality (such as quality priority, speed priority, etc.) and double-sided printing, etc., and the setting values thereof. For example, when the print setting attribute information includes attribute information for specifying double-sided printing and a setting value indicating that it is to be operated, the printing device 102 executes double-sided printing.
[0036] <Configuration of a printing system centered on software (when the extended application 204 is associated)> Subsequently, with reference to FIG. 2(b), the configuration of the printing system when the extended application 204 is associated will be described. Note that for configurations and processes not particularly mentioned below, they are the same as the configuration in FIG. 2(a).
[0037] The drawing application 201, general-purpose printing software 202, and extended application 204 in Fig. 2(b) are stored in the external storage device 114 in Fig. 1. Then, the CPU 111 reads them from the external storage device 114 into the RAM 113 and executes them, so that the processes shown in the flowcharts and sequence diagrams described below are performed.
[0038] The extended application 204 is software for extending the functions of the general-purpose printing software 202 and is not pre-included (not bundled) in the OS. Therefore, the user needs to operate the host computer 101 to download and install the extended application 204 from the server via the Internet. Alternatively, it may be automatically installed based on the connection of the printing device 102 to the host computer 101. Specifically, when the printing device 102 is connected to the host computer 101, the OS acquires device identification information from the printing device 102. The OS may download and install the extended application 204 corresponding to the acquired device identification information from the server via the Internet. That is, the general-purpose printing software 202 and the extended application 204 are held in the host computer 101 as separate files.
[0039] Note that the general-purpose printing software 202 and the extended application 204 may be updated and version-updated, but this update process is also performed at different timings. That is, the timing at which the general-purpose printing software 202 is acquired by the host computer 101 is different from the timing at which the extended application 204 is acquired. Also, the trigger at which the general-purpose printing software 202 is acquired by the host computer 101 is different from the trigger at which the extended application 204 is acquired. When the extended application 204 is installed, the OS associates the extended application 204 with the general-purpose printing software 202 and the printing device 102.
[0040] The extended application 204 described in this embodiment includes a print settings screen extension unit 205, a print function extension unit 206, an intermediate data editing unit 207, and a notification unit 209. Further, the extended application 204 includes shared information 208 that can be commonly accessed from each unit. The actual form of the shared information 208 is a file stored in the external storage device 114 or information stored on the RAM 113. The extended application 204 writes and reads information to and from the shared information 208 by using an API (Application Program Interface) provided by the OS.
[0041] Note that the extended application 204 may end its operation every time the processing of each unit is completed. In that case, the OS will start the extended application 204 every time a request to use each unit is received.
[0042] Furthermore, the extended application 204 may cancel the processing during the processing of each unit. If cancelled, the job being processed on the print queue will be deleted by the OS.
[0043] When the drawing application 201 receives a print request from the user, it issues a print instruction to the OS. Even in this configuration, similar to the configuration of Fig. 2(a), the drawing application 201 can display the print settings screen. In this configuration, the detailed settings screen provided by the extended application 204 is displayed. Specifically, the detailed settings screen provided by the print settings extension unit 205 included in the extended application 204 is displayed. Also, the print settings extension unit 205 can save the detailed settings set by the user to the shared information 208. The details of the print settings extension unit 205 will be described later with reference to Figs. 4 and 8.
[0044] The extended application 204 has an intermediate data editing unit 207. The intermediate data editing unit 207 acquires intermediate data from the general-purpose printing software 202, converts it into print data, and then passes the print data to the printing device 102. Further, the intermediate data editing unit 207 acquires detailed setting information from the shared information 208 and adds detailed settings to the print data. The printing device 102 performs printing on the paper based on the received print data. Note that the method of converting intermediate data into print data is not limited to the above. The extended application 204 may be configured to acquire print data generated by the general-purpose printing software 202 and add detailed settings to the print data. Also, in the configuration of FIG. 2(b), there may be cases where settings displayed in the extended application 204 such as the duplex-saving function are not set by the user. In that case, as in the configuration of FIG. 2(a), the general-purpose printing software 202 may pass the print data to the printing device 102 without going through the extended application 204.
[0045] The extended application 204 has a printing function extension unit 206. The printing function extension unit 206 can edit the PDC 203 generated by the general-purpose printing software 202 or the OS. Thereby, the printing function extension unit 206 can add functions provided by the extended application 204 and add functions (such as the duplex-saving function) that the printing device 102 supports but the general-purpose printing software 202 does not support. Also, the printing function extension unit 206 can add an exclusive relationship between the set values of the printing functions, etc. The OS activates the printing function extension unit 206 when the extended application 204 is first associated with the printing device 102 and the general-purpose printing software 202. Further, the OS may activate the printing function extension unit 206 at other timings such as when the OS is started. By doing so, in a case where an optional device (for example, a finisher, etc.) is added to the printing device 102 later and the functions related to printing are extended, the printing function extension unit 206 can detect the extended function and add it to the PDC 203.
[0046] In addition, 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 occurrence in the printing device 102. For example, when a paperless error occurs in the printing device 102, the general-purpose printing software 202 detects it, and the OS uses a notification function called toast notification, which is a function of the OS, 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. On the UI screen of the notification unit 209, for example, a detailed message about the paperless error and a display of the paper loading method can be performed.
[0047] Note that once the extended application 204 transmits print data to the printing device 102, it cannot display a screen such as a guide associated with the print data during the processing of each unit.
[0048] Also, the configuration of the extended application 204 for realizing this embodiment is not limited to having all of the above-described functions (units), and it may have only a part of the functions or may have other functions. Also, the extended application 204 may sometimes be simply called printing software. As described above, it can be said that the extended application 204 has at least one of the following functions. The first function is a function of displaying a setting screen (print setting extension unit 205). The second function is a function of editing intermediate data, converting it into print data, and adding detailed settings to the print data (intermediate data editing unit 207). The third function is a function of extending functions that can be specified by the print data generation software (print function extension unit 206). The fourth function is a function of displaying a screen in response to an error occurrence in the printing device 102 (notification unit 209).
[0049] <Example of processing of the blank page saving function> Here, a basic processing example of the blank page saving function will be described. In this embodiment, a blank page refers to a page that does not contain any drawing commands in the print data. FIG. 13 shows examples of drawing commands for a blank page and a non - blank page. Draw Character() in FIG. 13 is an example of a command for drawing characters, and there are also various drawing commands such as lines, figures, and images. A page without any of these commands is determined to be a blank page, and if there is one or more, it is determined not to be a blank page. FIG. 17 shows a part of the processing related to the print data after the print data is transmitted to the printing apparatus 102. In S1701, after receiving the print data, the CPU 2001 of the printing apparatus 102 interprets the commands in S1702 and renders according to the drawing commands among the commands in S1703. Rendering in this embodiment is a process of generating a bitmap image according to the drawing commands of the print data. Note that the image after rendering is not limited to a bitmap, and it can be in any form as long as the print data is converted into an image format that the printing apparatus 102 can handle according to the drawing commands. In this embodiment, when the blank page saving function is on, the presence or absence of drawing commands is determined during command interpretation. If there are no drawing commands, that page is determined to be a blank page and deleted.
[0050] FIG. 18 shows the flow of processing performed by the printing apparatus 102 from print data reception to rendering when the blank page saving function is on. The processing in FIG. 18 is performed by the printing apparatus 102. In this embodiment, it is realized by the CPU 2001 of the printing apparatus 102 in FIG. 20 reading out the program stored in the ROM 2002 and executing it in the RAM 2003.
[0051] First, in S1801, the CPU 2001 of the printing apparatus 102 receives the print data.
[0052] Subsequently, in S1802, the CPU 2001 interprets the commands. Each command included in the print data is extracted from the print data as shown in FIG. 13.
[0053] Next, at S1803, the CPU 2001 extracts the commands for one page from among the commands extracted at S1802. In the present embodiment, as shown in FIG. 13, the commands sandwiched between Begin Page and End Page are the commands for one page, and thus the corresponding commands are extracted.
[0054] Subsequently, at S1804, the CPU of the CPU 2001 determines whether a drawing command is included in the commands extracted at S1803. The determination as to whether a drawing command is included is made by comparing with a group of drawing commands previously held in a recording medium such as the ROM 2002 of the printing apparatus 102 and checking for the presence of matching commands. If there are no matching commands, it is determined that there is no drawing command.
[0055] If it is determined at S1804 that there is no drawing command, the CPU 2001 deletes the corresponding page at S1805. Deletion of the corresponding page is performed by deleting all the commands corresponding to the page extracted at S1803. Also, for example, information indicating the data size corresponding to the total number of pages is corrected such as by decreasing the value.
[0056] After S1805, or if it is determined at S1804 that there is a drawing command, at S1806, the CPU 2001 determines whether it has determined the presence or absence of drawing commands for all pages. Whether all pages have been determined can be determined by the CPU 2001 subtracting 1 from the value of the total number of pages each time the process of S1804 is executed and checking if it has become 0 based on the total number of pages of the print data, or by holding the number of times S1804 has been executed and checking if it matches the value of the total number of pages. If it is determined at S1806 that the CPU 2001 has not determined all pages, it returns to S1803.
[0057] If it is determined at S1806 that all pages have been determined, the CPU 2001 performs a rendering process at S1807.
[0058] <An example of the print settings screen / detailed settings screen> Next, an example of the print settings screen and the detailed settings screen in this embodiment will be described with reference to FIG. 3. FIG. 3(a) is the print settings screen displayed by the drawing application 201. FIG. 3(b) is the detailed settings screen displayed in the case of a configuration without the extended application 204 shown in FIG. 2(a). FIG. 3(c) is the detailed settings screen displayed in the case of a configuration with the extended application 204 shown in FIG. 2(b). Note that the unit or module that displays the print settings screen is not limited to the above. For example, the print settings extension unit 205 may be configured to only generate a display screen. In that case, the print settings extension unit 205 transmits the generated display screen to the drawing application 201 via the general-purpose printing software 202. The drawing application 201 may be configured to display the acquired display screen.
[0059] <FIG. 3(a) Print settings screen displayed by the drawing application 201> First, FIG. 3(a) will be described. The control 301 enables the user to set the printer to be used for printing, the printing orientation, and the number of copies. The control 302 is a preview screen, the control 303 is a print start button, and the control 304 is a button to cancel printing. The control 305 is a detailed settings button. When the control 305 is pressed, an additional print screen is displayed by the general-purpose printing software 202 or the print settings extension unit 205.
[0060] <FIG. 3(b) Detailed settings screen displayed by the general-purpose printing software 202> Next, FIG. 3(b) will be described. FIG. 3(b) is an additional settings screen displayed by the general-purpose printing software 202 when the extended application 204 is not installed. The control 306 enables the setting of the paper type, and it indicates that plain paper is selected. Similarly, the control 307 enables the setting of the paper size, and the control 308 enables the specification of the paper feed port of the printer. The control 309 is a settings completion button. When the control 309 is pressed, the process returns to the print settings screen of FIG. 3(a).
[0061] <Print setting screen displayed by the print setting extension unit
[0061] 205 in FIGS. 3(c) and 3(d)> Next, FIGS. 3(c) and 3(d) will be described. First, FIG. 3(c) is an additional setting screen displayed by the print setting extension unit 205 when the extended application 204 is available. Different from FIG. 3(b), a control 310 is added. The control 310 is an object (such as a pull-down menu) that can select the setting of the blank page saving function. In FIG. 3(c), as an example, it shows that "do" for blank page saving is selected. FIG. 3(d) shows a list 311 of setting items displayed when, for example, the control 310 for blank page saving is pressed. The list 311 shows that in addition to the currently selected "do", there is also "do not". The user can switch the execution of blank page saving and perform printing by selecting to do / not do blank page saving from the list 311.
[0062] Also, as shown in FIG. 3(e), when "do" for blank page saving is selected, the type of the blank page saving process may be switchable. For example, when "do" for blank page saving is selected, buttons 312 and 313 are displayed so that the type can be selected. FIG. 3(e) shows that type 2 (button 313) is selected as an example. In this embodiment, for example, when type 1 (button 312) is selected, blank pages are deleted only during single-sided printing and not during double-sided printing. When type 2 (button 313) is selected, blank pages are deleted regardless of single-sided / double-sided printing. Also, it may be possible to display in the list 311 as "do (Type1)", "do (Type2)", "do not", so that the type of the process and do / not do can be selected together. Of course, the process of switching for each type is not limited to this, and the number of selectable types is not limited to two and may be three or more.
[0063] Here, the reasons for the different printing setting items in FIGS. 3(b), 3(c), and 3(d) will be explained. The detailed setting screen is generated with reference to the PC generated based on the printing function information. However, since the general-purpose printing software 202 does not support the blank page saving function, the blank page saving function cannot be added to the printing function information. Also, even if the blank page saving function was originally included in the printing function information, the general-purpose printing software 202 cannot interpret the blank page saving function included in the printing function information, so the blank page saving setting cannot be displayed on the detailed setting screen. However, configure the printing function extension unit 206 to add the blank page saving function to the PDC203, and configure the printing setting extension unit 205 to display the detailed setting screen with reference to the PC. With these configurations, the extended application 204 can display the blank page saving setting on the detailed setting screen. Here, an example of adding only the blank page saving setting to make it configurable has been explained, but other functions such as the aggregation layout function that prints multiple pages on one sheet or the color adjustment function that adjusts the color of an image may also be added and made configurable.
[0064] <Flowchart of the printing function extension unit 206 that edits the PDC203> Here, with reference to FIG. 4, the processing flow in which the function extension unit 207 edits the PDC203 will be explained. Each step in FIG. 4 is realized by the CPU 111 executing the function extension unit 207 of the extended application.
[0065] First, in S401, the CPU 111 executes the function extension unit 207 and acquires the capability information from the printing device 102. The capability information is the attribute information indicating the functions that can be specified by the printing device 102 and the setting values related to the attribute information included in the response obtained by issuing the IPP Get-Printer-Attributes operation to the printing device 102. Table 501 in FIG. 5 is an example list of the capability information acquired from the printing device 102. As shown in Table 501, functions such as blank page saving and options configurable for each function can be acquired from the printing device 102.
[0066] Next, in S402, the CPU 111 executes the function expansion unit 207 and obtains a list of printing functions supported by the extended application 204 from the shared information 208. The list of printing functions supported by the extended application 204 is stored in the shared information 208 and describes all the printing functions that the extended application 204 can process and their setting values. Table 601 in FIG. 6 is an example of the list of printing functions supported by the extended application 204. The list of printing functions supported by the extended application 204 may be updated by, for example, updating the extended application 204.
[0067] Subsequently, in S403, the CPU 111 executes the function expansion unit 207 and obtains the PDC 203 created by the general-purpose printing software 202 from the OS. The PDC 203 created by the general-purpose printing software 202 is created based on the capability information 501 obtained by the general-purpose printing software 202 from the printing device 102. Only the printing functions supported by the general-purpose printing software 202 among the capability information obtained from the printing device 102 are described in the PDC created by the general-purpose printing software 202, so the functions of the PDC are limited. Table 701 in FIG. 7 is an example of the list of printing functions supported by the general-purpose printing software 202. For example, although the capability information 501 obtained from the printing device 102 includes 7130 inches and Roman No. 6 as sizes, the general-purpose printing software 202 does not support the corresponding sizes, and the corresponding sizes are not described in the PDC. Since the blank page saving function is not supported either, it is not described in the PDC. By adding functions and options to the PDC by the printing function expansion unit 206, the extended application 204 can compensate for the lack of functions of the general-purpose printing software 202. Also, the printing function expansion unit 206 can delete unnecessary functions and options from the PDC created by the general-purpose printing software 202.
[0068] The subsequent S404, S405, and S406 are processes that are repeatedly performed for the list of functions included in the capability information obtained from the printing device in S401. In the present embodiment, these are processes that are repeatedly performed for the 13 types included in Table 501: Size: A4 to No paper saving.
[0069] In S404, the CPU 111 executes the function expansion unit 207 and determines whether the function / option being processed exists in the PDC generated by the general-purpose printing software 202. If Yes, select the next item among the functions / options included in the capability information obtained from the printing device, and perform S404 again. If the last item among the functions / options included in the capability information obtained from the printing device is being processed, end the flowchart of FIG. 4. If No, proceed to S405. In the present embodiment, for example, since Size: A4 shown in Table 501, which is the capability information of the printing device 102, also exists in Table 701, which is the capability information of the general-purpose printing software 202, it is determined as Yes. On the other hand, since Paper saving: Yes shown in Table 501 does not exist in Table 701, it is determined as No and the process proceeds to S405.
[0070] In S405, the CPU 111 executes the function expansion unit 207 and determines whether the function / option being processed exists in the functions / options supported by the extended application 204. If Yes, proceed to S406. If No, perform S404 again or end the flowchart of FIG. 4 as in the case where it was determined as Yes in S404. In the present embodiment, for example, when the function being processed is Paper saving: Yes, since it also exists in Table 601, which is the capability information of the extended application 204, it is determined as Yes and the process proceeds to S406.
[0071] In S406, the CPU 111 executes the function expansion unit 207 and adds the function-option being processed to the PDC 203. After the process of S406, perform S404 again or end the flowchart of FIG. 4 as in the case where it was determined as Yes in S404.
[0072] As described above, the function expansion unit 207 adds functions / options that are not supported by the general-purpose printing software 202 but are supported by the printing apparatus 102 and the extended application 204 to the PDC 203. Based on the PDC edited by this process, a PC is generated. Further, the print setting expansion unit 205 generates a display screen based on the generated PC, thereby expanding functions not supported by the general-purpose printing software 202 and making it possible to display the detailed setting screens shown in FIGS. 3(c) and (d).
[0073] <Sequence after the drawing application 201 has received the print settings> Subsequently, with reference to FIG. 8, the sequence of the drawing application 201, the general-purpose printing software 202, the extended application 204, and the printing apparatus 102 after the drawing application 201 has received the print settings will be described. Note that each step other than the printing apparatus 102 in FIG. 8 is performed by the CPU 111 controlling the drawing application 201, the general-purpose printing software 202, and the extended application 204. Each step of the printing apparatus 102 in FIG. 8 is performed by a CPU (not shown) in the printing apparatus 102.
[0074] First, in S801, the CPU 111 executes the drawing application 201, displays a print setting screen on the display unit 119, and accepts print settings by the user. The user can operate the pointing device 117 or the keyboard 118 to instruct the drawing application 201 to perform print settings.
[0075] Next, in S802, the CPU 111 executes the drawing application 201 and displays the print setting screen shown in FIG. 3(a) on the display unit 119.
[0076] Subsequently, in S803, the CPU 111 executes the drawing application 201 and accepts a detailed setting instruction. The user can operate the pointing device 117 or the keyboard 118 to select the control 305 to instruct a detailed setting.
[0077] Next, in S804, the CPU 111 executes the drawing application 201 and requests the general-purpose printing software 202 to display detailed settings.
[0078] Subsequently, in S805, the CPU 111 executes the general-purpose printing software 202 and requests the extended application 204 to display detailed settings. As described above, in the case of the configuration in Fig. 2(a), the general-purpose printing software 202 will display the detailed setting screen in Fig. 3(b).
[0079] Next, in S806, the CPU 111 executes the print setting extension unit 205 of the extended application 204 and causes the detailed setting screen in Fig. 3(c) to be displayed on the display unit 119. As described with reference to Fig. 4, the function extension unit 207 adds the blank page saving setting to the PDC. The print setting extension unit 205 refers to the PC generated based on the PDC after the addition and displays the detailed setting screen in Fig. 3(c).
[0080] Subsequently, in S807, the CPU 111 executes the print setting extension unit 205 of the extended application 204 and accepts detailed settings. In this embodiment, as shown in Fig. 3(c), the settings of paper type: plain paper, paper size: A4, paper feed port: automatic, and blank page saving: enabled are accepted from the user.
[0081] Next, in S808, the CPU 111 executes the print setting extension unit 205 and accepts that the detailed settings have been completed. The user can instruct the completion of the detailed settings by operating the pointing device 117 or the keyboard 118 to select the control 309.
[0082] Subsequently, in S809, the CPU 111 executes the extended application 204 and transmits the fact that the detailed settings have been completed to the general-purpose printing software 202.
[0083] Next, in S810, the CPU 111 executes the general-purpose printing software 202 and transmits the fact that the detailed settings have been completed to the drawing application 201.
[0084] Subsequently, in S811, the CPU 111 executes the drawing application 201 and receives a print instruction. The user can issue a print instruction by operating the pointing device 117 or the keyboard 118 to select the control 303.
[0085] Next, in S812, the CPU 111 executes the drawing application 201 and issues a print instruction.
[0086] Subsequently, in S813, the CPU 111 executes the general-purpose printing software 202 and causes the module of the OS to generate intermediate data.
[0087] Next, in S814, the CPU 111 executes the general-purpose printing software 202 and saves the PT in the shared information 208.
[0088] Subsequently, in S815, the CPU 111 executes the general-purpose printing software 202 and passes the drawing data among the intermediate data to the extension application 204.
[0089] Next, in S816, the CPU 111 executes the intermediate data editing unit 207 of the extension application 204 and acquires the PT saved in S814 from the shared information 208.
[0090] Subsequently, in S817, the CPU 111 executes the intermediate data editing unit 207 of the extension application 204 and generates print data using the intermediate drawing data and the PT.
[0091] Next, in S818, the CPU 111 executes the intermediate data editing unit 207 of the extension application 204 and transmits the print data to the printing device 102.
[0092] Subsequently, in S819, the printing device 102 receives and interprets the print data, and performs necessary image processing on the image of the print data. In this embodiment, when the print setting of FIG. 3(c) is made, white paper saving processing is performed.
[0093] Next, in S820, the printing device 102 prints the image data generated in S819. Since the blank page saving process is performed in S819, printing is performed with the blank pages deleted.
[0094] As described above, in the present embodiment, the print setting extension unit 205 of the extended application 204 corrects the PDC203 based on the capability information of the general-purpose printing software 202, the extended application 204, and the printing device 102. Furthermore, when a detailed setting screen is requested from the user, the setting screen can be displayed based on the PC generated from the PDC203, allowing the user to make a blank page saving setting. Furthermore, the intermediate data editing unit 207 can reflect the blank page saving setting in the print data because it generates the print data based on the set blank page saving setting. After that, when the printing device 102 receives the print data with the blank page saving setting reflected, the blank page saving module in the printing device 102 performs blank page saving processing on the image data based on the blank page saving setting. Through the above series of processes, the blank page saving function can be realized in the printing device 102, and it becomes possible to provide the blank page saving function to the user.
[0095] In the present embodiment, the detailed setting screen shown in FIG. 3(c) is used for explanation under the configuration of FIG. 2(b), but the present invention is not limited to this. For example, when a detailed setting display request is made to the general-purpose printing software 202 in S804, the general-purpose printing software 202 may display the detailed setting screen shown in FIG. 2(b). Subsequently, after the detailed setting in FIG. 2(b) is completed, the general-purpose printing software 202 requests the extended application 204 to display an additional detailed setting screen. Next, the extended application 204 may additionally display a detailed setting screen that allows blank page saving settings.
[0096] Also, in the present embodiment, the extended application 204 generated print data based on the intermediate data generated by the general-purpose printing software 202. However, the extended application 204 itself may generate the intermediate data.
[0097] <<Embodiment 2>> Hereinafter, a second embodiment of the present invention will be described. In the first embodiment described above, first, the extended application 204 generated print data including the blank page saving setting and transmitted it to the printing apparatus 102. Then, the printing apparatus 102 interpreted the print data including the blank page saving setting and performed blank page saving processing in the blank page saving module in the printing apparatus 102.
[0098] However, depending on the printing apparatus, a blank page saving module may not be installed to reduce costs. In that case, even if the extended application generates print data including the blank page saving setting, it is not possible to cause the printing apparatus to perform blank page saving processing.
[0099] Therefore, when the printing apparatus does not have a blank page saving module, it is preferable to generate print data with an image after blank page saving processing and pass it to the printing apparatus.
[0100] Thus, in the second embodiment, first, it is determined whether a blank page saving module is installed from the capability information of the printing apparatus. Next, if the printing apparatus is equipped with a blank page saving module, print data reflecting the blank page saving setting is generated and passed to the printing apparatus. On the other hand, when the printing apparatus is not equipped with a blank page saving module, the extended application performs blank page saving processing on the image of the drawing data. Subsequently, print data is generated using the image after the blank page saving processing and passed to the printing apparatus. Thereby, even when the printing apparatus does not have a blank page saving module, it is possible to provide the user with a blank page saving function.
[0101] Note that, in the following, only the differences from the first embodiment will be described. The differences between the second embodiment and the first embodiment are the configuration of the printing system when an extended application is associated, the editing flow of the PDC, and the sequence after the drawing application accepts the print settings, which are three points.
[0102] <Configuration of the software-centered printing system in the second embodiment (when the extended application 902 is associated)> The configuration of the printing system when the extended application 902 is associated will be described with reference to FIG. 9. In FIG. 9, since the blocks with the same reference numerals as those in FIG. 2 are the same as those in the first embodiment, the description thereof will be omitted. In FIG. 9, the blocks different from those in FIG. 2 are the printing device 901, the extended application 902, the printing function extension unit 903, and the blank page saving processing unit 904. The printing device 901 in the second embodiment is a printing device that does not have a blank page saving module, which is different from the printing device 103 in the first embodiment. The extended application 902 has a different configuration from the extended application 204 in the first embodiment. Different from the first embodiment, the printing function extension unit 903 adds a blank page saving function to the PDC 203 if there is a unit in the extended application 204 that performs blank page saving processing even when the capability information obtained from the printing device does not have a blank page saving function. The blank page saving processing unit 904 performs blank page saving processing on the image of the intermediate data (drawing data) received from the general-purpose printing software 202 based on the blank page saving setting set by the user. Details will be described later.
[0103] <Flowchart of the printing function extension unit 903 that edits the PDC 203 in the second embodiment> The PDC editing process by the printing function extension unit 903 in the second embodiment will be described with reference to FIG. 10. Each step in FIG. 10 is realized by the CPU 111 executing the function extension unit 902 of the extended application. Also, since the steps with the same reference numerals in FIGS. 4 and 10 have the same processing as those in FIG. 4, the description thereof will be omitted.
[0104] When the repetitive processing of S404 to S406 ends, the CPU 111 proceeds to S1001. Here, in the second embodiment, the capability information returned from the printing apparatus 901 is shown in Table 1101 of FIG. 11. Different from Table 501, the printing apparatus 901 in the second embodiment does not mount a blank paper saving module. Therefore, a blank paper saving function is not added to the PDC 203 after the processing of S404 to S406 is completed.
[0105] At S1001, the CPU 111 executes the printing function extension unit 903 and determines whether there is a module for performing blank paper saving processing in the extended application 204. If it is determined to be Yes, the process proceeds to S1002, and if it is determined to be No, the process of FIG. 10 ends. Since the extended application 204 in the second embodiment mounts a blank paper saving processing unit 904, the process proceeds to S1002.
[0106] Next, at S1002, the CPU 111 executes the printing function extension unit 903 and adds "Blank paper saving: Do / Do not" in Table 601 to the PDC. As described above, the function extension unit 902 first adds functions / options that are not supported by the general-purpose printing software 202, are supported by the printing apparatus 901, and are supported by the extended application 204 to the PDC 203. Thereafter, it is determined whether there is a blank paper saving processing unit in the extended application 204, and if there is a blank paper saving processing unit, a blank paper saving function is added to the PDC. By this processing, even when the printing apparatus 901 does not have a blank paper saving module, the printing setting extension unit 205 can display the detailed setting screen shown in FIG. 3(c) by generating a display screen based on the PC generated by the PDC.
[0107] <Sequence after the drawing application 201 in the second embodiment accepts a printing setting> Next, with reference to FIG. 12, a sequence of the drawing application 201, general-purpose printing software 202, extended application 902, and printing apparatus 901 after the drawing application 201 accepts a print setting will be described. Note that each step other than the printing apparatus 901 in FIG. 12 is realized by the CPU 111 executing the drawing application 201, general-purpose printing software 202, and extended application 902. Each step of the printing apparatus 901 in FIG. 12 is performed by a CPU (not shown) in the printing apparatus 901. Also, steps with the same reference numerals in FIGS. 12 and 8 are omitted from the description because they involve the same processing.
[0108] In S1201, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902, obtains the PT, and obtains the blank page saving setting. Note that if it is set not to save blank pages, the blank page saving process is not performed, and thus the subsequent steps S1202 to S1204 are skipped.
[0109] Next, in S1202, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902 and obtains the capability information of the printing apparatus 901 from the shared information 208. Note that if the capability information of the printing apparatus 901 is not available, the printing function extension unit 902 may request the capability information from the printing apparatus 901 and save it in the shared information 208.
[0110] Subsequently, in S1203, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902 and determines whether the printing apparatus 901 has a blank page saving module based on the capability information obtained in S1202. In the second embodiment, since the printing apparatus 901 is not equipped with a blank page saving module, it is determined as No. Note that if it is determined as Yes, the subsequent step S1204 is skipped and print data is generated. This is because basically, the blank page saving module in the printing apparatus 901 can perform blank page saving processing faster than the blank page saving processing unit 904.
[0111] Next, in S1204, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902, performs blank page saving processing on the intermediate drawing data based on the blank page saving setting obtained in S1201, and saves it in the shared information 208. Also, edit the blank page saving setting of the PT to "not do" or delete the blank page saving setting from the PT.
[0112] As described above, in the first embodiment, the intermediate data editing unit 207 can provide the user with the blank page saving function by generating print data in which the blank page saving setting is reflected and transmitting it to the printing device 102. In the second embodiment, first, the blank page saving processing unit 903 determines whether there is a blank page saving module in the printing device 901. If there is no blank page saving module in the printing device 901, the blank page saving processing unit 903 performs blank page saving processing on the intermediate data. On the other hand, if there is a blank page saving module in the printing device 901, the blank page saving processing unit 903 does not perform blank page saving processing. Then, like in the first embodiment, the intermediate data editing unit 207 generates print data in which the blank page saving setting is reflected and transmits it to the printing device 901. Thus, in the second embodiment, even when there is no blank page saving module in the printing device, it is possible to provide the user with the blank page saving function.
[0113] <<Embodiment 3>> Hereinafter, a third embodiment of the present invention will be described. In the first embodiment, a case where blank page saving is performed by the printing device 102 was described, and in the second embodiment, a case where blank page saving is performed by the extended application 902 was described.
[0114] In the first and second embodiments, the blank page saving process determines whether a page is blank based on the presence or absence of drawing commands as described above. However, while this method can achieve blank page saving with simple processing, there are cases where pages that the user wants to delete as blank pages are not deleted. One such case is when there is a blank page with back printing. Back printing is a phenomenon in which, in a scanned image of a printed material read by a reading device such as a scanner, an image printed on one side is read through to the other side. For example, when a single-sided printed material with printing on the front and a blank back is read in duplex mode, the blank portion on the back is read with the printed content on the front showing through, and the image data on the back is not blank but rather the printed content on the front is inverted and faintly superimposed. These days, it has become more common to save printed materials as data such as PDF using a reading device such as a scanner, and it has also become more common to reprint digitized printed materials. When duplex reading is set during reading of a printed material and a printed material with printing only on the front is read, since the back is originally blank, the read data for the back should be a blank page. However, if back printing occurs, objects will exist in the read data for the back. Therefore, when printing the read data for the back, drawing commands are added to the print data, so even if the blank page saving function is executed, it will not be deleted as a blank page. In order to delete pages with back printing as blank pages as well, it is necessary to perform image analysis rather than determining based on the presence or absence of drawing commands. That is, it is necessary to analyze the information for each pixel of the rendered bitmap image to determine whether it is a blank page. Hereinafter, the blank page saving process that determines a blank page based on the presence or absence of drawing commands will be referred to as blank page saving mode 1, and the blank page saving process that determines a blank page by image analysis will be referred to as blank page saving mode 2.
[0115] However, in the case of the blank page saving process mode 2, since image analysis is performed for each pixel, the processing amount is large, and the processing time will increase without a dedicated processing module. Therefore, if the printing apparatus 901 has a dedicated module for processing the blank page saving process mode 2, it is desirable to perform the processing in the printing apparatus 901. Further, even when the printing apparatus 901 has a dedicated module for processing the blank page saving process mode 2, if a blank page can be determined in the blank page saving process mode 1 (such as a blank page without back printing), it is shorter in processing time to perform the processing in the blank page saving process mode 1. Furthermore, if blank pages that can be deleted in the blank page saving process mode 1 are deleted before transmitting the print data to the printing apparatus 901 to reduce the capacity of the print data, the data transmission time to the printing apparatus 901 can also be shortened. Therefore, considering the time from when the user gives a print instruction until printing, it is desirable to perform the blank page saving process mode 1 in the blank page saving processing unit 904 of the extended application 902 and perform the processing of the blank page saving process mode 2 in the dedicated module of the printing apparatus 901.
[0116] Therefore, in the third embodiment, the details of the processing of the blank page saving process mode 2 and the method of implementing the blank page saving process mode 1 in the extended application 902 and the blank page saving process mode 2 in the printing apparatus 901 will be described.
[0117] Note that hereinafter, only the differences from the first embodiment and the second embodiment will be described.
[0118] <Example of Processing in Blank Page Saving Process Mode 2> Here, an example of the processing in the blank page saving process mode 2 will be described.
[0119] As described above, since the blank page saving processing mode 2 performs image analysis, it starts from the point of receiving image data such as a bitmap image after rendering. The determination of blank pages in the blank page saving processing mode 2 is made based on the comprehensive result of two major processes. The two processes are, respectively, to determine blank pages based on the histogram information of the received image and to determine blank pages based on the edge information of the received image. The results of the respective processes are combined to make a final determination as to whether it is a blank page. From the histogram information, it can be determined that it is not a blank page by detecting a histogram distribution different from the color of the paper. However, when there is an image close to the color of the paper, it cannot be determined that it is not a blank page only by the histogram. Therefore, by performing determination using edge information, it becomes possible to also determine an image close to the color of the paper. Therefore, the final determination is made by combining the results of the two processes.
[0120] FIG. 19 shows the flow of processing performed by the printing apparatus 901 from image data reception to blank page deletion when the blank page saving mode 2 is on. All the processing in FIG. 19 is performed by the printing apparatus 901. In the present embodiment, the CPU 2001 of the printing apparatus 901 (not shown) reads out the program stored in the ROM 2002 to the RAM 2003 and executes it, thereby executing the functions described later in the printing apparatus 901 and the processing according to the flowchart described later.
[0121] First, at S1901, the CPU 2001 receives image data. In the present embodiment, as an example, it will be described that a bitmap image after rendering is received. However, it is in a so-called raster image state, and it may not be a bitmap image as long as it is an image in a format that can be handled by the printing apparatus 901.
[0122] Next, at S1902, the CPU 2001 extracts data for one page from the image data received at S1901.
[0123] Subsequently, in S1903, the CPU 2001 generates a histogram from the image data for one page extracted in S1902. In this embodiment, the image data is described as an 8-bit RGB image, but it is not limited to this. A histogram represents how many pixels with the same signal value appear. In this embodiment, for the 3-channel signal values of RGB, it represents how many pixels with the same value exist for each of R, G, and B. The R, G, and B signal values are extracted from the image data pixel by pixel. If the R, G, and B signal values of the extracted pixel are the first values, 1 is recorded in association with the signal value, and when the same R, G, and B signal values appear, 1 is added to the recorded value. Thus, for each of R, G, and B, it is possible to represent how many pixels have the same signal value. Note that the generation of the histogram is not limited to this method; it is sufficient to know how many pixels have the same signal value respectively.
[0124] Subsequently, in S1904, the CPU 2001 calculates the average value and the variance value from the histogram generated in S1903. The average value is obtained by the following mathematical formula 1. Sum_r = Σ(Pr × Ht(Pr)) Average_r = Sum_r / Ht_all_r Sum_g = Σ(Pg × Ht(Pg)) Average_g = Sum_g / Ht_all_g Sum_b = Σ(Pb × Ht(Pb)) Average_b = Sum_b / Ht_all_b ··· Mathematical formula 1 Sum represents the total value of the signal values of all pixels for each of R, G, and B, Pr represents the signal value from 0 to 255, Ht represents the histogram value for each signal value, Ht_all represents the total number of pixels, and Average represents the average value.
[0125] The variance value is obtained by the following mathematical formula 2. Vari_r = Σ((Average_r - Pr)^2 × Ht(Pr)) / Ht_all_r Vari_g = Σ((Average_g - Pg)^2 × Ht(Pg)) / Ht_all_g Vari_b = Σ((Average_b - Pb)^2 × Ht(Pb)) / Ht_all_b···Equation 2 Vari represents the variance values for R, G, and B respectively, and the other values are the same as those in Equation 1.
[0126] Next, in S1905, the CPU 2001 performs threshold determination 1 using the average value and variance value calculated in S1904. The average value and variance value calculated in S1904 are compared with a predetermined threshold value held in a storage device such as a ROM that the printing apparatus 901 has in advance. In this embodiment, first, the average value calculated in S1904 is compared with the threshold value for the average value. If the average value is less than or equal to the threshold value, it is determined that it is not a blank page as threshold determination 1. If the average value is greater than the threshold value, the variance value calculated in S1904 is compared with the threshold value for the variance value. If the variance value is greater than or equal to the threshold value, it is determined that it is not a blank page as threshold determination 1, and if the variance value is less than the threshold value, it is determined that it is a blank page as threshold determination 1. Note that the processing of S1902 to S1905 has been described by taking the example of performing it on the entire extracted image data for one page, but the image data may be divided into predetermined regions, and the processing of S1902 to S1905 may be performed for each divided region.
[0127] Subsequently, in S1906, the CPU 2001 performs edge count detection processing. First, to extract edges, a general edge enhancement filter or the like is used to enhance the edges of the image. In this embodiment, it is performed for each of the R, G, and B channels. Then, for each pixel value of the edge-enhanced images of R, G, and B, a comparison is made with a predetermined threshold value held in a storage device such as a ROM that the printing apparatus 901 has in advance, and the pixels corresponding to the edges are extracted and counted.
[0128] Next, in S1907, the CPU 2001 performs threshold determination 2 based on the count value calculated in S1906. Threshold determination 2 compares the count values of each of the R, G, and B channels calculated in S1906 with a predetermined threshold value held in a storage device such as a ROM that the printing apparatus 901 has in advance, and determines whether it is a blank page as threshold determination 2. The count values of R, G, and B are compared with the threshold value. If the count value equal to or greater than the threshold value exists in any one of R, G, and B, it is determined that it is not a blank page as threshold determination 2.
[0129] In S1908, the CPU 2001 makes a final determination as to whether it is a blank page. Only when the determination results of threshold determination 1 in S1905 and threshold determination 2 in S1907 are both blank pages, it is determined that the page extracted in S1902 is a blank page. Otherwise, it is determined that it is not a blank page.
[0130] In S1909, the CPU 2001 determines whether all pages of the image data received in S1901 have been determined. It may be determined by obtaining the number of pages at the time of receiving the image data and determining whether the processing has been performed for that number of pages, or pages may be extracted until the image data disappears, and when the image data disappears, it may be determined that all pages have been determined. If it is determined that not all pages have been determined, the process returns to S1902.
[0131] Finally, in S1910, the CPU 2001 deletes the page determined to be a blank page in the process up to S1909. The corresponding page may be completely erased as image data, or a flag or the like may be added to indicate that it is a blank page, and the corresponding page may be deleted at another timing. Note that in the blank page saving process mode 2, the determination level of blank pages can be changed by adjusting each threshold value. For example, the higher the determination level is raised, the darker the background printing can still be determined as a blank page. Conversely, the lower the determination level is lowered, it can also be determined that it is not a blank page except for light background printing. Therefore, a UI that can change the blank page determination level is added like the slider 314 in FIG. 3(f), the threshold value corresponding to the set value of the slider 314 is held, and it may be determined whether it is a blank page using the threshold value corresponding to the set blank page determination level. The slider 314 can move to the minus side and the plus side centered on 0, and the blank page determination level can be raised and lowered. Of course, the slider 314 is just an example, and any form may be used as long as the blank page determination level can be set.
[0132] <Sequence after the drawing application 201 in the third embodiment accepts the print settings> Using FIG. 14, the sequence of the drawing application 201, the general-purpose printing software 202, the extended application 902, and the printing device 901 after the drawing application 201 accepts the print settings will be described. Note that each step other than the printing device 901 in FIG. 14 is realized by the CPU 111 executing the drawing application 201, the general-purpose printing software 202, and the extended application 902. Each step of the printing device 901 in FIG. 14 is performed by the CPU 2001 in the printing device 901. Also, steps with the same reference numerals in FIG. 14 are omitted from the description because they are the same process.
[0133] In S1401, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902, and determines from the capability information acquired in S1202 whether the printing device 901 has a processing module for the blank page saving mode 2. In the third embodiment, since the printing device 901 is equipped with a processing module for the blank page saving mode 2, it is determined as Yes.
[0134] Next, in S1402, the CPU 111 executes the blank page saving processing unit 904 of the extended application 902, performs the processing of the blank page saving mode 1 on the intermediate drawing data, and saves it in the shared information 208. The processing of the blank page saving mode 1 is as described in <Example of the processing of the blank page saving function> described in the first embodiment.
[0135] Subsequently, in S817, after generating the print data, the CPU 111 edits the setting of the blank page saving mode 1 of the PT to "0" in S1403. Or delete the setting of the blank page saving mode 1 from the PT.
[0136] Subsequently, for the print data transmitted in S818, the printing device 901 interprets the print data and performs necessary image processing on the image of the print data. In this embodiment, as one of the image processes, the processing of the blank page saving mode 2 is performed. Perform the processing described in <Example of the processing of the blank page saving processing mode 2> as described above.
[0137] In the first and second embodiments, in the case of only the blank page saving mode 1, a method for enabling blank page saving processing when using an extended application has been described. In this embodiment, as described above, by using the extended application for the blank page saving mode 1 determined by the drawing command and performing the blank page saving mode 2 determined by image analysis on the printing device, blank page saving processing using the extended application is possible even when there are multiple blank page saving modes. Also, the printing performance in the case of multiple modes can be improved.
[0138] In this embodiment, the blank page saving mode 1 is an extended application, and the blank page saving mode 2 executes processing in the printing device. However, this is a flow that emphasizes printing performance. Therefore, when emphasizing another purpose, it is not limited to this, and the execution location of the processing may be switched, such as executing the processing of each mode only in the extended application or only in the printing device. For example, when displaying a preview described later, it is desirable to execute both modes 1 and 2 in the extended application. If the communication between the host computer and the printing device is fast, both modes 1 and 2 may be processed in the printing device.
[0139] <<Embodiment 4>> Hereinafter, a fourth embodiment of the present invention will be described. In the first to third embodiments, pages determined to be blank pages were automatically deleted (or processing equivalent to deletion was executed). However, there are cases where users do not want to delete pages even if they are determined to be blank pages, such as when they do not want to change the total number of pages or when page numbers may shift in booklet printing. Therefore, in the fourth embodiment, a method will be described in which the extended application 902 previews the blank page saving result before printing and allows the user to select pages to be deleted.
[0140] Note that hereinafter, only the differences from the first, second, and third embodiments will be described.
[0141] <Sequence after the drawing application 201 in the fourth embodiment receives the print settings> Using FIG. 15, the sequence of the drawing application 201, general-purpose printing software 202, extension application 902, and printing apparatus 901 after the drawing application 201 receives a print setting will be described. Note that each step other than the printing apparatus 901 in FIG. 15 is performed by the CPU 111 controlling the drawing application 201, general-purpose printing software 202, and extension application 902. Each step of the printing apparatus 901 in FIG. 15 is realized by the CPU 2001 of the printing apparatus 901 reading out the program stored in the ROM 2002 to the RAM 2003 and executing it. Also, steps with the same reference numerals in FIG. 15 are not described because they involve the same processing.
[0142] In S1501, the CPU 111 executes the print setting extension unit 205 of the extension application 902 and displays the detailed setting screen of FIG. 16(a). The detailed setting screen in the fourth embodiment is obtained by adding a control 1601 for selecting whether to perform a preview display to the detailed setting screen of FIG. 3(c). Since the subsequent S1202 is the same as in the first, second, and third embodiments, the description thereof is omitted.
[0143] In S1502, the CPU 111 executes the print setting extension unit 205 of the extension application 902 and determines whether the preview display is set to "Yes" in the control 1601 of FIG. 16(a).
[0144] When the preview display is set to "Yes" in the control 1601 of FIG. 16(a), in S1503, the CPU 111 executes the blank page saving processing unit 904 of the extension application 902 and performs blank page saving processing on the intermediate drawing data. When there are modes in the blank page saving function as in the third embodiment, all processing is performed by the extension application 902. Regarding the blank page saving processing mode 2, only the execution of the processing changes from the printing apparatus 901 to the extension application 902, and the processing content is the same as <Example of processing in blank page saving processing mode 2> in the third embodiment.
[0145] Subsequently, in S1504, the CPU 111 executes the print setting extension unit 205 of the extended application 902, and as shown in 1603 of FIG. 16(c), displays the intermediate drawing data after the blank page saving process. The intermediate drawing data is displayed page by page as the preview image 1604. Also, if all pages cannot be displayed at once, a page feed function may be added, or a scroll bar may be added so that the page to be displayed can be selected by scrolling the screen. The page number being displayed, such as the page number 1605, may be displayed to make the displayed page easier to understand. The check box 1607 is displayed on the page determined to be a blank page as a result of the blank page saving process. Whether to delete the corresponding page is switched by checking or not checking this check box 1607. In the present embodiment, for example, if the check box is checked, the corresponding page is deleted. Of course, the switching of whether to delete the corresponding page is not limited to the check box, and any method may be used as long as the page determined to be a blank page can be recognized and the switching of whether to delete the blank page can be performed. When the OK button 1604 is pressed, the process returns to the original detailed setting screen. After returning to the detailed setting screen and canceling the "Perform" of the preview display with the control 1601, when the setting end button of the control 309 is pressed, the processes after S1505 are performed.
[0146] Subsequently, in S1505, the CPU 111 generates print data using the intermediate drawing data and the PT. At this time, if it is a blank page in S1504 and there is a deletion instruction from the user (in FIG. 6(c), the check box 1607 is checked), the CPU 111 does not generate the print data for the corresponding page. Also, when information related to pages such as the total number of pages is recorded in the print data, the corresponding information is rewritten in this process.
[0147] When the preview display is not set to "Perform", similar to the first, second, and third embodiments, the blank page saving process unit 904 of the extended application 902 or the printing device 901 or both perform the blank page saving process according to the ability information and the like.
[0148] In the fourth embodiment, the preview display is described as being displayed on a separate screen. However, it may be incorporated into the detailed settings screen, and any form is acceptable as long as the preview can be displayed. Also, in the fourth embodiment, the presence or absence of the preview display is switched by the control 1601. However, as shown in FIG. 16(b), a preview button 1602 may be displayed, and the processes from S807 to S1504 may be executed when the button is pressed.
[0149] In the first to third embodiments, the pages determined to be blank pages were automatically deleted. In the fourth embodiment, as described above, the extended application executes the blank page saving process, and the execution result is previewed. Thereby, in the extended application 902, the intermediate drawing data after blank page saving is previewed, and it is possible to confirm the determination result of blank pages and select page deletion before printing.
[0150] <Other Embodiments> The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
Description of Reference Numerals
[0151] 111 CPU 112 ROM 113 RAM
Claims
1. An application program, The screen of the aforementioned application program is displayed for printing using the standard driver. In an information processing device, A setting screen that accepts settings for a function that suppresses blank page output, which is a function not supported by the standard driver, and executes a display step that displays the setting screen which is the screen of the application program, An application program characterized in that the settings of the aforementioned functions, received via the aforementioned settings screen, are reflected in the print data.
2. An application program, The screen of the aforementioned application program is displayed for printing using the standard driver. In an information processing device, A setting screen that accepts settings for a function that suppresses the output of blank pages, which cannot be accepted in the print settings screen of the standard driver, and executes a display step that displays the setting screen which is the screen of the application program, An application program characterized in that the settings of the aforementioned functions, received via the aforementioned settings screen, are reflected in the print data.
3. The print data is transmitted to the printing device by the information processing device, The application program according to claim 1 or 2, characterized in that blank pages are removed from the print data by the printing device, thereby suppressing the output of blank pages.
4. The application program according to claim 3, characterized in that blank pages are removed from the print data by the printing device based on the setting of the function.
5. The application program according to claim 1 or 2, characterized in that the information processing device is further instructed to perform a removal step of removing a blank page based on the setting of the function.
6. Print function information generated by the operating system of the information processing device, wherein the information processing device is further made to perform an additional step of adding information of the function to print function information which includes predetermined information, The application program according to claim 1 or 2, characterized in that a print settings screen capable of displaying setting values corresponding to predetermined information and setting values corresponding to function information is displayed on the display unit of the information processing device using capability information based on print function information including predetermined information and function information.
7. The application program according to claim 6, characterized in that the printing function information is PrintDeviceCapabilities.
8. The application program according to claim 6, characterized in that the capability information is PrintCapabilities.
9. The application program according to claim 1 or 2, characterized in that the standard driver is an IPP Class Driver.
10. The application program according to claim 1 or 2, characterized in that the information processing device further causes the information processing device to perform a reflection step of reflecting the settings of the function received on the setting screen to the PrintTicket of the print data.
11. The information processing device is further made to perform a second display step of displaying a preview image, The application program according to claim 1 or 2, characterized in that the preview image includes a page that has been determined to be a blank page by the function.
12. The application program according to claim 1 or 2, characterized in that the display step is performed by associating the application program with the standard driver.
13. The application program according to claim 1 or 2, characterized in that the setting of the function is a setting of whether or not to execute the function.
14. The application program according to claim 1 or 2, characterized in that the setting of the function is the setting of the blank page determination level.
15. A method for controlling an information processing device that is executed using an application program, The screen of the aforementioned application program is displayed for printing using the standard driver. A settings screen that accepts settings for a function that suppresses blank page output, which is a function not supported by the standard driver, and includes a display step of displaying the settings screen which is the screen of the application program, A control method characterized in that the settings of the function received via the settings screen are reflected in the print data.
16. A method for controlling an information processing device that is executed using an application program, The screen of the aforementioned application program is displayed for printing using the standard driver. A settings screen that accepts settings for a function that suppresses the output of blank pages, which cannot be accepted in the print settings screen of the standard driver, and has a display step of displaying the settings screen which is the screen of the application program, A control method characterized in that the settings of the function received via the settings screen are reflected in the print data.
17. An information processing device having an application program, The screen of the aforementioned application program is displayed for printing using the standard driver. A settings screen that accepts settings for a function that suppresses blank page output, which is a function not supported by the standard driver, and has a display means for displaying the settings screen which is the screen of the application program, An information processing device characterized in that the settings of the function received via the aforementioned settings screen are reflected in the print data.
18. An information processing device having an application program, The screen of the aforementioned application program is displayed for printing using the standard driver. A settings screen that accepts settings for a function that suppresses the output of blank pages, which cannot be accepted in the print settings screen of the standard driver, and has a display means for displaying the settings screen which is the screen of the application program, An information processing device characterized in that the settings of the function received via the aforementioned settings screen are reflected in the print data.