Control Method of Information Processing Apparatus, Information Processing Apparatus, and Storage Medium

JP2024007870A5Active Publication Date: 2025-07-09CANON KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2022109238
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-07-06
Publication Date
2025-07-09
Estimated Expiration
2042-07-06

AI Technical Summary

Technical Problem

Existing techniques for adding additional drawings to printed content cannot perform such drawings in front of arbitrary images, limiting flexibility and functionality.

Method used

A print processor calculates logical to physical page allocation, generates raster data for additional drawings, and composites it with the original drawing data to create print data, allowing additional drawings to be performed in front of the original content using a printer driver with additional drawing means and compositing capabilities.

Benefits of technology

Enables flexible and OS-independent additional drawing on top of application-generated content, ensuring correct page counts and visual effects like transparency, while avoiding OS restrictions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To more appropriately generate print data for performing additional drawing on a front surface of a drawing content issued by an application.SOLUTION: In a host computer 101, a print processor 205 generates additional raster data for performing additional drawing in addition to drawing information of a logic page included in an EMF spool file 301 in a drawing region of a memory device context (S609). A GD module 208 of a printer driver 206 synthesizes document raster data and the additional raster data generated in the drawing region of the printer device context, and generates print data 102 based on the synthesized raster data (S612).SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to print data generation, and more particularly to print data generation that performs additional drawing in addition to drawing contents issued by an application. [Background technology]

[0002] 2. Description of the Related Art When printing from an application program (hereinafter referred to as an "application"), an additional drawing function is known that draws additional characters and images in addition to the drawing contents issued by the application. Information that can be drawn using the additional drawing function includes, for example, stamps, watermarks, page numbers, user names, organization names, document names, PC names, dates, times, and characters or marks to indicate binding or glue margins. These additional drawing functions are used for a variety of purposes, such as improving viewability, improving the convenience of document management, and realizing security printing.

[0003] Patent Document 1 discloses a technique in which a printer driver superimposes bitmap data of a background pattern to be printed on paper in advance and bitmap data of an arbitrary image to be printed over the background pattern and supplies the superimposed data to a printing unit. This allows the user to print an arbitrary image by adding the background pattern below it. [Prior art documents] [Patent documents]

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

[0005] As described above, the technology described in Patent Document 1 makes it possible to print any image to which a background pattern has been added. However, the technology described in Patent Document 1 does not allow additional drawing to be performed on the front side of any image.

[0006] The present invention has been made to solve the above problems, and an object of the present invention is to provide a mechanism that enables more appropriately generating print data for additional drawing on top of drawing content issued by an application. [Means for solving the problem]

[0007] The present invention is an information processing device that generates print data using a print processor that calculates the allocation of logical pages contained in a spool file that stores drawing information of one or more logical pages created by an application to physical pages, and a printer driver that uses the result 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 print processor has an additional drawing means that generates second raster data for performing additional drawing in addition to the drawing information of the logical pages in a drawing area different from the drawing area for printing, and the printer driver has a combination means that combines the first raster data and the second raster data to generate third raster data, and a generation means that generates print data based on the third raster data. Effect of the Invention

[0008] According to the present invention, it is possible to more appropriately generate print data for additional drawing on top of drawing content issued by an application. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a block diagram showing a hardware configuration of a printing system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a diagram showing the software configuration of a host computer according to the embodiment. [Diagram 3] 5 is a diagram showing the flow of data from when a print instruction is given by an application to when print data is sent to a printing device. [Figure 4] FIG. 11 is a sequence diagram showing the operation of a page drawing process during additional drawing. [Diagram 5] FIG. 4 is a diagram showing an additional drawing setting screen in the first embodiment. [Figure 6] 5 is a flowchart showing a page drawing process in the present embodiment. [Figure 7] 6 is a flowchart showing additional drawing processing in the first embodiment. [Figure 8] 5 is a flowchart showing print data generation and transmission processing in the first embodiment. [Figure 9] FIG. 4 is a diagram illustrating an example of combined raster data according to the first embodiment. [Figure 10] FIG. 4 is a diagram illustrating an example of combined raster data according to the first embodiment. [Figure 11] FIG. 4 is a diagram illustrating an example of combined raster data according to the first embodiment. [Figure 12] 10 is a flowchart showing additional drawing processing in the second embodiment. [Figure 13] 10 is a flowchart showing a print data generation and transmission process in a second embodiment. [Figure 14] FIG. 13 is a diagram illustrating an example of combined raster data according to the second embodiment. [Figure 15] 13 is a flowchart showing additional drawing processing in the third embodiment. [Figure 16] 13 is a flowchart showing a print data generation and transmission process in a third embodiment. [Figure 17] FIG. 13 is a diagram illustrating an example of combined raster data according to the third embodiment. [Figure 18] 13 is a flowchart showing additional drawing processing in the fourth embodiment. [Figure 19] FIG. 13 is a diagram illustrating an example of combined raster data according to the fourth embodiment. [Figure 20] 13 is a flowchart showing additional drawing processing in the fifth embodiment. [Figure 21] 23 is a flowchart showing additional drawing processing in the sixth embodiment. [Figure 22] 13 is a flowchart showing a print data generation and transmission process in the sixth embodiment. [Diagram 23] FIG. 23 is a diagram illustrating an example of combined raster data in the sixth embodiment. [Figure 24] FIG. 23 is a diagram showing an additional drawing setting screen in the seventh embodiment. [Diagram 25] 23 is a flowchart showing print data generation and transmission processing in the seventh embodiment. [Figure 26] FIG. 23 is a diagram illustrating an example of combined raster data according to the seventh embodiment. [Figure 27] FIG. 23 is a diagram showing an additional drawing setting screen in the eighth embodiment. [Figure 28] FIG. 23 is a diagram showing an example of combined raster data in the eighth embodiment. [Figure 29] 13 is a diagram showing a data flow from when a print instruction is given by an application to when print data is sent to a printing device in a ninth embodiment. [Diagram 30] 23 is a flowchart showing a spool page insertion process in the ninth embodiment. [Diagram 31] 13 is a flowchart showing an example of the operation of additional drawing processing in the ninth embodiment. [Diagram 32] 13 is a flowchart showing a part of the operation during additional drawing processing in the ninth embodiment. [Diagram 33] 13 is a flowchart showing print data generation and transmission processing in the ninth embodiment. [Diagram 34] 13 is a flowchart showing a part of the operation of a print data generation and transmission process in the ninth embodiment. [Diagram 35] FIG. 23 is a sequence diagram showing the operation of a page drawing process at the time of additional drawing in the ninth embodiment. [Diagram 36] FIG. 23 is a diagram illustrating an example of raster data according to the ninth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the present invention, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention.

[0011] [First embodiment] FIG. 1 is a block diagram showing an example of a hardware configuration of a printing system according to an embodiment of the present invention. 1, the host computer 101 is an example of an information processing device and includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface .

[0012] Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110. In addition, a display device such as a display unit 119 is connected to the output interface 115.

[0013] An initialization program is stored in the ROM 112. A group of application programs, an OS (operating system), and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory or the like when various programs stored in the external storage device 114 are executed. In this embodiment, the CPU 111 executes processing according to the procedures of the programs stored in the ROM 112, thereby realizing functions described below in the host computer 101 and processing related to flowcharts described below.

[0014] The printing device 102, which is a device, 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 device. The input / output interface 116 may be an interface such as a USB, or a network interface.

[0015] FIG. 2 is a diagram showing an example of the software configuration of the host computer 101 in this embodiment. The host computer 101 includes the following components and software: Functions of this software are realized by the CPU 111 of the host computer 101 executing a program stored in the ROM 112.

[0016] The OS 201 is an operating system that performs basic control of the host computer 101. The OS 201 includes a GDI (Graphics Device Interface) 202 and a spooler 203. The GDI 202 provides an API (Application Programming Interface) for performing drawing processing. The spooler 203 is a component that performs a process of generating an EMF spool file 301 (FIG. 3), which will be described later. In this embodiment, the Windows Spooler is used as the spooler 203, but the present invention is not limited to this.

[0017] The application 204 is software that performs print settings for documents, images, etc. and issues print instructions in response to user instructions. A print processor 205 is a component that uses the GDI 202 to instruct a printer driver 206 on output coordinates, output direction, output sequence, and the like 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 allowing the user to input print settings, and is also responsible for transmitting the print settings to the print processor 205 and the GD module 208 . The GD module 208 is a module that performs rendering processing for printing and generates print data in a rendering memory 304 in FIG. 3, which will be described later.

[0019] Incidentally, as a process for printing additional drawings, there is a method of drawing additional drawings on behalf of an application by utilizing a print event notification by the system, and inserting the additional drawings between document pages of the application. However, when printing is performed by the splwow64 process in Windows (registered trademark), such a method cannot be used due to restrictions of the OS (operating system). Note that the splwow64 process is a process that is executed, for example, when a print setting screen is opened or printing is executed from a 32-bit application on a 64-bit Windows (registered trademark). The conditions for executing the splwow64 process are merely examples, and are not limited to these. A process that is not a 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 an application, is less subject to OS constraints, and can notify the OS of the correct page number.

[0020] FIG. 3 is a diagram showing an example of the data flow from when a print instruction is issued by the application 204 until print data is sent to the printing device 102. The application 204 calls the UI module 207 as necessary to create print settings. To create print settings, the UI module 207 displays a print setting screen on the display unit 119, and the user may use the pointing device 117 and / or keyboard 118 to input setting information required for additional drawing (hereinafter, "additional drawing setting information"). When a user issues a print instruction from an application 204 , the application 204 passes print settings and drawing data to the GDI 202 .

[0021] When the GDI 202 receives print settings and drawing data from the application 204, it stores the print settings and drawing command information (drawing information) in an EMF spool file 301 via the spooler 203. EMF is an abbreviation for Enhanced Metafile, and is a standard method for storing drawing data in Windows. The EMF spool file 301 has one or more spool pages. For example, when the application 204 issues an instruction to print a document file having multiple pages, an EMF spool file 301 having multiple spool pages can be generated.

[0022] Once the EMF spool file 301 is stored, the spooler 203 loads the print processor 205 . The print processor 205 acquires additional drawing setting information from the UI module 207 for additional drawing (additional drawing to be added to drawing information of a spool page). At this time, when drawing an image as additional drawing, the print processor 205 loads image data 302 on the host computer 101. This image data 302 is, for example, created as an image file on the host computer 101, and can be loaded from the print processor 205.

[0023] The image data 302 may be stored in advance as internal data of the print processor 205 or the printer driver 206. In this case, when printing is performed using the Point and Print function of Windows, the following effects can be obtained. Point and Print is a function that enables a client to download the print processor 205 and the printer driver 206 from the print server and issue a print instruction from the client to the print server. With Point and Print, two settings can be made: a setting in which the print processor 205 and the GD module 208 perform processing related to printing on the client side, and a setting in which the processing is performed on the server side. If the image data 302 is stored as internal data of the print processor 205 and the printer driver 206, the print processor 205 can load the image data 302 and can draw an image as additional drawing, regardless of the setting.

[0024] Then, the print processor 205 determines the drawing contents of the additional drawing based on the above-mentioned additional drawing setting information. Next, the print processor 205 performs additional drawing in the additional drawing memory 303 by calling an API function of the GDI 202, and passes the information of the additional drawing memory 303 to the GD module 208.

[0025] Furthermore, the print processor 205 issues an instruction to draw the spool page included in the EMF spool file 301 in the GD module 208 by calling an API function 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 (what is drawn here is the drawing content issued by the application 204).

[0026] Next, the GD module 208 composites the drawing in the additional drawing memory 303 received from the print processor 205 via the GDI 202 into the drawing memory 304 . Thereafter, the GD module 208 generates print data 305 that can be read by the printing device 102 based on the combined rendering result in the rendering memory 304 , and transmits the print data 305 to the printing device 102 .

[0027] FIG. 4 is a sequence diagram showing an example of the operation of the UI module 207, the print processor 205, the GDI 202, and the GD module 208 in a page drawing process during additional drawing. First, in step S401 , the print processor 205 issues a physical page start instruction (GdiStartPageEMF) to the GDI 202 .

[0028] In S402, the print processor 205 requests additional drawing setting information from the UI module 207 and acquires the additional drawing setting information. The additional drawing setting information is information necessary to determine the content of the additional drawing, and includes, but is not limited to, character strings such as "Confidential" and "Secret", character color, character decoration, drawing coordinates, rotation angle during drawing, drawing size, frame type, and whether or not to use transparency.

[0029] In S403, the print processor 205 issues a memory device context creation instruction (CreateCompatibleDC) to the GDI 202. Here, the device context will be described. A device context is a data structure that abstracts a drawing destination device such as a printer, display, or memory. A device context contains setting information such as brushes required for drawing, and information about the drawing area. With the GDI202 API, you can issue drawing instructions to the desired drawing destination device by specifying the handle of a device context. When printing, a "printer device context" is used for printing, and the contents to be drawn at the time of printing are specified by specifying the "handle of the printer device context" in the GDI202 API. Similarly, by specifying the handle of a "memory device context" in the GDI 202 API, it is possible to instruct drawing to 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, the handle of the "memory device context" created in S403 is specified, and an API function of the GDI 202 that performs the desired additional drawing is called. As a result, the additional drawing is performed in the drawing area of ​​the "memory device context" (the area corresponding to the additional drawing memory 303 in FIG. 2).

[0031] In S405, the print processor 205 calls a notification API (ExtEscape) of the GDI 202 to notify the GD module 208 of information required for compositing additional drawings. Examples of this information include a handle to the printer device context and a handle to the memory device context. In S406, the GDI 202 makes a notification DDI call (DrvEscape) to the GD module 208. This notifies the GD module 208 of information required for compositing additional drawings. DDI is an abbreviation for Device Drivers Interface, and is a function interface for calling the processing of the printer driver 206 from the GDI 202.

[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 included in the EMF spool file 301. However, at this point, drawing is not performed in the drawing area of ​​the "printer device context" (area corresponding to the drawing memory 304 in FIG. 2). Note that if multiple logical pages are assigned to one physical page, S407 is performed multiple times. In S408 , the print processor 205 issues a physical page end instruction (GdiEndPageEMF) to the GDI 202 .

[0033] In S409, the GDI 202 makes a page start DDI call (DrvStartPage) to the GD module 208. In S410, the GDI 202 calls a drawing function for the GD module 208. As a result, the GD module 208 draws the drawing content issued by the application 204 in the drawing area of ​​the "printer device context" (area corresponding to the drawing memory 304 in FIG. 2).

[0034] In S411, the GDI 202 makes a page send DDI call (DrvSendPage) to the GD module 208. In S412, the GD module 208 issues a bit block transfer instruction to the GDI 202 while processing the page transmission DDI. The bit block transfer instruction instructs the transfer of the drawing area of ​​the "memory device context" (area corresponding to the additional drawing memory 303) to the drawing area of ​​the "printer device context" (area corresponding to the drawing memory 304). For this instruction, API functions such as BitBlt, TransparentBlt, StretchBlt, and AlphaBlend can be used. In S413, the GDI 202 calls a bit block transfer DDI to the GD module 208. At this time, the GDI 202 calls a DDI corresponding to the API function used in S412. This process transfers the contents of the drawing area of ​​the "memory device context" to the drawing area of ​​the "printer device context", and the additional drawing contents are composited into the drawing area of ​​the "printer device context".

[0035] In S414, the print processor 205 issues a memory device context discard instruction (DeleteDC).

[0036] The above is an explanation of the sequence diagram showing an example of the operation of the page drawing process at the time of additional drawing. By performing such an operation, additional drawing can be performed in front of the drawing content issued by the application 204.

[0037] If the print processor 205 were to use the API of the GDI 202 to directly specify a "printer device context" and perform additional drawing, a phenomenon would occur in which the additional drawing is performed behind the drawing content issued by the application 204. This phenomenon will be explained here.

[0038] Typically, after a physical page end instruction (GdiEndPageEMF), the GDI 202 makes a drawing function call to the GD module 208, and the drawing contents issued by the application 204 are drawn in the drawing area of ​​the "printer device context" (area corresponding to the drawing memory 304). Therefore, when the print processor 205 calls the API of the GDI 202 to perform additional drawing before a physical page end instruction (GdiEndPageEMF) is issued, the additional drawing is performed before the drawing of the drawing contents issued by the application 204. Therefore, the additional drawing is performed in the background.

[0039] On the other hand, when the print processor 205 calls the API of the GDI 202 to perform additional drawing after a physical page end instruction (GdiEndPageEMF), the GD module 208 has already finished processing the target physical page. Therefore, additional drawing is performed on the back side of the page next to the target physical page. Therefore, in this case, additional drawing cannot be performed on the front side of the target physical page.

[0040] Therefore, in this embodiment, additional drawing is performed in the drawing area of ​​the "memory device context" (area corresponding to additional drawing memory 303). Then, after a 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" (area corresponding to drawing memory 304), a method is used in which a combination instruction is issued for the drawing area of ​​the "memory device context" and the drawing area of ​​the "printer device context". This makes it possible to perform additional drawing in front of the target physical page.

[0041] FIG. 5 is a diagram showing an example of an additional drawing setting screen that the UI module 207 displays on the display unit 119 in the first embodiment. The user can call up the additional drawing setting window 501 from the application 204 or the OS 201 as necessary and set additional drawing setting information. An additional drawing setting window 501 has one or more additional drawing setting items 502. In this embodiment, the additional drawing setting items include additional drawing enablement, type, text, color, position, rotation angle, size, and transparency, but the present invention is not limited to these. Furthermore, the notation of each item is not limited to these. For example, "transparent" may be "print in front." Furthermore, the setting when the "transparent" checkbox is checked may be the same as the setting when the "print in front" checkbox is not checked.

[0042] The additional drawing setting item 502 has a corresponding input user interface 503. The user can set additional drawing setting information by inputting a desired setting value into the input user interface 503 using the pointing device 117, the keyboard 118, or the like.

[0043] After setting the additional drawing setting information as described above, the user presses a cancel button 504 if the settings are not to be reflected, or presses an OK button 505 if the settings are to be reflected. The additional drawing setting information may be a combination of some or all of the additional drawing setting information, which may be stored as preset information in the printer driver 206, so that the user can select from the preset information. Also, the additional drawing setting information may be determined without relying on user input.

[0044] FIG. 6 is a flowchart showing an example of the operation of the page rendering 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 of S602 to S610.

[0045] The processing of S602 to S610 is a loop process in which each process is performed on each spool page (from the first spool page to the last spool page) to be allocated to the target physical page among the spool pages in the EMF spool file 301. That is, when one spool page is to be allocated as a logical page to the target physical page, one loop is performed. Also, when four spool pages are to be allocated as logical pages to the target physical page, four loops are performed.

[0046] The processes in S602 to S610 will be described in detail below. 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 that is currently being allocated. If there is a change in any of the print settings that affects allocation (YES 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 ResetDC, which is an API function of the GDI 202. On the other hand, if there is no change in the print settings of the previously allocated spool page and the spool page currently being allocated (NO in S603), the print processor 205 advances the process to S605.

[0047] In S605, the print processor 205 performs a calculation process for the layout method of the logical page. Based on the calculation result in S605, the coordinates, size, clipping method, orientation, etc., when the logical page is laid out on the physical page are determined. Thereafter, if necessary, the GDI 202 API function SetWorldTransform may be called to apply two-dimensional linear transformation settings (rotation, enlargement / reduction, movement, etc.) to the "printer device context" to instruct the transformation of the layout coordinates.

[0048] In S606 , the print processor 205 acquires additional drawing setting information from the UI module 207 . In S607, the print processor 205 determines whether the additional drawing function is ON (enabled) from the additional drawing setting information acquired in S607. If the additional drawing function is ON (YES in S607), the print processor 205 performs additional drawing processing (S608). The details of the additional drawing processing will be described later. After the processing of S608, the print processor 205 proceeds to the processing of S610. On the other hand, if the additional drawing function is not ON (NO in S607), the print processor 205 advances the process to S609.

[0049] Next, in S609, the print processor 205 issues a logical page drawing instruction to the GDI 202. Through this processing, the logical page allocation method calculated in S605 is notified to the OS 201. After the processing of S609, the print processor 205 advances the processing to S610.

[0050] In S610, if the allocation of the logical page to the target physical page is not complete, the print processor 205 repeats the loop of S602 to S610. On the other hand, if the allocation of the logical page to the target physical page is complete, the print processor 205 advances the process to S611.

[0051] In step 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 print data generation and transmission processing in S612. The print data generation and transmission processing will be described in detail later.

[0052] In S613, the print processor 205 determines whether or not a "memory device context" has been generated. If the "memory device context" has been generated (YES in S613), the print processor 205 discards the "memory device context" and ends the processing of this flowchart. On the other hand, if the "memory device context" has not been generated (NO in S613), the print processor 205 ends the processing of this flowchart. The above is an explanation of an example of the operation of the page drawing process in the print processor 205 during additional drawing.

[0053] FIG. 7 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the first embodiment. In S701, the print processor 205 determines whether a "memory device context" has been generated. If not generated (NO in S701), the print processor 205 generates a "memory device context" (S702) and proceeds to S703. On the other hand, if the "memory device context" has already been generated (YES in S701), the print processor 205 advances the process to S703.

[0054] The "memory device context" generated in step S702 is a device context for abstracting a virtual drawing area for additional drawing. When this "memory device context" is generated, the OS 201 is notified of the number of pages to be printed, so that the OS 201 can be prevented from recognizing an extra page count for additional drawing.

[0055] In S703, the print processor 205 performs an additional drawing method calculation process. In this process, the drawing method is calculated based on the additional drawing setting information. For example, the print processor 205 determines the size of the character or image to be additionally drawn based on the setting value of "size" in the additional drawing setting information, and determines the coordinates to be used for additional drawing based on the setting value of "position". 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. In this way, additional drawing can be performed on each logical page, and even if the print settings differ depending on the spool page, additional drawing that is compatible with 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 by calling the API of the GDI 202 for the drawing area of ​​the "memory device context" based on the calculation result in 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 the GDI 202. In this embodiment, the specific method for this is assumed to be using ExtEscape, which is an API function of the GDI 202, but the notification is not limited to this method and may be performed by any method. Next, in step S706, the print processor 205 issues a logical page drawing instruction to the GDI 202. The above is a description of an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the first embodiment.

[0058] FIG. 8 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the first embodiment. In S801, the GD module 208 performs drawing processing of the drawing contents issued by the application 204. This processing is performed by the GDI 202 calling a drawing function.

[0059] In S802, the GD module 208 determines whether additional drawing is ON. In this embodiment, the driver setting information is stored in the DEVMODE structure. Therefore, in this embodiment, when the GD module 208 determines the driver setting information, it refers directly or indirectly to the value stored in the DEVMODE structure, but the present invention is not limited to this.

[0060] If additional drawing is ON (YES in S802), the GD module 208 advances the process to S803. On the other hand, if additional drawing is not ON (NO in S802), the GD module 208 advances the process to S806.

[0061] In S803, the GD module 208 determines whether the transparency setting of the additional drawing is ON. If the transparency setting is ON (YES in S803), the GD module 208 advances the process to S804. In S804, the GD module 208 uses a Boolean AND operation to combine the additional drawing with the drawing contents issued by the application 204, and generates combined raster data. In this embodiment, the Boolean AND operation is performed as follows. When performing a bit block transfer of the "memory device context" to the drawing area of ​​the "printer device context", the GD module 208 calculates each bit of color information of each pixel after combination by calculating a logical product between each bit of color information of each pixel at the same coordinate. To perform this combination method, for example, it is sufficient to use BitBlt, which is an API function of the GDI 202, and specify SRCAND as a raster operation code. With this combination method, pixels where the drawing contents issued by the application 204 and the additional drawing overlap are mixed, and it is possible to express the drawing contents drawn under the additional drawing as being transparent. After the process of S804, the GD module 208 advances the process to S806.

[0062] On the other hand, if the transparency setting is not ON (NO in S803), the GD module 208 advances the process to S805. In S805, the GD module 208 composites additional drawing on top of the drawing contents issued by the application 204, and generates composited raster data. In this embodiment, the GD module 208 composites by performing a bit block transfer of the memory device context to the drawing area of ​​the "printer device context". To perform the composite, for example, the API function TransparentBlt of the GDI 202 may be used, and the background color of the memory device context may be specified as a transparent color when the function is called. This composite method makes it possible to obtain a drawing result in which additional drawing has been performed on top of the drawing contents issued by the application 204. After the process of S805, the GD module 208 advances the process to 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 a print data transmission process to transmit the print data generated in S806 to the printing device. This concludes the description of an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the first embodiment.

[0064] FIG. 9 is a diagram illustrating an example of combined raster data when one spool page is allocated as a logical page to one physical page in the first embodiment.

[0065] 9A, 901 denotes the rendering result of the rendering content issued by the application 204. In FIG. When additional drawing is set to ON and transparency is set to OFF, the combined raster data shown in Fig. 9(b) is obtained. In Fig. 9(b), reference numeral 902 denotes the drawing result of additional drawing drawn in the foreground. When both additional drawing and transparency are set to ON, the resulting composite raster data is as shown in Fig. 9(c). In Fig. 9(c), 903 is the result of additional drawing combined by a Boolean AND operation, resulting in a transparent effect.

[0066] FIG. 10 is a diagram illustrating an example of combined raster data when two spool pages with the same print settings are allocated as a logical page to one 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. In this way, according to this embodiment, additional rendering can be performed on multiple logical pages.

[0067] FIG. 11 is a diagram illustrating an example of combined raster data when two logical pages with different print settings are allocated to one physical page in the first embodiment. Note that the first logical page is assigned a spool page with a portrait orientation, and the second logical page is assigned a spool page with a landscape orientation. In this case, the second logical page is calculated and assigned by the print processor 205 so that it is rotated 90 degrees to the left in order to increase the area to be assigned.

[0068] Figures 11(a), 11(b), and 11(c) are the results of drawing with the same additional drawing settings as 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 additional drawings according to the direction of each logical page. In this way, according to this embodiment, appropriate additional drawing can be performed for logical pages with multiple different print settings.

[0069] As described above, according to this embodiment, it is possible to perform additional drawing in front of the drawing content issued by the application, and if necessary, visual effects such as transparent processing can be applied to the additional drawing. Furthermore, in this embodiment, since no unnecessary page start notification or page end notification is issued, it is possible to match the number of pages actually printed with the number of pages notified to the OS. Therefore, it is possible to prevent user confusion when the number of printed pages is displayed using a function of the OS. In this way, the problems of the conventional technology can be solved.

[0070] Second Embodiment In the first embodiment, a Boolean AND operation is used as a method for obtaining a transparent effect for additional drawings. Note that, due to the nature of the Boolean AND operation, when the color of the additional drawing is set to white, the drawing is not performed, and the print result as intended by the user may not be obtained. Therefore, in this embodiment, a method for obtaining a transparent effect for additional drawings is described in which a pseudo-transparent process is performed by performing a halftone process on the additional drawing and then drawing it in front. Note that, in this embodiment, the form is the same as that of the first embodiment unless otherwise noted.

[0071] FIG. 12 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the second embodiment. The processing in S1201 to S1204 is similar to the processing in S701 to S704 in the first embodiment.

[0072] In S1205, the print processor 205 determines whether the transparency setting of the additional drawing is ON. If the transparency setting is ON (YES in S1205), the print processor 205 advances the process to S1206.

[0073] In S1206, the print processor 205 performs halftoning 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 three pixels on a side, which are the background color of the memory device context, are arranged alternately. However, this length of one side is just an example, and is not limited to this length. Furthermore, 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 advances the process to S1207. The processes of S1207 and S1208 are similar to those of S705 and S706 in the first embodiment. The above is a description of an example of the operation of the additional drawing process (S609) of the print processor 205 in the second embodiment.

[0075] FIG. 13 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the second embodiment. The process of S1301 is similar to the process of S801 in 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 advances the process to S1303. On the other hand, if additional drawing is not ON (NO in S1302), the GD module 208 advances the process to S1304.

[0077] Steps S1303 to S1305 are similar to steps S805 to S807 in the first embodiment. This concludes the description of an example of the operation of the print data generation and transmission process (S612) of the GD module 208 in the second embodiment.

[0078] FIG. 14 is a diagram illustrating an example of combined raster data in the second embodiment. 14A, 1401 denotes the rendering result of the rendering content issued by the application 204. In the case where the additional rendering is set to OFF, it is assumed that the composite raster data shown in FIG.

[0079] Here, when additional drawing is set to ON and transparency is set to OFF, the composited raster data shown in Fig. 14(b) is obtained. In Fig. 14(b), 1402 shows the drawing result of the additional drawing drawn in the foreground. Also, 1403 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing. In this embodiment, when transparency is set to OFF, it is expressed in a single solid color, as shown in 1403.

[0080] On the other hand, when both additional drawing and transparency are set to ON, the resulting composite raster data is as shown in Fig. 14(c). In Fig. 14(c), 1404 shows the result of the additional drawing drawn in the foreground after halftone processing. Also, 1405 shows an 18 pixel x 18 pixel area obtained by enlarging the result of the additional drawing. In this way, the halftoning process of the additional drawing allows transparency processing to be performed on the additional drawing.

[0081] In this way, in addition to the effects shown in the first embodiment, the following effects can be obtained in this embodiment: 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), additional drawing with a transparent effect can be executed on the drawing content issued by the application.

[0082] Third Embodiment In the second embodiment, a method is used in which a halftoning process is performed on the additional drawing to obtain a transparent effect. In the halftoning process, if the repeating unit of the halftone is small, the data size is unlikely to be reduced even if image compression is performed. Therefore, when the composite raster data generated by the GD module 208 is compressed and transmitted to the printing device 102, the printing speed may be reduced. On the other hand, if the repeating unit of the halftone is large and the size of the characters drawn in the additional drawing is small, the characters may be difficult to read. Therefore, in this embodiment, a method is described in which the size of the repeating unit of the halftoning process of the additional drawing is changed according to the size of the additional drawing. In this embodiment, unless otherwise specified, the form is the same as that of the second embodiment.

[0083] FIG. 15 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the third embodiment. The processes in S1501 to S1504 are similar to those in S1201 to S1204 in the second embodiment.

[0084] In S1505, the print processor 205 determines whether the transparency setting of the additional drawing is ON. If the transparency setting is ON (YES in S1505), the print processor 205 advances the process to S1506. On the other hand, if the transparency setting is not ON (NO in S1505), the print processor 205 advances the process 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 equal to or less than a certain threshold. If it is equal to or less than the threshold (YES in S1506), the print processor 205 advances the process to S1507. On the other hand, if it is not equal to or less than the threshold (NO in S1506), the print processor 205 advances the process to S1508.

[0086] In S1507 and S1508, halftoning is performed on the drawing area of ​​the memory device context. In this embodiment, halftoning is performed by overwriting the drawing area of ​​the memory device context with a pattern in which squares that are the background color of the memory device context are arranged alternately. In this case, in S1507, each side of the square is set to 3 pixels. On the other hand, in S1508, each side of the square is set to 6 pixels. However, this length of each side is only an example and is not limited to this length. Halftoning may be performed by dividing the size of the additional drawing into three or more types. In this case, the length of each side of the square is also divided into three or more types.

[0087] After the halftone process in S1507 or S1508, the print processor 205 advances the process to S1509. The processes of S1509 and S1510 are similar to the processes of S1207 and S1208 in the second embodiment. The above is a description of an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the third embodiment.

[0088] FIG. 16 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the third embodiment. The processes in S1601 to S1603 are similar to those in S1301 to S1303 in the second embodiment.

[0089] In S1604, the GD module 208 performs a compression process on the combined raster data. The compression process can be performed by any known method. After the process in S1604, the GD module 208 advances the process to S1605. The processes in S1605 and S1606 are similar to the processes in S1304 and S1305 in the second embodiment. This concludes the description of an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the third embodiment.

[0090] FIG. 17 is a diagram illustrating an example of combined raster data in the third embodiment. 17A, 1701 denotes the rendering result of the rendering content issued by the application 204. In the case where the additional rendering is set to OFF, it is assumed that the composite raster data shown in FIG.

[0091] Here, when additional drawing is set to ON and transparency is set to OFF, and the character size is equal to or smaller than the threshold, the composited raster data shown in Fig. 17(b) is obtained. In Fig. 17(b), 1702 shows the drawing result of the additional drawing drawn in the foreground. Also, 1703 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing. In the third embodiment, when transparency is set to OFF, it is expressed in a single solid color, as shown in 1703.

[0092] Also, when additional drawing is set to ON and transparency is set to ON and the character size is equal to or smaller than the threshold, the composite raster data shown in Fig. 17(c) is obtained. In Fig. 17(c), 1704 shows the drawing result of the additional drawing drawn in the foreground after halftone processing. Also, 1705 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing.

[0093] When additional drawing and transparency are set to ON and the character size is larger than the threshold, the composite raster data shown in Fig. 7(d) is obtained. 1706 in Fig. 7(d) is the same as 1704. 1707 is also the same as 1705, but 1707 has a larger repeat unit of the halftoning process compared to 1705.

[0094] In the composite raster data shown in Fig. 17(c), the repeat unit of the halftoning process is made small to make the characters drawn in the additional drawing easier to read because the character size of the additional drawing is small. In this case, since the size of the additional drawing itself is small, when the composite raster data is compressed, the effect on the data size after compression can be suppressed.

[0095] On the other hand, in the composite raster data shown in Fig. 17(d), the character size of the additional drawing is large, so the repeat unit of the halftoning process is made large to prevent the data size from increasing when the composite raster data is compressed. In this case, since the size of the additional drawing itself is large, the legibility of the characters is unlikely to decrease even if the repeat unit of the halftoning process is made large. In addition, since the repeat unit of the halftone is large, the data size after compression can be reduced.

[0096] In the above-described method, in addition to the effects shown in the first and second embodiments, the present embodiment provides the following effects: That is, when generating print data after performing image compression, it is possible to suppress an increase in the size of print data without significantly reducing the readability of additional drawings, and to suppress a decrease in the speed at which the data is sent to the printing device.

[0097] [Fourth embodiment] In the third embodiment, a method of performing an appropriate halftoning process on an additional drawing according to the size of the additional drawing and performing a transparent process on the additional drawing while suppressing a decrease in speed when transmitting to a printing device has been described. In the halftoning process, it may be undesirable in terms of print quality to visually confirm a repeating pattern in the print result. Therefore, in this embodiment, a method of additional drawing that imparts a transparent effect that is preferable in terms of print quality by changing the size of the repeating unit of the halftoning process according to the medium used for printing will be described. In this embodiment, unless otherwise noted, the form is the same as that of the third embodiment. In this embodiment, the user can set information on the type of medium to be printed in advance in the printer driver 206, and the print processor 205 can acquire the information on the type of medium to be printed from the UI module 207.

[0098] FIG. 18 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the fourth embodiment. The processes in S1801 to S1804 are similar to those in S1501 to S1504 in the third embodiment.

[0099] In S1805, the print processor 205 determines whether the transparency setting of the additional drawing is ON. If the transparency setting is ON (YES in S1805), the print processor 205 advances the process to S1806. On the other hand, if the transparency setting is not ON (NO in S1805), the print processor 205 advances the process to S1810.

[0100] In S1806, the print processor 205 obtains information on 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 be able to determine, from the information on the type of media to be printed, whether bleeding is unlikely to occur when printing on the media. However, this configuration is merely an example, and the determination may be made by another module or component on the print data generating device, such as the UI module 207.

[0101] In S1807, the print processor 205 determines whether or not the media is resistant to bleeding from the information acquired in S1806. If it is determined that the media is resistant to bleeding (YES in S1807), the print processor 205 advances the process to S1808. On the other hand, if it is determined that the medium is prone to bleeding (NO in S1805), the print processor 205 advances the process to S1809.

[0102] The processes in S1808 to S1811 are similar to the processes in S1507 to S1510 in the third embodiment. This concludes the description of an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the fourth embodiment.

[0103] FIG. 19 is a diagram illustrating an example of combined raster data in the fourth embodiment. 19A, 1901 denotes the rendering result of the rendering content issued by the application 204. In FIG.

[0104] Here, when additional drawing is set to ON and transparency is set to OFF, the composited raster data shown in Fig. 19(b) is obtained. In Fig. 19(b), 1902 shows the drawing result of the additional drawing drawn in the foreground. 1903 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing. In this embodiment, when transparency is set to OFF, it is expressed in a single solid color, as shown in 1903.

[0105] Furthermore, when additional drawing is set to ON and transparency is set to ON and the set media is one that does not easily bleed, the combined raster data shown in Fig. 19(c) is obtained. In Fig. 19(c), 1904 shows the drawing result of the additional drawing drawn in the foreground after halftone processing. 1905 shows an enlarged 18 pixel x 18 pixel area of ​​the drawing result of the additional drawing.

[0106] Furthermore, when additional drawing and transparency are set to ON and the set media is one that easily bleeds, the resulting composite raster data is as shown in Fig. 19(d). 1906 in Fig. 19(d) is the same as 1904. 1907 is also the same as 1905, but 1907 has a larger repeat unit for the halftoning process compared to 1905.

[0107] In the case where it is undesirable from the standpoint of print quality that the repeating pattern be visible in the printed result, it is preferable to make the repeating unit of the halftoning process small for media that does not bleed easily, as shown in Fig. 19(c). On the other hand, for media that bleeds easily, even if the repeating unit of the halftoning process is large, as shown in Fig. 19(d), the repeating pattern becomes difficult to visually confirm due to bleeding during printing.

[0108] In general, media such as plain paper that is prone to bleeding tends to be inexpensive and is often used for large-volume printing and draft printing. In this case, emphasis is placed on printing speed, but as described in the third embodiment, it is possible to prevent the print data from becoming bloated and to prevent a decrease in printing speed by making the repeat unit larger. On the other hand, media such as glossy paper that is less prone to bleeding tends to be expensive and is often used for small-volume printing. In this case, emphasis is placed on print quality rather than print speed. That is, when additional drawing is performed when printing on media that is less prone to bleeding, a decrease in print quality can be prevented by making the repeat unit smaller.

[0109] As described above, in addition to the effects shown in the first and second embodiments, the present embodiment provides the following effect: That is, when generating print data after image compression, printing can be performed with appropriate print quality and print speed according to the set media.

[0110] Fifth embodiment In the fourth embodiment, a method for changing the size of the repeat unit of the halftoning process depending on whether the set media is resistant to bleeding or not, and executing printing with appropriate print quality and printing speed was described. This configuration can also be applied to other main body configurations such as color materials (printing agents) instead of media. Therefore, in this embodiment, a print data generating device configured such that the print processor 205 can acquire information on the installed ink tank from the printing device 102 and can determine whether the ink is prone to bleeding or not from the information on the ink tank is described. Note that this embodiment is similar to the fourth embodiment unless otherwise noted.

[0111] 20 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the fifth embodiment. The processes of S2001 to S2005 and S2008 to S2010 are similar to the processes of S1801 to S1805 and S1807 to S1810 in the fourth embodiment.

[0112] In S2006, the print processor 205 obtains information on the ink tanks mounted from the printing device 102, and the process proceeds to S2007. In this embodiment, the print processor 205 is configured to be able to determine whether bleeding is unlikely to occur when printing is performed based on the information on the ink tanks. However, this configuration is merely an example, and the determination may be performed by other modules or components on the print data generating device, such as the UI module 207. In addition, when a plurality of ink tanks are mounted on the printing device, one or more arbitrary ink tanks can be used for determining the tendency of ink bleeding. For example, the ink tank to be used for the determination may be selected based on the setting information of "color" in the additional drawing setting information, or only the black ink tank may always be used for the determination.

[0113] In S2007, the print processor 205 determines whether the ink is unlikely to bleed based on the information acquired in S2006. If it is determined that the ink is unlikely to bleed (YES in S2007), the print processor 205 advances the process to S2008. On the other hand, if it is determined that the ink is likely to bleed (NO in S2007), the print processor 205 advances the process to S2009.

[0114] The processing in S2008 to S2011 is similar to the processing in S1808 to S1811 in the third embodiment. This concludes the description of an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the fifth embodiment.

[0115] The composite raster data in this embodiment is the same as that in the fourth embodiment, except that the determination is made using ink information rather than media information. Therefore, the composite raster data obtained has a small repeat unit in the halftoning process for inks that do not bleed easily, and a large repeat unit for inks that bleed easily.

[0116] Generally, dye inks soak into the fibers of the paper to produce color, so there are cases where it is not necessary to make the repeat unit of the halftoning process small. On the other hand, pigment inks produce color by fixing solid particles to the surface of the media, so high-resolution print results can be obtained. In this case, it is preferable to have a small repeat pattern for the additional drawing.

[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 using halftoning processing based on repeating units that are appropriate from the standpoint of print quality and printing speed, depending on the characteristics of the ink.

[0118] In addition, the color material of the present invention is not limited to ink, but can be applied to other color materials such as toner, etc. For example, when the printer driver 206 is common to all models, the repeat unit of the halftoning process may be changed depending on whether the color material is ink or toner. In addition, since the preferred size of the repeat unit of the halftoning process varies depending on the physical properties such as viscoelasticity when the toner is fixed to the media, it is also possible to configure the repeat unit of the halftoning process to be changed depending on the type of toner. Moreover, the fourth and fifth embodiments may be combined to determine whether bleeding is unlikely to occur depending on the combination of the set medium and color material (printing agent).

[0119] Sixth Embodiment In the second to fifth embodiments, a method of performing halftoning on additional drawing to obtain a transparent effect is used. When performing halftoning, for example, when additional drawing is performed on a white background, the white background becomes transparent, and the color of the additional drawing becomes lighter. In additional drawing, even if lighter colors are acceptable when drawing characters, lighter colors may not be desirable when drawing an image. As an example, when printing an image of a logo mark in additional drawing, there is a demand to print without lightening the color from the viewpoint of the design of the logo mark. In order to meet such a demand and to make the part overlapping with the drawing content issued by the application 204 transparent, it is preferable to perform transparency processing by Boolean AND operation as shown in the first embodiment only when additionally drawing an image.

[0120] Therefore, in this embodiment, a transparency process using a Boolean AND operation is used when an image is drawn as additional drawing, and a transparency process using a halftoning process is used when a character is drawn as additional drawing. This embodiment is the same as the first embodiment unless otherwise noted.

[0121] FIG. 21 is a flowchart showing an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the sixth embodiment. The processes in S2101 to S2104 are similar to those in S1201 to S1204 in the second embodiment.

[0122] In S2105, the print processor 205 determines whether the additional drawing is an image. This determination can be made by referring to the "type" of the additional drawing setting information. If the additional drawing is text (YES in S2105), the print processor 205 advances the process to S2106. On the other hand, if the additional drawing is an image (NO in S2105), the print processor 205 advances the process to S2108.

[0123] The processes in S2106 to S2109 are similar to the processes in S1205 to S1208 in the second embodiment. This concludes the description of an example of the operation of the additional drawing process (S609 in FIG. 6) of the print processor 205 in the sixth embodiment.

[0124] FIG. 22 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the sixth embodiment. The processes of S2201 and S2202 are similar to the processes of S801 and S802 in the first embodiment.

[0125] In S2203, the GD module 208 determines whether the additional drawing is an image. 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 processes in S2204 to S2208 are similar to the processes in S803 to S807 in the first embodiment. This concludes the description of an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the sixth embodiment.

[0127] FIG. 23 is a diagram illustrating an example of combined raster data in the sixth embodiment. In the case where the additional drawing is set to OFF, it is assumed that the combined raster data shown in Fig. 23A is obtained. In Fig. 23A, reference numeral 2301 denotes the drawing result of the drawing contents issued by the application 204.

[0128] Here, when additional drawing is set to ON and transparency is set to OFF, and text is drawn as additional drawing, the composited raster data shown in Fig. 23(b) is obtained. In Fig. 23(b), 2302 shows the drawing result of the additional drawing drawn in the foreground. 2303 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing. In this embodiment, when transparency is set to OFF, the text is expressed in a single solid color, as shown in 2303.

[0129] Also, when additional drawing is set to ON and transparency is set to ON, and text is drawn as additional drawing, the composited raster data shown in Fig. 23(c) is obtained. In Fig. 23(c), 2304 shows the drawing result of additional drawing drawn in the foreground after halftoning. 2305 shows an enlarged 18 pixel x 18 pixel area of ​​the drawing result of the additional drawing.

[0130] Furthermore, when additional drawing is set to ON and transparency is set to OFF, and an image is drawn as additional drawing, the resulting composite raster data is as shown in FIG. 23(d). Also, when additional drawing and transparency are set to ON and an image is drawn as additional drawing, the composite raster data shown in Fig. 23(e) is obtained. In Fig. 23(e), 2306 to 2309 correspond to 2302 to 2305, but 2308 and 2309 are not characters that have been halftoned, but images that have been composited by a Boolean AND operation.

[0131] As shown in Fig. 23, when halftoning is performed and transparency is applied, the color becomes lighter, but when transparency is applied using a Boolean AND operation, the color does not become lighter. As described above, when halftoning is performed, even if the text color is set to white, there is an advantage that the text is drawn in transparent white on top of the drawing content issued by application 204, so that even if you want to add white text on top of a photo, it will be printed as intended by the user. On the other hand, when you want to add a logo to a printed document, you can print the logo without lightening its color and make it transparent through the document. As described above, according to this embodiment, in addition to the effects shown in the first embodiment, it is possible to execute appropriate additional drawing processing depending on whether the content of the additional drawing is a character or an image.

[0132] Seventh embodiment In the second to fifth embodiments, a method of performing halftoning on additional drawings to obtain a transparent effect is used. In the halftoning process, when it is desired to adjust the transmittance of the additional drawings, it is necessary to change the geometric pattern of the halftone, and complex processing is required to calculate the pattern. Therefore, in this embodiment, a method of performing a transparent process on additional drawings that allows the transmittance to be specified is described. In addition, this embodiment is similar to the first embodiment unless otherwise specified.

[0133] FIG. 24 is a diagram showing an example of an additional drawing setting screen that the UI module 207 displays on the display unit 119 in the seventh embodiment. 2401 to 2405 are the same as 501 to 505 in the first embodiment. However, the additional drawing setting item 2402 includes "transparency" 2402a. Among the input user interface 2403, 2403a corresponding to "transparency" must be able to select the desired transparency from a plurality of discrete values ​​or a continuous value. Examples include a slider, a drop-down list, a text box, a combo box, and a radio button, but the present invention is not limited to these. In addition, the value may be a numerical value, but may be a method in which the value can be selected from characters or character strings such as "low", "medium", and "high".

[0134] FIG. 25 is a flowchart showing an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the seventh embodiment. The processes in S2501 to S2503 are similar to the processes in S801 to S803 in the first embodiment.

[0135] In S2504, the GD module 208 acquires the setting value of "transparency" from the UI module 207, and the process proceeds to S2505. In S2505, the GD module 208 composites the additional drawing on top of the drawing content issued by the application 204, and generates composited raster data. Then, the process proceeds to S2507. In this embodiment, the content of the drawing area of ​​the memory device context is composited with the content of the drawing area of ​​the printer device context by specifying a transparency (alpha blending). To perform this composition, for example, the API function AlphaBlend of GDI 202 may be used, and a value may be converted and specified so that the drawing is performed at the transparency when the function is called. This concludes the description of an example of the operation of the print data generation and transmission process (S612 in FIG. 6) of the GD module 208 in the seventh embodiment.

[0136] FIG. 26 is a diagram illustrating an example of combined raster data in the seventh embodiment. 26A. In the case where the additional drawing is set to OFF, it is assumed that the combined raster data shown in FIG.

[0137] Here, when additional drawing is set to ON and transparency is set to OFF, the resulting composite raster data is as shown in Fig. 26(b). In Fig. 26(b), 2602 shows the drawing result of the additional drawing drawn in the foreground. 2603 shows an 18 pixel x 18 pixel area obtained by enlarging the drawing result of the additional drawing. In this embodiment, when transparency is set to OFF, it is expressed in a single solid color, as shown in 2603.

[0138] On the other hand, when both additional drawing and transparency are set to ON, the resulting composite raster data is as shown in Fig. 26(c). In Fig. 26(c), 2604 shows the result of additional drawing performed by a compositing process with a specified transparency. 2605 shows an 18 pixel x 18 pixel area obtained by enlarging the result of the additional drawing, and is a solid single color like 2603. The degree of transparency of 2604 and 2605 changes 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 execute additional drawing.

[0139] Eighth embodiment In this embodiment, an example of drawing a page number will be described as an additional drawing. Note that this embodiment is similar to the first embodiment unless otherwise noted. FIG. 27 is a diagram showing an example of an additional drawing setting screen that the UI module 207 displays on the display unit 119 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 a "page number" 2702a. The page number preferably includes a "position" 2702b as an additional drawing setting item subordinate thereto. The input user interface 2703 corresponding to the "page number" 2702a and the "position" 2702b are items 2703a and 2703b. The position on the logical page at which the page number is to be drawn is determined by the setting of item 2702b.

[0141] FIG. 28 is a diagram illustrating an example of combined raster data when one spool page is allocated as a logical page to one physical page in the eighth embodiment. In the case of the additional drawing OFF setting, the result shown in Fig. 28(a) is obtained. In Fig. 28(a), 2801 is the drawing result of the drawing content issued by the application 204, and it is assumed that in addition to text, drawing content with a background color is issued.

[0142] When the additional drawing is set to ON and the page number is set to ON, the combined raster data shown in Fig. 28(b) is obtained. In Fig. 28(b), 2802 is the drawing result of the page number, which is drawn in front of the drawing content issued by the application 204.

[0143] On the other hand, when two spool pages with the same print settings are assigned to one physical page as a logical page, the resulting composite raster data is as shown in Fig. 28(c). When additional drawing is set to ON and page number is set to ON, the resulting composite raster data is as shown in Fig. 28(d). At this time, the page number drawing result 2803 is drawn for each logical page.

[0144] In this embodiment, the print processor 205 executes additional drawing processing for each logical page. The print processor 205 is a component that performs logical page allocation, and therefore 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 execute additional drawing including different contents for each logical page, such as a page number.

[0145] The present invention is not limited to page numbers. For example, it is possible to perform more flexible additional drawing, such as performing additional drawing with different contents on the front and back of a document when double-sided printing is performed, or changing the position of additional drawing on a logical page depending on the position of the logical page when layout printing is performed.

[0146] As described above, according to each embodiment, it is possible to perform additional drawing with visual effects on the front of the drawing content issued by the application, and it is possible to notify the OS of the correct page count without being subject to OS restrictions. Therefore, even if the number of printed pages is displayed using an OS function, it is possible to prevent user confusion caused by a value different from the actual number of printed pages being displayed.

[0147] Ninth embodiment When using image data 302 created by a user as data for additional drawing, the following problem occurs: In the above-mentioned point-and-print, when the print processor 205 and the GD module 208 are set to perform processing on the server side (hereinafter referred to as "server-side rendering"), it is difficult to transmit the image data 302 to the server side. To solve this problem, the UI module 207 inserts a spool page for additional drawing into the spool file 301, and the print processor 205 issues a drawing instruction to overlap the normal spool page (hereinafter referred to as the "logical spool page") and the spool page for additional drawing. However, as mentioned above, this method cannot be executed in the splwow64 process.

[0148] In the ninth embodiment, a method of performing appropriate processing depending on whether the process is an splwow64 process or not and whether the type of additional drawing is "character" or "image" will be described. Unless otherwise specified, this embodiment is similar to the first embodiment. In this embodiment, when the additional drawing setting screen is opened in the splwow64 process, a predetermined control is executed so as not to print the additional drawing which is an image. Specifically, the predetermined control is, for example, a control in which the UI module 207 erases or grays out an option for setting the type of additional drawing to "image" from 503 or 2703, thereby making the option unselectable. Note that the predetermined control may be a control to delete the additional drawing which is an image and generate print data.

[0149] In the ninth embodiment, the item "Transparent" in Fig. 5 may be replaced with an item "Transparent / Back". This is because when "Transparent / Back" is checked, if the type of additional drawing is text, the same processing as in the first to eighth embodiments is executed, but if the type of additional drawing is an image, processing for drawing the image in the background may be executed.

[0150] FIG. 29 is a diagram showing an example of the data flow from when a print instruction is issued by the application 204 until print data is sent to the printing device 102. In the ninth embodiment, when the type of additional drawing is a character, the flow is the same as that of the first to eighth embodiments, but when the type of additional drawing is an image, the flow is as follows. Note that in this embodiment, the additional drawing of the image type is specifically, for example, an additional drawing in bitmap format.

[0151] First, the application 204 calls the UI module 207 and creates print settings. To create the print settings, the UI module 207 displays a print setting screen on the display unit 119, and the user may use the pointing device 117 and the keyboard 118 to input setting information required for additional drawing (hereinafter, "additional drawing setting information"). When a user issues a print instruction from an application 204 , the application 204 passes print settings and drawing data to the GDI 202 .

[0152] When the GDI 202 receives print settings and drawing data from the application 204, it stores a document spool page including the print settings and drawing information in the EMF spool file 291 via the spooler 203. This drawing information is the drawing content issued by the application 204. At this time, the GDI 202 also transmits a print start notification to the UI module 207. In response to receiving this, the UI module 207 executes a spool page insertion process. The spool page insertion process will be described in detail later, but during this process, the UI module loads image data 292. This image data 292 is, for example, created as an image file on the host computer 101. During the spool page insertion process, the UI module 207 also instructs the GDI 202 to perform additional drawing. As a result, an additional spool page including 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 acquires additional drawing setting information from the UI module 207 for additional drawing. Then, the print processor 205 determines, based on the above-mentioned additional drawing setting information, whether the additional drawing is to be drawn in front of or behind the drawing issued by the application. Thereafter, the print processor 205 issues an instruction to draw the logical spool page and the additional spool page included in the EMF spool file 291 by calling an API function of the GDI 202 . At this time, when the additional 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 the additional spool page afterwards. Note that when the additional 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 drawing instructions received from the GDI 202. What is drawn here is both the drawing contents issued by the application 204 and additional drawing. Thereafter, the GD module 208 generates print data 295 that can be read by the printing device 102 based on the rendering results in the rendering memory 294 , and transmits the print data 295 to the printing device 102 .

[0155] FIG. 30 is a flowchart showing an example of the flow of a spool page insertion process executed by the UI module 207. In S3001, the UI module 207 determines whether the type of additional drawing is a character or an image from the additional drawing setting information. If it is a character, the process of this flowchart ends, and if it is an image, the process proceeds to S3002.

[0156] In S3002, the UI module 207 acquires the execution file name, and advances the process to S3003. In S3003, the UI module 207 determines whether or not the UI module 207 is being executed as an splwow64 process. That is, it determines whether the executable file is splwow64 from the executable file name acquired in S3002 above. If it is an splwow64 process (YES in S3003), the process proceeds to S3004, and if it is not splwow64 (NO in S3003), the process proceeds to S3005.

[0157] In S3004, the UI module 207 turns off the additional drawing and ends the process of this flowchart. Turning off the additional drawing specifically means deleting the additional drawing and controlling to generate print data without additional drawing processing. As described above, when the UI module 207 is executed by the splwow64 process, a predetermined control is executed to prevent the additional drawing of the image type from being selected, so that the determination in S3003 is not normally YES. However, depending on the conditions under which the UI module 207 is started, the process for executing the UI module 207 may not have been determined when the UI module 207 is started. Therefore, after the additional drawing of the image type is selected on the additional drawing setting screen, the splwow64 process may be determined as the process for executing the UI module 207. In such a case, the determination in S3003 is YES, and the process in S3004 is executed.

[0158] In S3005, the UI module 207 loads the image data 292, and advances the process to S3006. In S3006, the UI module 207 performs an additional drawing method calculation process using the loaded image data 292, additional drawing setting information, etc. In the additional drawing method calculation process, calculations are performed for the coordinates and size of the additional drawing, etc. Then, the process proceeds to S3007. In S3007, the UI module 207 inserts (draws) the additional spool page based on the calculation result in S3006 by calling the API of the GDI 202. After that, the processing of this flowchart ends.

[0159] The operation of the page drawing process of the print processor 205 in the ninth embodiment can be performed, with some exceptions, by the method shown in the flowchart of Fig. 6. However, the additional drawing process in S608 and the print data generation and transmission process in S612 are performed as follows. Here, the additional drawing process (S608) in this embodiment will be described.

[0160] FIG. 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 the additional drawing is a character or an image from the additional drawing setting information acquired in S607. If the type of the additional drawing is a character, the print processor 205 performs process A (S3102) and ends the process of this flowchart. In process A, the additional drawing process described in any one of the first to eighth embodiments is performed. That is, if the type of the additional drawing is a character, process A is executed regardless of whether the UI module 207 is executed in the splwow64 process. Note that this is not limited to the above. Even if the type of the additional drawing is a character, process B described later may be executed. On the other hand, if the type of the additional drawing is an image, process B is executed (S3103) and ends the process of this flowchart. Process B is an additional drawing process specific to this embodiment, and details will be described later. That is, if the type of the additional drawing is a character and the UI module 207 is executed in a process other than the splwow64 process, process B is executed. If the type of additional drawing is a character and the UI module 207 is executed by the splwow64 process, the additional drawing process itself is not executed (neither process A nor process B is executed).

[0161] FIG. 32 is a flowchart showing an example of the operation of process B (part of the additional drawing process of the ninth embodiment). In S3201, the print processor 205 determines whether or not the transparency / background is ON from the additional drawing setting information. If it is not ON (NO in S3201), the process proceeds to S3203, and if it is ON (YES in S3201), the process proceeds to S3202.

[0162] In S3202, the print processor 205 issues an additional page drawing instruction to the GDI 202. This is a drawing instruction for an additional spool page inserted by the UI module 207, and is drawn behind the logical page. After that, the process proceeds to S3203. In S3203, the print processor 205 issues a logical page rendering instruction to the GDI 202. After that, the process proceeds to S3204.

[0163] In S3204, the print processor 205 determines whether or not the transparent / background setting is ON from the additional drawing setting information. If it is not ON (NO in S3204), the process proceeds to S3205, and if it is ON (YES in S3204), the process of this flowchart ends.

[0164] In S3205, the print processor 205 issues an additional page drawing instruction to the GDI 202. This is a drawing instruction for the additional spool page inserted by the UI module 207, and is drawn in front of the logical page. Thereafter, the processing of this flowchart ends.

[0165] FIG. 33 is a flowchart showing an example of the flow 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 a memory device context has been notified. In the ninth embodiment, if additional drawing is ON and the type of additional drawing is text, a handle to a memory device context is notified. If a handle to a memory device context has been notified, the GD module 208 performs process C (S3302). In process C, print data generation and transmission processing is performed using the method described in any one of the first to eighth embodiments, and the processing of this flowchart ends.

[0166] On the other hand, if it is determined in S3301 that the handle of the memory device context has not been notified, the GD module 208 performs process D (S3303) and then ends the process of this flowchart. Process D is a print data generation and transmission process specific to this embodiment, and will be described in detail later.

[0167] FIG. 34 is a flowchart showing an example of the operation of process D (part of the print data generation and transmission process of the ninth embodiment) in the ninth embodiment. In S3401 to S3403, the GD module 208 performs drawing processing in the order of back additional drawing content, application drawing content, and foreground additional drawing content. Note that the back additional drawing content is drawing content based on the additional page drawing instruction of S3202 of process B, and the foreground additional drawing content is drawing content based on the additional page drawing instruction of S3205 of process B. As a result, the GD module 208 generates raster data in which the additional drawing content is composited in front of or behind 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 to transmit the print data generated in S3404 to the printing device.

[0169] 35 is a sequence diagram showing an example of the operation of the page drawing process at the time of additional drawing of the UI module 207, the print processor 205, the GDI 202, and the GD module 208. Note that the processes of S3501, S3502, S3504, S3506, S3507, and S3508 are equivalent to the processes of S401, S402, S407, S408, S409, and S410 shown in FIG.

[0170] In S3503 and S3505, the print processor 205 issues an additional page rendering instruction (GdiPlayPageEMF) to the GDI 202. This processing is performed in the same manner as the processing in S3504, except that the GDI 202 is instructed to render the additional spool page inserted by the UI module 207 instead of the logical spool page.

[0171] The additional spool page designated for drawing in S3503 is to be drawn behind the logical spool page designated for drawing in S3504, while the spool page designated for drawing in S3505 is to be drawn in front of the logical spool page designated for drawing in S3504. Moreover, S3503, S3504, and S3505 are processes corresponding to S3202, S3203, and S3204 in FIG.

[0172] FIG. 36 is a diagram illustrating an example of raster data in the ninth embodiment. 36A. In the case of the additional drawing OFF setting, the result as shown in FIG. Here, when the additional drawing is set to ON, the type of the additional drawing is "image", and the transparent / background setting is OFF, raster data such as that shown in Fig. 36(b) is obtained. In Fig. 36(b), 3602 indicates the drawing result of the additional drawing drawn in front of the drawing content issued by the application 204.

[0173] On the other hand, when the additional drawing is ON, the type of additional drawing is "image", and the transparent / background setting is ON, raster data such as that shown in Fig. 36(c) is obtained. In Fig. 36(c), 3603 indicates the additional drawing result drawn behind the drawing content issued by the application 204. When the type of additional drawing is "character", the result as described in any one of the first to eighth embodiments is obtained. In this way, in the ninth embodiment, appropriate processing can be performed depending on the state of the OS or application, and the number of situations in which additional drawing cannot be performed can be reduced.

[0174] As described above, according to each embodiment, it is possible to more appropriately generate print data for additional drawing on top of drawing content issued by an application.

[0175] It goes without saying that the configurations and contents of the various data described above are not limited to those described above, and the data may have various configurations and contents depending on the application and purpose. Although one embodiment has been described above, the present invention can be embodied, for example, as a system, an apparatus, a method, a program, a storage medium, etc. Specifically, the present invention may be applied to a system composed of multiple devices, or may be applied to an apparatus composed of a single device. Furthermore, any combination of the above-described embodiments is also included in the present invention.

[0176] (Other embodiments) The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions. Furthermore, the present invention may be applied to a system made up of a plurality of devices, or to an apparatus made up of a single device. The present invention is not limited to the above-mentioned embodiment, and various modifications (including organic combinations of the embodiments) are possible based on the spirit of the present invention, and are not excluded from the scope of the present invention. In other words, the present invention includes all configurations that combine the above-mentioned embodiments and their modifications. [Explanation of symbols]

[0177] 202 GDI 203 Spooler 205 Print Processor 206 Printer Driver 207 UI Module 208 GD Module 301 EMF spool file 303 Additional drawing memory 304 Drawing Memory

Claims

A control method for an information processing apparatus that generates print data using a print processor that calculates an assignment of a logical page in a spool file storing drawing information of one or more logical pages created in an application to a physical page, 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, comprising: an additional drawing step in which the print processor generates second raster data for performing additional drawing in a drawing area different from the drawing area for printing, in addition to the drawing information of the logical page; a combining step in which the printer driver combines the first raster data and the second raster data to generate third raster data; a generating step of generating print data based on the third raster data, characterized by the above. The control method according to claim 1, wherein in the combining step, when combining the first raster data and the second raster data, each bit of the color information of each pixel having the same coordinates is logically ANDed to calculate each bit of the color information of each pixel after combination. The control method according to claim 1, wherein the print processor has a halftoning step of halftoning the second raster data. The control method according to claim 3, wherein in the halftoning step, the size of the halftone repetition unit is changed based on the size of the additional drawing. The control method according to claim 3, wherein the halftoning step changes the size of the halftone repetition unit based on the type of medium used for printing. The control method according to claim 3, wherein in the halftoning step, the size of the halftone repetition unit is changed based on the type of printing agent installed in the printing apparatus used for printing. The control method according to claim 3, wherein the printer driver has a compressing step of compressing the third raster data. The print processor halftones the second raster data when the additional drawing is text, When the additional drawing is an image, the synthesis step calculates each bit of the color information of each pixel after synthesis by obtaining the logical product of each bit of the color information of each pixel having the same coordinates in the first raster data and the second raster data. The control method according to claim 3, characterized in that.

9. The control method according to claim 1, characterized in that, in the synthesis step, the first raster data and the second raster data are synthesized based on the transmittance information included in the print settings.

10. The control method according to claim 1, characterized in that, when a plurality of logical pages are assigned to one physical page, the additional drawing step performs additional drawing for each logical page.

11. The control method according to claim 10, characterized in that the different additional drawings for each logical page include an additional drawing indicating a 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 according to whether the additional drawing is a character or an image.

13. When the additional drawing is an image, whether to generate print data for performing the additional drawing or generate print data without performing the additional drawing is switched according to whether the UI module included in the information processing apparatus operates in the splwow64 process or a process other than the splwow64 process. The control method according to claim 1, characterized in that.

14. The control method according to claim 13, characterized in that, when the additional drawing is a character, print data for performing the additional drawing is generated regardless of whether the UI module included in the information processing apparatus operates in the splwow64 process or a process other than the splwow64 process.

15. When the additional drawing is an image and the UI module included in the information processing apparatus operates in the splwow64 process, print data for not performing the additional drawing is generated, and when the additional drawing is an image and the UI module included in the information processing apparatus operates in a process other than the splwow64 process, print data for performing the additional drawing is generated. The control method according to claim 1, characterized in that. When the UI module included in the information processing apparatus operates in the splwow64 process, a control step of executing control for disabling the selection of an option for selecting an image as the type of the additional drawing; and further executing The control method according to claim 1, characterized in that.

17. A memory device context is issued so that additional drawing is not notified to the operating system as a printed page. The control method according to claim 1, characterized in that.

18. An information processing apparatus for generating print data using a print processor that calculates an assignment of a logical page created in an application to a physical page included in a spool file storing drawing information of one or more logical pages, and a printer driver that generates first raster data based on the drawing information of the one or more logical pages using the result of the calculation in a drawing area for printing, wherein the print processor includes additional drawing means for generating 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 combining means for combining the first raster data and the second raster data to generate third raster data; the printer driver includes generating means for generating print data based on the third raster data; An information processing apparatus, characterized by comprising.

19. A storage medium storing a program for causing a computer to execute the control method according to any one of claims 1 to 17.