Wait-band alleviation via host-PC buffering

Facsimile and static presentation processing – Static presentation processing – Attribute control

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C358S001170

Reexamination Certificate

active

06392758

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates in general to printing systems for computers and in particular to a print system and method for providing wait-band alleviation of printers via host computer buffering.
2. Related Art
Most, if not all, computer systems utilize printers to transform images and data residing on a host computer device, such as a personal computer, into a physical hardcopy. The printer is usually bi-directional (allows two-way communication between the host computer and the printer) and is directly connected to the host computer device via standard communication cable. The host computer device typically has an operating system for running internal software applications and managing external hardware. One piece of external hardware includes a video monitor for interfacing a user with the computer system. When a user is working with an image or data on the host, the image or data can be stored on the host as a graphical or text based file. There are many different types of graphical formats for storing the file, most of which store the file in terms of additive red, green, blue (RGB) primary colors.
Most color printers use a combination of cyan, magenta, yellow, and black (CMYK) to create a visual perception of a wide range of colors. The image stored on the host as an RGB file must be converted to the CMYK format usable by the color printer and at the resolution of the printer. This conversion is typically done by means of a printer driver, which is usually a software package (containing software-driven components) installed on the host. A particular software printer driver for a particular printer works with applications running on the host that need to print data to that particular printer. Every printer typically has its own specific printer driver, which usually contains general software-driven functions, as well. as unique software-driven functions specific only to the particular printer.
Operating systems, such as the types made by the Microsoft Corporation, Redmond, Wash., usually include a device development kit (DDK) as a resource guide for developing printer drivers to work with the operating system. One operating system made by Microsoft includes a printing system having a “Universal Printer Driver” (Unidriver) for carrying out print job requests on most types of printers. Typically, a software minidriver is developed for a particular printer to work with the Unidriver of the operating system. A printer minidriver is an executable file that provides device-driver support for a particular printer. It contains data that describes the capabilities, commands, and resident fonts of the particular printer. A printer minidriver also includes a set of required “entry points” (receiving and transmitting ports) that the operating system graphic device interface calls to retrieve information about and to send information to the particular printer.
Although the minidriver contains “entry points”, it does not actually carry out the actions requested by an interface component, such as a graphic device interface (GDI). Instead, it calls the Unidriver and provides the information that the Unidriver needs to carry out the requested actions on the device (such as printing text, rendering bitmaps, or advancing a page). Specifically, the minidriver is built so that it can accept requests from the operating system GDI, and then, in most cases, pass the requests to the Unidriver along with information that describes the capabilities, commands, and resident fonts of the particular printer.
In addition, the operating system discussed above by Microsoft has a print spooler (acronym for simultaneous peripheral operations on-line) and a language monitor are utilized for enabling print jobs to be routed to local and network printers. The print spooler accepts a data stream prepared by the GDI and/or a printer driver for output on a particular type of printer. The spooler delivers data to printers for printing, either directly or by playing back spooled files. The spooler manages the events and format conversions that result in the data being output on an application-designated printer. The spooler also manages a dynamic environment made up of printers, printer drivers, print providers, monitors, ports, and print jobs. The spooler maintains a registry of information to derive the number of components that are in the printer subsystem at any time and the unique name of each component. The spooler also keeps track of the current status of each component.
The language monitor normally configures a printer and monitors printer status for providing two-way communication between the computer and a bi-directional printer. Also, the language monitor can be used to add data, such as printer control information, to the print stream going to the printer. The language monitor is printer description language-specific. As such, each bi-directional printer has a specific language monitor developed for that particular printer. The language monitor is typically a software package having software-driven components, and can be comprised of one or several dynamic link library (DLL) files.
For example, code running on the host computer can request configuration and status information from the printer, and/or the printer can send unsolicited status information to the computer whenever certain events occur on the printer. The language monitor can also be used to add data, such as printer control information, to a data print stream sent to the printer. Generally, the language monitor implements all the bi-directional communication functionality between the host and printer, such as translating requests from the computer and either solicited or unsolicited responses from the printer.
Microsoft's DDK illustrates a sample printer driver interacting with the language monitor and the spooler for a typical print sequence operating on the operating system discussed above. First, a printer driver requests instructions on how to render a print job on an associated printer and returns to the instructions on rendering the print job on the printer. Second, if the print job is not direct, the print job is spooled to the disk as a raw-format spool file. Each piece of the print job is appended to the spool file until the application signals that the job is complete. These steps are repeated many times to build a complete spool file. It should be noted that a direct print job occurs when a print job, which already has been spooled, is sent again as another print job. A direct print job goes directly to the printer instead of being rewritten as another spool file.
Next, a main thread is started that determines the best time to start playing back the spooled file to the printer. A thread is an executable command that can execute commands independently of other operations and commands. At the determined best time, the main thread makes a call to the language monitor to start a new playback thread to playback the spooled file. Because the started thread is a new thread, the thread: 1) invokes a function to read part of the spooled file off the disk; and 2) invokes the language monitor with a write function to send the data through the physical port connected to the bi-directional printer. Note that the playback thread steps are repeated until the end-of-file is reached on the spooled file (or the print job is canceled). After an end-of-file is reached (or a cancellation of the print job) the playback thread is terminated.
Although the printer can typically begin printing after receiving data from the language monitor, the data may be delayed due to various factors. For example, the complexity of the image may cause delays in the language monitor and/or spooler, which will cause delays in the overall print process. This is because whenever the spooler generates data and calls the driver, the spooler is not sending data to the language monitor. Also, whenever the language monitor processes and sends data to the printer, the spooler is not generating or sending data to the

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Wait-band alleviation via host-PC buffering does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Wait-band alleviation via host-PC buffering, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Wait-band alleviation via host-PC buffering will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2901909

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.