Systems and methods for generating banner pages

Disclosed are systems and methods for generating customized banner pages. In one embodiment, a system and a method pertain to creating a banner page document on a word processing application such that the document includes at least one token that is indicative of dynamic information to be added to a printed banner page and that is recognizable by a printing service manager that manages a public printing service, printing the banner page document to file to create a print ready banner page file, and uploading the print ready banner page file to the printing service manager for the purpose of transforming the print ready banner page file by replacing the at least one token with at least one print ready variable that can be used to merge dynamic information with the print ready banner page file at print time.

BACKGROUND

Computer users often carry portable computing devices with them such as notebook computers, personal digital assistants (PDAs), and mobile telephones that include computing capabilities. Such users may at some point wish to print data from the portable computing device while remote from the user's work or home network. For instance, a mobile user may wish to print when at a coffee shop that provides network (e.g., Internet) access and printing services, or when staying at a hotel that comprises a hotel network that includes a public printing device.

In such public printing scenarios, it may be difficult for users, or those who deliver printed documents, to identify their documents once printed by a printing device, particularly in situations in which many different persons are using the printing device and therefore create many different documents. The identification process can be simplified by using banner pages that identify the user that sent each print job. In such a case, the host of the public printing system (e.g., coffee shop, hotel) may wish to customize such banner pages by, for example, placing the name of the host or advertisements/coupons on the banner pages. Although banner page customization can be easily accomplished by experienced programmers, such customization may be more difficult to achieve for less savvy users (including those persons who may administer the public printing system), particularly in view of the fact that the banner pages contain dynamic information such as a user identifier (e.g., user name) and, optionally, other information (e.g., date and time when the hardcopy document was printed).

SUMMARY

Disclosed are systems and methods for generating customized banner pages. In one embodiment, a system and a method pertain to creating a banner page document on a word processing application such that the document includes at least one token that is indicative of dynamic information to be added to a printed banner page and that is recognizable by a printing service manager that manages a public printing service, printing the banner page document to file to create a print ready banner page file, and uploading the print ready banner page file to the printing service manager for the purpose of transforming the print ready banner page file by replacing the at least one token with at least one print ready variable that can be used to merge dynamic information with the print ready banner page file at print time.

In another embodiment, a system and method pertain to receiving a print ready banner page file, identifying a token contained within the file, the token being indicative of dynamic information that is to be contained in a printed banner page, replacing the token with a print ready variable that is used to merge dynamic information at print time, and storing a modified version of the print ready banner page file.

In yet another embodiment, a system and a method pertain to receiving a print request, initiating printing of the print ready banner page file, adding a variable definition to the file that defines the print ready variable, merging dynamic information with the print ready banner page file, and outputting a hardcopy banner page containing the dynamic information.

DETAILED DESCRIPTION

Disclosed herein are example embodiments of systems and methods that facilitate public printing. Although particular embodiments are disclosed, these embodiments are provided for purposes of example only to facilitate description of the disclosed systems and methods.

Referring now in more detail to the drawings, in which like numerals indicate corresponding parts throughout the several views,FIG. 1illustrates an example system100that facilitates public printing. As indicated in this figure, the system100includes a local or internal network102to which a computing device104, a printing device106, and a server computer108are connected. The internal network102is assumed to comprise a network that is unfamiliar to the mobile user. By way of example, the internal network102comprises a hotel network to which the user can connect from the user's hotel room. Although a hotel network is explicitly identified for purposes of discussion, the internal network102more generally comprises any network (wired or wireless) that a mobile user may wish to connect to and print over.

As is depicted inFIG. 1, the computing device104can be a notebook (or “laptop”) computer. More generally, however, the computing device104may comprise any portable computing device that the mobile user may carry from place to place. Accordingly, the computing device104can, alternatively, comprise one of a personal digital assistant (PDA), tablet computer, mobile telephone, etc. Irrespective of its configuration, the computing device104is connectable to the internal network102such that the computing device can communicate with one or both of the printing device106and the server computer108. This connection may comprise either a wired connection or a wireless connection (e.g., via a radio frequency (RF) communication protocol). Stored on the computing device104is client software (or firmware) that is used to access and use a public printing service facilitated by a printing service manager.

The printing device106comprises any device that can receive print jobs via the internal network102and generate hardcopy documents associated with the received jobs. By way of example, the printing device106comprises a laser printer. However, other configurations are possible. For instance, the printing device106can be a multi-function peripheral (MFP) device that is capable of printing as well as performing other tasks such as copying, scanning, faxing, emailing, etc. As is described in greater detail below, the printing device106can comprise an embedded printing service manager that facilitates public printing.

The server computer108links the internal network102to an external wide area network (WAN)110, such as the Internet, and therefore acts as a gateway between the internal network and the WAN. As is described below, the server computer108is configured to intercept initial communications directed at devices located outside of the internal network102(i.e. on the WAN110). Such interception may be used to, for example, charge users for Internet access and/or offer printing services to the user. In the latter case, the server computer108may be configured to provide a link to the printing service manager that is, for instance, embedded in the printing device106.

In addition to acting as the network gateway, the server computer108(or a separate computer if desired) may be used to provide the network address (e.g., Internet protocol (IP) address) of the printing service manager. Furthermore, the server computer108may facilitate billing for rendered printing services by, for instance, posting printing charges to a bill (e.g., hotel bill) or forwarding billing information to a credit card processing service connected to the WAN110. It is noted that, in some embodiments, the printing service manager, or a portion thereof, may exist on the server computer108or another device connected to the network102.

FIG. 2is a block diagram illustrating an example architecture for the computing device104shown inFIG. 1. As indicated inFIG. 2, the computing device104comprises a processing device200, memory202, a user interface204, and at least one input/output (I/O) device206. Each of these components is connected to a local interface208that, for instance, comprises one or more internal buses.

The processing device200is adapted to execute commands stored in memory202and can comprise a general-purpose processor, a microprocessor, one or more application-specific integrated circuits (ASICs), a plurality of suitably configured digital logic gates, or other electrical configurations that coordinate the overall operation of the computing device104. The memory202comprises any one or a combination of volatile memory elements (e.g., random access memory (RAM)) and nonvolatile memory elements (e.g., Flash memory, hard disk, etc.) that store or cache data.

The user interface204comprises the tools with which user data and commands are input into the computing device104. In situations in which the computing device104comprises a notebook computer, the user interface204at least comprises a keyboard and a display. In other embodiments, the user interface may comprise one or more of function keys, buttons, a touch-sensitive display, and a stylus.

The one or more I/O devices206facilitate communications with other devices and may include one or more serial, parallel, small computer system interface (SCSI), universal serial bus (USB), or IEEE 1394 (e.g., Firewire™) components, as well as one or more of a modulator/demodulator (e.g., modem), network card, wireless (e.g., RF) transceiver, or other communication component.

The memory202includes various programs, in software and/or firmware, including an operating system210, one or more user applications212, and a network browser214. The operating system210controls the execution of other software and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The user applications212comprise the programs that may be used to create and/or identify data (e.g., documents) that is to be printed by the service and, more particularly, by the printing device106. By way of example, these applications comprise one or more of a word processing application, a spreadsheet application, a presentation application, a scheduling application, etc. The network browser214comprises a program with which the user can access, via the internal network102, network sites and pages. By way of example, the network browser214is an Internet browser that retrieves Web sites and Web pages. The network browser214can be used to access the printing service manager.

In addition to those programs, the memory202comprises a public printing client216. As is described in greater detail below, the public printing client216operates in conjunction with the printing service manager to facilitate public printing. By way of example, the public printing client216can be downloaded from the printing service manager or from a suitable source on the WAN110. In any case, however, once stored on the computing device104, the public printing client216can be used to facilitate public printing on any network in which an appropriate printing service manager is provided, thereby providing a substantially universal printing solution.

As is further identified inFIG. 2, the public printing client216includes a print driver218that is used to translate documents into an appropriate print format. Alternatively, however, the driver218could comprise part of the operating system210. In preferred embodiments, the print driver218is a universal driver that can be used in conjunction with substantially any printing device that may be accessed via a compatible printing service manager.

FIG. 3is a block diagram illustrating an example architecture for the printing device106shown inFIG. 1. As indicated inFIG. 3, the printing device106, like the computing device104, comprises a processing device300, memory302, a user interface304, and at least one I/O device308, each of which is connected to a local interface308. In addition, however, the printing device106comprises a print engine306.

The processing device300, memory302, and I/O devices308have similar configurations to like-named components of the computing device104described in relation toFIG. 2. The user interface304comprises the components with which users input commands and modify device settings, such as a control panel that incorporates a display (e.g., liquid crystal display (LCD)) and a series of keys or buttons.

The memory302comprises various programs, in software and/or firmware, including an operating system312and, in this embodiment, a virtual machine314. The operating system312contains the various commands that are used to control the general operation of the printing device106. The virtual machine314is a program that functions as a self-contained operating environment and facilitates operation of a printing service manager316that, as noted above, facilitates public printing. Although a virtual machine is explicitly shown and identified, its functionality could, alternatively, be provided by software or firmware stored in the printing device106. In the embodiment ofFIG. 3, however, the manager316comprises an applet (e.g., written in the Chai™ programming language of the Hewlett-Packard Company) that includes an embedded server318, a print receiver322, and business logic324. It is noted that, although the printing service manager316is shown as executing on the printing device106, it could alternatively be provided on a separate device, such as the server computer108or another device connected to the internal network102, if desired.

The embedded server318is configured to serve network pages320, for instance Web pages, to requesting devices such as the computing device104. These pages may contain information for the user as to how to use the public printing system hosted by the printing service manager316, how to obtain public printing client software, the cost of the printing services, the methods of paying for those services, etc. In addition, other pages may contain information used by a system administrator to generate customized banner pages.

The print receiver322is a module that is configured to receive print jobs transmitted to the printing device106via the internal network102. By way of example, the print receiver322is specifically configured to receive hypertext transfer protocol (HTTP) and/or secure HTTP (HTTPS) communications. These communications can be received via an internal port326and an external port328that each has its own network address (e.g., universal resource locator (URL)) that is used to access the port. In some embodiments, the internal port326and the external port328may comprise the same port. When a print job is received, the print receiver322forwards the job to the print engine306for printing.

Once printing has been successfully performed, billing (assuming the printing services are provided on a pay basis) is facilitated using the business logic324. Operation of the business logic324depends upon the particular implementation and method of billing that is to be used. By way of example, the business logic324is configured to communicate printing charges to the server computer108for purposes of posting those charges to a bill (e.g., hotel bill) or contacting an appropriate credit card processing service.

Various programs (i.e. logic) have been described herein. These programs can be stored on any computer-readable medium for use by or in connection with any computer-related system or method. In the context of this document, a “computer-readable medium” is any electronic, magnetic, optical, or other physical device or means that contains or stores a computer program for use by or in connection with a computer-related system or method. These programs can used by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.

As noted above, it is desirable to provide an easy to use facility for generating customized banner pages in the public printing system.FIGS. 4 and 5provide flow diagrams that describe an example embodiment of a method for creating such banner pages andFIG. 6provides an example embodiment of printing a customized banner page after it has been created in the manner described inFIGS. 4 and 5. Process steps or blocks in the flow diagrams of this disclosure may represent modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions or steps in the process. Although particular example process steps are described, alternative implementations are feasible. Moreover, steps may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.

FIG. 4describes an example method for creating and uploading a file that can be used by the printing service manager316(FIG. 3) to create suitable print ready banner page data. Beginning with block400ofFIG. 4, the user, for example a printing system administrator (e.g., hotel staff member), creates a banner page document. By way of example, the banner page document is created in a common word processing application such as Microsoft Word™ or Corel Word Perfect™. By using such an application, the user will most likely be familiar with the application, thereby simplifying the banner page document creation. Presumably, the document is created such that, when printed, the printed banner page will contain both static (i.e. unchanging) information, such as the name of the host (e.g., hotel) that is providing the printing service, and dynamic (i.e. changing) information, such as a user name, a guest room number, a print date, and a print time. However, the banner page document may comprise any information that the user wishes to appear on the printed banner page such as text, graphics, advertisements, or coupons, whether static or dynamic.

Although the user can create the banner page from scratch using the word processing application, the user can, optionally, begin with a banner page document template. Such a template can be obtained, for example, from the printing service manager316by browsing to an administrative network (e.g., Web) page hosted by the manager and downloading a default template to the user's computing device on which the application in which the banner page is to be created executes. In such a case, the default banner page document will contain default content that the user can leave unaltered, modify, or replace as desired.

To enable the addition of dynamic information to the printed banner page, one or more tokens may be included in the banner page document. Such tokens are textural indicators that, as is described below, identify dynamic information that is to be added to the banner page at print time. Preferably, the tokens are provided in a format that is easily identifiable by the printing service manager316, that is unlikely to be intended to be printed literally, and that is easy to understand by the user that is creating the banner page document. To cite an example, the tokens can have a format in which pound (#) signs precede and follow a character that indicates the dynamic information to be added. For instance, the print date can be indicated by “##d##”, the print time can be indicated by “##t##”, and so forth. Although the pound sign format is explicitly identified herein, any other format that is unlikely to be intended as literal content can be used.

Once the user is satisfied with the content and layout of the banner page, the banner page document is printed to file, as indicated in block402. By printing the document to file, a print ready banner page file is created by the print driver executing on the user's computing device and is stored to memory (e.g., hard disk), as indicated in block404. The print ready banner page file may be configured in any format that can be directly printed by a printing device, such as PostScript or printer control language (PCL).

After the print ready banner page file is stored in memory on the user's computing device, it can be uploaded to the printing service manager316, as indicated in block406. Such uploading can be achieved by, for example, browsing to another administrative network (e.g., Web) page hosted by the printing service manager316. In such a case, the user can access an upload page (e.g. using a Web browser), select a “browse” command, browse the user's computing device memory (e.g., hard disk), and select the created print ready banner page file. Once this file is selected, it is transmitted to the printing service manager316.

Reference is next made toFIG. 5, which provides an example of operation of the printing service manager316(FIG. 3) in receiving and modifying the print ready banner page file created using the process illustrated inFIG. 4. Beginning with block500ofFIG. 5, the uploaded print ready banner page file is received by the printing service manager316. Once this occurs, the printing service manager316identifies the token or tokens contained within the file, as indicated in block502. This identification is easily accomplished due to the format used to indicate dynamic information, such as the pound sign format described above in relation toFIG. 4. At this point, the identified tokens are replaced with print ready variables, as indicated in block504. The variables comprise constructs that are recognizable by the print engine306of the printing device (FIG. 1) at print time such that the variables may be automatically replaced by the dynamic information they represent as the banner page is printed. For example, when the print ready banner page file is in the PostScript format, the replacement comprises a PostScript macro substitution in which each token is substituted by an appropriate PostScript construct. At this point, the modified print ready banner page file is stored to memory (e.g., hard disk) on the printing device, as indicated in block506and the printing service is prepared to print a banner page for each print job sent by a printing service user.

With reference next toFIG. 6, illustrated is an example of printing a banner page at print time. More particularly, illustrated is an example of operation of the printing service manager316(FIG. 3) in facilitating printing of a printing job an associated banner page. Beginning with block600ofFIG. 6, the printing service manager316receives a print request, for instance transmitted by the public printing client216(FIG. 2). By way of example, this request can have been received via a port (e.g., internal port326or external port328) by the print receiver322, and may have been contained in initial packets of a print job transmitted by the public printing client216. Assuming the public printing client216is authorized to use the printing service, the public printing manager316identifies the print ready banner page file that is to be printed along with the print job being sent to the service for printing, as indicated in block602.

The printing service manager316prints the print job associated with the print request, as indicated in block604. Once the print job has been printed (or beforehand if a banner page is to be printed before printing of the print job), the printing service manager316initiates printing of a banner page. During this time, the print ready banner page file is provided to the print engine306for printing. To facilitate recognition of the print ready variables, the printing service manager316then adds definitions for the variables to the print ready banner page file, as indicated in block608, that set the values for each of the variables. By way of example, these definitions are added to the header of the print ready banner page file. Once the definitions have been added to the print ready banner page file, the print ready banner page file is modified and ready for data merging. Specifically, as a consequence of the print ready variables provided in the file during the transformation process described above in relation toFIG. 5, dynamic information is merged with the print ready banner page file during printing, as indicated in block610, such that the variables are automatically replaced with the information contained in the provided definitions at print time. Accordingly, a hardcopy banner page will be output by the printing device that contains all static and dynamic information that the administrator intended to be provided on the banner page.

Because of the transformation process described above, print speed is increased. Specifically, because of the inclusion of print ready variables and definitions for those variables, dynamic information can be added automatically at print time without having to scan all data contained within the banner page file to identify each token, perform a lookup process for the dynamic information associated with the tokens, and substitute dynamic information for each token. Significantly, such a result is feasible while simultaneously providing an easy to use facility for creating customized banner pages.