|
Claims  |
|
|
What is claimed is:
1. A decomposing apparatus for use in a printing system of a type having a
font storage section and being adapted to receive a first set of
information and a second set of information, each of the first and second
sets of information being written in a printer page description language,
comprising:
an apparatus for parsing each of the first set of information and the
second set of information into a first set of image related components and
a second set of image related components, respectively, said parsing
apparatus designating each of the image related components with an image
identifier, at least one of the image identifiers comprising a font name
for a corresponding font;
said parsing apparatus parsing the first set of information during a first
time interval and the second set of information during a second time
interval, the first time interval preceding the second time interval, and
said decomposing apparatus generating a printable format based on the
first set of information;
a coalescing apparatus for performing image related operations on one or
more selected components of the first set of image related components or
the second set of image related components; and
prior to generating the printable format based on the first set of
information and during the second time interval, said coalescing apparatus
determining whether the corresponding font for the font name is available
in the font storage area.
2. The decomposing apparatus of claim 1, wherein a font available in the
font storage area is mapped with the font name when the corresponding font
is not available in the font storage section.
3. The decomposing apparatus of claim 2, wherein the font name is mapped
with the available font by reference to a font substitution table in which
unavailable fonts are mapped against fonts available in the font storage
section.
4. The decomposing apparatus of claim 1, wherein the corresponding font is
loaded into the printing machine when it is determined, with said
coalescing apparatus, that the corresponding font is unavailable in the
font storage area.
5. The decomposing apparatus of claim 4, wherein,
removable memory media is selectively coupled with the printing machine so
that the font storage section communicates with said removable memory
media, and
the corresponding font is loaded into the printing machine by reference to
the removable memory media.
6. A method of decomposing for use in a printing system of the type having
an input device for programming a job with global information and
page-level information, the printing system including a decomposing system
and the decomposing system including a dual stage preparser, the dual
stage preparser having both a first stage including a first processor and
a second stage including a second processor, comprising the steps of:
programming the job at the input device with global information and
page-level information;
communicating the job to the first stage of the dual stage preparser;
in the first stage of the dual stage preparser, splitting the job into the
global information and the page-level information with the first
processor;
storing the global information in a first memory section;
passing the page-level information to the second stage of the dual stage
preparser;
in the second stage of the dual stage preparser, parsing the page-level
information with the second processor to create image related components;
and
storing the image related components, created as a result of said
page-level information parsing, in a second memory section.
7. The method of 6 wherein the step of programming comprises the step of
using a job ticket.
8. The method of claim 7, wherein the using step comprises the step of
designating billing and accounting information in the global information.
9. The method of 6, further comprising the step of storing selected image
related components in the printing machine substantially prior to
performing the programming step, wherein the programming step comprises
designating, in the job, a call to one of the selected image related
components so that a copy of the called for image appears on a substrate
when the job is printed.
10. A decomposing apparatus for use in a printing machine of a type having
a raster image storage section and being adapted to receive a first set of
information and a second set of information, each of the first and second
sets of information being written in a page description language, the
first and second sets of information including a first set of image
related components and a second set of image related components,
respectively, comprising:
a parsing apparatus for parsing the first set of information into the first
set of image related components;
a coalescing system for performing image related operations on a selected
image related component of the second set of image related components, the
selected image related component of the second set of information being a
raster image;and
said coalescing system including an image processing subsystem, said image
processing subsystem performing an image processing operation on the
raster image while said parsing apparatus is parsing the first set of
information into the first set of image related components.
11. An apparatus for decomposing a job having a plurality of electronic
pages, each of the electronic pages being written in a page description
language, and said decomposing apparatus communicating with a memory
section, comprising:
a preparsing apparatus, receiving the electronic pages of the job, for
generating data structures representative of each electronic page of the
job, said preparsing apparatus including,
a first preparse system for dividing each electronic page of the job into a
first set of information and a second set of information, each of the
first sets of information including a data structure for an associated one
of the electronic pages and each of the second sets of information
including one or more executable data structures respectively relating to
one or more image related components for an associated one of the
electronic pages, each of the data structures of the first sets of
information being stored in the memory section, and
a second preparse system coupled with said first preparse system;
said first preparse system passing the second set of information for each
of the electronic pages of job to said second preparse system; and
said second preparse system executing the one or more executable data
structures of each of the second sets of information for storage in the
memory section.
12. The decomposer of claim 11, in which each of the first sets of
information comprises global information and each of the second sets of
information comprises page level information, wherein,
said preparsing apparatus includes a processor, and
said processor is adapted to perform said dividing.
13. The decomposer of claim 11, further comprising an apparatus, associated
with said preparsing apparatus, for storing each of the image related
components in the memory section.
14. The decomposer of claim 13, in which said storing apparatus is provided
with image related identifiers for each of the image related components
stored in the memory section, wherein,
said decomposer includes a database, said database communicating with said
storing apparatus, and
said storing apparatus communicates the image related identifiers to said
database.
15. The decomposer of claim 11, wherein said first preparse system
processes a portion of one of the electronic pages while said second
preparse system processes a second portion of the same one of the
electronic pages.
16. A printing system for producing prints from a job having a plurality of
electronic pages, each of the electronic pages being written in a page
description language, comprising:
a memory section;
an input source for creating a job;
a decomposer, communicating with said input source, for receiving the job
and interpreting the page description of the job so that the electronic
pages can be placed into a printable format, said decomposer including,
a preparsing apparatus, receiving the electronic pages of the job, for
generating data structures representative of each electronic page of the
job, said preparsing apparatus including,
a first preparse system for dividing each electronic page of the job into a
first set of information and a second set of information, each of the
first sets of information including a data structure for an associated one
of the electronic pages and each of the second sets of information
including one or more executable data structures respectively relating to
one or more image related components for an associated one of the
electronic pages, each of the data structures of the first sets of
information being stored in said memory section, and
a second preparse system coupled with said first preparse system;
said first preparse system passing the second set of information for each
of the electronic pages of job to said second preparse system, and
said second preparse system executing the one or more executable data
structures of each of the second sets of information for storage in said
memory section.
17. The printing system of claim 16, further comprising an apparatus,
associated with said preparsing apparatus, for storing each of the image
related components in said memory section.
18. The decomposer of claim 17, in which said storing apparatus is provided
with image related identifiers for each of the image related components
stored in the memory section, wherein,
said decomposer includes a database, said database communicating with said
storing apparatus, and
said storing apparatus communicates the image related identifiers to said
database.
19. A method of managing a plurality of jobs in a printing system with a
decomposer, the decomposer interpreting a first job and a second job,
sequentially, to place each of the first and second jobs into a printable
format, each of the first and second jobs being written in a page
description language and including one or more electronic pages with each
electronic page including one or more image related components, each job
being communicated to the decomposer by way of a network connective
arrangement, the decomposer communicating with a mass memory section and
the network connective arrangement communicating with a page description
language storage section, comprising:
inputting each electronic page of the first job to the decomposer;
preparsing each electronic page of the first job so that the one or more
image related components of each electronic page is made available for
storage in the mass memory section;
determining if inputting the second job to the decomposer would interfere
with said preparsing of the first job;
when it is determined, with said determining, that the inputting of the
second job would interfere with said preparsing, storing the second job in
the page description language storage section;
when it is determined, with said determining, that the inputting of the
second job would not interfere with said preparsing, transmitting the job
from the page description language storage section to the decomposer for
preparsing thereby. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
Priority is claimed, to the extent to which it is available, to copending
U.S. patent application Ser. No. 07/591,325 entitled "System State
Controller for Electronic Image Processing Systems," filed Sep. 28, 1990
and to copending U.S. patent application Ser. No. 07/591,324 entitled
"Control for Electronic Image Processing Systems," filed Sep. 28, 1990,
both of which have at least one Applicant, namely Irene Allen, who is an
applicants in the present application.
BACKGROUND OF THE INVENTION
The present invention relates generally to a technique for printing a job
written in a printer page description language and more specifically to a
multi-process/multi-stage decomposer adapted to decompose higher level
primitives into imaging primitives for printing.
Personal computers have become commonplace on the desks of most office
workers. Typically, much of the work product of such computers is intended
to be transformed into hardcopy via a printer using digital imaging
technology. A typical printer configuration for this purpose comprises a
dedicated printer coupled to the personal computer ("PC"). However,
printers used for this purpose are typically small laser printers which
have limited functions and features such as a limited tray capacity which
restricts the number and types of copy sheets that can be used to make
prints on, or which do not have a finishing capability, etc.
On the other hand, larger high speed laser printers normally have a great
deal of finishing and copy sheet capability which would allow the PC user
to have, for example, custom printing and finishing of his work product,
an option which for many PC users would be highly desirable. In practice,
the PCs can be used advantageously with a network printing system of the
type combining a number of client inputs, such as the PCs, or the like,
and one or more printer outputs. In one example of such network printing
systems, a client at one of the inputs 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.
A PDL, such as Interpress provided by Xerox.RTM. Corp. permits arithmetic
computation, conditional execution, and procedure definition, in addition
to special operations that construct a page image. Typically, a PDL
supports imaging characters in a variety of fonts, faces, sizes and
orientations, as well as line art, graphics and pictorial images. Because
it is a language, the PDL describes a document in terms of software, the
software being used to generate primitives that can be imaged onto a
substrate with a marking engine. Further information regarding Interpress
can be found in the following reference, the pertinent portions of which
are incorporated herein by reference:
Harrington, S. J. and Buckley, R. R.
Interpress: The Source Book
Simon & Schuster, Inc.
New York, N.Y.
1988
While the use of a PDL to store and transmit an input document is desirable
for several reasons, such use can complicate printing since much effort
must be expended by the printer in converting the PDL of the input
document into hardware imaging primitives that actually produce the print.
In particular, an input format of an input document written in a PDL
contains primitives that are at a "higher level" than the imaging
primitives, so that the input document must be "taken apart" into its
individual imaging components with a decomposing technique or the like.
Preferably, a decomposer, with one or more processors and suitable
software, is employed to implement the technique.
In operation, the decomposer executes the PDL to generate the imaging
primitives. The types of operations required to perform this task include
binding of the printer fonts to the requested fonts, any imaging
processing on pictorial information, and/or converting line art/graphics
to lower level imaging primitives. This process has historically taken
much longer than the actual imaging, resulting in loss of throughput. It
would therefore be desirable to provide a decomposer that minimizes the
amount of time required to perform decomposing functions and,
correspondingly, maximizes output.
SUMMARY OF THE INVENTION
In accordance with the present invention there is provided a decomposing
apparatus for use in a printing machine of the type adapted to receive a
first set of information written in a printer page description language
and a second set of information written in a printer page description
language. The decomposing apparatus preferably comprises: means for
parsing the first set of information into a first set of image related
components during a first time interval and the second set of information
into a second set of image related components during a second time
interval; and, means for performing image related operations on selected
components of the first set of image related components, the image related
operations being performed on the first set of image related components
during the second interval so that the image related operations can be
performed on the first set of image related components substantially
concurrently with the second set of information being parsed.
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 schematic, block diagramatic view of an electronic printing
machine in which the present invention can be carried out;
FIG. 2 a schematic, block diagramatic view of a processor/printer interface
for the printing machine shown in FIG. 2;
FIGS. 3A and 3B represent a schematic, block diagramatic view of an
arrangement for decomposing a job written in a printer page description
language;
FIG. 4 is a flow diagram providing an overview for the function of the
arrangement in FIGS. 3A and 3B;
FIG. 5 is a graphic representation illustrating certain functional aspects
of the present arrangement;
FIGS. 6A and 6B represent a flow diagram depicting the operation of parsing
in the decomposing arrangement;
FIG. 7 is a schematic view of a screen displayed on a user interface, the
screen comprising a job ticket for programming various instruction to be
performed in conjunction with the job;
FIG. 8 is a schematic view of a supplemental job ticket capable of being
used with the job ticket of FIG. 7;
FIG. 9 is a flow diagram depicting the operation of coalescing in the
decomposing arrangement;
FIG. 10 is a schematic, block diagramatic view of a section of a coalescing
section in the decomposing arrangement of FIGS. 3A and 3B;
FIG. 11 is a flow diagram depicting the operation of postparsing in the
decomposing arrangement;
FIG. 12 is a graphic representation illustrating time/storage constraints
encountered for various levels of primitives; and
FIG. 13 is a schematic view of a screen displayed on a user interface, the
screen comprising a graphic tool for performing an editing function, such
as "cut and paste".
DESCRIPTION OF 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 document processing system 21 to illustrate a typical
environment for this invention. In keeping with standard practices, the
document processing 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 document processing 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 document processing
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."
Referring to FIGS. 3A and 3B, an arrangement including the mass memory 24,
the input section 25 and the decomposer 32 is shown. Referring
specifically to FIG. 3A, the input section 25 preferably 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 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 TCPIP.TM., AppleTalk.TM. or 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 55 (FIG. 10) and a database coalescer table 56. 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. 3A, 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 consists of a
manager section 68 and a main section 70. In one example, the manager
section comprises a processor of the type referred to immediately above,
and the main section comprises a similar processor and a math coprocessor
which, for the most part, is similar to commercially available math
coprocessors. Additionally, the manager 68 communicates with the print
server 48 by way of a block of memory 71, and the main section 70 is
configured to store a coalesce table, the significance of which 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 disk storage device is adapted to receive rasters 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 font section 78). 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 disk 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. In one
example, the job database 84 is adapted to contain a structure for and
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 to the raster section 72 by way
of an image install process 86 and a raster directory service (DS) 88, to
the logo DB section by way of a file finder process 90 and to the Internal
PDL Frags section by Internal PDL Frags Manager 92. In the illustrated
embodiment of FIG. 3A, the raster DS 88 is adapted to assign an image
identifier to each raster transmitted thereto, and pass each of those
identifiers to the preparser 64. Similarly, 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 still to FIG. 3B, the results of the preparsing process are
eventually passed on to the coalesce section 94. The coalesce section 94
comprises a coalesce scheduler 96 that communicates with a coalescer 98.
The coalescer scheduler 96 functions under the influence of the SSC 52 and
the database manager 54 to manage the various functions of the coalescer
98. The coalescer 98 communicates with the fonts storage section 78 by way
of a font manager 102. In the preferred embodiment, the fonts storage
section 78 comprises a font database and the font manager 102 is capable
of interpreting the data structures therein. In particular, the font
manager 102 is adapted to scan the data structures of the font database to
check whether a font requested by the coalescer 98 is present in the font
database. The coalescer 98 also communicates with a font
substitution/insertion section 104, the section 104 comprising a font
substitution table arrangement 106 of the type described in U.S. Pat. No.
5,167,013 to Hube et al., the pertinent portions of which are incorporated
herein by reference, and a job level substitution/insertion process 108.
In one example, the insertion aspect of the substitution/insertion process
108 is directed toward a tape source for manually loading fonts of the
type used in the DocuTech.TM. electronic printer sold by Xerox.RTM. Corp.
In another example, the substitution aspect of the substitution/insertion
process 108 is any suitable arrangement in which a user of the decomposer
32 can facilitate the manual substitution of a font available in the font
database of the fonts storage section 78 for an unavailable font called
for in a job provided from the input section 25.
Image related components of each job are ultimately processed into
printable form, or more specifically, to "lower level primitives," by use
of a postparsing section 110 which includes a postparse scheduler 112. The
postparse scheduler 112 functions under the influence of the SSC 52 and
the database manager 54 to manage the various functions of a postparser
114. The postparse scheduler 112 also communicates with an internal PDL
frags generator 116, the generator 116 being capable of accessing the
internal PDL frags storage section 74, by way of the internal PDL frags
manager 92, for generating selected internal PDL fragments stored in the
internal PDL frags storage section 74. In turn, the generator 116
communicates with the postparser 114 for passing the selected generated
fragments thereto. Each of the coalescer 98 and the postparser 114
communicate with an image processing arrangement 118, the arrangement 118
including an image conversion service (ICS) and an image resampling
service (IRS). As should be recognized, the ICS and the IRS provide a host
of image processing services for use with the various image components
from each processed jobs, such services including image rotation, color
processing, halftoning, image resolution (e.g. scaling) and the like. In
the preferred embodiment, the ICS/IRS communicates with the image install
86 to perform image processes on selected rasters in the raster storage
section 72. The various components of the postparsing arrangement,
including the ICS/IRS are commercially available on the DocuTech.TM.
electronic printer sold by Xerox.RTM. Corp.
Referring to FIG. 4, an overview of the operation of the illustrated system
of FIG. 3 is shown. To initiate decomposition, a job is communicated from
the input section 25 to the decomposer 32 (step 122). After appropriate
coordination has occurred, information is passed to the preparse section
64 (step 124), the information is parsed into image related components
and, per step 128, identifiers corresponding to the components are stored
in the job database 84 by the database manager 54. Some time after a first
page of the job is parsed, the identifiers are passed from the database to
the coalesce section 94 (step 130) for font processing (step 132) and
bitmap processing (step 133). Coalesced information is then postparsed
(step 134) to form a bandlist, and the bandlist is marked at step 136. In
the preferred embodiment, coalesced information can be edited (step 138),
as described below.
Referring to FIG. 5, the multi-process capability of the decomposer 32, for
even just one job, can be readily appreciated. As illustrated by FIG. 10,
the decomposer 32 can preparse a job concurrently with it being captured
from the network. After N page(s) of preparsed information has been passed
along to the database, the decomposer can start coalescing concurrently
with capturing and preparsing. As further illustrated by FIG. 5, the job
can be decomposed "on-the-fly" with respect to the network.
A more detailed view of the present invention can be obtained by reference
to Appendices A-H, including significant portions of code employed to
implement the decomposing technique of the present invention. The code is
written in MESA.TM. language, the details of which are discussed in the
commercially available Mesa.TM. Language Manual (Copyright of Xerox.RTM.
Corp. 1985), the pertinent portions of which are incorporated herein by
reference.
Referring briefly to the Appendices, definitions for the code begin on p.
1, while discussions regarding job capture, parsing and coalescing begin
on pp. 297, 360 and 1005, respectively. Further discussion regarding
processing of internal PDL fragments begins on pp. 980 and 1005. Some
general comments regarding the code, and other specific comments regarding
interfaces used in the disclosed code are provided below:
Open or portable systems are achieved if the systems are not bounded by any
single utility such as an operating system. Definition files or interfaces
provide a level of data abstraction. For example, given a set of
interfaces defining required utilities for a decomposer to function in a
system, the utilities can be implemented independent of and transparent to
the decomposer. An interface between a client and a service is a
functional definition between modules. Most importantly an interface is
not an executable set of instructions. Alternatively, an interface is
defined as an agreed upon protocol between client and service.
More specifically, all decomposer source code presented is accompanied with
external interfaces that provide functional specifications for required
utilities not included in the Appendix, such as database management,
network management, system management, image management and memory
management. External interfaces to non-decomposer functional
specifications are listed in the Appendix A. Sections B through H of the
Appendix list decomposer source code as well as their internal interfaces
for each respective module. Internal interfaces enable communication
between elements inside individual modules as opposed to external modules.
Referring to FIGS. 6A-6B, the inputting and parsing of the PDL file(s) will
be discussed in further detail. Referring specifically to FIG. 6A, at step
142, 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. For those situations in which the job is developed on the
workstation 40, a job ticket, of the type shown in FIG. 7, may be
employed. As illustrated in FIG. 7, the job ticket provides various
choices with respect to finishing. In programming the job, it may also be
desirable to transmit information to the printer 26 regarding billing and
accounting. This type of information can be programmed in a supplementary
ticket of the type shown in FIG. 8. It should be recognized that much of
the information transmitted to the decomposer 32, in the form of the
tickets of FIGS. 7 and 8, is included in the form of global information,
versus page level information. Additionally, while generating his/her
program, the programmer may include calls to rasters, logos and other like
bitmaps that he/she knows is on the machine. Accordingly, as will become
clear from the discussion below, that call can be used as an identifier to
pull up one or more image related components, such as a logo, for eventual
printing at the printer 26.
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 144) 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
146), 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 148) and causes the preparse scheduler 62 to obtain a job identifier
("handle") from the database manager 54 (step 150). 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 146 and 152, 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
As the PDL is transmitted to the manager section 68 (step 154), it is, per
step 156, broken down into global information, such as a header and a
preamble, and page level information. As mentioned above, such global
information can include billing and accounting 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 160, page-level information is passed from the manager 68 to the
main 70 at which informations, 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 162, the main 70 inserts any font names that it gleans from
pages in a coalesce table stored in the main.
Referring to FIG. 6B, once the page-level data structures are available,
identifiers therefore are obtained. If rasters or bitmaps are found among
the data structures (step 164), they are communicated to the raster
storage section 72 by way of the image install 86 and the raster DS 88.
Per step 166, the rasters 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 168), the file finder 90 checks to see if
the logos are in the logo DB section 76 (step 170), For those logos in the
logo DB, corresponding pointers for the available logos are communicated
to the main (step 172) for placement in the coalesce table. For those
logos not in the logo DB, a fault message is, per step 174, returned to
the main for eventual display or printing into hardcopy. Per steps 176 and
178, internal PDL fragments are created and communicated to the internal
PDL frags storage section 74 by way of the internal PDL frags manager 92.
Per step 178, 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 182 and 184 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 186, are communicated to the
database manager 54.
Referring conjunctively to FIGS. 3, 9 and 10, further discussion with
respect to coalescing, i.e. performing font processing and/or bitmap
processing on certain stored data structures, is provided. Referring
specifically to FIG. 9, at step 188, the coalescer scheduler 96 gets a
handle, i.e. job ID, from the database manager 54, and transmits the
handle to the coalescer 98 (step 190). The coalescer, in turn, obtains the
appropriate coalesce table from the database (step 192). For each font
name (see step 194), the availability of its corresponding font in the
font section 78 is determined, via step 196, through use of the font
manager 102. For each font name that is available in the fonts storage
section 78, the font name is bound with a Font ID from the font manager
102 (step 198) , the font ID pointing to a | | |