|
Claims  |
|
|
What is claimed is:
1. A printing system for producing prints from a first job and a second
job, each of the first and second jobs being represented by a first data
stream and a second data stream, respectively, each of the first and
second data streams being generated by a data generating source, each of
the first and second data streams being represented in a page description
language and including one or more images, each of the images being
represented by image data, the second data stream including a token
expressed as a word, the word indicating that the second data stream
includes a bitmap, comprising:
a parsing system for receiving the first data stream and separating the
image data from the first data stream;
mass memory for receiving the image data separated from the first data
stream by said parsing system, said mass memory including a raster memory
section;
an input filtering section for receiving the second stream of data while
said parsing system is separating the image data from the first data
stream, said input filtering section including an input filter for reading
a block of data from the second data stream to determine the presence of
the token in the block of data;
a processor, responsive to said input filtering section, for performing an
operation on the second data stream when said input filter has determined
the presence of the token in the block of data, said operation including
separating the bitmap from the second data stream to form a modified
stream of data and a stream of image data, the stream of image data
comprising the bitmap; said processor performing said operation on the
second data stream concurrently with said parsing system separating the
image data from the first data stream; and
a page description storage memory section, the modified stream of data
being stored in said page description language memory section and the
stream of image data being stored in said raster memory section, wherein
the modified stream of data is transmitted to said parsing system in lieu
of the second stream of data and the stream of image data is extracted
from the second data stream prior to communicating the modified data
stream to the parsing system so that an amount of time required to parse
the second data stream is minimized.
2. The printing system of claim 1, wherein the modified stream of data
includes information designating a storage location for the stream of
image data in said raster memory section.
3. The printing system of claim 1, in which said input filtering section
communicates with multiple clients by way of a network connection, wherein
the multiple clients access said input filtering section in parallel.
4. The printing system of claim 1, wherein said input filtering section
includes a stream utility for managing transmission of the modified data
stream to said page description storage memory section and transmission of
the image data stream to said raster memory section.
5. A printing system for producing prints from a first job and a second
job, each of the first and second jobs being represented by a first data
stream and a second data stream, respectively, each of the first and
second data streams being represented in a page description language with
the page description language including control instructions dictating a
manner in which a job is to be processed, the first and second data
streams including one or more images with each image being represented by
image data, the second data stream including one or more words,
comprising:
a parsing system for receiving the first data stream and separating the
image data from the first data stream;
mass memory for receiving the image data separated from the first data
stream by said parsing system, said mass memory including a raster memory
section;
an input/output device for performing an operation dictated by the control
instructions of the second job, said input/output device including one or
more device characteristics which are modifiable to permit the second job
to be executed in accordance with its corresponding control instructions;
an input filtering section for receiving the second stream of data while
said parsing system is separating the image data from the first data
stream, said input filtering section including an input filter for reading
a block of data from the second data stream, while image data is being
separated from the first data stream, to determine the presence of the one
or more words in the block of data;
a processor, responsive to said input filtering section, for performing a
printing system operation in response to said input filter determining the
presence of the one or more words in the block of data, said printing
system operation including modifying the one or more device
characteristics to permit the second job to be executed in accordance with
the corresponding control instructions, said processor performing said
operation on the second data stream concurrently with said parsing system
separating the image data from the first data stream so that the printing
system is provided with multi-tasking capability with respect to execution
of the first and second jobs.
6. The printing system of claim 5, in which said input/output device
comprises a printing machine including one or more font types, wherein the
one or more device characteristics comprise the one or more font types
available in the printing system.
7. The printing system of claim 6, in which the second data stream includes
information regarding a font requirement dictated by the job, wherein said
input filtering section includes a stream utility for determining whether
the font requirement dictated by the job can be fulfilled in view of the
one or more font types available in the printing system
8. The printing system of claim 5, in which the input/output device
comprises a finishing device including one or more configurable finishing
attributes, wherein the one or more device characteristics comprise the
one or more finishing attributes.
9. The printing system of claim 8, in which the second data stream includes
information regarding a manner in which the finishing attributes are to be
configured, wherein said input filtering section includes a stream utility
for configuring the finishing attributes with the information in the
second data stream.
10. The printing system of claim 5, in which the printing system includes a
printing machine with the printing machine including said parsing system,
said mass memory, said input filtering section and said processor, wherein
said input/output device communicates with the printing machine by way of
a network connection.
11. In a printing system for producing prints from a first job and a second
job, each of the first and second jobs being represented by a first data
stream and a second data stream, respectively, each of the first and
second data streams being generated by a data generating source, each of
the first and second data streams being represented in a page description
language and including one or more images, each of the images being
represented by image data, the second data stream including a token
expressed as a word, the word indicating that the second data stream
includes a bitmap, a method of processing the first and second jobs,
comprising:
parsing the first data stream to separate the the image data from the first
data stream;
storing the image data separated from the first data stream in mass memory,
said mass memory including a raster memory section;
reading a block of data from the second data stream, while the first data
stream is being parsed with said parsing, to determine the presence of the
token in the block of data;
performing an operation on the second data stream when it is determined,
with said reading, that the token is present in the block of data, said
performing being concurrent with said parsing and including stripping the
bitmap from the first data stream to form a modified stream of data and a
stream of image data, the stream of image data comprising the bitmap; and
storing the modified stream of data in the page description language memory
section and the stripped bitmap in said raster memory section, wherein the
bitmap is stripped from the second data stream prior to parsing the second
data stream so that an amount of time required to parse the second data
stream is decreased substantially.
12. The method of claim 11, further comprising providing the modified
stream of data with information designating a storage location for the
bitmap in said raster memory section.
13. The method of claim 11, in which a third data stream having a block of
data with a token is provided to the printing system, wherein said reading
includes reading the block of data from the second data stream and the
block of data from the third data stream concurrently.
14. The method of claim 11, wherein said storing of the modified stream of
data and the stripped bitmap is performed with a stream utility.
15. In a printing system for producing prints from a first job and a second
job, each of the first and second jobs being represented by a first data
stream and a second data stream, respectively, each of the first and
second data streams being represented in a page description language with
the page description language including control instructions dictating a
manner in which a job is to be processed, the first and second data
streams including one or more images with each image being represented by
image data, the second data stream including one or more words,
comprising:
a) providing an input/output device for performing an operation dictated by
the control instructions of the second job, said input/output device
including one or more device characteristics which are modifiable to
permit the second job to be executed in accordance with its corresponding
control instructions;
b) parsing the first data stream to separate the the image data from the
first data stream;
c) storing the image data separated from the first data stream in mass
memory;
d) reading a block of data from the second data stream, while the first
data stream is being parsed with said parsing, to determine the presence
of the one or more words in the block of data; and
e) performing an operation in the printing system when it is determined,
with said reading, that the one or more words are present in the block of
data, said performing being concurrent with said b) and including
modifying the one or more device characteristics to permit the second job
to be executed in accordance with the corresponding control instructions,
wherein the printing system is provided with multi-tasking capability with
respect to execution of the first and second jobs.
16. The method of claim 15, in which the printing system includes a
printing machine at which said b) through e) are performed, further
comprising providing a network connection between the printing machine and
the input/output device.
17. The method of claim 15, in which the printing system includes a font
storage section with one or more preselected font types and the second
data stream includes font requirements dictated by the second job, further
comprising determining if one or more of the one or more preselected font
types corresponds with the the font requirements dictated by the second
job.
18. The method of claim 17, in which said printing system includes a stream
utility, wherein said determining is performed with the stream utility.
19. The method of claim 15, in which the input/output device comprises a
finishing device including one or more configurable finishing attributes,
wherein said e) includes configuring at least one of the one or more
configurable finishing attributes in accordance with the one or more words
present in the second data stream. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present application is related to the co-pending U.S. patent
application Ser. No. 08,000,072 entitled "Apparatus and Method for Storing
and Printing Image Data", filed Jan. 4, 1993 (Attorney Docket No.
D/92498).
The present invention relates generally to a technique for printing a
stream of image data written in a printer page description language and
more specifically to an image filtering arrangement which selectively
removes one or more images from the stream of image data to thereby form a
modified stream of image data.
Network printing systems are becoming prevalent in office settings where
extensive document processing is performed. In one example of such network
printing systems, a client at an input, such as a workstation, sends
electronic documents that comprise a job over a local area network (LAN)
to one of the printers selected for printing of the job. In particular,
LANs provide a means by which users running dedicated processors are able
to share resources such as printers, file servers and scanners.
Integration of shared resources has been a problem addressed by LAN
managers. LAN managers have made different network protocols transparent
to devices running different network protocols. LANs also have a variety
of print drivers emitting different page description languages (PDLs),
which are directed to specific print devices.
In the exemplary network printing system, image data is transmitted to an
electronic printing system, such as a network DocuTech.RTM. electronic
printer manufactured by Xerox.RTM. Corporation, in the form of a stream of
image data expressed in terms of the PDL. The PDL stream can include,
among other things, an image, such as a bitmap, or a reference to one or
more images existing outside of the PDL stream. Preferably, as discussed
in the following patent application, the pertinent portions of which are
incorporated herein, a decomposer, with one or more processors and
suitable software, is employed to "take apart" an input document so that
the PDL is "parsed" into various image related components with a
preparser.
Patent application Ser. No. 07/898,761 Entitled: Apparatus and Method for
Multi-Stage/Multi-Process Decomposing Filed: Jun. 12, 1992
As discussed in the above-indicated reference, the decomposer executes the
PDL to generate imaging primitives. In doing this, the decomposer, for
example uses an arrangement for parsing the PDL into various image related
components. The types of operations required to generate imaging
primitives include, among others, binding fonts with requested fonts, any
image processing on pictorial information, and/or converting line
art/graphics (including bitmaps) to lower level primitives.
As disclosed in the above-discussed reference, the decomposer of the
exemplary network printing network is designed to receive only one job
file at a time. While the system can store a plurality of job files, in
anticipation of parsing them, such storage can result in less than
desirable machine output, or, more specifically, in reduced printing
speeds. That is, the amount of image data contained in a given job file
can be relatively large, if not immense, so that storing the job file out,
rather than transmitting it directly from the network input to the parsing
arrangement, can result in loss of time since, due to the amount of image
data in the job file, a significant delay inevitably occurs when the job
file is retrieved from storage for decomposing.
Additionally, due to the size of various images in the job file, and the
finite resources of the decomposer, a significant amount of time can be
expended in parsing the images of the PDL stream. Delays generated by
relatively slow parsing can be compounded in a system where multiple jobs
are queued up for decomposing. For example, in a situation where n jobs
are queued up for decomposing, the time that it takes for the decomposer
to finally get to the nth job will be affected by the amount of time that
it takes to parse each of the n-1 job files which is ahead of the nth job
file in the queue.
It would be desirable to provide an intelligent spooling arrangement which
maximizes throughput of the printing system.
SUMMARY OF THE INVENTION
In accordance with the present invention there is provided a printing
system for producing prints from a job represented by a stream of image
data written in a page description language and having a token expressed
as a plurality of bits, the stream of image data being generated and
transmitted from an image data source. The printing system comprises: an
input section, communicating with the image data source, for receiving the
stream of image data, the input section including means for reading a
block of image data to determine the presence of the token in the block of
image data; means, communicating with the input section, for storing the
stream of image data; means, responsive to the reading means determining
the presence of the token, for initiating a selected operation in the
printing system after the input section receives a portion of the stream
of image data; and a parser, communicating with the storage section, for
parsing the stream of image data to separate the stream into a plurality
of image-related components.
These and other aspects of the invention will become apparent from the
following description, the description being used to illustrate a
preferred embodiment of the invention when read in conjunction with the
accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a printing system in which the present
invention can be carried out;
FIG. 2 is a, block diagram of a processor/printer interface for the
printing system shown in FIG. 1;
FIG. 3 is a block diagram of selected sections of a decomposer for the
printing system of FIG. 1, the selected sections including an input
section, a system managing section and a parsing section;
FIG. 4 is a schematic view of a prediction break table used in conjunction
with a technique of the present invention;
FIG. 5 is a block diagram illustrating the manner in which bitmaps,
processed in accordance with the technique of the present invention, are
stored in memory;
FIGS. 6 and 7 conjunctively represent a flow diagram depicting a preferred
mode of operation for the input section, system managing section
and/parsing section of FIG. 3;
FIG. 8 is a flow diagram demonstrating the operation of a boundary code
catcher ("BCC"), the BCC being used, preferably, in conjunction with
either the input section or the parser;
FIG. 9 is a block diagram illustrating the manner in which bitmaps, stored
in accordance with the technique of the present invention, are printed
with the printer/processor interface of FIG. 2;
FIG. 10 is a block diagram of selected sections of a decomposer for the
printing system of FIG. 1, the selected sections including an input
section with a decomposer image filter ("DIF"), a stream utility and the
BCC, a system managing section and a parsing section;
FIG. 11-12 represent, conjunctively, a flow diagram illustrating the manner
in which DIF examines and processes a stream of image data communicated
from a network to the input section; and
FIGS. 13A-13C are respective schematic views of an unmodified PDL stream, a
modified PDL stream, and a bitmap extracted in accordance with another
inventive technique;
DESCRIPTION OF THE PREFERRED EMBODIMENTS
While the present invention will hereinafter be described in connection
with a preferred embodiment thereof, it will be understood that it is not
intended to limit the invention to that embodiment. On the contrary, it is
intended to cover all alternatives, modifications and equivalents as may
be included within the spirit and scope of the invention as defined by the
appended claims.
Turning now to the drawings, and at this point especially to FIG. 1, there
is an electronic printing system 21 to illustrate a typical environment
for this invention. In keeping with standard practices, the printing
system 21 comprises a digital processor 22 having a main memory 23 and a
mass memory 24, an input section 25 for providing a job written in a
printer page description language (PDL), and a printer 26 for printing
hardcopy renderings of selected image components obtained from the PDL.
Furthermore, there is a user interface 27 for enabling a user to interact
with the processor 22, the input section 25, and the printer 26.
As will be understood, the user interface 27 collectively represents the
input devices through which the user enters image editing and manipulation
instructions for the processor 22. Additionally, the interface 27
represents the output devices through which the user receives feedback
with respect to the actions that are taken in response to the instructions
that are entered by the user or otherwise, such as under program control.
For example, the user interface 27 generally includes a keyboard or the
like for entering use instructions, a monitor for giving the user a view
of the process that is being performed by the processor 22, and a cursor
controller for enabling the user to move a cursor for making selections
from and/or for entering data into a process that is being displayed by
the monitor (none of these conventional components is shown).
The illustrated printing system 21 is centralized, so it has been
simplified by assuming that all control instructions and all image editing
and manipulation instructions are executed by the processor 22 under
program control. In practice, however, the execution of these instructions
may be handled by several different processors, some or all of which may
have their own main memory and even their own mass memory. Likewise,
either or both of the input section 25 and the printer 26 may have its own
user interface, as indicated by the dashed lines 28 and 29, respectively.
Indeed, it will be evident that the printing system 21 could be
reconfigured to have a distributed architecture to operate with a remote
input section and/or a remote printer (not shown). Data could be
transferred from and to such remote input section and printer terminals
via dedicated communication links or switched communication networks (also
not shown).
As shown in FIG. 2, the processor 22 preferably includes a PDL driver 31
for transferring to the printer 26 PDL descriptions of the electronic
document files that are selected for printing. Thus, the printer 26 is
illustrated as having a PDL decomposer 32 for decomposing such PDL
descriptions to produce corresponding bitmapped image file. It will be
appreciated, particularly in view of the discussion below, that the
decomposer 32 is capable of receiving PDL files from mass memory, such as
disk, or from off the network "on the fly." Additionally, the printer 26
includes a print engine 36, the print engine 36 including one or more
image data buffering devices and being coupled with the decomposer 36 by
way of an arrangement of imaging channels 34. The significance of the
imaging channels will be discussed in further detail below.
Referring to FIG. 3, an arrangement including the mass memory 24, the input
section 25 and a portion of the decomposer 32 is shown. In the illustrated
embodiment of FIG. 3, the input section 25 comprises up to two PDL
emitters, such as a workstation 40, or any other suitable PDL source 42.
In one Example the workstation 40 is Xerox.RTM. 6085 (the term "Xerox
6085" is a trademark used by Xerox.RTM. Corp.) workstation coupled with a
network 44, such as a network sold by Xerox.RTM. Corp. under the trademark
of EtherNet.TM.. The network is interfaced with the decomposer 32 by way
of a suitable network interface 46, which could include one of many known
interfaces such as TCP/IP.TM., AppleTalk.TM. of Token Ring.TM.. Both of
the workstation 40 and the PDL source 42 are interfaced with the
decomposer 32 by way of a print server 48, which print server 48 can be a
suitable protocol corresponding with the specifications of the PDL Source
42 and/or the network interface 46. The,print server 48 communicates with
a system manager 50.
In the preferred embodiment, the system manager 50 comprises a system state
controller (SSC) 52 of the type disclosed in U.S. Pat. No. 5,170,340 to
Prokop et al., the pertinent portions of which are incorporated herein,
the user interface (UI) 27, which, in one example, is of the type
disclosed in U.S. Pat. No. 5,083,210, the pertinent portions of which are
incorporated herein, a database manager 54 and a database front end
processor 57. Additionally, the database manager 54 preferably comprises a
database job queue and a database coalescer table. The features of the
present invention can be obtained through use of any suitable,
commercially available database. Alternatively, one of ordinary skill in
the art could, without undue experimentation, construct the database of
the present invention by reference to one of several known texts, such as
the following text:
Martin, J. Computer Data-Base Organization Prentice Hall, Inc. Englewood
Cliffs, N.J. 1975
The database front end processor 57, which serves to define the structure
of the PDL job, and the sequence in which image related identifiers stored
in the database are operated on, can be constructed by those skilled in
the art in view of the type of database manager selected for use. As will
appreciated from the discussion below, the database manager 54 is the
conduit through which virtually all image related identifiers and all job
identifiers ("handles") flow. Moreover, editing of postparsed information
is achieved by use of a "make ready" process 58 which is coupled with the
front end 57. The "make ready" process, which serves to interpret operator
commands for performing bitmap processing, is used in the DocuTech.TM.
electronic printer which is sold by Xerox.RTM. Corp.
Referring still to FIG. 3, the print server 48, the SSC 52 and the data
base front end processor 57 each communicate with a parsing section 60 by
way of a preparse scheduler 62. In the preferred embodiment, the steps of
the parsing section 60 are performed on a MESA.TM. processor of the type
manufactured by Xerox.RTM. Corp. The preparse scheduler 62 communicates
with a preparser 64 by way of a block of shared memory 66. In the
preferred embodiment of the present invention, the preparser includes a
manager section 68 and a main section 70. In one example, the manager
section comprises a MESA.TM. processor of the type referred to immediately
above, and the main section comprises a similar processor and a math
coprocessor, the math coprocessor being similar to any one of a number of
commercially available math coprocessors. Additionally, the manager 68
communicates with the print server 48 by way of shared memory 71, and the
main section 70 is configured to store a coalesce table, the significance
of which table will be discussed in further detail below.
The preparser 64, which serves to break up PDL into image related
components, is capable of storing those components in mass memory 24,
which, in the preferred embodiment is a disk storage device, such as the
one used on the DocuTech.TM. electronic printer manufactured by Xerox.RTM.
Corp. Preferably, the disc storage device is adapted to receive rasters or
bitmaps in raster storage section 72 and internal PDL fragments ("internal
PDL frags") in internal PDL frags. section 74. It should be recognized
that internal PDL fragments are higher level primitives to be imaged on a
substrate. In one example, an internal PDL fragment serves to transform
coordinate systems inputted to the decomposer for printing. Employment of
other storage sections in the mass memory 24 to receive other image
related components is contemplated by the present invention.
In practice, the mass memory 24 is configured to not only receive and store
the image related components developed by the preparser 64, but to store,
on a long term basis, a relatively large variety of logos (in logo DB
storage section 76) and fonts (in a font storage section which is not
shown). Employment of other storage sections in the mass memory 24 to
store other image related components, on a long term basis, is
contemplated by the present invention. Additionally, the disc storage
device preferably includes section 82 for storing PDL files to be
processed and a section 84 for storing all information communicated to the
database manager 54. Preferably, the storage section 82 is used in
conjunction with volatile memory, such as cache so that each PDL job need
not necessarily be stored out to disk. In one example, the job database 84
is adapted to contain a structure for image related components of a job
written in a PDL. It will be appreciated by those skilled in the art that
a suitable memory arrangement could be used in place of the job database
without affecting the underlying concept of the present invention.
In practice, the preparser 64 is interfaced with the raster section 72 by
way of an image install process 86, a Boundary Code Catcher ("BCC") 87 and
a raster directory service (DS) 88. Preferably, the BCC achieves its
intended purpose through use of a plurality of programmable logic arrays
programmed with suitable software, the details of the software being
discussed in further detail below. In one embodiment of the present
invention, each raster or bitmap is stored in the storage section 72 with
a corresponding break entry table ("BET") 73, an example of which break
entry table is shown in FIG. 4 as an array of break table segments. A
detailed discussion of the format used for table 73 is provided in the
following reference, the pertinent portions of which are incorporated
herein by reference:
Title: Xerox Raster Encoding Standard ("Encoding Standard") Publication No.
XNSS 178905 Publication Date: 1990
As explained in further detail below, each bitmap comprises an image,
defined by one or more blocks of image data. Each block is divided into a
plurality of segments with break entries, each entry designating a
scanline count. Preferably, the BCC 87, in accordance with the algorithm
discussed below, builds the table 73 by indicating the location of each
break entry in the image and relating it with a pointer to corresponding
line control code.
In accordance with the above-described embodiment, the preparser 64 is
interfaced with the logo DB section 76 (FIG. 3) by way of a file finder
process 90 and the internal PDL frags section by way of Internal PDL Frags
Manager 92. Referring to FIGS. 3 and 5, one or more supplemented bitmaps
are transmitted from the BCC 87 to the raster DS 88. Each supplemented
bitmap comprises a bitmap with its corresponding BET. As illustrated
specifically in FIG. 5, each supplemented bitmap is assigned an image
identifier and the image identifier is stored in the raster DS 88.
Moreover, each image identifier points to one of the supplemented bitmaps
stored in the storage section 72. Finally, for the illustrated embodiment
of FIG. 3, copies of the corresponding image identifiers from the raster
DS 88 are passed to the preparser 64.
Referring still to FIG. 3, the internal PDL frags manager 92 is adapted to
assign an image identifier to each internal PDL fragment transmitted
thereto, and pass each of those identifiers to the preparser 64. On the
other hand, the file finder 90 assigns an identifier to calls for logos
received at the preparser 64 from the print server 48, and permits the
logos to be fetched by the preparser 64 when they are available in the
logo DB section 76. When the called for logo is not available in the logo
DB section, the file finder 90 is capable of issuing an appropriate fault
message for display at the UI 27 or for printing with a hardcopy print.
Referring to FIGS. 6 and 7, the inputting and parsing of the PDL file(s)
will be discussed in further detail. Referring specifically to FIG. 6, at
step 100, a job file written in a particular PDL, such as Interpress used
by Xerox.RTM. Corp., is provided from either the workstation 40 or the PDL
source 42. Upon inputting the PDL job to the print server 48, basic
information regarding, for example, the structure of the job and the order
in which the job should be processed, is transmitted to the database
manager 54 (step 102) by way of the preparse scheduler 62 and the database
front end processor 57. The database manager 54 indicates to the SSC 52
that it has a job, and in due course, provided that the decomposer is
ready (see step 104), the SSC 52 commands the print server 48 to begin
transmitting blocks of the PDL file to the manager section 68 across
shared memory block 71 (step 106) and causes the preparse scheduler 62 to
obtain a job identifier ("handle") from the database manager 54 (step
108). The handle represents the information that the preparse scheduler 62
will need to pass the image related identifiers resulting from the parsing
process on to the database manager 54. Alternatively, as illustrated by
steps 104 and 110, if a job is ready to be inputted concurrent with a job
being processed, the job that is ready to be inputted can be stored for
subsequent processing. In one preferred embodiment of the present
invention, as described in further detail below, step 110 is performed in
conjunction with a filtering technique.
As the PDL is transmitted to the manager section 68 (step 112), it is, per
step 114, broken down into global information, such as a header and a
preamble, and page level information. Additionally, the manager 68 finds
the beginning of each page within the job file ("master") for setting up
the image related components ("data structures") to be received by the
main section 70 . Essentially, the manager functions as a syntactical
analyzer, insuring that the syntax of the encoded PDL master is correct.
The manager preferably performs some pre-work for the main 70 and
possesses limited interpretative capabilities.
At step 118, page-level information is passed from the manager 68 to the
main 70 at which information, or, more specifically, data structures are
created. The main looks into a linked list of set up pages and
sequentially decomposes them. The manager and the main can work on
separate pages or the main can work ahead of the manager within a page.
Once the manager has created a data structure for a page, the main
executes data structures within the page for storage in the mass memory
24. Per step 120, the main 70 inserts any font names that it gleans from
pages in a coalesce table stored in the main.
Referring to FIG. 7, once the page-level data structures are available,
identifiers therefore are obtained. If rasters (i.e., bitmaps) or
references to rasters ("tokens of interest") are found among the data
structures (step 122), the rasters are communicated to the raster storage
section 72 by way of the image install 86 and the raster DS 88. For each
raster found among the data structures, a break entry table is created,
with the BCC 87, at step 124. An approach for processing the rasters
referenced by the tokens of interest is described in further detail below.
Per step 126, the rasters, with their respective break entry tables, are
assigned identifiers by the raster directory service, and the identifiers
are passed to the main 70 for placement in the coalesce table.
If logo calls, i.e., calls for a merge item, are found among the data
structures (step 128), the file finder 90 checks to see if the logos are
in the logo DB section 76 (step 130). For those logos in the logo DB,
corresponding pointers for the available logos are communicated to the
main (step 132) for placement in the coalesce table. For those logos not
in the logo DB, a fault message is, per step 134, returned to the main for
eventual display or printing into hardcopy. Per steps 136 and 140,
internal PDL fragments are created and communicated to the internal PDL
frags storage section 74 by way of the internal PDL frags manager 92. With
step 140, the internal PDL fragments are assigned identifiers or "tokens"
by the internal PDL frags manager 92, and the identifiers are passed to
the main 70. As shown by steps 142 and 144 any other data structures
flowing from the main 70 would be handled in a manner similar to that
shown for rasters or internal PDL fragments. After all of the identifiers
are provided to the main 70, a signal is sent to the preparse scheduler
62, and the identifiers, per step 146, are communicated to the database
manager 54.
Referring to FIG. 8, a technique for creating the break entry table 73 of
FIG. 4 is discussed in further detail. In the preferred embodiment of the
present invention, one or more data blocks, representing a bitmap, are
buffered and, initially, at step 200, the BCC 87 fetches a data block,
along with pertinent parameters, such as "image handle", "pixel sequence
type", "pixel encoding offset", etc. The BCC 87 then reads one word of
image data at-a-time (step 202), from the block of image data, and stores
any line boundary code. If a word is not line boundary code (step 204)
then the process returns to step 202. If, on the other hand, the word is
line boundary code, then the word is examined, per step 206, and it is
determined whether the word is at the end of a segment. If the word marks
the end (or, alternatively, the beginning) of a segment, then a break
table entry is generated (step 208) and a check is performed, at step 210,
to determine if the entire image of the bitmap has been examined. When the
end of the image is reached (step 212), the curr | | |