Control method for information processing device, information processing device, and storage medium
The control method for print data generation in information processing devices addresses the limitation of additional drawing by synthesizing additional raster data with existing data, enabling transparent effects and accurate page counting.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2022-07-06
- Publication Date
- 2026-04-13
AI Technical Summary
Existing technologies do not allow for additional drawing on the front of any image, limiting the flexibility and functionality of print data generation.
A control method for an information processing device that generates print data by calculating logical to physical page allocation, using a print processor to create additional raster data, synthesizing it with existing data, and generating print data that includes both.
Enables appropriate generation of print data for additional drawing on top of the drawing content issued by an application, allowing for transparency effects and accurate page counting without OS constraints.
Smart Images

Figure 0007844274000001 
Figure 0007844274000002 
Figure 0007844274000003
Abstract
Description
Technical Field
[0001] The present invention relates to print data generation. In particular, it relates to print data generation that performs additional drawing in addition to the drawing content issued by an application.
Background Art
[0002] When printing from an application program (hereinafter referred to as "application"), in addition to the drawing content issued by the application, an additional drawing function for drawing additional characters and images is known. Examples of information drawn by the additional drawing function include stamps, watermarks, transparencies, page numbers, user names, organization names, document names, PC names, dates, times, characters and marks for indicating binding costs and adhesive costs. These additional drawing functions are used for various purposes such as improving readability, improving the convenience of document management, and realizing security printing.
[0003] Patent Document 1 discloses a technique in which a printer driver overlays bitmap data of a ground pattern to be printed in advance on a sheet of paper and bitmap data of an arbitrary image to be printed over the ground pattern and supplies the data to a printing unit. According to this, a ground pattern can be added and printed under an arbitrary image that a user attempts to print.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] As described above, the technology described in Patent Document 1 allows printing of any image with a background pattern added. However, the technology described in Patent Document 1 does not allow for additional drawing on the front of any image.
[0006] This invention was made to solve the above-mentioned problems. The purpose of this invention is to provide a mechanism that enables the more appropriate generation of print data for additional drawing on top of the drawing content issued by an application. [Means for solving the problem]
[0007] This disclosure relates to a control method for an information processing device that generates print data using a print processor that calculates the allocation of logical pages contained in a spool file storing drawing information of one or more logical pages created by an application to physical pages, and a printer driver that uses the results of the calculation to generate first raster data based on the drawing information of the one or more logical pages in a drawing area for printing, wherein the method comprises: an additional drawing step in which the print processor generates second raster data for additional drawing in addition to the drawing information of the logical pages in a drawing area different from the drawing area for printing; a synthesis step in which the printer driver synthesizes the first raster data and the second raster data to generate third raster data; and a generation step in which print data is generated based on the third raster data. [Effects of the Invention]
[0008] According to the present invention, it becomes possible to generate print data more appropriately for performing additional drawing on top of the drawing content issued by the application. [Brief explanation of the drawing]
[0009] [Figure 1] A block diagram showing the hardware configuration of the printing system according to this embodiment. [Figure 2] A diagram showing the software configuration of the host computer in this embodiment. [Figure 3] This diagram illustrates the data flow from the moment a print command is issued in an application until the print data is sent to the printer. [Figure 4] A sequence diagram showing the operation of the page rendering process during additional rendering. [Figure 5] A diagram showing the additional drawing settings screen in the first embodiment. [Figure 6] A flowchart illustrating the page rendering process in this embodiment. [Figure 7] A flowchart illustrating the additional drawing process in the first embodiment. [Figure 8] A flowchart illustrating the print data generation and transmission process in the first embodiment. [Figure 9] A diagram schematically showing an example of synthesized raster data in the first embodiment. [Figure 10] A diagram schematically showing an example of synthesized raster data in the first embodiment. [Figure 11] A diagram schematically showing an example of synthesized raster data in the first embodiment. [Figure 12] A flowchart showing the additional drawing process in the second embodiment. [Figure 13] A flowchart showing the print data generation and transmission process in the second embodiment. [Figure 14] A diagram schematically showing an example of synthesized raster data in the second embodiment. [Figure 15] A flowchart showing the additional drawing process in the third embodiment. [Figure 16] A flowchart showing the print data generation and transmission process in the third embodiment. [Figure 17] A diagram schematically showing an example of synthesized raster data in the third embodiment. [Figure 18] A flowchart showing the additional drawing process in the fourth embodiment. [Figure 19] A diagram schematically showing an example of synthesized raster data in the fourth embodiment. [Figure 20] A flowchart showing the additional drawing process in the fifth embodiment. [Figure 21] A flowchart showing the additional drawing process in the sixth embodiment. [Figure 22] A flowchart showing the print data generation and transmission process in the sixth embodiment. [Figure 23] A diagram schematically showing an example of synthesized raster data in the sixth embodiment. [Figure 24] A diagram showing the additional drawing setting screen in the seventh embodiment. [Figure 25] A flowchart showing the print data generation and transmission process in the seventh embodiment. [Figure 26] A diagram schematically showing an example of synthesized raster data in the seventh embodiment. [Figure 27] This figure shows the additional drawing settings screen in the eighth embodiment. [Figure 28] A schematic diagram showing an example of synthesized raster data in the eighth embodiment. [Figure 29] This diagram shows the data flow from when a print command is issued in the application of the ninth embodiment until the print data is sent to the printing device. [Figure 30] A flowchart illustrating the spool page insertion process in the ninth embodiment. [Figure 31] A flowchart illustrating an example of the operation of the additional drawing process in the ninth embodiment. [Figure 32] A flowchart illustrating some of the operations during the additional drawing process in the ninth embodiment. [Figure 33] A flowchart illustrating the print data generation and transmission process in the ninth embodiment. [Figure 34] A flowchart illustrating some of the operations of the print data generation and transmission process in the ninth embodiment. [Figure 35] A sequence diagram showing the operation of the page rendering process during additional rendering in the ninth embodiment. [Figure 36] A schematic diagram showing an example of raster data in the ninth embodiment. [Modes for carrying out the invention]
[0010] Preferred embodiments of the present invention will be described in detail below with reference to the attached drawings. Note that the following embodiments are not intended to limit the scope of the present invention as defined in the claims, and not all combinations of features described in these embodiments are necessarily essential to the solution of the present invention.
[0011] [First Embodiment] Figure 1 is a block diagram showing an example of the hardware configuration of a printing system representing one embodiment of the present invention. In Figure 1, the host computer 101 is an example of an information processing device. The host computer 101 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.
[0012] Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110. Display devices such as a display unit 119 are connected to the output interface 115.
[0013] The ROM 112 stores the initialization program. The external storage device 114 stores application programs, the OS (operating system), and various other data. The RAM 113 is used as work memory when executing the various programs stored in the external storage device 114. In this embodiment, the CPU 111 performs processing according to the procedures of the programs stored in the ROM 112, thereby realizing the functions of the host computer 101 described later and the processing related to the flowchart described later.
[0014] The printing device 102 is connected to the host computer 101 via an 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 unit. The input / output interface 116 may be an interface such as USB, or a network interface.
[0015] Figure 2 shows an example of the software configuration of the host computer 101 in this embodiment. The host computer 101 has the following components and software. The functions provided by this software are realized when the CPU 111 of the host computer 101 executes programs stored in the ROM 112.
[0016] OS201 is an operating system that performs basic control of the host computer 101. OS201 includes a GDI (Graphics Device Interface) 202 and a spooler 203. GDI202 provides an API (Application Programming Interface) for performing drawing operations. Spooler 203 is a component that performs the generation process of the EMF spool file 301 (Figure 3), which will be described later. In this embodiment, WindowsSpooler is used as spooler 203, but it is not limited to this.
[0017] Application 204 is software that, based on user instructions, configures print settings for documents, images, etc., and issues print commands. The print processor 205 is a component that uses GDI 202 to instruct the printer driver 206 on output coordinates, output direction, output order, etc., for printing.
[0018] The printer driver 206 includes a UI (User Interface) module 207 and a GD (Graphics Driver) module 208. The UI module 207 provides an interface for the user to input print settings, and also plays a role in communicating these print settings to the print processor 205 and the GD module 208. The GD module 208 is a module that is responsible for drawing processes for printing and for generating print data in the drawing memory 304 shown in Figure 3, which will be described later.
[0019] Incidentally, one method for printing supplemental drawings is to utilize the system's notification of print events to draw the supplemental drawings on behalf of the application and insert them between the application's document pages. However, when printing is performed by the splwow64 process in Windows (registered trademark), such a method cannot be used due to OS (operating system) limitations. The splwow64 process is a process that runs, for example, when a 32-bit application opens a print settings screen or performs printing on a 64-bit Windows (registered trademark). The conditions under which the splwow64 process runs are examples only and are not limited to these. Furthermore, a process that is not the splwow64 process is, for example, an application process. Therefore, the present invention provides a mechanism that enables the generation of print data that can perform additional drawing in front of the drawing content issued by the application, is less subject to OS constraints, and can notify the OS of the correct number of pages.
[0020] Figure 3 shows an example of the data flow from when a print command is issued in application 204 until the print data is sent to the printer 102. Application 204 calls UI module 207 as needed to create print settings. To create print settings, UI module 207 displays a print settings screen on display unit 119, and the user may use the pointing device 117 or keyboard 118 to input the setting information necessary for additional drawing (hereinafter referred to as "additional drawing setting information"). When a user issues a print command from application 204, application 204 passes the print settings and drawing data to GDI202.
[0021] When GDI202 receives print settings and drawing data from application 204, it stores the print settings and drawing command information (drawing information) in the EMF spool file 301 via the spooler 203. EMF is an abbreviation for Enhanced Metafile and is the standard method for storing drawing data in Windows. The EMF spool file 301 has one or more spool pages. For example, if application 204 issues a print command for a document file with multiple pages, it can generate an EMF spool file 301 with multiple spool pages.
[0022] Once the EMF spool file 301 is stored, the spooler 203 loads the print processor 205. The print processor 205 obtains additional drawing settings information from the UI module 207 for additional drawing (additional drawing to the drawing information of the spool page). When drawing an image as additional drawing, the print processor 205 loads image data 302 from the host computer 101. This image data 302 is, for example, an image file created on the host computer 101 and can be loaded by the print processor 205.
[0023] Alternatively, this image data 302 may be stored in advance as internal data in the print processor 205 and the printer driver 206. In this case, the following effects can be obtained when printing using the Windows function Point and Print. Point and Print is a function that allows the client to download the print processor 205 and printer driver 206 from the print server and issue print commands from the client to the print server. Point and Print allows for two settings: one in which the print processor 205 and GD module 208 perform the printing-related processing on the client side, and another in which the processing is performed on the server side. If the image data 302 is stored as internal data in the print processor 205 and printer driver 206, the print processor 205 will be able to load the image data 302 and draw the image as an additional drawing, regardless of which setting is used.
[0024] Subsequently, the print processor 205 determines the content of the additional drawing based on the additional drawing setting information described above. Next, the print processor 205 performs the additional drawing on the additional drawing memory 303 by calling the API function of GDI 202, and passes the information from the additional drawing memory 303 to the GD module 208.
[0025] Furthermore, the print processor 205 instructs the GD module 208 to draw the spool pages contained in the EMF spool file 301 by calling the API functions of the GDI 202. The GD module 208 performs drawing in the drawing memory 304 based on the drawing instruction received from the GDI 202 (the drawing content issued by the application 204 is drawn here).
[0026] Next, the GD module 208 synthesizes the drawing from the additional drawing memory 303, which it received from the print processor 205 via the GDI 202, into the drawing memory 304. Subsequently, the GD module 208 generates print data 305 that can be read by the printing device 102 based on the synthesized drawing results in the drawing memory 304, and transmits it to the printing device 102.
[0027] Figure 4 is a sequence diagram showing an example of the operation of the page rendering process during additional drawing for the UI module 207, print processor 205, GDI 202, and GD module 208. First, in S401, the print processor 205 issues a physical page start command (GdiStartPageEMF) to the GDI202.
[0028] In S402, the print processor 205 requests additional drawing setting information from the UI module 207 and obtains the additional drawing setting information. Additional drawing setting information is information necessary to determine the content of the additional drawing, and includes, but is not limited to, strings such as "confidential" and "secret", character color, character decoration, coordinates to be drawn, rotation angle during drawing, size of the drawing, type of border, and whether or not it is transparent.
[0029] In S403, the print processor 205 issues a CreateCompatibleDC instruction to the GDI202. Now, let's explain the device context. A device context is a data structure that abstracts the drawing destination device, such as a printer, display, or memory. The device context includes setting information for brushes and other elements necessary for drawing, as well as information about the drawing area. The GDI202 API allows you to issue drawing commands to the desired destination device by specifying a handle to the device context. For printing, a "printer device context" is used, and the content to be drawn during printing is instructed by specifying the "handle of the printer device context" using the GDI202 API. Similarly, by specifying a handle to a "memory device context" in the GDI202 API, it is possible to instruct drawing to be performed on the drawing area in memory associated with the "memory device context".
[0030] In S404, the print processor 205 issues an additional drawing instruction to the GDI 202. Here, it specifies the handle of the "memory device context" created in S403 and calls an API function of the GDI 202 that performs the desired additional drawing. As a result, the additional drawing is performed on the drawing area of the "memory device context" (the area corresponding to the additional drawing memory 303 in Figure 2).
[0031] At S405, the print processor 205 calls the GDI 202 notification API (ExtEscape) to notify the GD module 208 of the information necessary for compositing the additional drawing. This information may include, for example, the handle to the printer device context and the handle to the memory device context. In S406, GDI202 makes a notification DDI call (DrvEscape) to GD module 208. This notifies GD module 208 of the information necessary for compositing the additional drawing. DDI is an abbreviation for Device Drivers Interface, and it is a function interface for calling the printer driver 206's processing from GDI202.
[0032] In S407, the print processor 205 issues a logical page drawing instruction (GdiPlayPageEMF) to the GDI 202. This instructs the GDI 202 to draw a specific spool page contained in the EMF spool file 301. However, at this point, no drawing is performed on the drawing area of the "printer device context" (the area corresponding to the drawing memory 304 in Figure 2). If multiple logical pages are to be assigned to a single physical page, S407 is performed multiple times. At S408, the print processor 205 issues a physical page end instruction (GdiEndPageEMF) to the GDI202.
[0033] In S409, GDI202 makes a page start DDI call (DrvStartPage) to GD module 208. At S410, GDI202 calls a drawing function to GD module 208. As a result, GD module 208 draws the content issued by application 204 to the drawing area of the "printer device context" (the area corresponding to drawing memory 304 in Figure 2).
[0034] In S411, GDI202 makes a page send DDI call (DrvSendPage) to GD module 208. In S412, the GD module 208 issues a bit block transfer instruction to the GDI 202 during the processing of the page transmission DDI. The bit block transfer instruction instructs the transfer of the drawing area of the "memory device context" (the area corresponding to the additional drawing memory 303) to the drawing area of the "printer device context" (the area corresponding to the drawing memory 304). API functions such as BitBlt, TransparentBlt, StretchBlt, and AlphaBlend can be used for this instruction. In S413, GDI202 calls a bit block transfer DDI to GD module 208. At this time, GDI202 calls a DDI corresponding to the API function used in S412. Through this process, the contents of the drawing area of the "memory device context" are transferred to the drawing area of the "printer device context," and the contents of the additional drawing are combined with the drawing area of the "printer device context."
[0035] At S414, the print processor 205 issues a memory device context deletion instruction (DeleteDC).
[0036] The above is a description of a sequence diagram illustrating an example of how the page rendering process works during additional rendering. By performing this operation, additional rendering can be performed in front of the rendering content issued by application 204.
[0037] Furthermore, if the print processor 205 directly specifies the "printer device context" using the GDI 202 API to perform additional drawing, a phenomenon occurs where additional drawing is performed behind the drawing content issued by application 204. This phenomenon is explained here.
[0038] Normally, after a physical page end instruction (GdiEndPageEMF), GDI202 calls a drawing function to GD module 208, and the drawing content issued by application 204 is drawn to the drawing area of the "printer device context" (the area corresponding to the drawing memory 304). Therefore, if the print processor 205 calls the GDI202 API to perform additional drawing before the physical page end instruction (GdiEndPageEMF), the additional drawing will be performed before the drawing content issued by the application 204. As a result, the additional drawing will be performed in the background.
[0039] On the other hand, if the print processor 205 calls the GDI202 API to perform an additional drawing after a physical page end instruction (GdiEndPageEMF), the GD module 208 has already finished processing the target physical page. Therefore, the additional drawing will be performed on the back of the next physical page after the target physical page. Consequently, in this case as well, it is not possible to perform an additional drawing on the front of the target physical page.
[0040] Therefore, in this embodiment, additional drawing is performed in the drawing area of the "memory device context" (the area corresponding to the additional drawing memory 303). Then, after the drawing function is called in the GD module 208 and the drawing content issued by the application 204 is drawn in the drawing area of the "printer device context" (the area corresponding to the drawing memory 304), a method is used in which a command to combine the drawing area of the "memory device context" and the drawing area of the "printer device context" is issued. This makes it possible to perform additional drawing in front of the target physical page.
[0041] Figure 5 shows an example of an additional drawing settings screen displayed on the display unit 119 by the UI module 207 in the first embodiment. Users can, as needed, call the additional drawing settings window 501 from application 204 or OS201 and configure the additional drawing settings information. The additional drawing settings window 501 has one or more additional drawing settings items 502. In this embodiment, the additional drawing settings items include enable, type, text string, color, position, rotation angle, size, and transparency of the additional drawing, but the present invention is not limited thereto. The notation of each item is also not limited thereto. For example, "Transparency" may be "Print on top". Furthermore, the settings when the "Transparency" checkbox is checked may be the same as the settings when the "Print on top" checkbox is unchecked.
[0042] The additional drawing setting item 502 has a corresponding input user interface 503. The user can set the additional drawing setting information by inputting the desired setting value into the input user interface 503 using a pointing device 117, a keyboard 118, etc.
[0043] After setting the additional drawing settings as described above, the user presses the Cancel button 504 if they do not want to apply the settings, or the OK button 505 if they want to apply the settings. Furthermore, the additional drawing settings information may be stored as preset information in the printer driver 206, with some or all combinations of this information available for the user to select from. Alternatively, the additional drawing settings information may be determined independently of user input.
[0044] Figure 6 is a flowchart showing an example of the operation of the page drawing process of the print processor 205 in this embodiment. In S601, the print processor 205 issues a physical page start instruction to the GDI 202 and executes the processes in S602 to S610.
[0045] The processing in S602-S610 is a loop process that performs a specific operation on each spool page (from the first spool page to the last spool page) within the EMF spool file 301 that is to be allocated to the physical page to be processed. In other words, if one spool page is to be allocated as a logical page to the target physical page, the loop is performed once. If four spool pages are to be allocated as logical pages to the target physical page, the loop is performed four times.
[0046] The following describes the processing in S602 to S610 in detail. In S603, if a previously allocated spool page exists, the print processor 205 compares the print settings of that spool page with those of the spool page currently being allocated. If there are any changes to the print settings that affect the allocation (if YES is found in S603), the "printer device context" is updated in S604, and the process proceeds to S605. The "printer device context" can be updated, for example, by calling the GDI202 API function ResetDC. On the other hand, if there are no changes to the print settings of the previously allocated spool page and the spool page currently being allocated (the answer is NO in S603), the print processor 205 proceeds to S605.
[0047] In step S605, the print processor 205 performs calculations on how to allocate logical pages. Based on the calculation results in S605, it determines the coordinates, size, cropping method, and orientation when allocating logical pages to physical pages. After this, if necessary, the GDI202 API function SetWorldTransform may be called to apply a 2D linear transformation setting (rotation, scaling, translation, etc.) to the "printer device context" to instruct the transformation of the allocation coordinates.
[0048] In S606, the print processor 205 obtains additional drawing setting information from the UI module 207. In S607, the print processor 205 determines whether the additional drawing function is ON (enabled) based on the additional drawing setting information acquired in S607. If the additional drawing function is ON (YES in S607), the print processor 205 performs the additional drawing process (S608). Details of the additional drawing process will be described later. After the processing in S608, the print processor 205 proceeds to S610. On the other hand, if the additional drawing function is not ON (NO in S607), the print processor 205 proceeds to S609.
[0049] Next, in S609, the print processor 205 issues a logical page drawing instruction to the GDI 202. This process notifies the OS 201 of the logical page allocation method calculated in S605. After the processing in S609, the print processor 205 proceeds to S610.
[0050] At S610, if the logical page allocation for the target physical page is not yet complete, the print processor 205 repeats the loop from S602 to S610. On the other hand, if the logical page allocation for the target physical page is complete, the print processor 205 proceeds to S611.
[0051] In S611, the print processor 205 issues a physical page end instruction to the GDI 202. In response to the physical page end instruction in S611, the GD module 208 starts the print data generation and transmission process in S612. Details of this print data generation and transmission process will be described later.
[0052] In S613, the print processor 205 determines whether a "memory device context" has been created. If it has been created (YES in S613), the print processor 205 discards the "memory device context" and terminates the processing of this flowchart. On the other hand, if a "memory device context" has not been created (if NO is found in S613), the print processor 205 terminates the processing of this flowchart. The above is an example of how the page drawing process works during additional drawing in the print processor 205.
[0053] Figure 7 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the first embodiment. In S701, the print processor 205 determines whether a "memory device context" has already been created. If it has not been created (the result in NO in S701), the print processor 205 creates a "memory device context" (S702) and proceeds to S703. On the other hand, if a "memory device context" has already been created (if the answer is YES in S701), the print processor 205 proceeds to S703.
[0054] The "memory device context" generated in S702 is a device context for abstracting a virtual drawing area for performing additional drawing. Furthermore, since no notification of a print page is sent to OS201 when this "memory device context" is generated, it is possible to suppress OS201 from recognizing extra pages for additional drawing.
[0055] In S703, the print processor 205 performs calculation processing for the additional drawing method. In this process, it calculates the drawing method based on the additional drawing setting information. For example, the print processor 205 determines the size of the characters or images to be drawn based on the "size" setting value of the additional drawing setting information, and determines the coordinates to be drawn based on the "position" setting value. In addition, it is preferable that the print processor 205 uses the calculation result of the logical page allocation method calculated in S605 to determine the coordinates, direction, size, etc., of the additional drawing. This allows additional drawing to be performed on each logical page, and even if the print settings differ for each spool page, additional drawing that matches the print settings of each spool page can be performed on the corresponding logical page.
[0056] In S704, the print processor 205 issues an additional drawing instruction to the drawing area of the "memory device context" by calling the GDI202 API based on the calculation result of S703.
[0057] In S705, the print processor 205 notifies the GD module 208 of the device context handle and the memory device context handle via GDI202. In this embodiment, this is done using the GDI202 API function ExtEscape, but the method is not limited to this, and notification may be done by any method. Next, in S706, the print processor 205 issues a logical page drawing command to the GDI 202. The above is an example of the operation of the additional drawing process of the print processor 205 (S609 in Figure 6) in the first embodiment.
[0058] Figure 8 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the first embodiment. In S801, the GD module 208 performs the drawing process for the drawing content issued by application 204. This process is carried out by GDI202 calling the drawing function.
[0059] In S802, the GD module 208 determines whether or not additional drawing is ON. In this embodiment, the driver configuration information is stored in the DEVMODE structure. Therefore, in this embodiment, when the GD module 208 determines the driver configuration information, it directly or indirectly refers to the value stored in the DEVMODE structure, but the present invention is not limited thereto.
[0060] If additional drawing is ON (YES in S802), the GD module 208 proceeds to S803. On the other hand, if additional drawing is not ON (NO in S802), the GD module 208 proceeds to S806.
[0061] In S803, the GD module 208 determines whether the transparency setting for additional drawing is ON. If the transparency setting is ON (YES in S803), the GD module 208 proceeds to S804. In S804, the GD module 208 performs a Boolean AND operation to combine the drawing content issued by application 204 with the additional drawing, and generates the combined raster data. In this embodiment, the Boolean AND operation is performed as follows. When the GD module 208 performs a bit block transfer of the "memory device context" to the drawing area of the "printer device context", it calculates each bit of the color information of each pixel after combining by performing a logical AND operation between each bit of the color information of each pixel at the same coordinate. To perform this combining method, for example, the GDI202 API function BitBlt can be used and SRCAND can be specified as the raster operation code. With this combining method, pixels where the drawing content issued by application 204 and the additional drawing overlap are color-mixed, and a representation can be achieved in which the drawing content drawn below the additional drawing is transparent. After the processing in S804, the GD module 208 proceeds to processing in S806.
[0062] On the other hand, if the transparency setting is not ON (NO in S803), the GD module 208 proceeds to S805. In S805, the GD module 208 performs composite drawing on top of the drawing content issued by application 204 and generates composite raster data. In this embodiment, the GD module 208 performs the composite drawing by transferring bit blocks of the memory device context to the drawing area of the "printer device context". To perform this composite drawing, for example, the TransparentBlt API function of GDI202 can be used, and the background color of the memory device context can be specified as the transparent color when calling the function. This composite method makes it possible to obtain a drawing result in which additional drawing is performed on top of the drawing content issued by application 204. After the processing in S805, the GD module 208 proceeds to processing in S806.
[0063] In S806, the GD module 208 performs print data generation processing based on the combined raster data. In S807, the GD module 208 performs print data transmission processing to send the print data generated in S806 to the printing device. The above is an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the first embodiment.
[0064] Figure 9 schematically shows an example of synthesized raster data when one spool page is allocated as a logical page to one physical page in the first embodiment.
[0065] If the additional drawing setting is turned OFF, the result shown in Figure 9(a) will be obtained. In Figure 9(a), 901 is the drawing result of the drawing content issued by application 204. Furthermore, when the additional drawing setting is ON and transparency is OFF, the composite raster data shown in Figure 9(b) is obtained. In Figure 9(b), 902 is the result of the additional drawing drawn on the front. Furthermore, when both the additional drawing setting and the transparency setting are enabled, the composite raster data shown in Figure 9(c) is obtained. In Figure 9(c), 903 is the result of the additional drawing composited by a Boolean AND operation, and a drawing effect similar to transparency is obtained.
[0066] Figure 10 schematically shows an example of combined raster data when two spool pages with identical print settings are assigned as logical pages to a single physical page in the first embodiment. Figures 10(a), 10(b), and 10(c) are the results of rendering with the same additional rendering settings as Figures 9(a), 9(b), and 9(c), respectively. Thus, according to this embodiment, additional rendering can be performed on multiple logical pages.
[0067] Figure 11 schematically shows an example of combined raster data when two logical pages with different print settings are assigned to one physical page in the first embodiment. The first logical page is allocated with a portrait orientation spool page, and the second logical page is allocated with a landscape orientation spool page. In this case, the second logical page is calculated and allocated by the print processor 205 to rotate 90° to the left in order to increase the allocated area.
[0068] Figures 11(a), 11(b), and 11(c) show the results of drawing with the same additional drawing settings as in Figures 9(a), 9(b), and 9(c), respectively. In this embodiment, as shown in Figures 11(b) and 11(c), it is possible to draw the additional drawing in accordance with the direction of each logical page. Thus, according to this embodiment, appropriate additional drawing can be performed for multiple logical pages with different print settings.
[0069] As described above, according to this embodiment, it is possible to perform additional drawing on top of the drawing content issued by the application, and if necessary, visual effects such as transparency can be applied to the additional drawing. Furthermore, in this embodiment, since no extra page start or page end notifications are issued, the number of pages actually printed can be made to match the number of pages notified to the OS. Therefore, when the number of printed pages is displayed using the OS function, user confusion can be prevented. In this way, the problems of the conventional technology can be solved.
[0070] [Second Embodiment] In the first embodiment, a Boolean AND operation was used to obtain the transparency effect of the additional drawing. However, due to the nature of the Boolean AND operation, if the color of the additional drawing is set to white, the drawing will not be performed, and the user may not obtain the print result they intended. Therefore, in this embodiment, a method is described in which a pseudo-transparency process is performed by applying a halftone process to the additional drawing and then drawing it on top of it, in order to obtain the transparency effect of the additional drawing. In this embodiment, the configuration is the same as in the first embodiment unless otherwise specified.
[0071] Figure 12 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the second embodiment. The processes in S1201 to S1204 are the same as the processes in S701 to S704 of the first embodiment.
[0072] In S1205, the print processor 205 determines whether the transparency setting for additional drawing is ON. If the transparency setting is ON (YES in S1205), the print processor 205 proceeds to S1206.
[0073] In S1206, the print processor 205 performs halftone processing on the drawing area of the "memory device context" and proceeds to S1207. Halftoning can be performed by any method, but in this embodiment, halftoning is performed by overwriting the drawing area of the memory device context with a pattern in which squares with sides of 3 pixels, which are the background color of the memory device context, are alternately arranged. However, this side length is just an example and is not limited to this length. Also, the method of halftoning is not limited to this.
[0074] On the other hand, if the transparency setting is not ON (NO in S1205), the print processor 205 proceeds to S1207. The processing in S1207 and S1208 is the same as the processing in S705 and S706 of the first embodiment. The above is an example of the operation of the additional drawing process (S609) of the print processor 205 in the second embodiment.
[0075] Figure 13 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the second embodiment. The process in S1301 is the same as the process in S801 of the first embodiment.
[0076] In S1302, the GD module 208 determines whether or not additional drawing is ON. If additional drawing is ON (YES in S1302), the GD module 208 proceeds to S1303. On the other hand, if additional drawing is not ON (NO in S1302), the GD module 208 proceeds to S1304.
[0077] Steps S1303 to S1305 are the same as steps S805 to S807 in the first embodiment. The above is an example of the operation of the print data generation and transmission process (S612) of the GD module 208 in the second embodiment.
[0078] Figure 14 schematically shows an example of the synthesized raster data in the second embodiment. If the additional drawing setting is turned OFF, the resulting raster data will be as shown in Figure 14(a). In Figure 14(a), 1401 is the drawing result of the drawing content issued by application 204.
[0079] Here, when the additional drawing is set to ON and transparency is set to OFF, the composite raster data shown in Figure 14(b) is obtained. In Figure 14(b), 1402 shows the drawing result of the additional drawing drawn on the front. Also, 1403 shows an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area. In this embodiment, when transparency is set to OFF, it is represented as a solid color, as shown in 1403.
[0080] On the other hand, when both the additional drawing and transparency settings are ON, the composite raster data shown in Figure 14(c) is obtained. In Figure 14(c), 1404 shows the result of the additional drawing that was drawn on top after the halftone processing. Also, 1405 shows an enlarged view of the drawing result of the additional drawing, showing an 18x18 pixel area. In this way, transparency processing can be applied to the additional drawing by halftoning the additional drawing.
[0081] Thus, in this embodiment, in addition to the effects shown in the first embodiment, the following effects can be obtained. That is, regardless of the setting of the color of the additional drawing (even when the color of the additional drawing is set to white), an additional drawing with a transparency effect can be executed on top of the drawing content issued by the application.
[0082] [Third Embodiment] In the second embodiment, a method was used in which a halftone process was applied to the additional drawing to obtain a transparency effect. However, in the halftone process, if the halftone repetition unit is small, the data size does not decrease significantly even with image compression. Therefore, when the combined raster data generated by the GD module 208 is compressed and sent to the printing device 102, this may lead to a decrease in printing speed. On the other hand, if the halftone repetition unit is large, and the size of the characters drawn by the additional drawing is small, the characters may become difficult to read. Therefore, in this embodiment, a method is described in which the size of the repetition unit of the halftone process for the additional drawing is changed according to the size of the additional drawing. Unless otherwise specified, this embodiment is the same as the second embodiment.
[0083] Figure 15 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the third embodiment. The processes in S1501 to S1504 are the same as those in S1201 to S1204 of the second embodiment.
[0084] In S1505, the print processor 205 determines whether the transparency setting for additional drawing is ON. If the transparency setting is ON (YES in S1505), the print processor 205 proceeds to S1506. On the other hand, if the transparency setting is not ON (NO in S1505), the print processor 205 proceeds to S1509.
[0085] In S1506, the print processor 205 determines the size of the additional drawing. In this embodiment, the print processor 205 refers to the setting value of "size" in the additional drawing setting information and determines whether the value is below a certain threshold. If it is below the threshold (YES in S1506), the print processor 205 proceeds to S1507. On the other hand, if the value is not below the threshold (i.e., NO in S1506), the print processor 205 proceeds to S1508.
[0086] In S1507 and S1508, halftone processing is performed on the drawing area of the memory device context. In this embodiment, halftone processing is performed by overwriting the drawing area of the memory device context with a pattern in which squares, which are the background color of the memory device context, are alternately arranged. In this case, in S1507, the length of one side of the square is 3 pixels. On the other hand, in S1508, the length of one side of the square is 6 pixels. However, this length of one side is just an example and is not limited to this length. The size of the additional drawing may be divided into three or more cases and halftone processing may be performed. In this case, the length of one side of the square will also be divided into three or more cases.
[0087] After the halftone processing in S1507 or S1508, the print processor 205 proceeds to processing in S1509. The processes in S1509 and S1510 are the same as the processes in S1207 and S1208 of the second embodiment. The above is an example of the operation of the additional drawing process of the print processor 205 (S609 in Figure 6) in the third embodiment.
[0088] Figure 16 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the third embodiment. The processes in S1601 to S1603 are the same as those in S1301 to S1303 of the second embodiment.
[0089] In S1604, the GD module 208 performs compression on the synthesized raster data. This compression can be performed using any known method. After the processing in S1604, the GD module 208 proceeds to S1605. The processes in S1605 and S1606 are the same as the processes in S1304 and S1305 of the second embodiment. The above is an example of the operation of the print data generation and transmission process of the GD module 208 in the third embodiment (S612 in Figure 6).
[0090] Figure 17 schematically shows an example of the synthesized raster data in the third embodiment. If the additional drawing setting is turned OFF, the resulting raster data will be as shown in Figure 17(a). In Figure 17(a), 1701 is the drawing result of the drawing content issued by application 204.
[0091] Here, when the additional drawing is set to ON and transparency is set to OFF, and the character size is below the threshold, composite raster data like that shown in Figure 17(b) is obtained. In Figure 17(b), 1702 shows the drawing result of the additional drawing drawn on the front. Also, 1703 shows an enlarged view of the drawing result of the additional drawing, showing an 18-pixel × 18-pixel area. In the third embodiment, when transparency is set to OFF, it is represented as a solid color, as shown in 1703.
[0092] Furthermore, when the additional drawing setting is ON and the transparency setting is ON, and the character size is below the threshold, the composite raster data shown in Figure 17(c) is obtained. In Figure 17(c), 1704 shows the drawing result of the additional drawing that was drawn on top after the halftone processing. Also, 1705 shows an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area.
[0093] Furthermore, when additional drawing is set to ON and transparency is set to ON, and the character size is greater than the threshold, the composite raster data shown in Figure 7(d) is obtained. 1706 in Figure 7(d) is the same as 1704. Also, 1707 is the same as 1705, but the halftone processing repetition unit for 1707 is larger compared to 1705.
[0094] In the composite raster data shown in Figure 17(c), the character size of the added drawing is small, so the halftone processing repetition unit is reduced to make the characters drawn by the added drawing easier to read. In this case, because the size of the added drawing itself is small, the impact on the compressed data size when compressing the composite raster data can be minimized.
[0095] On the other hand, in the composite raster data shown in Figure 17(d), the character size of the added drawing is large, so in order to suppress the increase in data size when compressing the composite raster data, the repetition unit of the halftone processing is increased. In this case, because the size of the added drawing itself is large, the legibility of the characters does not decrease even if the repetition unit of the halftone processing is increased. Also, because the halftone repetition unit is large, the data size after compression can be reduced.
[0096] By the method described above, in this embodiment, in addition to the effects shown in the first and second embodiments, the following effects can be obtained. That is, when generating print data after image compression, it is possible to suppress the increase in the size of the print data without significantly reducing the readability of the additional drawing, and to suppress the decrease in speed when transmitting to the printing device.
[0097] [Fourth Embodiment] In the third embodiment, a method was described for applying transparency processing to additional drawings while suppressing a decrease in speed when transmitting them to the printing device, by performing appropriate halftoning processing according to the size of the additional drawings. However, in halftoning processing, it may be undesirable from a print quality standpoint if the repeating pattern can be visually confirmed in the printed result. Therefore, in this embodiment, a method for additional drawings that provides a desirable transparency effect from a print quality standpoint is described by changing the size of the repeating unit of the halftoning processing according to the media used for printing. Unless otherwise specified, this embodiment is the same as the third embodiment. In this embodiment, the user can pre-set information on the type of media to be printed to the printer driver 206, and the print processor 205 can obtain this information on the type of media to be printed from the UI module 207.
[0098] Figure 18 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the fourth embodiment. The processing in S1801 to S1804 is the same as the processing in S1501 to S1504 of the third embodiment.
[0099] In S1805, the print processor 205 determines whether the transparency setting for additional drawing is ON. If the transparency setting is ON (YES in S1805), the print processor 205 proceeds to S1806. On the other hand, if the transparency setting is not ON (NO in S1805), the print processor 205 proceeds to S1810.
[0100] In S1806, the print processor 205 obtains information about the type of media to be printed from the UI module 207 and proceeds to S1807. In this embodiment, the print processor 205 is configured to determine from the information about the type of media to be printed whether or not bleeding is unlikely to occur when printing on that media. However, this configuration is merely an example, and this determination may be performed by another module or component on the print data generation device, such as the UI module 207.
[0101] In S1807, the print processor 205 determines, based on the information obtained in S1806, whether or not the media is resistant to smudging. If it determines that the media is resistant to smudging (YES in S1807), the print processor 205 proceeds to S1808. On the other hand, if the print processor 205 determines that the media is prone to smudging (the answer is NO in S1805), it proceeds to S1809.
[0102] The processing in S1808 to S1811 is the same as the processing in S1507 to S1510 of the third embodiment. The above is an example of the operation of the additional drawing process of the print processor 205 (S609 in Figure 6) in the fourth embodiment.
[0103] Figure 19 schematically shows an example of the synthesized raster data in the fourth embodiment. If the additional drawing setting is turned OFF, the resulting raster data after synthesis will be as shown in Figure 19(a). In Figure 19(a), 1901 is the drawing result of the drawing content issued by application 204.
[0104] In this case, when the additional drawing is set to ON and transparency is set to OFF, the composite raster data shown in Figure 19(b) is obtained. In Figure 19(b), 1902 shows the drawing result of the additional drawing drawn on the front. 1903 is an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area. In this embodiment, when transparency is set to OFF, it is represented as a solid color, as shown in 1903.
[0105] Furthermore, when additional drawing is set to ON and transparency is set to ON, and the selected media is one that is less prone to blurring, the composite raster data shown in Figure 19(c) can be obtained. In Figure 19(c), 1904 shows the result of the additional drawing that was drawn on the foreground after halftone processing. 1905 is an enlarged view of the drawing result of the additional drawing, showing an 18x18 pixel area.
[0106] Furthermore, when additional drawing is set to ON and transparency is set to ON, and the selected media is prone to blurring, the composite raster data shown in Figure 19(d) is obtained. 1906 in Figure 19(d) is the same as 1904. Also, 1907 is the same as 1905, but 1907 has a larger halftone processing repetition unit compared to 1905.
[0107] If it is undesirable for print quality to be able to visually confirm repeating patterns in the printed result, then for media that do not easily bleed, it is preferable to reduce the repeating unit of the halftone process, as shown in Figure 19(c). On the other hand, for media that easily bleed, even if the repeating unit of the halftone process is increased, as shown in Figure 19(d), it becomes difficult to visually confirm the repeating pattern due to bleeding during printing.
[0108] Generally, media that are prone to ink bleeding, such as plain paper, tend to be inexpensive and are often used for mass printing and draft printing. In this case, printing speed is important, but as described in the third embodiment, it is possible to suppress the increase in the size of the print data and prevent a decrease in printing speed by increasing the repetition unit. On the other hand, media that are not prone to ink bleeding, such as glossy paper, tend to be expensive and are often used for small-volume printing. In this case, print quality is more important than printing speed. That is, when performing additional drawing on media that is not prone to ink bleeding, it is possible to prevent a decrease in print quality by reducing the repetition unit.
[0109] As described above, in addition to the effects shown in the first and second embodiments, the following effects can be obtained in this embodiment. That is, when generating print data after image compression, it is possible to perform printing with appropriate print quality and print speed according to the set media.
[0110] [Fifth Embodiment] In the fourth embodiment, a method was described for changing the size of the halftone processing repetition unit depending on whether the set media is prone to bleeding or not, and for performing printing at appropriate print quality and speed. This configuration can be applied not only to media but also to other main components such as colorants (printing agents). Therefore, in this embodiment, a print data generation device is described in which the print processor 205 can acquire information about the installed ink tanks from the printing device 102 and can determine from the information of the ink tanks whether the ink is prone to bleeding or not. Unless otherwise specified, this embodiment is the same as the fourth embodiment.
[0111] Figure 20 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the fifth embodiment. The processes from S2001 to S2005 and from S2008 to S2010 are the same as the processes from S1801 to S1805 and from S1807 to S1810 in the fourth embodiment.
[0112] In S2006, the print processor 205 acquires information about the ink tanks installed in the printing device 102 and proceeds to S2007. In this embodiment, the print processor 205 is configured to determine from the information about the ink tanks whether or not bleeding is likely to occur when printing. However, this configuration is merely an example, and this determination may be performed by other modules or components on the print data generation device, such as the UI module 207. Furthermore, if the printing device is configured to have multiple ink tanks installed, one or more arbitrary ink tanks can be used for the determination of ink bleeding susceptibility. For example, the configuration may be configured to select the ink tank to be used for the determination based on the "color" setting information of the additional drawing setting information, or it may be configured to always use only the black ink tank for the determination.
[0113] In S2007, the print processor 205 determines whether the ink is unlikely to bleed based on the information obtained in S2006. If it determines that the ink is unlikely to bleed (YES in S2007), the print processor 205 proceeds to S2008. On the other hand, if it determines that the ink is likely to bleed (NO in S2007), the print processor 205 proceeds to S2009.
[0114] The processing in S2008 to S2011 is the same as the processing in S1808 to S1811 of the third embodiment. The above is an example of the operation of the additional drawing process of the print processor 205 (S609 in Figure 6) in the fifth embodiment.
[0115] The raster data after synthesis in this embodiment is the same as in the fourth embodiment, except that ink information is used instead of media information for determination. Therefore, for inks that do not bleed easily, the repeating unit of the halftone process becomes smaller, and for inks that bleed easily, the repeating unit becomes larger, resulting in the obtained raster data after synthesis.
[0116] Generally, dye-based inks penetrate the paper fibers to produce color, so it may not be necessary to reduce the repeating unit of the halftone process. On the other hand, pigment-based inks produce color by fixing solid particles to the surface of the media, resulting in high-definition printing. In this case, a smaller repeating pattern for additional drawing is preferable.
[0117] As described above, according to this embodiment, in addition to the effects shown in the first and second embodiments, it is possible to perform additional drawing printing with halftone processing using a repetition unit suitable from the viewpoint of print quality and printing speed, depending on the characteristics of the ink.
[0118] Furthermore, the colorant of the present invention is not limited to ink, but can also be applied to other colorants such as toner. For example, if the printer driver 206 is common to all models, the configuration may be such that the number of repetitions of the halftone processing is changed depending on whether the colorant is ink or toner. Furthermore, since the size of the preferred halftone processing repetition unit differs depending on the physical properties such as viscoelasticity when the toner is fixed to the media, it is also possible to configure the system to change the halftone processing repetition unit depending on the type of toner. Furthermore, the fourth and fifth embodiments may be combined, and the likelihood of bleeding may be determined depending on the combination of the set media and colorant (printing agent).
[0119] [Sixth Embodiment] In the second to fifth embodiments, a method was used to obtain a transparency effect by applying a halftone process to the added drawing. When a halftone process is applied, for example, when an added drawing is performed on a white background, the white background becomes transparent, causing the color of the added drawing to become lighter. In added drawing, even if it is acceptable for the color to become lighter when drawing text, it may be undesirable when drawing an image. For example, when printing a logo image as an added drawing, there is a requirement to print it without lightening the color from the perspective of the logo's design. If it is possible to satisfy such a requirement while also making the parts that overlap with the drawing content issued by application 204 transparent, it is preferable to apply the transparency process using a Boolean AND operation, as shown in the first embodiment, only when adding an image as an added drawing.
[0120] Therefore, in this embodiment, we describe an embodiment in which, when drawing an image as an additional drawing, transparency processing is performed using a Boolean AND operation, and when drawing characters as an additional drawing, transparency processing is performed using halftone processing. Unless otherwise specified, this embodiment is the same as the first embodiment.
[0121] Figure 21 is a flowchart showing an example of the operation of the additional drawing process (S609 in Figure 6) of the print processor 205 in the sixth embodiment. The processing in S2101 to S2104 is the same as the processing in S1201 to S1204 of the second embodiment.
[0122] In S2105, the print processor 205 determines whether the additional drawing is an image or not. This determination can be made by referring to the "Type" in the additional drawing setting information. If the additional drawing is text (YES in S2105), the print processor 205 proceeds to S2106. On the other hand, if it is an image (NO in S2105), the print processor 205 proceeds to S2108.
[0123] The processing in S2106 to S2109 is the same as the processing in S1205 to S1208 of the second embodiment. The above is an example of the operation of the additional drawing process of the print processor 205 (S609 in Figure 6) in the sixth embodiment.
[0124] Figure 22 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the sixth embodiment. The processes in S2201 and S2202 are the same as those in S801 and S802 of the first embodiment.
[0125] In S2203, the GD module 208 determines whether the additional drawing is an image or not. If it is an image (YES in S2203), the GD module 208 proceeds to S2204. On the other hand, if it is text (NO in S2203), the GD module 208 proceeds to S2206.
[0126] The processing in S2204 to S2208 is the same as the processing in S803 to S807 of the first embodiment. The above is an example of the operation of the print data generation and transmission process of the GD module 208 in the sixth embodiment (S612 in Figure 6).
[0127] Figure 23 schematically shows an example of the synthesized raster data in the sixth embodiment. If the additional drawing setting is turned OFF, the resulting raster data will be as shown in Figure 23(a). In Figure 23(a), 2301 is the drawing result of the drawing content issued by application 204.
[0128] Here, when the additional drawing setting is ON and transparency is OFF, and characters are drawn as additional drawing, the composite raster data shown in Figure 23(b) is obtained. In Figure 23(b), 2302 shows the drawing result of the additional drawing drawn in the foreground. 2303 is an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area. In this embodiment, when transparency is OFF, it is represented as a solid color, as shown in 2303.
[0129] Furthermore, when the additional drawing setting is ON and transparency is ON, and characters are drawn as additional drawing, the composite raster data shown in Figure 23(c) is obtained. In Figure 23(c), 2304 shows the drawing result of the additional drawing that was drawn in the foreground after the halftone processing. 2305 is an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area.
[0130] Furthermore, when the additional drawing setting is ON and transparency is OFF, and an image is drawn as an additional drawing, the composite raster data shown in Figure 23(d) is obtained. Furthermore, when the additional drawing setting is ON and the transparency setting is ON, and an image is drawn as an additional drawing, the composite raster data shown in Figure 23(e) is obtained. In Figure 23(e), 2306 to 2309 correspond to 2302 to 2305, but 2308 and 2309 are not characters that have been processed with halftone, but images composited by a Boolean AND operation.
[0131] As shown in Figure 23, when halftoning is performed and transparency is applied, the color becomes lighter, while when transparency is applied using a Boolean AND operation, the color does not become lighter. As mentioned above, when halftoning is performed, even if the text color is set to white, it has the advantage that it will be drawn in transparent white on top of the drawing content issued by application 204. For example, if you want to add white text on top of a photograph, it will be printed as intended by the user. On the other hand, if you want to add a logo to a printed document, you can print the logo without lightening its color and with transparency applied to the document. As described above, according to this embodiment, in addition to the effects shown in the first embodiment, appropriate additional drawing processing can be performed depending on whether the content of the additional drawing is text or an image.
[0132] [Seventh Embodiment] In the second to fifth embodiments, a method was used to obtain a transparency effect by applying a halftone process to the added drawing. However, in the halftone process, if the transparency of the added drawing is to be adjusted, it is necessary to change the geometric pattern of the halftone, and complex processing is required for calculating the pattern. Therefore, this embodiment describes a method for processing the transparency of an added drawing in which the transparency can be specified. Unless otherwise specified, this embodiment is the same as the first embodiment.
[0133] Figure 24 shows an example of an additional drawing settings screen displayed on the display unit 119 by the UI module 207 in the seventh embodiment. Items 2401 to 2405 are the same as items 501 to 505 of the first embodiment. However, the additional drawing setting item 2402 includes "Transparency" 2402a. Among the input user interface 2403, item 2403a corresponding to "Transparency" must allow the user to select a desired transparency from a set of discrete or continuous values. Examples include sliders, drop-down lists, text boxes, combo boxes, and radio buttons, but the present invention is not limited to these. The value may be a numerical value, but it may also be selectable from characters or strings such as "Low," "Medium," and "High."
[0134] Figure 25 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in Figure 6) of the GD module 208 in the seventh embodiment. The processing in S2501 to S2503 is the same as the processing in S801 to S803 of the first embodiment.
[0135] In S2504, the GD module 208 obtains the "transparency" setting from the UI module 207 and proceeds to S2505. In S2505, the GD module 208 performs an additional drawing on top of the drawing content issued by application 204 and generates composite raster data. Then, the process proceeds to S2507. In this embodiment, the contents of the drawing area of the printer device context are blended with the contents of the drawing area of the memory device context by specifying the transparency (alpha blending). To perform this blending, for example, the AlphaBlend API function of GDI202 can be used, and when calling the function, the value can be converted and specified so that it is drawn with the specified transparency. The above is an example of the operation of the print data generation and transmission process of the GD module 208 in the seventh embodiment (S612 in Figure 6).
[0136] Figure 26 schematically shows an example of the synthesized raster data in the seventh embodiment. If the additional drawing setting is turned OFF, the resulting raster data after synthesis will be as shown in Figure 26(a). In Figure 26(a), 2601 is the drawing result of the drawing content issued by application 204.
[0137] Here, when the additional drawing is set to ON and transparency is set to OFF, the composite raster data shown in Figure 26(b) is obtained. In Figure 26(b), 2602 shows the drawing result of the additional drawing drawn on the front. 2603 is an enlarged view of the drawing result of the additional drawing, showing an 18-pixel x 18-pixel area. In this embodiment, when transparency is set to OFF, it is represented as a solid color, as shown in 2603.
[0138] On the other hand, when both the additional drawing setting and the transparency setting are enabled, composite raster data like that shown in Figure 26(c) is obtained. In Figure 26(c), 2604 shows the drawing result of additional drawing performed by a composite process with specified transparency. 2605 is an enlarged view of the drawing result of the additional drawing, showing an 18x18 pixel area, which, like 2603, is a solid color. Note that the degree of transparency in 2604 and 2605 is changed according to the "transparency" setting. As described above, according to this embodiment, in addition to the effects shown in the first embodiment, the user can specify an arbitrary transparency and perform additional drawing.
[0139] [Eighth Embodiment] In this embodiment, an example of drawing page numbers as an additional drawing is described. Unless otherwise specified, this embodiment is the same as the first embodiment. Figure 27 shows an example of an additional drawing settings screen displayed on the display unit 119 by the UI module 207 in the eighth embodiment.
[0140] Items 2701 to 2705 are the same as items 501 to 505 in the first embodiment. However, the additional drawing setting item 2702 includes "page number" 2702a. The page number preferably includes "position" 2702b as an additional drawing setting item subordinate to it. The input user interface 2703 corresponding to "page number" 2702a and "position" 2702b is 2703a and 2703b. The setting of 2702b determines at which position on the logical page the page number is drawn.
[0141] Figure 28 schematically shows an example of synthesized raster data when one spool page is allocated as a logical page to one physical page in the eighth embodiment. If the additional drawing setting is turned OFF, the result shown in Figure 28(a) is obtained. In Figure 28(a), 2801 is the drawing result of the drawing content issued by application 204, and it is assumed that the drawing content includes not only text but also a background color.
[0142] Here, when the additional drawing setting is ON and the page number setting is ON, the combined raster data shown in Figure 28(b) is obtained. In Figure 28(b), 2802 is the result of drawing the page number, and it is drawn in front of the drawing content issued by application 204.
[0143] On the other hand, when two spool pages with identical print settings are assigned as logical pages to a single physical page, the resulting raster data after synthesis will be as shown in Figure 28(c). Here, when additional drawing is set to ON and page numbering is set to ON, the resulting raster data as shown in Figure 28(d) is obtained. In this case, the page number drawing result 2803 is drawn for each logical page.
[0144] In this embodiment, the print processor 205 performs additional drawing processing for each logical page. Since the print processor 205 is a component that allocates logical pages, it can draw the corresponding page number for each logical page. As described above, according to this embodiment, in addition to the effects shown in the first embodiment, it is possible to perform additional drawing that includes different content for each logical page, such as page numbers.
[0145] Furthermore, the present invention is not limited to page numbers. For example, it is possible to perform additional drawings with different content on the front and back when printing on both sides, or to change the position of additional drawings drawn on a logical page depending on the position of the logical page when printing in a layout, thereby enabling more flexible additional drawing.
[0146] As described above, each embodiment makes it possible to add visual effects to the drawing content issued by the application, and is less subject to OS constraints, while also being able to notify the OS of the correct number of pages. Therefore, even when the OS displays the number of printed pages using its functions, it is possible to prevent user confusion caused by a value that differs from the actual number of printed pages.
[0147] [Ninth Embodiment] When using user-created image data 302 as data for additional rendering, the following problems arise. Specifically, in the point-and-print method described above, if the print processor 205 and GD module 208 are configured to process on the server side (hereinafter referred to as "server-side rendering"), it is difficult to send the image data 302 to the server. One way to solve this is for the UI module 207 to insert an additional drawing spool page into the spool file 301, and for the print processor 205 to instruct the printer to draw by overlapping the normal spool page (hereinafter referred to as the "logical spool page") with the additional drawing spool page. However, as mentioned above, this method cannot be executed in the splwow64 process.
[0148] The ninth embodiment describes a method for performing appropriate processing depending on whether or not it is a splwow64 process, and whether the type of additional drawing is "text" or "image". In this embodiment, the configuration is the same as in the first embodiment unless otherwise specified. In this embodiment, when the splwow64 process opens the additional drawing settings screen, it executes a predetermined control to prevent the printing of the additional drawing, which is an image. Specifically, the predetermined control is, for example, the UI module 207, by removing or graying out the option to set the additional drawing type to "image" from 503 and 2703, thereby preventing the selection of that option. Alternatively, the predetermined control may be a control that deletes the additional drawing, which is an image, and generates the print data.
[0149] Furthermore, in the ninth embodiment, the "Transparency" item in Figure 5 may be replaced with the "Transparency / Background" item. This is because when "Transparency / Background" is checked, if the type of additional drawing is text, the same processing as in the first to eighth embodiments is performed, but if the type of additional drawing is an image, processing to draw the image in the background may be performed.
[0150] Figure 29 shows an example of the data flow from when a print command is issued in application 204 until the print data is sent to the printer 102. In the ninth embodiment, when the type of additional drawing is text, the procedure is the same as in the first to eighth embodiments, but when the type of additional drawing is an image, the procedure is as follows. In this embodiment, the additional drawing of the image type is specifically, for example, an additional drawing in bitmap format.
[0151] First, application 204 calls UI module 207 to create print settings. To create print settings, UI module 207 displays a print settings screen on display unit 119, and the user may use the pointing device 117 or keyboard 118 to input the necessary setting information for additional drawing (hereinafter referred to as "additional drawing setting information"). When a user issues a print command from application 204, application 204 passes the print settings and drawing data to GDI202.
[0152] When GDI202 receives print settings and drawing data from application 204, it stores a document spool page containing the print settings and drawing information in the EMF spool file 291 via spooler 203. This drawing information is the drawing content issued by application 204. At this time, GDI202 also sends a print start notification to UI module 207. Upon receiving this notification, UI module 207 executes the spool page insertion process. Details of the spool page insertion process will be described later, but during this process, the UI module loads image data 292. This image data 292 is, for example, an image file created on the host computer 101. Also, during the spool page insertion process, UI module 207 instructs GDI202 to perform additional drawing. As a result, an additional spool page containing print settings and additional drawing command information (additional drawing information) is inserted into the EMF spool file 291. Once the EMF spool file 291 is stored, the spooler 203 loads the print processor 205.
[0153] The print processor 205 obtains additional drawing settings information from the UI module 207 for additional drawing. The print processor 205 then determines, based on the above-mentioned additional drawing settings, whether to draw the additional drawing in front of or behind the drawing issued by the application. Subsequently, the print processor 205 instructs the GD module 208 to draw the logical spool pages and append spool pages contained in the EMF spool file 291 by calling the API functions of the GDI 202. In this case, if the supplemental drawing is to be drawn in front of the drawing issued by the application, the print processor 205 calls an API function to draw the logical spool page first and then the supplemental spool page. If the supplemental drawing is to be drawn behind the drawing issued by the application, the order is reversed.
[0154] The GD module 208 performs drawing in the drawing memory 294 based on the drawing instructions received from the GDI 202. The drawing performed here includes both the drawing content issued by the application 204 and any additional drawing. Subsequently, the GD module 208 generates print data 295 that can be read by the printing device 102 based on the drawing results in the drawing memory 294, and sends it to the printing device 102.
[0155] Figure 30 is a flowchart showing an example of the flow of the spool page insertion process performed by UI module 207. In S3001, UI module 207 determines from the additional drawing settings information whether the additional drawing is text or an image. If it is text, the process in this flowchart ends; if it is an image, the process proceeds to S3002.
[0156] In S3002, UI module 207 obtains the executable file name and proceeds to S3003. In S3003, UI module 207 determines whether UI module 207 is running in the splwow64 process. That is, it determines whether the executable file is splwow64 based on the executable file name obtained in S3002. If it is a splwow64 process (YES in S3003), the process proceeds to S3004; if it is not splwow64 (NO in S3003), the process proceeds to S3005.
[0157] In S3004, UI module 207 turns off additional drawing and terminates the processing of this flowchart. Specifically, turning off additional drawing means deleting the additional drawing and controlling the process to generate print data without additional drawing processing. As mentioned above, if UI module 207 is running in the splwow64 process, a predetermined control is executed to prevent the selection of additional drawing as an image type, so normally the judgment in S3003 will not be YES. However, depending on the conditions under which UI module 207 is started, the process for executing UI module 207 may not have been determined when UI module 207 is started. Therefore, after the additional drawing as an image type is selected on the additional drawing settings screen, the splwow64 process may be determined as the process for executing UI module 207. In such cases, the judgment in S3003 will be YES, and the process in S3004 will be executed.
[0158] In S3005, UI module 207 loads image data 292 and proceeds to processing in S3006. In S3006, UI module 207 performs calculation processing for the additional drawing method using the loaded image data 292 and additional drawing setting information. In the additional drawing method calculation processing, the coordinates and size of the additional drawing are calculated. After that, the process proceeds to S3007. In S3007, UI module 207 inserts (draws) an additional spool page by calling the GDI202 API based on the calculation results from S3006. After this, the processing of this flowchart ends.
[0159] The page drawing process of the print processor 205 in the ninth embodiment can be performed in the manner shown in the flowchart of Figure 6, with some exceptions. However, the additional drawing process in S608 and the print data generation and transmission process in S612 are performed as described below. Here, the additional drawing process (S608) in this embodiment will be described.
[0160] Figure 31 is a flowchart showing an example of the operation of the additional drawing process in the ninth embodiment. In S3101, the print processor 205 determines whether the type of additional drawing is text or an image from the additional drawing setting information acquired in S607. If the type of additional drawing is text, the print processor 205 performs process A (S3102) and terminates the processing of this flowchart. Process A performs the additional drawing processing described in any of the first to eighth embodiments. That is, if the type of additional drawing is text, process A is executed regardless of whether the UI module 207 is running in the splwow64 process or not. However, it is not limited to this form. Even if the type of additional drawing is text, process B, described later, may also be performed. On the other hand, if the type of additional drawing is an image, process B is performed (S3103) and the processing of this flowchart is terminated. Process B is an additional drawing processing specific to this embodiment, and its details will be described later. That is, if the type of additional drawing is text and the UI module 207 is running in a process other than the splwow64 process, process B is executed. Furthermore, if the type of additional drawing is text and UI module 207 is running in the splwow64 process, the additional drawing process itself will not be executed (neither process A nor process B will be executed).
[0161] Figure 32 is a flowchart showing an example of the operation of process B (part of the additional drawing process in the ninth embodiment). In S3201, the print processor 205 determines from the additional drawing settings information whether transparency / background printing is ON or not. If it is not ON (NO in S3201), the process proceeds to S3203; if it is ON (YES in S3201), the process proceeds to S3202.
[0162] In S3202, the print processor 205 issues an instruction to the GDI 202 to draw an additional page. This is an instruction to draw an additional spool page inserted by the UI module 207, which is drawn behind the logical page. The process then proceeds to S3203. In S3203, the print processor 205 issues a logical page drawing command to the GDI 202. The process then proceeds to S3204.
[0163] In S3204, the print processor 205 determines from the additional drawing settings information whether transparency / background is ON or not. If it is not ON (NO in S3204), the process proceeds to S3205. If it is ON (YES in S3204), the process in this flowchart ends.
[0164] At S3205, the print processor 205 issues an instruction to the GDI 202 to draw an additional page. This is an instruction to draw an additional spool page inserted by the UI module 207, and it is drawn in front of the logical page. After that, the processing of this flowchart ends.
[0165] Figure 33 is a flowchart showing an example of the print data generation and transmission process (S609) of the GD module 208 in the ninth embodiment. In S3301, the GD module 208 determines whether or not a handle to the memory device context has been notified. In the ninth embodiment, if additional drawing is ON and the type of additional drawing is characters, then a handle to the memory device context has been notified. If a handle to the memory device context has been notified, the GD module 208 performs process C (S3302). In process C, the print data generation and transmission process is performed using the method described in any of the first to eighth embodiments, and the processing of this flowchart is terminated.
[0166] On the other hand, if it is determined in S3301 that the handle to the memory device context has not been notified, the GD module 208 performs process D (S3303), and then terminates the processing of this flowchart. Process D is a print data generation and transmission process specific to this embodiment, and its details will be described later.
[0167] Figure 34 is a flowchart showing an example of the operation of process D (part of the print data generation and transmission process in the ninth embodiment) in the ninth embodiment. In steps S3401 to S3403, the GD module 208 performs drawing in the following order: background additional drawing content, application drawing content, and front additional drawing content. The background additional drawing content is the drawing content based on the additional page drawing instruction in S3202 of process B, and the front additional drawing content is the drawing content based on the additional page drawing instruction in S3205 of process B. As a result, the GD module 208 generates raster data in which the additional drawing content is composited on the front and back of the application drawing content.
[0168] In S3404, the GD module 208 performs print data generation processing based on the raster data generated in S3401 to S3403. In S3405, the GD module 208 performs a print data transmission process, which involves sending the print data generated in S3404 to the printing device.
[0169] Figure 35 is a sequence diagram showing an example of the operation of the page drawing process during additional drawing for the UI module 207, print processor 205, GDI 202, and GD module 208. Note that the processes S3501, S3502, S3504, S3506, S3507, and S3508 are equivalent to the processes S401, S402, S407, S408, S409, and S410 shown in Figure 4.
[0170] In S3503 and S3505, the print processor 205 issues an additional page drawing instruction (GdiPlayPageEMF) to the GDI 202. This process is the same as the process in S3504, except that it instructs the GDI 202 to draw the additional spool pages inserted by the UI module 207 instead of the logical spool pages.
[0171] Note that the additional spool page instructed to be drawn in S3503 will be instructed to be drawn behind the logical spool page instructed to be drawn in S3504. On the other hand, the spool page instructed to be drawn in S3505 will be instructed to be drawn in front of the logical spool page instructed to be drawn in S3504. Furthermore, S3503, S3504, and S3505 correspond to processes S3202, S3203, and S3204 in Figure 32.
[0172] Figure 36 is a schematic diagram showing an example of raster data in the ninth embodiment. If the additional drawing setting is turned OFF, the result shown in Figure 36(a) is obtained. In Figure 36(a), 3601 is the drawing result of the drawing content issued by application 204. Here, if the additional drawing setting is ON, the type of additional drawing is "Image", and the transparency / background setting is OFF, raster data like that shown in Figure 36(b) is obtained. In Figure 36(b), 3602 is the result of the additional drawing drawn in front of the drawing content issued by application 204.
[0173] On the other hand, if the additional drawing setting is ON, the type of additional drawing is "image", and the transparency / background setting is ON, raster data like that shown in Figure 36(c) is obtained. In Figure 36(c), 3603 is the result of the additional drawing drawn behind the drawing content issued by application 204. Furthermore, if the type of additional drawing is "text," the results described in any of the first to eighth embodiments can be obtained. In this way, the ninth embodiment allows for appropriate processing to be performed according to the state of the OS and application, thereby reducing situations in which additional drawing cannot be performed.
[0174] As described above, each embodiment makes it possible to generate print data more appropriately for additional drawing on top of the drawing content issued by the application.
[0175] It should be noted that the structure and content of the various data described above are not limited to those mentioned, and it goes without saying that they can be composed of various structures and contents depending on the use and purpose. Although one embodiment has been described above, the present invention can take the form of, for example, a system, apparatus, method, program, or storage medium. Specifically, it may be applied to a system consisting of multiple devices, or to an apparatus consisting of a single device. Furthermore, any configurations combining the above embodiments are also included in the present invention.
[0176] (Other embodiments) The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions. Furthermore, the present invention may be applied to a system consisting of multiple devices or to a device consisting of a single device. The present invention is not limited to the embodiments described above, and various modifications (including organic combinations of each embodiment) are possible based on the spirit of the invention, and these are not excluded from the scope of the invention. That is, all configurations that combine the above-described embodiments and their modified forms are included in the present invention. [Explanation of symbols]
[0177] 202 GDI 203 Spooler 205 Print Processor 206 Printer Drivers 207 UI Module 208 GD Module 301 EMF spool file 303 Additional drawing memory 304 Drawing memory
Claims
1. A control method for an information processing device that generates print data using a print processor that calculates the allocation of logical pages to physical pages included in a spool file that stores drawing information of one or more logical pages created by an application, and a printer driver that generates first raster data based on the drawing information of the one or more logical pages in a drawing area for printing using the result of the calculation, The print processor performs an additional drawing step of generating a second raster data for additional drawing in addition to the drawing information of the logical page in a drawing area different from the drawing area for printing, The printer driver performs a synthesis step of combining the first raster data and the second raster data to generate a third raster data, The process includes a generation step of generating print data based on the third raster data, A control method characterized by the following:
2. The control method according to Claim 1, characterized in that, in the synthesis step, when the first raster data and the second raster data are synthesized, each bit of the color information of each pixel after synthesis is calculated by performing a logical AND operation between each bit of the color information of each pixel having the same coordinates.
3. The control method according to claim 1, characterized in that the print processor has a halftone step of converting the second raster data into halftones.
4. The control method according to claim 3, characterized in that the size of the repeating unit of the halftone is changed based on the size of the additional drawing in the halftone step.
5. The control method according to claim 3, characterized in that the halftone step changes the size of the halftone repeating unit based on the type of media used for printing.
6. The control method according to claim 3, characterized in that the size of the halftone repeating unit is changed in the halftone step based on the type of printing agent installed in the printing apparatus used for printing.
7. The control method according to claim 3, characterized in that the printer driver has a compression step of compressing the third raster data.
8. The print processor, when the additional drawing is a character, halftones the second raster data. The synthesis step, when the additional drawing is an image, calculates each bit of the color information of each pixel after synthesis by performing a logical AND operation between each bit of the color information of each pixel that has the same coordinates in the first raster data and the second raster data. The control method according to feature 3.
9. The control method according to claim 1, characterized in that the synthesis step involves synthesizing the first raster data and the second raster data based on the transmittance information included in the print settings.
10. The control method according to claim 1, characterized in that when multiple logical pages are assigned to one physical page, the additional drawing step is performed for each logical page.
11. The control method according to claim 10, characterized in that the additional drawing that differs for each logical page includes an additional drawing that indicates the page number.
12. The control method according to claim 1, characterized in that the method for generating print data for performing the additional drawing is switched depending on whether the additional drawing is text or an image.
13. The control method according to Claim 1, characterized in that, when the additional drawing is an image, the control method is characterized in that, depending on whether the UI module of the information processing device operates in the splwow64 process or in a process other than the splwow64 process, it is possible to switch between generating print data for performing the additional drawing or generating print data without performing the additional drawing.
14. The control method according to claim 13, characterized in that, when the additional drawing is a character, the generation of print data for performing the additional drawing is performed regardless of whether the UI module of the information processing device operates in the splwow64 process or in a process other than the splwow64 process.
15. When the additional drawing is an image and the UI module of the information processing device operates in the splwow64 process, print data without the additional drawing is generated; when the additional drawing is an image and the UI module of the information processing device operates in a process other than the splwow64 process, print data for performing the additional drawing is generated. The control method according to feature 1.
16. When the UI module of the information processing device operates in the splwow64 process, a control step is performed to prevent the selection of an option for selecting an image as the additional drawing type. Further execution The control method according to feature 1.
17. A memory device context is issued so that the additional drawing is not notified to the operating system as a print page. The control method according to feature 1.
18. An information processing device for generating print data, comprising: a print processor that calculates the allocation of logical pages to physical pages included in a spool file that stores drawing information for one or more logical pages created by an application; and a printer driver that generates first raster data based on the drawing information for one or more logical pages in a drawing area for printing using the result of the calculation, The print processor includes an additional drawing means that generates a second raster data for performing additional drawing in addition to the drawing information of the logical page in a virtual drawing area different from the drawing area for printing, The printer driver includes a synthesis means that combines the first raster data and the second raster data to generate a third raster data, The printer driver includes a generation means for generating print data based on the third raster data, An information processing device characterized by having the following features.
19. A storage medium for storing a program that causes a computer to execute the control method described in any one of claims 1 to 17.
Citation Information
Patent Citations
Printing system
JP1999298717A
Method and apparatus for controlling printing
JP2000025276A
Print image creating device
JP2002112013A
Printing system, printing method, program and computer-readable recording medium
JP2008165467A
Program for controlling printer, information processor and printing system
JP2010134539A