The present invention relates to an image forming apparatus, a method for controlling the image forming apparatus, and a program.
A new function can be additionally imparted to a printer driver installed in a printer connected to a host computer by further installing a functionality enhancement module therein.
A conventional example of the additional function is a copy-forgery-inhibited pattern (for example, see Japanese Patent Application Laid-Open No. 2001-197297). An image with the copy forgery inhibited pattern is characterized in that just a simple pattern or an ordinary background image to the human eyes in an original of then image (printed matter directly outputted from a printer) manifests itself as a given character or image when the image is duplicated. This characteristic can effectively prevent, for example, the use of unwanted duplication of the printed matter. The copy-forgery-inhibited pattern function can be forcibly added to the printed material by a PC administrator, and a potential way to use the copy-forgery-inhibited pattern is to include the pattern in all of printouts in a workplace. Thus, the copy-forgery-inhibited pattern function now plays an important role in prevention of information leak. Thus, there are administrators who request that it would be mandatory for all of users to use the copy-forgery-inhibited pattern function.
The functionality enhancing technique for the printer driver thus offers an additional value to users. Thus, it is discussed to supply function enhancement modules and programs for additionally installing the modules in the form of paid software. To bring such a post-production functionality enhancement into practice, it is required to further incorporate a requirement to control availability of the functionality enhancing technique for the printer driver so that a commercial value of the software is protected.
Japanese Patent Application Laid-Open No. 2006-099747 discusses a technique for preventing unlimited installation of a program module configured to enhance functions of a printer driver. The technique discussed in Japanese Patent Application Laid-Open No. 2006-099747 controls determination of whether data or a functionality enhancement module necessary for operating the program module configured to enhance the printer driver functionality is included in an installation set to be additionally installed.
According to an aspect of the present invention, an image forming apparatus which outputs an image based on a print job received from an information processing apparatus includes a determining unit configured to determine whether a received print job is generated by an information processing apparatus which has a license for an additional drawing function when the received print job includes print data of an additional drawing for printing the additional drawing on a print target document, and a control unit configured to perform control to output an image by combining print data of the print target document included in the print job with the print data of the additional drawing when the determining unit determines that the received print job is generated by the information processing apparatus which has the license.
Other features and advantageous of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout there of.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the invention and, together with the description, serve to explain the principles of the invention.
Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings.
In
The program ROM of the ROM 3 or the external memory 11 stores, for example, an operating system program (hereinafter, abbreviated as OS) which is a control program for the CPU 1. Further, font data used for processing the document or the like is stored in a font ROM of the ROM 3 or the external memory 11. Further, various types of data used for processing the document are stored in a data ROM of the ROM 3 or the external memory 11.
A random access memory (RAM) 2 serves as a main memory and a work area of the CPU 1. A keyboard interface (I/F) 5 controls key inputs from a keyboard 9 and a pointing device not illustrated. A display I/F 6 controls display on a display 10.
An external memory I/F 7 controls an access to the external memory 11 such as a hard disc (HD) or a floppy disc (FD). The external memory 11 stores, for example, a boot program, various types of applications, font data, user files, edited files, and a printer driver. A network I/F 8 controls a communication with a printer 150 (image forming apparatus) via a network 400.
The CPU 1 performs rasterization processing of an outline font to a display information RAM provided on the RAM 2 to enable what-you-see-is-what-you-get (WYSIWYG) display on the display 10. The CPU 1 opens various registered windows based on a command which is inputted by a mouse cursor (not illustrated) on the display 10 and executes various types of data processing. When a user executes printing, the user opens a print setup window to select a printer and set a printing method in the printer driver including selection of a print mode.
The printer 150 includes a printer CPU 12. The CPU 12 outputs an image signal as output information to a printing unit (printer engine) 17 connected to a system bus 15 based on a control program stored in a program ROM of a ROM 14 or an external memory 21.
The program ROM of the ROM 14 stores the control program for the CPU 12. A font ROM of the ROM 14 stores font data or the like to be used when the output information is generated. A data ROM of the ROM 14 stores information used on the host computer when the printer is not equipped with the external memory 21 such as a hard disc.
The CPU 12 can communicate with the host computer 300 via the network I/F 16 and the network 400 and notify the host computer 300 of information in the printer.
A RAM 13 serves as a main memory and a work area of the CPU 12. The RAM 13 is configured to extend its memory capacity by using an option RAM connected to an extension port not illustrated. The RAM 13 is used as a rasterization area for the output information, a storage area for environmental data, and non-volatile random access memory (NVRAM).
An external memory I/F 18 controls an access to the external memory 21 such as a hard disc (HD) as described above or an integrated circuit (IC) card. The external memory 21 is connected to the external memory I/F 18 as an optional device for storing font data, form data, and an emulation program. The external memory 21 to be connected is not limited to one. At least two or more external memories may be connected in which an option font card in addition to built-in fonts and a program for interpreting different printer control languages are stored. Further, the external memory 21 may include an NVRAM (not illustrated) so that printer mode setup information from an operation unit (operation panel) 20 is stored in the NVRAM. The operation unit 20 is equipped with an operation switch, a light-emitting diode (LED) display, and a liquid crystal display (LCD), and receives a user's operation. The network 400 may be connected with a plurality of host computers 300 and a plurality of printers 150. The host computer 300 and the printer 105 may be directly connected to each other by, for example, a USB cable.
The application 201 stored in the external memory 11 is loaded into the RAM 2 and executed by the CPU 11. When a user causes the printer 150 to perform printing via the application 201, the user also uses the graphic engine 202 similarly loaded into the RAM 2 which is ready to be executed by the CPU 1 to output the data (drawing).
The graphic engine 202 loads the printer driver 203 provided for each printer into the RAM 2 from the external memory 11, and converts an output of the application 201 into a printer control command by using the printer driver 203. The converted printer control command is outputted as a print job to the printer 150 via the network 400 and the system spooler 204 which is loaded into the RAM 2 by the OS.
In the present exemplary embodiment, the printer drive 203 includes a print control unit 301, an additional drawing generation unit 302, and a print processing unit 303. The print control unit 301 controls print data. The additional drawing generation unit 302 implements an additional drawing function for generating an additional drawing. The print processing unit 303 processes the print data. The additional drawing generation unit 302 is installed in the host computer 300 as an additional function of the printer driver 203.
The printer 150 includes a print job receiving unit 151, a printing job control unit 152, an additional drawing control unit 153, a license management unit 154, and a license DB 155. The print job receiving unit 151, the printing job control unit 152, the additional drawing control unit 153, and the license management unit 154 are each a program module to be loaded into the RAM 13 from the ROM 14 by the OS and another module which uses the module to be executed by the CPU 12. The license DB 155 is built on the external memory 21.
The print job receiving unit 151 receives a print job from the host computer 300. The print job control unit 152 controls the print job. The additional drawing control unit 153 controls an additional drawing. The license management unit 154 manages a license of the additional drawing function that is registered in the license DB 155.
Hereinafter, printing processing executed by the printer driver 203 according to a first exemplary embodiment of the present invention will be described referring to a flow chart illustrated in
When printing processing for printing a document of
In step S401, the print control unit 301 of the printer driver 203 receives print data of the document (print target document) and a print command from the graphic engine 202.
In step S402, the print control unit 301 converts the print data of the document received in S401 into a print command called “Page Description Language (PDL)” (print data printable by the printer 150) to create a print job (
In step S403, the additional drawing generation unit 302 generates a PDL command of the additional drawing. In the present exemplary embodiment, a PL command corresponding to the copy-forgery-inhibited pattern illustrated in
An additional drawing area 802 stores the PDL command of the additional drawing generated in step S403 as the attribute data of the additional drawing. A document area 803 stores the PDL command of the print target document generated in step S402.
Returning to the description of the flow chart of
Referring to a flow chart illustrated in
In step S701, the print job receiving unit 151 of the printer 150 receives the print job transmitted from the system spooler 204 of
In step S703, the print job control unit 152 transmits the PDL command (print data) of the print target document to the print processing unit 156. The print processing unit 156 receives the PDL command (print data) of the print target document from the print job control unit 152 and prints the received data. Accordingly, a print result as the document illustrated in
When it is determined in step S702 that the attribute data of the additional drawing (PDL command of the additional drawing) is included in the print job (YES in step S702), the print job control unit 152 proceeds with the processing to step S704. In step S704, the additional drawing control unit 153 determines via the license management unit 154 whether the print job is generated by the licensed host computer.
The license management unit 154 collates the unique information included in the print job (
The license management unit 154 determines whether the unique information included in the print job is registered in the license DB 155, and transmits a determination result to the additional drawing control unit 153. When the unique information is registered in the license DB 155, the license management unit 154 notifies the additional drawing control unit 153 of the presence of any registered license.
When the unique information is not registered in the license DB 155 and there is any remaining available license (there is at least one remaining license), the license management unit 154 registers the unique information in the license DB 155. The license management unit 154 decrements the number of remaining available licenses by “1”. Further, the license management unit 154 notifies the additional drawing control unit 153 of the presence of any remaining available license.
When the unique information is not registered in the license DB 155 and there is no remaining available license (there is at least one remaining license), the license management unit 154 notifies the additional drawing control unit 153 of no registered license.
In step S704 (
When there is any registered license or any remaining license still available (YES in step S704), the additional drawing control unit 153 determines that the host computer which generated the print job is granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S705.
In step S705, the additional drawing control unit 153 generates a combined PDL command by combining the PDL command in the document area 803 (PDL command of the print target document) with the PDL command in the additional drawing area 802 (PDL command of the additional drawing). Then, the additional drawing control unit 153 transmits the generated combined PDL command to the print job control unit 152. The print job processing unit 156 receives the combined PDL command from the print job control unit 152 and prints the received data. Accordingly, a print result as a document with the additional drawing illustrated in
When a print job is generated by the host computer which is granted the license for the additional drawing function and the document illustrated in
In the first exemplary embodiment, the PDL of the additional drawing is directly transmitted to the system spooler 204 in a form of a plain text in the printing processing executed by the printer driver 203. If the additional drawing itself represents valuable data, however, it is necessary to protect the additional drawing data. In a second exemplary embodiment of the present invention, therefore, printing processing in which the PDL command of the additional drawing is encrypted will be described referring to a flow chart illustrated in
Steps S1201 to S1203 illustrated in
In an additional drawing area 1302, the PDL command of the additional drawing encrypted in step S1204 is stored. In a document area 1303, the PDL command of the print target document generated in step S1202 is stored. Information to be stored in the Header area 1301 and the PDL command of the print target document to be stored in the document area 1303 are respectively stored in the form of a plain text.
Returning to the description of the flow chart of
Referring to a flow chart illustrated in
When it is determined in step S1404 of
In step S1405, the additional drawing control unit 153 decrypts the encrypted PDL command of the additional drawing which is stored in the additional drawing area 1302 of the print job. In step S1406, the additional drawing control unit 153 generates a combined PDL command by combining the PDL command in the document area 803 of the print job (PDL command of the print target document) with the PDL command of the additional drawing decrypted in step S1405. Then, the additional drawing control unit 153 transmits the generated combined PDL command to the print job control unit 152. The print job processing unit 156 receives the combined PDL command from the print job control unit 152 and prints the received data. Accordingly, a print result as a document with the additional drawing illustrated in
On the other hand, when it is determined in step S1404 that there is no registered license and no remaining license still available (NO in step S1404), the additional drawing control unit 153 determines that the host computer which generated the print job is not granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S1403 without performing the additional drawing controlling. Accordingly, the print target document as illustrated in
When a print job is generated by the host computer which is granted the license for the additional drawing function and the document illustrated in
According to the present exemplary embodiment, when the additional drawing itself represents valuable data, the additional drawing data can be protected and any unauthorized use of the additional drawing can be prevented.
In the first exemplary embodiment, the additional drawing is added to the print job as the attribute data in the printing processing executed by the printer driver 203. In a third exemplary embodiment of the present invention, printing processing in which the additional drawing is used as a page of the document data will be described referring to a flow chart illustrated in
Steps S1501 to S1503 illustrated in
In a document area 1602, each page of the PDL command of the additional drawing generated in step S1503 is stored subsequent to each page of the PDL command of the document (print target document) generated in step S1502. It is not necessary to alternately arrange the PDLs of the print document and the additional drawing.
Returning to the description of the flow chart of
Hereinafter, printing processing executed by the printer 150 according to the third exemplary embodiment of the present invention is described referring to a flow chart illustrated in
In step S1701, the print job receiving unit 151 of the printer 150 receives the print job transmitted from the system spooler 204 of
When the print job control unit 152 determines in step S1702 that the document data of the additional drawing (PDL command of the additional drawing) is not included in the print job (NO in step S1702), the print job control unit 152 proceeds with the processing to step S1703 without performing the additional drawing control.
In step S1703, the print job control unit 152 transmits the PDL command (print data) in the document area 1602 of the print job received in step S1701 to the print processing unit 156. The print processing unit 156 receives the PDL command (print data) from the print job control unit 152 and prints the received data. Accordingly, print results as the document illustrated in
When the print job control unit 152 determines in step S1702 that the document data of the additional drawing (PDL of the additional drawing) is included in the print job (YES in step S1702), the print job control unit 152 advances the processing to step S1704.
In step S1704, the additional drawing control unit 153 determines via the license management unit 154 whether the print job is generated by the licensed host computer.
When there is any registered license or any remaining license still available (YES in step S1704), the additional drawing control unit 153 determines that the host computer which generated the print job is granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S1705.
In step S1705, the additional drawing control unit 153 combines the PDL command of the print target document in the document area 1602 of the print job with the PDL command of the additional drawing added as the document page and generates a combined PDL command. When each page of the PDL command of the additional drawing is stored subsequent to each page of the PDL command of the print target document, the combined PDL command is generated such that the PDL commands of page 1 and page 2 are combined or the PDL commands of an odd-numbered page and an even-numbered page are combined. Then, the additional drawing control unit 153 transmits the generated combined PDL command to the print job control unit 152. The print job processing unit 156 receives the combined PDL command from the print job control unit 152 and prints the received data. Accordingly, a print result as a document with the additional drawing illustrated in
On the other hand, when there is no registered license and no remaining license still available (NO in step S1704), the additional drawing control unit 153 determines that the host computer which generated the print job is not granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S1703 without performing the additional drawing controlling. Accordingly, in step S1703, the print target document of
When a print job is generated by the host computer which is granted the license for the additional drawing function and the document illustrated in
In the first exemplary embodiment, the additional drawing is added to the print job as the attribute data in the printing processing executed by the printer driver 203. In a fourth exemplary embodiment of the present invention, printing processing in which a warning message with the additional drawing is handled as a page of the document data will be described referring to a flow chart illustrated in
Steps S1801 and S1802 of
In a document area 2102, each page of the PDL command of the warning message with the additional drawing generated in step S1803 is stored subsequent to each page of the PDL command of the document (print target document) generated in step S1802. It is not necessary to alternately arrange the PDLs of the print document and the additional drawing.
Returning to the description of the flow chart of
Referring to a flow chart illustrated in
In step S2001, the print job receiving unit 151 of the printer 150 receives the print job transmitted from the system spooler 204 of
When the print job control unit 152 determines in step S2002 that the document data of the additional drawing (PDL command of the additional drawing) is not included in the print job (NO in step S2002), the print job control unit 152 proceeds with the processing to step S2003 without performing the additional drawing control.
In step S2003, the print job control unit 152 transmits the PDL command (print data) in the document area 2102 of the print job received in step S2001 to the print processing unit 156. The print processing unit 156 receives the PDL command (print data) from the print job control unit 152 and prints the received data. Accordingly, print results as the document illustrated in
When the print job control unit 152 determines in step S2002 that the document data of the additional drawing (PDL of the additional drawing) is included in the print job (YES in step S2002), the print job control unit 152 advances the processing to step S2004.
In step S2004, the additional drawing control unit 153 determines via the license management unit 154 whether the print job is generated by the licensed host computer.
When there is any registered license or any remaining license still available (YES in step S2004), the additional drawing control unit 153 determines that the host computer which generated the print job is granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S2005.
In step S2005, the additional drawing control unit 153 deletes the warning message from the page of the PDL command of the warning message with the additional drawing in the document area 2102 of the print job and generates a page of the PDL command of the additional drawing. When each page of the PDL command of the warning message with the additional drawing is stored subsequent to each page of the PDL command of the print target document, for example, the warning message is deleted from even-numbered pages of the PDL command, and the pages of the PDL command of the additional drawing are then generated.
In step S2006, the additional drawing control unit 153 combines the PDL command of the print target document in the document area 2102 of the print job with the PDL command of the additional drawing generated in step S2005, so that a combined PDL command is generated. When each page of the PDL command of the warning message with the additional drawing is stored subsequent to each page of the PDL command of the print target document, the combined PDL command is generated such that the PDL commands of page 1 and page 2 are combined or the PDL commands of an odd-numbered page and an even-numbered page are combined. Then, the additional drawing control unit 153 transmits the generated combined PDL command to the print job control unit 152. The print job processing unit 156 receives the combined PDL command from the print job control unit 152 and prints the received data. Accordingly, a print result as a document with the additional drawing illustrated in
On the other hand, when there is no registered license and no remaining license still available (NO in step S2004), the additional drawing control unit 153 determines that the host computer which generated the print job is not granted the license for the additional drawing function. Then, the additional drawing control unit 153 advances the processing to step S2003 without performing the additional drawing controlling. Accordingly, in step S2003, the print document of
When a print job is generated by the host computer which is granted the license for the additional drawing function and the document illustrated in
In the above described exemplary embodiments, the copy-forgery-inhibited pattern is used as the additional drawing. The additional drawing, however, is not particularly limited, and any of barcodes, two-dimensional codes, digital watermark, and low visibility barcodes (LVBC) can be used.
The description of the fourth exemplary embodiment is based on the PDL command of the warning message, however, any kind of warning message may be used. For example, image data depicting a warning message can be used in place of the PDL command of the warning message. In the above described exemplary embodiments, the administrator of the printer 150 registers the unique information in the license DB 155 (license registration) in advance using the operation unit 20 of the printer 150 or using the information processing apparatus via the network 400. Similarly, the administrator of the printer 150 deletes the unique information from the license DB 155 (license deletion) in advance using the operation unit 20 of the printer 150 or using the information processing apparatus via the network 400.
Below is given a consideration on a network provided with a plurality of printers of the same model. There are the following possible embodiments.
Embodiment 1: Each of the printers independently manages its license in the license DB 155. If there are x number of PCs and y number of printers, and it is intended that all of the PCs and all of the printers use the additional drawing function, a user needs to purchase x*y number of licenses.
Embodiment 2: A plurality of printers share their data registered in the license DB 155. When the data of one of the printers registered in the license DB 155 is updated, for example, the other printers are notified of the updated registered data, and the data of the other printers in the license DB are similarly updated. If there are x number of PCs and y number of printers, and it is intended that all of the PCs and all of the printers use the additional drawing function, a user needs to purchase x number of licenses. These embodiments are just a few examples, and other embodiments can be employed.
In the exemplary embodiments described above, the printer manages the license of the additional drawing function. However, the additional function of the printer driver is not limited to the additional drawing function, and other additional functions can be further installed.
For example, when a received print job includes a command for using an additional function, the CPU 12 of the printer 150 determines whether the print job is generated by an information processing apparatus which has a license for the additional function. When it is determined that the print job is generated by the information processing apparatus which has the license, the CPU 12 executes the command for using the additional function included in the print job and outputs an image. On the other hand, when it is determined that the print job is generated by an information processing apparatus which does not have the license, the CPU 12 outputs an image without executing the command for using the additional function included in the print job. The command for using the additional command may be encrypted.
In the case of a plurality of additional functions, a license for each of the additional functions is registered in the license DB 155, and the license management unit 154 separately manages the licenses for the additional functions.
According to the exemplary embodiments of the present invention described above, the additional function can be effectively exerted when the printing processing is performed as far as the license thereof is ensured, without providing a license server and without restricting the installation of the additional drawing function in the printer driver. Moreover, the effect of the additional function can be controlled not to be provided unless the license for the additional function is granted when the printing is executed.
The present invention can also be realized by executing the following process. That is, in the process, a software (program) that realizes the functions of the above-described embodiments is supplied to the system or apparatus via a network or a recording medium of various types, and then a computer of the system or apparatus (or devices such as CPU or MPU) reads out the program and executes it. In such a case, the program and the recording medium where the program is stored are included in the present invention.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims priority from Japanese Patent Application No. 2009-036908 filed Feb. 19, 2009, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2009-036908 | Feb 2009 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2010/001021 | 2/18/2010 | WO | 00 | 6/2/2011 |