Method and apparatus for controlling printing of electronic applications

A method and apparatus for controlling printable content from textual and graphical sources, and reducing consumable print medium such as toner, ink, and paper. The method and apparatus includes a print medium formatting program for configuring data identification options and print options via at least one graphical user interface (GUI) generated by a print option formatting module. The configured data identification options and print options are then stored in one or more print configuration data files. A print monitoring module monitors for a print request. The print medium formatting program intercepts the print request and matches data identification from a spooled print file, which is generated from the print request, with the stored data identification options. If the print medium formatting program finds a match, a transforming program module transforms the spooled print file in accordance to the print options, and then prints the transformed print file to an output device.

FIELD OF THE INVENTION

The invention relates to computer software. More specifically, the invention relates to a method and apparatus for controlling printable subject matter.

BACKGROUND OF THE INVENTION

Today's user interfaces are increasingly graphic-intensive. For example, Internet browsers are used to view web sites, which are becoming heavily augmented with supplementary graphics, such as advertisements, banners, pictures, and the like. When an individual who is “surfing the web” selects a frame on a web page to be printed, the current Internet browsers print the entire frame, including all of the content (i.e., text, graphics, and the like) therein. In many instances, the user is not interested in all of the contents shown on the web page. Therefore, the user may be inundated with undesirable content.

Furthermore, there are extraneous financial and time costs for printing undesirable content such as graphics. For example, the printing of graphics on a web page takes additional time, as well as utilizing extra paper and toner or ink from the printer to complete the print job.

The impact of printing undesirable content is considerable. For example, in the year 2000, there were an estimated 219 million ink jet printers and 200 million laser printers worldwide. Revenues for ink jet cartridges are expected to continue at a double-digit growth rate for the next five years. Moreover, revenues in the year 2000 for ink jet cartridges were $13.9B, while $8.5B for toner cartridges. As usage of the Internet and graphical interfaces grows worldwide, the printing of such undesired content becomes a wasteful consumption of the print medium materials, such as ink cartridges, toner cartridges, paper, and the like, which increases the overall costs of printing.

Therefore, there is a need in the art for a method and apparatus for controlling printable content from web pages and other graphic intensive subject matter.

SUMMARY OF THE INVENTION

Provided are a method and apparatus for controlling printable content and reducing consumable print medium such as toner, ink, and paper. The method and apparatus include a print medium formatting program for configuring data identification options and print options via at least one graphical user interface (GUI) generated by a print option formatting module. The configured data identification options and print options are then stored in a print configuration data file. A print monitoring module of the print medium formatting program monitors for a print request. The print medium formatting program intercepts the print request and matches data identification from a spooled print file, which is generated by the print request, with the stored data identification options. If the print medium formatting program finds a match, a transforming program module transforms the spooled print file in accordance to the print options, and then prints the transformed print file to an output device.

DETAILED DESCRIPTION

The present invention relates to a method and apparatus for controlling printable content on a computer system based upon user defined printing formats. Specifically, a print software program operates in conjunction with a computer system's operating system and/or application programs to monitor print requests, intercept a spooled print file generated from the print request, and then control the content that is printed in accordance with the user defined printing formats. That is, the print software program operates in tandem with the operating system, application programs, and/or any print drivers that exist on a computer device. In one embodiment of the invention, a print medium formatting program permits a user to specify particular output devices, application programs, and the like for which the present invention is applied. Furthermore, a user is provided with the capability to specify the subject matter (e.g., text, graphics, headers, advertisements, and the like) illustratively shown on a web page, which is to be printed output. Moreover, the print medium formatting program monitors print requests and transforms the print data stream in accordance with the criteria specified by the user. Although the present invention is discussed in terms of web pages, it should be understood that the invention is also applicable for any type of software that integrates content illustratively containing graphics, text, and other distinctive features together, and should not be considered as limiting. One such type of software program may illustratively be a software program that allows a user to create and edit photographs, such as PHOTOSHOP® and the like.

As described in detail herein, aspects of the preferred embodiment pertain to specific method steps that are implemented on computer systems. In an alternative embodiment, the invention may be implemented as a computer software product for use with a computer system. The programs of the software product define the functions of the preferred embodiment and may be delivered to a computer via a variety of signal-bearing media, which include, but are not limited to, (a) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by CD-ROM drive); (b) alterable information stored on writable storage media (e.g., floppy disks within diskette drive or hard-disk drive114); or (c) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent alternative embodiments of the present invention. Alternate embodiments may include implementation of the inventive print software program as an application program stored on the computer, as program code stored in a device driver or on an output device itself, or on a network device such as a server or firewall, as discussed in further detail below.

FIG. 1depicts a communications network100in accordance with the present invention. In one embodiment, the communications network100comprises at least one workstation102illustratively coupled to the Internet160through a server150and a router or firewall152. Furthermore, one or more output devices1401through140n(collectively output devices140) are coupled to the workstation102via the server150.

The output devices140may include printing devices such as laser jets, ink jets, dot matrix printers, copiers, scanners, or any other output device, which reproduces an image (e.g., text, graphics, pictures and the like) using a consumable reproduction medium. For purposes herein, consumable reproduction medium includes materials, which are consumed during the operation of reproducing an image such as toner, ink cartridges, ink coated ribbons, paper, and the like. Furthermore, for purposes of better understanding the invention, the output devices140is discussed hereinafter in terms of a “printer”, although such terminology is not considered as limiting.

In one embodiment of the invention, the communications network100may be a local area network or wide area network LAN/WAN having each node coupled together by wiring such as ETHERNET cabling, or alternately by wireless communications illustratively operating under the “Bluetooth”, IEEE 802.11 family standards, Open Air industry standards, Shared Wireless Access Protocol (SWAP), and HiperLAN family standards, which are hereby incorporated by reference herein. For example, both the Bluetooth and the 802.11 standards provide for wireless technology that supports both point-to-point and point-to-multipoint connections. In an alternate embodiment (not shown), the workstation102may be coupled to the Internet via a modem, direct service line (DSL), and the like (not shown), without interfacing with a server150. Specifically, the one or more printers140are coupled to and controlled by the workstation102directly.

Additionally, in one embodiment of the invention, the workstation102may be a desktop computer; however, a person skilled in the art will recognize that a laptop computer, server, hand-held device, and the like may alternately be utilized. The workstation102comprises at least one system interconnect, e.g., bus103, to which various components are coupled and communicate with each other. Specifically, a processor105, storage device108, memory such as random access memory (RAM)104, read only memory (ROM)110, input/output (I/O) ports112, and other support circuits106are coupled to the system bus103. Furthermore, one or more output devices116, such as a display, as well as one or more input devices114such as a keyboard and/or pointing device are respectively coupled to the I/O ports112. The input and output devices114and116permit user interaction with the workstation102.

The processor105sends and receives information to and from each of the workstation components coupled to the system bus103and performs system operations based upon the requirements of the workstation's operating system120and application programs130that are installed thereon. The processor105may be an Intel PENTIUM® type microprocessor, an IBM Power PC® processor, or the like.

The ROM110typically includes a Basic Input-Output System (BIOS) program, which controls basic hardware operations such as the interaction of the microprocessor105with the keyboard/mouse input device114, hard disk108, or video display116, and the like. The storage device108is a permanent storage medium such as a hard disk, CD-ROM, tape, or the like, which stores the operating system120and applications programs130.

The RAM104is volatile memory (e.g., SRAM, DRAM, MRAM and the like). The contents of the RAM104may be retrieved from the storage device108as required. Illustratively, the RAM104is shown with the operating system120and application programs130“A” through “N” concurrently stored therein. The program code of the operating system120and/or application programs130is sent to the RAM104for temporary storage and subsequent execution by the processor105.

The I/O port112includes various controllers (not shown) for each input device114such as a keyboard, mouse, joystick, and the like, as well as the output devices116such as an Ethernet network adapter, infrared device and display (not shown). Typically, other support circuits106include controllers for the storage device108, floppy drive, graphics display, and the like (not shown).

The operating system (OS)120may illustratively be any one of Microsoft's WINDOWS® operating systems, or any other operating system120that provides graphical user interfaces (GUI) for user interaction. The operating system120is capable of interfacing with all of the hardware components of the workstation102. The applications programs130are specialized programs such as a word processing programs, spreadsheets, web browsers, and the like. The executable and library files (not shown) of the operating system120and application programs130are individually transferred from the storage device108to the RAM104for processing as needed. The transfer of the executable files may be controlled by a memory management system such as on-demand paging. A page is a fixed amount of data that is sent to the RAM104for subsequent execution by the microprocessor105. The RAM104may simultaneously store a plurality of pages of data to accommodate various files being processed by the operating system120and application programs130that are concurrently running. Thus, the RAM104is capable of storing files from the operating system120, as well as files from one or more applications programs1301through130n(collectively applications programs130).

In order to oversee the execution of all the files opened, a kernel122is stored in the RAM104. The kernel is a central module of the operating system that is initially loaded into the RAM104. The kernel122is installed at dedicated addresses in the RAM104and is responsible for memory management, process and task management, and disk management. The kernel122manages one or more files that are open during the course of operation.

A print medium formatting program124is illustratively stored at the workstation102. For purposes of clarity and understanding the invention, the print medium format program124is discussed as being incorporated as part of the operating system120. As such, upon “boot-up” of the workstation102, the print medium formatting program124is loaded into the RAM104along with other executable files (not shown) of the operating system120.

However, in a second embodiment, the print medium formatting program124may be implemented as a separate and distinct application program130, and is loaded into the RAM104upon user activation of such application program. In a third embodiment, the print medium formatting program124may be program code incorporated into one or more device drivers. In this third embodiment, the print medium formatting program124is activated only when a specific device driver (e.g. a printer device driver) is utilized by the operating system120. In a fourth embodiment, the print medium formatting program124is loaded onto the individual output devices140. For example, typically a printer or copier has firmware, which provides some intelligence to the device. In this fourth embodiment, a user may key in specific key sequences to activate and utilize the print medium formatting program124or send a command to the printer via a printer interface program. Furthermore, in yet another embodiment of the invention, the print medium formatting program124may be alternately stored on the network (e.g., the server150, a firewall program, and the like) for shared applications, illustratively, in a client/server relationship.

FIG. 2depicts a detailed block diagram200further depicting the contents in the RAM104inFIG. 1. In particular, the RAM104is divided into memory portions202n, where a first memory portion2021stores the operating system120, a second memory portion2022stores the application programs1301through130n, and other memory portions202n, which store other program code (e.g., boot record, system files, and the like), as required. As shown inFIGS. 1 and 2, the print medium formatting program124is illustratively a part of the operating system120. The print medium formatting program124illustratively comprises four program modules204, which provide different features and functionality.

FIG. 3depicts a flowchart of a method300for configuring the print medium formatting program124of the present invention. Generally, the method300presents a user with a graphical user interface (i.e., a pop-up window) that allows the user to either create a new print configuration data file212, or edit or delete an existing print configuration data file212. Although method300is discussed in terms of utilizing a graphical user interface, in another embodiment, a user may interface with the program via other user interfaces, such as a command line interface and the like. Once the user selects and saves the print options presented in the GUI, the currently selected print configuration data file212is linked to, illustratively, the operating system. The operating system120, in conjunction with the print medium formatting program124, then monitors the selected print options in the print configuration data files212for a user print request and subsequent application, as discussed below with regard to method600presented inFIG. 6. For a detailed understanding of configuring the print medium formatting program124, the method300should be viewed in conjunction withFIGS. 2,4, and5as discussed below.

The method300starts in step302, where a user has booted up the workstation102, and proceeds to step304. Portions of the operating system120, including print medium formatting program124are loaded from the storage device108into the RAM104for subsequent execution by the processor105. In one embodiment, the print medium formatting program124is executed upon each print request made by a user. In other embodiments, the print medium formatting program124may be executed by pressing a series of “hot-keys”, clicking on an icon, and the like. In step304, the print option formatting module210generates one or more graphical user interfaces (GUIs) as a pop-up screen for user interaction. The print option formatting module210is program code capable of creating one or more graphical user interfaces, which permit a user to configure and save various printing options in an existing or new configuration data file212.FIGS. 4 and 5illustratively depict one embodiment of such GUIs. In particular,FIG. 4depicts a first GUI400for applying data identification options of the present invention for various mediums. Additionally,FIG. 5illustratively depicts a second GUI500for applying particular print options to the various mediums selected in the first GUI ofFIG. 4.

Referring toFIG. 4, the first GUI400provides a user with the capability to configure various parameters in the print medium formatting program124. In particular, the first GUI400is displayed on top of (i.e., over) any currently displayed operating system and/or application program. Each graphical user interfaces (e.g., GUI400) is activated by execution of the print option formatting module210of the print medium formatting program124.

The first GUI400illustratively comprises a header402, an information field404, and a control bar406. The header402identifies the title of the first GUI (i.e., pop-up window)400and has view control buttons for illustratively closing, reducing, and enlarging the pop-up window. The information field404is the main body of the first GUI400and contains multiple data fields illustratively framed by scrollable sub-windows, which contain selectable data identification options. In one embodiment, the user may select options (e.g., highlight, mouse click, check, and the like) from a list provided to the user. Alternately, the user may enter various options by typing such options in a command line (not shown) on the GUI400. One exemplary data field containing a selectable data identification option is a configuration name field408, which allows the user to select a print configuration data file212in accordance with step304of method300.

In step306, the user determines whether a new print configuration data file212is to be created. If the user determines that a new print configuration data file212is not required, then the method proceeds to step308, where the user selects an existing print configuration data file212. The method300then proceeds to step310, where the user makes a second determination. In step310, the user determines whether to edit an existing print configuration data file. If, in step310, the determination is answered positively, the method proceeds to step312, where the user is shown the data identification and print options saved under that selected configuration, as well as other available print options from which the user may choose.

For example, referring toFIG. 4, if the user selects configuration2in the configuration name field408, the user is illustratively presented with four additional sub-windows, such as a device sub-window410, a users sub-window412, an applications sub-window414, and an application specific sub-window416. The devices sub-window410presents the user with a listing of available output devices140for which the present invention is applied and the user is authorized to access. Such output devices140illustratively include one or more printers, copiers, scanners, and the like. The user may optionally select one or more output devices140, or all of the devices140.

The users sub-window412is applicable when the workstation102is part of the communications network100. As such, the users sub-window412presents the user with the option of selecting, for example, from a list, all or some of the users, for which the present invention is applicable. Furthermore, the list may be limited by the user's security authorizations.

Additionally, the user is presented with a listing of the applications programs130in the applications sub-window414. The user may then select particular application programs130, for which the present invention is to be applied. For example, the user may select one or more individual application programs130, such as Microsoft's EXPLORER® and/or the NETSCAPE® browser, PHOTOSHOP®, and the like.

Furthermore, by selecting from the application specific sub-window416the user may configure specific data. For example, most notable web browsers provide viewer history features, which allow a user to select from a listing of temporarily, saved uniform resource locators (URLs) during a current session, or permanently saved “bookmarked” URLs. As such, the application specific sub-window416illustratively permits a user to select or enter particular URL's for which the present invention is applied.

The user highlights the desired data identification options (by keystroke, mouse clicking, and the like) in each sub-window410,412,414, and416, and then saves the selected options in the print configuration data file212. In particular, the user clicks on a “SAVE” button located in the control bar406below the information field404. Other control bar buttons located in the control bar406may include an “ACCEPT” button, a “CANCEL” button, a “NEXT” button, an “ADD” button, a “DELETE” button, a “HELP” button, and the like. Such buttons are well known in the art and are discussed herein only for purposes of completeness.

In one embodiment, additional print options may be viewed by clicking on the “NEXT” button. In particular, the print option formatting module210generates a second GUI for presentation to the user.FIG. 5illustratively depicts the second GUI500for applying particular print options to the various mediums selected in the first GUI ofFIG. 4. In particular, the second GUI500comprises a header402, an information field404, and a control bar406as discussed above with regard to the first GUI400. The second GUI500is utilized to specify particular options to the output device (i.e., printer, copier, and the like).

In the illustrative embodiment ofFIG. 5, the information field404is shown having a print color sub-window502and an output options sub-window504. The print color sub-window502provides the user with a listing of printing options such as “ORIGINAL”, “B/W” (black and white only), and “Ink Supply.” The ORIGINAL option allows the user to print, for example, the contents of a web page ‘as is’, including all of the colored graphics and text as shown in a browser on the display screen. The B/W option allows a user to print the displayed web page only in black and white, as opposed to using colored inks.

Additionally, the Ink Supply option permits a user to print the displayed web page in any color or colors, dependent on the supply of ink remaining in the ink cartridge. For example, many color printer models, such as the HP2000C printer model by Hewlett-Packard, monitor the ink levels in the cartridges. Accordingly, the Ink Supply option illustratively selects particular ink color cartridges having high ink levels for printing, as opposed to those color ink cartridges, which are running low. This feature allows for more uniform consumption of the colored ink, thereby reducing the likelihood that one particular color (e.g., blue) may be consumed much sooner than the rest of the colored inks in the printer140. For example, a user who consumes all of the black ink in a multi-ink well cartridge has the capability to reproduce a “simulated” black color from the remaining colored ink wells in the cartridge. This alleviates the wasteful practice of throwing out a single cartridge having multi-colored ink wells because one or a few of the colors have been consumed, while the remaining colors are still available for consumption, but are used less often.

Referring toFIG. 5, the output options sub-window504permits the user to select portions of an exemplary web page, resolution, and other print options. In one embodiment, the user may illustratively select the entire web page document “as is.” Alternately, the user may select only the text, or the web page without the headers/banners/advertisements, or disregard any solid colored background areas, and/or the like. Additionally, the user may select portions of the web page by highlighting such desired portions with a mouse or other input device. As such, the above mentioned options described inFIGS. 4 and 5permit a user to reduce the printable content according to such users requirements and reduces the consumption of the consumable printing medium such as toner cartridges, ink cartridges, ink coated ribbons, paper, and the like.

Furthermore, the output options504preferably include resolution settings, such that the resolution of the printed or copied subject matter may be reduced from 100% to either a medium or low setting, or some specific setting measured by dots-per-inch (DPI). For example, if a user illustratively checks off the “Solid Background” option and specifies 50% in the DPI setting, then a normally dark shade solid background would be printed at a lighter shade of the same color, thereby reducing the amount of ink or toner consumed. Additional cost savings as described above may be provided through the present invention by reducing the size of the image by some selectable percentage, as well as printing more than one illustrative web page on a single page in combination with the aforementioned output formatting options

Referring toFIG. 3, the method300, and specifically step306, if the first determination by the user, which is to create a new print configuration data file212, is answered affirmatively, then the method proceeds to step312, as discussed above with regard to editing an existing print configuration data file212in step310. That is, the first and second GUI's of step304, as illustratively shown inFIGS. 4 and 5, are presented to the user for selecting data identification and print options. Once the user has selected the data identification and print options in step312, the user saves the selected information. Specifically, in step314, the selected new or edited (i.e., current) print configuration data file212is saved with the selections made in a permanent print configuration data file, which is deemed currently active. In step316, the current print configuration data file212is illustratively linked with the operating system as the print configuration data file212that is to be actively accessed and read, as opposed to other existing print configuration data files212that are stored on the workstation102. Once the saved print configuration data file212is stored in step314and then made current in step316, the method300ends in step322.

Method300also depicts steps to delete an existing print configuration. The user may in step310edit such print configuration data file212, or alternately, in step318, delete the existing print configuration data file212. The deletion is made by first highlighting the selected print configuration data file212in step308. In step320, illustratively pressing the DELETE button in the control bar406of the first GUI400permanently deletes the selected print configuration data file212from memory. That is, the deleted file is unlinked from memory and will not be displayed again as an existing configuration data file212in future GUI presentations. Alternately, if the user does not create a new configuration data file, or edit or delete and existing configuration data file, the user, in step322, may cancel the print medium formatting program124by illustratively pressing the CANCEL button in the control bar406of the first GUI400. The method300then ends in step324. Moreover, it should be noted that although step306is discussed as occurring first in method300, one skilled in the art will recognize that once at least one print configuration data file212exists, editing an existing data file (i.e., step310) or deleting an existing data file (i.e., step318) may alternately be performed prior to creating a new data file (i.e., step306). As such, method300provides a user with one or more GUIs to identify and select the type of data (e.g., output devices, users, application, and the like) the print medium formatting program124is to operate upon. Furthermore, the method allows a user to select the particular features to reduce the consumption of consumable print mediums (i.e., ink and toner) by the selected output devices (e.g., printers, scanners, copiers, and the like).

Referring toFIG. 2, the print monitoring module214enables the print medium formatting program124to monitor print requests from the selected data references (e.g., the devices410, the applications414, and the like inFIG. 4). Furthermore, the print monitoring module214compares data identification and print options from a spooled print file created from the print request with saved data identification and print options in the current print configuration data file212. Moreover, the transformation program module216transforms the exemplary web page to be printed in accordance with the printer options selected inFIG. 5, which were saved in the current print configuration data file212.

FIG. 6depicts a flowchart of a method600for controlling printable content from textual and graphical sources using the print medium formatting program124of the present invention. The method600starts in step602where the workstation102is turned on and the operating system120including the print medium formatting program124is loaded from the storage device108into the RAM104. That is, the print medium formatting program124is illustratively loaded at start up of an operating system, such as during the start-up of a WINDOWS® type of operating system. In an alternate embodiment, the user may load the print medium formatting program124from an executable program (e.g., an application program, device driver, and the like).

In step604, the current print configuration data file212of the print medium formatting program124is opened. Recall that in the exemplary embodiment ofFIG. 1, the print medium formatting program124is installed in the operating system120on the workstation102. However, as discussed above, the print medium formatting program124may also be loaded on one or more output devices140such as a printer, a copier, on a device driver as a separate and distinct application program130loaded into the RAM104, or on a server150or firewall on the network100. In any of these embodiments, the print configuration data file212is opened and then the print medium formatting program124monitors for print requests by intercepting the interrupt generated by the print request. In one embodiment, the latest saved print configuration data file212is opened. In other embodiments, the last used, or a default print configuration data file212may be initially opened.

In step606, the print medium formatting program124monitors for print requests by the user. A user initiates a print request by, for example, clicking on the print feature in an applications program or web browser. In one embodiment, the print request initiates an interrupt to the hardware, illustratively, a processor in a file server, workstation, or other computing device, to permit the workstation102to temporarily suspend other tasks, while the processor105performs the print task requested by the interrupting device. The print medium formatting program124monitors for print requests by intercepting the print interrupts to the processor105. In step608, the print medium formatting program124determines if a print request has been made. If in step608, the determination is affirmatively answered, the method600proceeds to step610. Otherwise, the method600continues to monitor for print requests in step606. In step610, the print medium formatting program124opens a spooled print file generated by the print request. In particular, the operating system and/or print drivers create a temporary spooled print file for each print request. The spooled print file contains data information and print options that correspond to the type of application program and/or destination output device from where the print request originated. For example, a print request originating from Microsoft's WORD® application program contains data information identifying the contents of the spooled print file as a WORD® document, the output device (e.g., printer), and the like. Once the spooled print file is opened by the print medium formatting program124, and the method600proceeds to step612.

In step612, the print medium formatting program124compares the data identification of the opened spooled print file with the selected data identification fields stored in the current print configuration data file212. For example, if the current settings in the open print configuration data file212include Printer-2, User-1, and Microsoft's EXPLORER® (seeFIG. 4), then the method600checks that the data identification in the spooled print file matches the selected output device Printer-2, User-1, and Microsoft's EXPLORER®. If, in step612, the print data identification does not match the spooled print file, then the method600proceeds to step606and continues to monitor for new print requests. If, however, the print data identification does match the spooled print file, then the method600proceeds to step614.

In step614, the exemplary GUIs ofFIGS. 4 and 5are displayed to the user. Optionally, the user may check off a box409that instructs the print option formatting module210not to automatically display the pop-up-windows GUI400and500. In step614(drawn in phantom), the user is given the option to either accept the current settings shown in the GUIs400and500, or make changes therein. Specifically, the user is given the option to either accept or change the current identification data settings (FIG. 4) and print options (FIG.5). Once in step614, the user accepts “as is,” or in the alternate, edits and then accepts the current identification data or printer options, the method600proceeds to step618. In step618, the transformation program module216is executed. The transformation program module216transforms the spooled print file in accordance with the current print options (seeFIG. 5) as selected in the current print configuration data file212. The execution of the transformation program module216in step618is discussed below in further detail with regard toFIG. 7. Once the transformation program module transforms the requested print data in accordance to the selected print options, in step620, the user requested content (e.g., web page) is printed on the selected output device140(e.g., Printer2inFIG. 5), and the method600proceeds to step622. In step622, the print configuration data file is closed and the temporary spooled print file is deleted, and in step624, the method600ends.

It is noted that in step616, if a user edits and saves the current print configuration data file212, then such changes are permanent to that particular configuration data file212, until the user manually makes new changes. Further, it is noted that if in step616, the user selects a different configuration name or creates a new configuration name408, then the print medium formatting program124identifies such changed or new configuration data file212as the new current print configuration data file212for subsequent print requests. As such, method600initially loads the print medium formatting program124upon boot-up, thereby making the program's features available immediately to the user. Additionally, it is noted that the user may access the print medium formatting program124upon initiating a print request, or at any time “on-the-fly”, by illustratively pressing an icon, a sequence of hot-keys, and the like.

Furthermore, recall that during step618of method600, the transformation program module216is executed to transform (i.e., change) the contents of the spooled print data file in accordance with the selected print options (e.g., resolution, size, and the like) stored in the current print data configuration file212.FIG. 7depicts a flowchart of a method700for transforming print requests into printable subject matter in accordance with selected print options of the present invention. The method700starts in step702, and then proceeds to step704, where the opened spooled print file is accessed. In step706, the current print configuration data file212is accessed, and in step708, the specific print data containing content that is to be transformed (e.g., advertisement content, solid background, and the like) is identified for transformation in accordance with the print option settings (e.g.,FIG. 5) in the current print configuration data file212.

In step710, the transformation program module212of the print medium formatting program124transforms the identified content in the spooled print file as specified in the current print options. The transformation program module212performs the transformation of specific content by any manner known in the art, such as by parsing the print data stream for specific data sequences as identified in the configuration data file112and modifying the data stream to reflect the desired print options. Once the identified content in the print spool file or print stream has been transformed, the method700proceeds to step712. In step712, the method returns to step620of method600as discussed above. That is, the transformed print spool file is printed by the output device140(e.g., Printer2) as specified in the current print configuration data file212, and in step714, the method700ends.

It should be noted that in step710, the transformation program module212may perform such transformation on the spooled print file previously opened in step610of method600, which was generated by the operating system and/or print drivers as discussed above. Alternately, in step710, the transformation program module212may create a second spooled print file, which contains the transformed print content. In this latter instance, the original spooled print file opened in step610is simply deleted. In any case, only one spooled print file containing the transformed print content is retained for subsequent delivery to the output device140.

The inventive print medium formatting program124provides a user or group of users the ability to select graphical and/or textual content, for example, on a web page, for subsequent printing. Furthermore, the print medium formatting program124provides options, which allow the user to reduce the consumption of consumable print mediums such as toner, ink cartridges, ink coated ribbons, paper, and the like. By selecting print options that reduce the consumption of the consumable print mediums, additional cost savings may be realized. Moreover, increased productivity may also be realized because of the time saved by not having to print or read irrelevant or undesired content, and the potential benefit of faster printing.

Although several preferred embodiments that incorporate the teachings of the present invention have been shown and described in detail, those skilled in the art may readily devise many other varied embodiments that still incorporate these teachings.