U.S. patent application number 10/763618 was filed with the patent office on 2004-10-21 for dynamic early preparation of presentation objects for efficient printing.
This patent application is currently assigned to International Business Machines Corporation. Invention is credited to Aschenbrenner, Jean Margaret, Hohensee, Reinhard Heinrich, Stone, David Earl, Varga, John Thomas, Visoski, Rose Ellen, Wardell, Raymond Glenn.
Application Number | 20040207876 10/763618 |
Document ID | / |
Family ID | 42195964 |
Filed Date | 2004-10-21 |
United States Patent
Application |
20040207876 |
Kind Code |
A1 |
Aschenbrenner, Jean Margaret ;
et al. |
October 21, 2004 |
Dynamic early preparation of presentation objects for efficient
printing
Abstract
A command is provided as a means to instruct a printer to
pre-rasterize and store presentation objects according to specified
presentation parameters. The stored rasterized objects are
available to the printer for use during printing when a print job
is submitted to the printer which includes a presentation object
already rasterized, saving significant processing at print time.
The rasterized objects are stored with information identifying the
object and the parameters used in the rasterization process and the
printer is enabled to identify the appropriate rasterized object
for inclusion in the print job. Objects may also be selected by a
printer at print time as most closely matching the required
parameters and then adjusted as needed at print time to completely
conform with the requirements of inclusion in the job. This
capability allows the printer to perform trimming-on-the-fly or
other real-time operations while enjoying the time-saving benefits
of a pre-rasterized object.
Inventors: |
Aschenbrenner, Jean Margaret;
(Boulder, CO) ; Hohensee, Reinhard Heinrich;
(Boulder, CO) ; Stone, David Earl; (Longmont,
CO) ; Varga, John Thomas; (Longmont, CO) ;
Visoski, Rose Ellen; (Louisville, CO) ; Wardell,
Raymond Glenn; (Lemmon, SD) |
Correspondence
Address: |
IBM CORPORATION
PO BOX 12195
DEPT 9CCA, BLDG 002
RESEARCH TRIANGLE PARK
NC
27709
US
|
Assignee: |
International Business Machines
Corporation
Armonk
NY
|
Family ID: |
42195964 |
Appl. No.: |
10/763618 |
Filed: |
January 23, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60319899 |
Jan 24, 2003 |
|
|
|
Current U.S.
Class: |
358/1.18 ;
358/1.16 |
Current CPC
Class: |
G06K 15/1856 20130101;
G06K 15/1861 20130101; G06K 15/1852 20130101; G06K 15/02 20130101;
G06K 15/1836 20130101 |
Class at
Publication: |
358/001.18 ;
358/001.16 |
International
Class: |
G06F 015/00 |
Claims
What is claimed is:
1. A method comprising: identifying at least one presentation
object to be included in a print job; recognizing each combination
of presentation parameters associated with each appearance of the
at least one presentation object within the print job; rasterizing
the at least one presentation object according to each recognized
combination of presentation parameters to create a rasterized
object for each such combination; caching each rasterized object in
a local storage; and utilizing the appropriate rasterized object
from storage when printing a portion of the print job requiring
inclusion of the at least one presentation object.
2. The method of claim 1 wherein the step of caching comprises
associating each rasterized object with an object label and at
least one presentation parameter identifier whereby the appropriate
rasterized object may be identified.
3. The method of claim 1 further comprising saving an original
version of each at least one presentation object in the local
storage.
4. The method of claim 3 further comprising: selecting at least one
category of blocked errors to be ignored during printing; and if an
unblocked error occurs during the rasterization of the at least one
presentation object, aborting the rasterization whereby the
presentation object will be rasterized during printing and the
unblocked error reported.
5. The method of claim 1 wherein the combination of presentation
parameters used to rasterize the at least one presentation object
comprises a subset of the presentation parameters needed for
inclusion of the object in the print job; and wherein the step of
utilizing comprises modifying the rasterized object to conform with
at least one additional presentation parameter prior to including
the rasterized object in the print job; and further comprising
storing the modified rasterized object in the local storage with a
modified presentation parameter identifier including the at least
one additional presentation parameter.
6. The method of claim 5 where the at least one additional
presentation parameter comprises at least one of
trimming-on-the-fly and rotation.
7. A method comprising: identifying at least one presentation
object to be included in a print job; recognizing each combination
of presentation parameters associated with each appearance of the
at least one presentation object within the print job; for each
said combination, creating a preRIP command identifying the at
least one presentation object and the associated presentation
parameters, wherein said preRiP command directs a printer to
rasterize the identified presentation object according to the
identified combination of parameters and to cache the rasterized
object for later printing; and sending each said preRiP command to
a printer.
8. The method of claim 7 further comprising sending blocked error
information to the printer to indicate at least one type of error
that may be ignored during the rasterization process.
9. The method of claim 7 wherein the combination of presentation
parameters identified in the preRIP command comprises a subset of
the presentation parameters needed for inclusion of the object in
the print job.
10. A method comprising: receiving at a printer at least one preRiP
command identifying a presentation object to be included in a print
job and presentation parameters associated with the object; and in
response to the at least one preRIP command, rasterizing the
presentation object according to the presentation parameters and
storing the rasterized object in a cache accessible to the
printer.
11. The method of claim 10 further comprising storing an original,
un-rasterized version of each presentation object in the cache.
12. The method of claim 11 further comprising associating with each
stored rasterized object an object label identifying the
presentation object and a parameter label identifying the
parameters used in rasterizing the object.
13. The method of claim 12 further comprising: receiving at a
printer print data specifying at least one presentation object and
associated presentation parameters for inclusion in a print job;
and in response to said print data, searching the cache for the
rasterized object with the object label and the parameter label
matching the object and parameters specified by the print data; if
a matching rasterized object is found; including said rasterized
object in a printed output of the print data; and if no matching
rasterized object is found, rasterizing the object according to the
specified parameters and including the result in the printed output
of the print data.
14. The method of claim 13 wherein at least one additional
presentation parameter must be applied to the matching rasterized
object prior to inclusion in the printed output and wherein the
method further comprises: modifying the matching rasterized object
to conform with the at least one additional parameter and including
the modified matching rasterized object in the printer output; and
storing the modified matching rasterized object in the cache with a
modified parameter label identifying a complete parameter list
associated with the modified matching rasterized object.
15. The method of claim 14 wherein the at least one additional
presentation parameter comprises at least one of
trimming-on-the-fly and rotation.
16. The method of claim 10 further comprising: receiving at a
printer blocked error information identifying at least one type of
error that may be ignored during the rasterization process; and
wherein if an unblocked error occurs during the rasterization of
the presentation object, aborting the rasterization and storing the
original, unrasterized object in the cache for rasterization at a
print time.
17. A computer-readable storage media having embodied thereon
computer program instructions effective when executing on a print
server to: identify at least one presentation object to be included
in a print job; recognize each combination of presentation
parameters associated with each appearance of the at least one
presentation object within the print job; for each said
combination, create a preRIP command identifying the at least one
presentation object and the associated presentation parameters,
wherein said preRIP command directs a printer to rasterize the
identified presentation object according to the identified
combination of parameters and to cache the rasterized object for
later printing; and send each said preRIP command to the
printer.
18. The media of claim 17 further comprising computer program
instructions effective when executing on a print server to send
blocked error information to the printer to indicate at least one
type of error that may be ignored during the rasterization
process.
19. The media of claim 17 wherein the combination of presentation
parameters identified in the preRIP command comprises a subset of
the presentation parameters needed for inclusion of the object in
the print job.
20. A computer-readable storage media having embodied thereon
computer program instructions effective when executing on a printer
to: receive at least one preRIP command identifying a presentation
object to be included in a print job and presentation parameters
associated with the object; and in response to the at least one
preRIP command, rasterize the presentation object according to the
presentation parameters and store the rasterized object in a cache
accessible to the printer.
21. The media of claim 20 further comprising computer program
instructions effective when executing on a printer to store an
original, un-rasterized version of each presentation object in the
cache.
22. The media of claim 21 further comprising computer program
instructions effective when executing on a printer to associate
with each stored rasterized object an object label identifying the
presentation object and a parameter label identifying the
parameters used in rasterizing the object.
23. The media of claim 22 further comprising computer program
instructions effective when executing on a printer to: receive
print data specifying at least one presentation object and
associated presentation parameters for inclusion in a print job; in
response to said print data, search the cache for the rasterized
object with the object label and the parameter label matching the
object and parameters specified by the print data; and if a
matching rasterized object is found, include said rasterized object
in a printed output of the print data; and if no matching
rasterized object is found, rasterize the object according to the
specified parameters and include the result in the printed output
of the print data.
24. The media of claim 23 wherein at least one additional
presentation parameter must be applied to the matching rasterized
object prior to inclusion in the printed output and wherein the
media further comprises computer program instructions effective
when executing on a printer to: modify the matching rasterized
object to conform with the at least one additional parameter and
include the modified matching rasterized object in the printer
output; and store the modified matching rasterized object in the
cache with a modified parameter label identifying a complete
parameter list associated with the modified matching rasterized
object.
25. The media of claim 24 wherein the at least one additional
presentation parameter comprises at least one of
trimming-on-the-fly and rotation.
26. The media of claim 20 further comprising computer program
instructions effective when executing on a printer to: receive
blocked error information identifying at least one type of error
that may be ignored during the rasterization process; and wherein
if an unblocked error occurs during the rasterization of the
presentation object, the rasterization is aborted and the original,
unrasterized object is stored in the cache for rasterization at a
print time.
27. An apparatus comprising: a print job pre-processing module for
identifying presentation objects in a print job to be pre-processed
and at least one combination of presentation parameters associated
therewith; a pre-rasterization module for rasterizing each
presentation object according to the at least one combination of
presentation parameters to create a pre-rasterized object; an
identification module for associating with each pre-rasterized
object an object label identifying the object and a parameter label
identifying the parameters used in pre-rasterizing the object; a
local cache for holding information accessibly to the apparatus;
and a caching module for storing the pre-rasterized object and the
associated object label and parameter label in the local cache.
28. The apparatus of claim 27 wherein the caching module further
stores the original, un-rasterized version of each presentation
object in the local cache.
29. The apparatus of claim 28 further comprising: a print job
processing module for identifying the object label and parameter
label associated with at least one presentation object to be
included in a print job; a cache searching module for searching the
local cache for the matching pre-rasterized object with the object
label and the parameter label matching the object label and the
parameter label of the at least one presentation object to be
included; and a printing module for including the matching
pre-rasterized object in a printed output of the print job.
30. The apparatus of claim 28 further comprising: a blocked error
module for identifying at least one type of blocked error that may
be ignored during the pre-rasterization; and a print-time
rasterization module for rasterizing presentation objects at print
time; and wherein, if the pre-rasterization module encounters an
unblocked error during pre-rasterization the pre-rasterization is
aborted and the object is rasterized by the print-time
rasterization module at print time.
31. The apparatus of claim 30 wherein the at least one combination
of parameters associated with a presentation object comprises a
subset of the presentation parameters needed for inclusion of the
object in the print job; and wherein the cache searching module
searches for the pre-rasterized object with the object label
matching the object label of the presentation object to be included
and the parameter label most closely matching the presentation
parameters of the presentation object to be included; and wherein
the print-time rasterization module modifies the pre-rasterized
object to conform with at least one additional presentation
parameter prior to inclusion by the printing module.
32. A print server comprising: at least one application program for
creating print jobs including presentation objects having
presentation parameters defining the formatting applicable thereto;
a print job processing module for: recognizing the presentation
objects and each combination of presentation parameters associated
with each appearance of each presentation object within the current
print job; and for each said combination, creating a preRIP command
identifying the presentation object and the associated presentation
parameters, wherein said preRIP command directs a printer to
rasterize the identified presentation object according to the
identified combination of parameters and to cache the rasterized
object for later printing; and a communication module for
communicating with an attached printer to send each said preRIP
command to the printer.
33. The print server of claim 32 wherein said communication module
further sends blocked error information to the printer indicating
at least one type of error that may be ignored during the
rasterization process.
34. The print server of claim 32 wherein the combination of
presentation parameters identified in the preRIP command comprises
a subset of the presentation parameters needed for inclusion of the
object in the print job.
35. A printer comprising: a communication module for receiving at
least one preRIP command identifying a presentation object to be
included in a print job and presentation parameters associated with
the object; a cache storage accessible to the printer; a
rasterization module for, in response to the at least one preRIP
command, rasterizing the presentation object according to the
presentation parameters; and a storage module for storing the
rasterized object and the original, un-rasterized version of the
object in the cache.
36. The printer of claim 35 wherein the storage module further
associates with each stored rasterized object an object label
identifying the presentation object and a parameter label
identifying the parameters used in rasterizing the object.
37. The printer of claim 36 wherein the communication module
further receives print data specifying at least one presentation
object and associated presentation parameters for inclusion in a
print job; and wherein the printer further comprises: a cache
searching module for, in response to said print data, searching the
cache for the matching rasterized object with the object label and
the parameter label matching the object label and the parameter
label of the at least one presentation object to be included; and a
printing module for, if a matching rasterized object is found,
including the matching rasterized object in a printed output of the
print job and, if no matching rasterized object is found,
rasterizing the object according to the specified parameters and
including the result in the printed output of the print data.
38. The printer of claim 37 wherein at least one additional
presentation parameter must be applied to the matching rasterized
object prior to inclusion in the printed output and wherein the
printing module further: modifies the matching rasterized object to
conform with the at least one additional parameter and includes the
modified matching rasterized object in the printed output; and
wherein the storage module further stores the modified matching
rasterized object in the cache with a modified parameter label
identifying a complete parameter list associated with the modified
matching rasterized object.
39. The printer of claim 38 wherein the at least one additional
presentation parameter comprises at least one of
trimming-on-the-fly and rotation.
40. The printer of claim 35 wherein the communication module
further receives blocked error information identifying at least one
type of error that may be ignored during the rasterization process;
and wherein, if the rasterization module detects an unblocked error
during the rasterization of the presentation object, the
rasterization is aborted.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Pursuant to 35 USC 119(e), this application claims priority
to and benefit of U.S. Provisional Patent Application Serial No.
60/319,899, filed Jan. 24, 2003, the disclosure of which is
incorporated herein in its entirety for all purposes.
BACKGROUND OF THE INVENTION
[0002] The invention relates to the field of modern, high-feature
printers and printing systems. More specifically, the invention
relates to the efficient and flexible pre-processing and storage of
presentation objects to allow faster print times.
[0003] Modern, computer-generated documents are often large,
complex structures including many different images, photographs,
charts and other types of presentation objects that can require
significant time to print. Several different varieties of page
description languages have been developed to describe to the
printer the various features of these presentation objects, and
other features of a document to be printed. In a typical
configuration, a print server or printer controller is present in
the printing system and is connected to the printer via some type
of communication connection. The print server includes a print
application that can be used to create documents and to select the
document format, including the placement and use of the various
presentation objects. These documents, and the accompanying
formatting/printing information is passed to the printer by the
print server via the communication connection and using the
appropriate page description language.
[0004] As printer speeds continue to increase and as print data
becomes more complex and more massive, performance tuning within
the printer also becomes more important. Many modern printers
require a user to preadjust and tune the print data being sent to a
printer to ensure that the print data is processed efficiently by
the printing system. However, there are many situation where it is
impractical or impossible to pre-tune the data to improve
performance. A few examples of such situations include:
[0005] color-image applications where images rotate or change size
based on circumstances within the printed output (how and where
items fit depending on variable text, etc.);
[0006] jobs that use presentation objects from a large collection;
and
[0007] jobs that re-print portions of data objects, requiring
trimming on-the-fly.
[0008] What is needed in the art is a way to direct a printer to
perform as much tuning, adjustment and pre-preparation of objects
as possible before actual printing begins. This allows a trade-off
of early preparation time for improved throughput at print
time--when time is typically more critical.
SUMMARY OF THE INVENTION
[0009] The present invention improves over the existing art by
having the printer pre-rasterize presentation objects at each
orientation, size, trim, color fidelity combination, etc. that will
later be used when the job is actually printed. Each such
pre-rasterized object is then cached in a local memory for
retrieval and use as needed when the document is printed.
[0010] In order to implement the invention, a new printer command,
referred to as a preRIP command, is provided to allow a host
program to direct the printer to pre-rasterize certain presentation
objects at the combination of parameters that would be used if the
object were rasterized while printing. Only, instead of printing
the object, the preRIP command causes the prepared object to be
cached for later use.
[0011] Doing the rasterization before printing starts requires
extra processing time at the beginning of a print job, but
increases the speed of printing because there is less to do at
print time and presentation objects that are in the cache can
potentially be reused multiple times without additional
rasterization.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Other objects and advantages of the invention will become
apparent upon reading the following detailed description and upon
reference to the accompanying drawings in which:
[0013] FIG. 1 is a block diagram of a printing system consistent
with implementation of embodiments of the present invention;
[0014] FIG. 2 is an illustration of an exemplary presentation
object and the placement of the object within an exemplary
document;
[0015] FIG. 3 is a representation of the transmission to a printer
of a print job including exemplary preRIP commands according to an
embodiment of the present invention;
[0016] FIG. 4 is a representation of the storage of rasterized
objects in a local storage according to embodiments of the present
invention;
[0017] FIG. 5 is a flow diagram illustrating a process for
pre-rasterizing presentation objects according to embodiments of
the present invention; and
[0018] FIG. 6 is a flow diagram illustrating a process for
processing print data in accordance with embodiments of the present
invention.
[0019] While the invention is susceptible to various modifications
and alternative forms, specific embodiments thereof are shown by
way of example in the drawings and will herein be described in
detail. It should be understood, however, that the drawings and
detailed description presented herein are not intended to limit the
invention to the particular embodiment disclosed, but on the
contrary, the intention is to cover all modifications, equivalents,
and alternatives falling within the spirit and scope of the present
invention as defined by the appended claims.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0020] In accordance with embodiments of the present invention, and
with reference to FIG. 1, a print server or printer controller 100
is provided with at least one application program 110 used to
generate a print job 120. The print server 100 may be any type of
computing device configured to control and communicate with a
printer 130, including a general purpose server, a specialized
print server, a personal computer, etc. The application program 110
may be any one of the many well known computer programs capable of
creating a document to be printed and/or of creating a print job
120 containing instructions to a printer in an appropriate page
description language for printing the document according to the
user's formatting. Various such application programs and page
description languages are available and are well known to those
skilled in the relevant arts.
[0021] The print server 100 is connected to the printer 130 and
communicates with the printer 130 over a communication link 140.
Communication link 140 may be unidirectional (carrying information
only from the print server 100 to the printer 130) or bidirectional
(allowing the printer 130 to also send information to the print
server 100). The print server 100 may send the print job 120 to the
printer 130 when it is desired that the document(s) represented by
print job 120 be printed. Printer 130 interprets the page
description language of the print job 120 and produces printed
output (not shown) in accordance therewith, all as is well known in
the art. The component parts of print server 100 and printer 130 as
well as the details relating to the communication link 140 are not
described here in detail as they are not central to the present
invention and may be assumed to be implemented in any known or
later developed fashion consistent with this disclosure.
[0022] The printer 130 according to embodiments of the present
invention also includes some type of local storage 150. The local
storage may be of any type of electronic storage suitable for
storage and retrieval of information to be used by the printer 130
during printing. Local storage 150 may be internal to printer 130
(as shown), external to printer 130 (not shown) or may even be
remote from printer 130 such as storage connected to printer 130
via some type of network (not shown).
[0023] The application program 110 used to generate the print job
120 in the appropriate page description language for the printer
130, is, by definition, aware of the manner in which the various
presentation objects are to be printed in the print file in
question. For instance, with reference to FIG. 2, a particular
document 200 included in a print job 120 of FIG. 1 may include as a
presentation object a certain company logo 210. That logo may
appear in, for example, three different places in the document. On
the first page 215 of document 200, it may appear half-size 210a
and one-quarter-size 210b. On a later page 220 of document 200 it
may again appear half-size but rotated 90 degrees 210c (drawing not
to scale).
[0024] The image sizing and rotation discussed above are referred
to herein as presentation parameters and there are many other such
parameters which may be applied to presentation objects. These
parameters include things like printing in `toner saver` mode where
the image quality may be sacrificed for a savings in toner use,
other color or image quality parameters, and various location,
trimming and scaling options. Well-known trimming and scaling
options include selections such as:
[0025] "scale-to-fit" where an object is scaled equally along the x
and y axes in order to fit within a target space while maintaining
the object's aspect ratio;
[0026] "scale-to-fill": where an object is scaled to fill the
target space, regardless of the effect on aspect ratio;
[0027] "position" where an object is placed at any given position
of a specified target space and any part of the object which falls
outside the target space creates an error;
[0028] "position and trim" which is the same as `position` except
parts of the object falling outside the target area are trimmed
off; and
[0029] "center and trim" which is the same as `position and trim`
except the object is positioned at the center of the target space
before trimming.
[0030] Many other parameters affecting the appearance, size and
positioning of an object within a document exist or may be
developed and are assumed to be well-known to those familiar with
the relevant arts. The disclosed embodiments of the present
invention are equally applicable to any and all of them.
[0031] Another print-related criteria that may be selected by a
user is called error-blocking information. An error-blocking
selection tells the printer what type of errors (such as position
checks and undefined character checks) that can be ignored during
printing. Errors that can be ignored are said to be `blocked`. When
unblocked errors occur during the pre-rasterization process in
accordance with embodiments of the present invention, the
rasterization is stopped and the object may be cached in its
original, raw form. Rasterization will then take place at print
time so that the error(s) can be properly reported. Specifying
errors that can be ignored (or blocked) during pre-rasterization
can significantly improve print-time performance.
[0032] The various presentation parameters discussed above may be
expressed in association with an object in the page description
language stream being sent to the printer 130 from the print server
100 over communication link 140 as appropriate according to the
document in question. When operating according to embodiments of
the present invention, the printer 130 recognizes each presentation
object and each combination of presentation parameters applicable
to it.
[0033] Referring now to FIG. 3, the communication link 140 is
represented as carrying a print job 120 including 3 presentation
objects 310. Three objects are used for illustration purposes only
and it is understood that any number of presentation objects may be
present in a print job. When a print job is sent to printer 130 for
printing, data representing each presentation object included in
the print job may be sent with it, as shown. When one presentation
object is to be included in a document multiple times with
different presentation parameters, the data representing the object
need only be sent to the printer one time--multiple preRIP commands
could be created, each referring to the same object with different
parameters. In alternative embodiments, some or all of the
presentation objects may already be located in local storage 150 or
in some other location accessible to the printer 130. In this
alternative embodiment, presentation objects would be identified to
the printer and the printer would retrieve the objects as
needed.
[0034] In accordance with embodiments of the present invention, the
print job 120 includes a preRIP command 320 for each version of
each presentation object--that is, one preRIP command for each
combination of presentation parameters for an object. Each preRIP
command specifies an identifier 325 of the presentation object and
the presentation parameters 330 associated with the respective
instance of the presentation object. Presentation parameters 330
may include any number of individual parameters sufficient to
describe the presentation requirements for the object according to
the formatting of the document.
[0035] The preRIP commands may be sent to the printer at the
beginning of the data stream containing the remainder of the print
job to which they apply to allow the pre-rasterization in
accordance with the presentation parameters to occur prior to the
printing of the document(s) contained within the print job.
Alternatively, the preRIP commands may be sent to the printer at
any time before the print job is submitted to the printer so that
objects may be rasterized and cached, waiting for a print job which
calls for their inclusion. The user's selection of the types of
errors that can be ignored may also be sent to the printer 130 with
the print job 120 or at any time before a print job is submitted.
Preferably, the printer 130 maintains the user's selection of
blocked error types across print jobs until a new selection is
submitted.
[0036] The disclosed embodiments of the present invention are
described with reference to a new printer command referred to as a
preRIP command. It is to be understood that this command is simply
one way of implementing the broad concepts of the present invention
and that the present invention is in no way limited to the use of a
preRIP command or any other specifically named or formatted
command. All that is required is that presentation objects and
their associated parameters be identified to the printer and the
printer instructed to rasterize and store them locally prior to
printing as opposed to rasterizing them as the document is
printed.
[0037] The printer 130 operating in accordance with embodiments of
the present invention recognizes the preRIP commands 320 and
rasterizes each object 310 identified 325 in a preRIP command 320
according to the defined presentation parameters 330 and stores the
rasterized object in storage 150 for later use. When the prepared
object is cached in storage 150, it is stored with a set of
identifying tags so that it can be found when it is needed. These
tags include an object identification tag and a tag representing
each of the presentation parameters used in its preparation. Using
the preRIP commands 320 and objects 310 from FIG. 3 as an example
and referring now to FIG. 4, the printer 130 rasterizes objects 310
in accordance with the parameters 330 and caches each rasterized
object 410 in storage 150 with identification and parameter tags as
shown.
[0038] The processing of the first preRIP command 320 by printer
130 results in rasterized object 410 cached in local storage 150
with an object identifier 415 and a parameter list 420. Similarly,
the processing of subsequent preRIP commands 320' and 320" results
in the creation and storage of rasterized objects 410' and 410".
The objects illustrated here as an example may some or all be the
same object with different parameters (like the logo example used
above) or may all be different objects. The rasterized objects may
be stored and identified according to any method and type of object
and parameter identification known or later developed, such as
various known database storage and retrieval techniques, without
departing from the spirit or scope of the present invention.
[0039] In addition, each presentation object rasterized and stored
is also cached in storage 150 in its original form 430 so that
unexpected variations and combinations of presentation parameters
may be accounted for by rasterizing at print time. This may occur,
for example, when an object must be re-sized on the fly due to
variable text or other placement and size issues. Original form
objects 430, 430' and 430" are shown here for the case where the
three objects of FIG. 3 are all different objects. In the event the
three preRIP commands of the example in FIG. 3 represent three
different sets of parameters for one object, only one original form
object 430 would be cached in storage 150.
[0040] An aspect of embodiments of the present invention includes a
method of pre-processing the presentation objects present in a
print job to speed the print time of the job. Referring now to FIG.
5, a process 500 according to embodiments of the present invention
begins at 510 and proceeds to 520 where the presentation objects to
be included in a print job are recognized. Also recognized at 520
are the sets of presentation parameters associated with each
appearance of each presentation object in the print job. At 530,
each presentation object is rasterized according to each set of
presentation parameters applicable to the object. Each rasterized
object is then stored 540 in storage accessible to the printer so
that the printer may utilize the pre-rasterized object at print
time. In order to allow the printer to find the appropriate
pre-rasterized object, information is associated with each
pre-rasterized object identifying the object and the parameters
used in the rasterization and the identifying information is stored
550 along with the object.
[0041] In order to allow print-time adjustment and rasterization,
an original version of each presentation object may also be stored
560 accessibly to the printer. This allows for real-time
rasterization where necessary and may save time during printing if
the same object must be rasterized more than once. The process ends
at 570.
[0042] After the preRIP commands have been processed by the printer
for a given document, the remainder of the print data may be
received for processing. As mentioned above, the print data may
immediately follow the preRIP commands in the same data stream or
may come some time later. As the print data is received from a
print server, pages are processed as they come into the printer in
accordance with well known methods. The page data will include
INCLUDE commands (or their equivalent), each requesting the
insertion of a presentation object. As is well known in the art,
these INCLUDE commands specify the object and the combination of
presentation parameters to be used with that instance of the
object. When operating in accordance with embodiments of the
present invention, the printer 130 then searches the cache 150 for
a pre-rasterized version of that object matching the given
combination of presentation parameters. If it is found, it is
inserted in the document and processing continues. This is
significantly faster than rasterizing and adjusting the object in
real time as it is encountered in the print stream. Additional time
savings is realized if an object is included within a document more
than once with the same combination of presentation parameters, as
it can be inserted multiple times after having been rasterized only
once. The printer 130 may use any suitable method of searching the
stored rasterized objects for a match of object identifier and
parameter list, including various known hashing and database
methods of storage and retrieval.
[0043] Referring now to FIG. 6, a process 600 for handling print
data according to embodiments of the present invention is
illustrated. The process 600 begins 610 and includes receiving 620
print data including at least one INCLUDE statement (or the
equivalent) specifying a presentation object and its associated
parameters. At 630, an individual presentation object is
identified, along with its parameters. A printer operating in
accordance with embodiments of the present invention searches 640
the available local storage 150 for a pre-rasterized version of the
specified object with the same associated parameters. If no match
is found, the object is rasterized 650 in accordance with the
associated presentation parameters (the data representing the
object in its original form may be contained within the print job
data stream or may be stored accessibly to the printer, as
discussed above) as print processing typically proceeds today. If a
match is found, the appropriate rasterized version of the object is
retrieved 660. In any event, the rasterized object is inserted 670
into the document being printed for inclusion in the printed output
(not shown).
[0044] At 680, it is determined whether all the presentation
objects in the print data have been processed. If all the
presentation object have been handled, the process ends at 690,
otherwise the process continues at 630 with the next presentation
object to be included.
[0045] In some instances, such as where a document includes
variable text or is pulling items of unknown size for printing from
a database or the like, it may be impossible for the application to
know exactly what parameters should be associated with an object.
Sizing and trim parameters may especially be dependent upon where
the object ends up being included and how much space is left after
the inclusion of variable text. In such a case, the present
invention allows the objects to be pre-rasterized and cached
according to only a subset of the available parameters--like color
and quality choices only, for instance. Or, they can simply be
pre-rasterized at the full `object presentation space` size. Then,
as the document is processed and the object is included, the most
efficient pre-rasterized version may be retrieved and trimmed
on-the-fly (or rotated, etc.) as needed--once the target space is
known. In this mode of operation, some time is saved over the prior
art implementation because the entire object is pre-rasterized, but
print-time performance does degrade somewhat due to the need for
trimming on-the-fly.
[0046] In an embodiment of the present invention allowing objects
to be pre-rasterized according to a subset of the necessary
parameters as described above, step 640 of process 600 illustrated
in FIG. 6 would be tuned to search storage 150 for the
pre-rasterized version of the object in question most closely
matching the presentation parameters specified in the print data.
Before the insertion of the rasterized object in the document at
670, the process would include a further, optional step 665 where
the object would be trimmed-on-the-fly, rotated or otherwise
adjusted as needed to fit the real-time formatting of the
document.
[0047] The present invention is described here generally and with
reference to specific implementations thereof. Those skilled in the
art will readily recognize that the various components and
techniques described herein may be substituted for using any
suitable replacement without departing from the spirit and intent
of the invention. Although specific terms are used herein in
describing the present invention, it is to be understood that the
description here given uses such terminology in a generic and
descriptive sense only and not for purposes of limitation. As such,
it is intended that the following claims be interpreted broadly to
embrace all the variations of the preferred embodiments
disclosed.
[0048] With respect to the functions and processes described and
illustrated herein, each may be embodied in electronic circuitry
(or hardware) or as a series of computer programming code
instructions (or software) implementing the functions or steps
described, or as a combination of hardware and software. For
example, in this description and in the following claims where the
print server 100 (FIG. 1) or the printer 130 (FIG. 1) is said to
take some action or perform some function, that action or function
may be effected by the execution of software in the memory (not
shown) of the print server 100 or printer 130, as is well known by
persons skilled in the relevant arts. Such software may be stored
on any known or later developed computer-readable media for loading
and/or execution by the print server 100 or printer 130.
Alternatively, such action or function may be effected by
instructions implemented in the circuitry (not shown) of the
relevant device, again, using techniques well known by those
skilled in the relevant arts.
[0049] As readily recognized by those skilled in the art, the exact
order of the steps and processes illustrated and discussed herein
may be varied in any advantageous manner without deviating from the
present invention. Also, where appropriate, steps may be repeated,
skipped or combined to better operate in a given environment.
* * * * *