WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Intelligent automatic trapping of page objects    

Custom CD of patents similar to US6594030 : Intelligent automatic trapping of page objects - $19.95
United States Patent6594030   
Link to this pagehttp://www.wikipatents.com/6594030.html
Inventor(s)Ahlstrom; Bret D. (Woodinville, WA); Elliot; Paul C. (Seattle, WA)
AbstractIn a desktop publishing application program, functionality is provided for automatic trapping of all page objects in a publication. Each page object is trapped as completely as possible, meaning that each page object is subdivided into atomic geometric or color page object components. Each page object component is trapped against all of the page object components of the same page object. These page object components are then trapped against all objects beneath them on a page in the publication. In some cases, page object components are also trapped against page objects above them on the page. Page objects beneath the page object components are decomposed into page object components as well. Page object components may be trapped according to correct adjacency trapping principles as well as general-purpose trapping principles. Text characters contained within page objects in the publication are trapped as well. When a trap is calculated for a given page object, only the necessary portions of the trap are actually rendered onto color plates. Accordingly, minimal traps may be generated for any supported page object in a native desktop publishing application program prior to converting a publication to a page description language for post processing.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6594030
Intelligent automatic trapping of page objects - US Patent 6594030 Drawing
Intelligent automatic trapping of page objects
Inventor     Ahlstrom; Bret D. (Woodinville, WA); Elliot; Paul C. (Seattle, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Company News
Publication Date     July 15, 2003
Application Number     09/384,651
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     August 27, 1999
US Classification     358/1.15 358/1.17 358/1.9
Int'l Classification     G06F  015/00
Examiner     Garcia; Gabriel
Assistant Examiner    
Attorney/Law Firm     King & Spalding, LLP
Address
Parent Case    
Priority Data    
USPTO Field of Search     358/1.1 358/1.9 358/1.13 358/1.15 358/1.17 358/500 358/515 358/538 382/162 382/167 382/180 382/217 382/266 345/619 345/620 345/624 345/629 345/641 345/589 707/500 707/512 707/517 707/525 707/530
Patent Tags     intelligent automatic trapping page objects
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
6345117
Klassen
382/167
Feb,2002

[0 after 0 votes]
6262747
Rocheleau
345/620
Jul,2001

[0 after 0 votes]
5923821
Birnbaum

Jul,1999

[0 after 0 votes]
5668931
Dermer

Sep,1997

[0 after 0 votes]
5666543
Gartland
715/526
Sep,1997

[0 after 0 votes]
5581667
Bloomberg
358/1.9
Dec,1996

[0 after 0 votes]
5542052
Deutsch
345/589
Jul,1996

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a desktop publishing application program for operating on a publication comprising a first page object and a second page object, the first page object having a higher Z-order than the second page object, a method for trapping the first page object against the second page object comprising the steps of:

decomposing the first page object into one or more first page object components;

creating a first trap source list comprising one or more first trap candidate segments from the first page object components, the trap candidate segments comprising exposed edges of the first page object components that intersect or abut the second page object;

for each of the first trap candidate segments in the first trap source list:

detecting whether a potential adjacency trapping situation exists between the first trap candidate segment and the second page object,

in response to detecting the potential adjacency trapping situation, performing adjacency trapping between the first trap candidate segment and the second page object to create a trap segment and to remove from the first trap source list any portion of the first trap candidate segment that maps to the trap segment, and

performing a color test to determine whether the trap segment is to be added to a trap output list or deleted;

for each of the first trap candidate segments in the first trap source list:

detecting whether a potential general-purpose trapping situation exists between the first trap candidate segment and the second page object,

in response to detecting the potential general-purpose trapping situation, performing general-purpose trapping between the first trap candidate segment and the second page object to create a next trap segment and to remove from the first trap source list any portion of the first trap candidate segment that overlays the second page object, and

in response to creating the next trap segment, performing a color test to determine whether the next trap segment is to be added to the trap output list or deleted; and

rendering the trap segments from the trap output list onto appropriate color plates to hide misregistration errors between the first page object and the second page object.

2. A computer readable medium having stored thereon computer-executable instruction for performing the method of claim 1.

3. The method of claim 1, wherein detecting whether the potential adjacency trapping situation exists comprises:

determining that the second page object abuts the first page object;

decomposing the second page object into second page object components to create a second trap source list comprising second trap candidate segments;

comparing the first trap candidate segment to each second trap candidate segment in the second trap source list according to the following steps:

comparing the rotation states of the first trap candidate segment and the second trap candidate segment,

if the rotation states are equivalent, determining whether the first trap candidate segment and the second trap candidate segment are separated by less than a maximum adjacency trapping distance,

if the first trap candidate segment and the second trap candidate segment are separated by less than a maximum adjacency trapping distance, determining whether the first trap candidate segment overlaps the second trap candidate segment in the direction corresponding to the rotation states,

if the first trap candidate segment overlaps the second trap candidate segment in the direction corresponding to the rotation states, determining whether the shared extent of the first trap candidate segment and the second trap candidate segment is greater than a predetermined length, and

if the shared extent of the first trap candidate segment and the second trap candidate segment is greater than a predetermined length, determining whether respective segment normal vectors for the first trap candidate segment and the second trap candidate segment point in opposite directions,

whereby a potential adjacency trapping situation exists if it is determined that the respective segment normal vectors for the first trap candidate segment and the second trap candidate segment point in opposite directions.

4. The method of claim 3, wherein performing adjacency trapping between the first trap candidate segment and the second page object comprises:

creating the trap segment along the shared extent of the first trap candidate segment and the second trap candidate segment;

comparing the trap segment to the first trap candidate segment; and

removing from the first trap source list any portion of the first trap candidate segment that maps to the trap segment.

5. A computer readable medium having stored thereon computer-executable instruction for performing the method of claim 4.

6. The method of claim 1, wherein detecting whether the potential general-purpose trapping situation exists comprises:

decomposing the second page object into second page object components to create a second trap source list comprising second trap candidate segments; and

determining whether the first trap candidate segment intersects any of the second trap candidate segments.

7. The method of claim 6, wherein performing general-purpose trapping between the first trap candidate segment and the second page object comprises:

generating the next trap segment having a length equal to the extent of the intersection between the first trap candidate and the second trap candidate segment; and

removing from the first trap source list any portion of the first trap candidate segment overlays the second page object component associated with the second trap candidate segment.

8. A computer readable medium having stored thereon computer-executable instruction for performing the method of claim 7.

9. The method of claim 1, wherein detecting whether the potential general-purpose trapping situation exists comprises determining whether the first trap candidate segment is contained entirely within the second page object.

10. The method of claim 9, wherein performing general-purpose trapping between the first trap candidate segment and the second page object comprises:

generating the next trap segment having a length equal to the first trap candidate segment; and

removing from the first trap source list any portion of the first trap candidate segment overlays the second page object component associated with the second trap candidate segment.

11. A computer readable medium having stored thereon computer-executable instruction for performing the method of claim 10.

12. The method of claim 1, further comprising the step of self-trapping the one or more first page object components against one another to create one or more additional trap segments to be added to the trap output list.

13. A computer readable medium having stored thereon computer-executable instruction for performing the method of claim 12.

14. In a desktop publishing application program for operating on a publication comprising a first page object, a second page object and a third page object, the second page object having a higher Z-order than the first page object and the third page object having a lower Z-order than the first page object, a method for trapping the first page object against the second page object and the third page object comprising the steps of:

decomposing the first page object into one or more first page object components;

self-trapping the one or more first page object components against each other to create one or more trap segments to be added to a trap output list;

creating a first trap source list comprising one or more first trap candidate segments from the one or more first page object components, the one or more first trap candidate segments comprising exposed edges of the one or more first page object components that intersect or abut the second page object or the third page object;

adjacency trapping the one or more first trap candidate segments against the second page object to remove portions of the one or more first trap candidate segments from the first trap source list;

adjacency trapping the one or more first trap candidate segments against the third page object to remove portions of the one or more first trap candidate segments from the first trap source list and to add additional trap segments to the trap output list;

general-purpose trapping the one or more first trap candidate segments against the second page object to remove portions of the one or more first trap candidate segments from the first trap source list and to add further trap segments to the trap output list; and

rendering the trap segments of the trap output list onto appropriate color plates.

15. A computer readable medium having stored thereon computer-executable instructions for performing the method of claim 14.

16. The method of claim 14, wherein the first page object is a text containing page object; and

wherein the method further comprises trapping the text contained in the first page object against the third page object.

17. The method of claim 16, wherein trapping the text contained in the first page object against the third page object comprises:

determining the color of the text;

determining that the first page object is transparent;

rendering the text on the appropriate color plates as it would appear without trapping;

obtaining outline information for each character comprising the text;

converting the outline information into line segments to be stored in a new trap source list; and

general-purpose trapping the line segments of the new trap source list against the third page object to create new trap segments to be added to the trap output list.

18. A computer readable medium having stored thereon computer-executable instructions for performing the method of claim 17.

19. The method of claim 16, wherein trapping the text contained in the first page object against the third page object comprises:

determining the color of the text;

determining that the first page object is opaque;

determining the background color of the first page object;

performing a color calculation on the background color of the first page object and the color of the text to determine that trapping between the text and the first page object is appropriate;

using trapping heuristics to calculate a trap width and a trap color;

rendering the text on the appropriate color plates as it would appear without trapping;

obtaining outline information for each character comprising the text, the outline information defining the outlines of the characters; and

rendering the outlines of the characters on appropriate color plates in the trap width and trap color.

20. A computer readable medium having stored thereon computer-executable instructions for performing the method of claim 19.

21. The method of claim 14, further comprising the step of keepaway trapping any of the one or more first trap candidate segments that do not intersect with any other colored page object in the publication.

22. The method of claim 21, wherein keepaway trapping any of the one or more first trap candidate segments that do not intersect with any other colored page object in the publication comprises:

for each of the one or more first trap candidate segments, determining if the first trap candidate segment is associated with a rich black colored first page object component;

for each first trap candidate segment associated with a rich black colored first page object component, rendering a corresponding thin white segment on all color plates except a black color plate.

23. A computer readable medium having stored thereon computer-executable instructions for performing the method of claim 22.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates in general to improving the quality of printing press output by hiding unwanted gaps between different colored areas on a printed output page. More particularly, the present invention relates to automatically calculating minimal traps for each page object in a publication in a native desktop publishing application, prior to converting the publication to a page description language.

BACKGROUND OF THE INVENTION

Printing presses are used to generate large volumes of high-quality printed output pages. Most printing presses that generate multiple-color output do so by laying down on a printed output page one color of ink at a time, in a multi-pass process. Two types of color jobs that may be run on such printing presses are: process color printing and spot color printing. Process color printing involves four primary ink colors: cyan, magenta, yellow and black. These four primary ink colors are commonly referred to by their initials CMY and K. Cyan, magenta and yellow are subtractive primary ink colors and may be combined to form most other ink colors. Spot color printing involves application of solid areas of a pre-mixed ink rather than overlapping four inks (CMY and K) to create colors. A spot color ink is a specific color, such as a bright orange or a purple, that is laid down on the printed output page in a single pass. Process color printing and spot color printing may be combined, using CMY and K inks along with one or more spot color inks.

As a printed output page moves through a printing press, different colored inks for the printing job are laid down in successive passes. Each ink color is applied by what is commonly called a color plate. Conceptually, each page object of the publication is printed on the printed output page in a back-to-front order. If a page object contains a percentage greater than zero of the ink color corresponding to the current color plate, that object is rendered in that percentage of color on the printed output page. If a page object contains zero percent of the ink color of the current color plate, a white area in the shape of that page object is generated on the printed output page. Generation of a white area in the shape of a page object is called a "knocking out" a color, or rendering a "knockout" of the page object. As the printed output page moves through the printing press, the succession of rendering and knocking out colors of the page objects of the publication for each ink color produces the final printed output. Those skilled in the art will recognize that the physical printing process is somewhat different from the above conceptual description, but that the net effect is equivalent.

Certain factors may cause defects to appear in the printed output pages generated by a printing press. For example, liquid inks may be absorbed, to some degree, into the printed output page and may cause the paper to stretch and deform slightly. Also, because the printed output page moves through the press at high speeds, it may bounce when it is stopped to have an ink color pressed onto it. The effect of these and other factors may be slight variances in the alignment of the various ink colors. Such variances are commonly referred to as misregistration errors. Misregistration errors result in gaps between areas of different color, or areas where one process color ink appears to be out of alignment with others process color inks. One solution to the problem of misregistration errors is known as "trapping."

Trapping does not prevent misregistration errors. Instead, trapping is a procedure that aims to reduce the visibility of misregistration errors. Assuming that limitations of current ink, paper and printing press technologies cannot be removed, trapping provides an effective stopgap solution for hiding misregistration errors on printed output pages. Through analysis of all page objects in a publication, it is possible to determine which ink colors will end up being adjacent to one another on the final printed output pages. Existing trapping heuristics may be used to determine which color combinations, when adjacent to one another, are likely to cause visible misregistration errors.

Trapping is the name given to the process of identifying adjacent color pairs that are likely to cause misregistration errors and hiding the misregistration errors by laying down an extra strip of ink, of a calculated color and width, to cover any gap or misalignment that may occur. Physically, an extra strip of ink only affects the color plate on which it is placed. In other words, an extra strip of ink enlarges the area of color on a particular color plate without causing a knockout of additional white space on other color plates. Accordingly, when the different color plates are composited onto the final printed output page, the extra ink strip covers any gap or misalignment that will occur due to misregistration.

Prior to the invention of the personal computer, trapping was performed manually, by creating hand-doctored images of the printed output pages. The advent of the personal computer and desktop publishing (DTP) software gave rise to the possibility of automatic trapping solutions. Prior art DTP applications typically perform trapping by performing a post-processing step on an output file, such as a PostScript file. Also, prior art DTP applications are not operable to perform trapping with a high level of accuracy.

Certain prior art-high-end trapping applications are capable of trapping with a high level of accuracy, i.e., performing multiple types of trapping along the length of a page object. However, these high-end applications also typically operate on page data in a post-processing manner. That is, high-end trapping applications typically accept as input the page data generated by a DTP application after it has been converted to an intermediate format, such as PostScript or some other proprietary page description language. Post-processing is an expensive and time consuming effort.

Thus, there remains a need for a desktop publishing application that is operable to perform trapping of page objects in the native application, so as to avoid the need for post-processing.

There further remains a need for a desktop publishing application that is operable to perform trapping of page objects in the native application using precise position and color information,

SUMMARY OF THE INVENTION

The present invention meets the above-described needs by providing a desktop publishing (DTP) application program with functionality for automatically generating minimal traps for each page object in the native DTP application program, prior to converting a publication to a page description language. The present invention may leverage and/or build upon the existing functionality of a DTP application program.

In one embodiment, a desktop publishing application program is configured to generate minimal traps for a publication comprising a first page object, a second page object and a third page object. In the exemplary publication, the second page object has a higher Z-order than the first page object and the third page object has a lower Z-order than the first page object. The present invention traps the first page object against the second page object and the third page object by decomposing the first page object into one or more first page object components; self-trapping the first page object components against each other to create one or more trap segments to be added to a trap output list; creating a first trap source list comprising one or more first trap candidate segments from the first page object components, the first trap candidate segments comprising exposed edges of the first page object components that intersect or abut the second page object or the third page object; adjacency trapping the first trap candidate segments against the second page object to remove portions of the first trap candidate segments from the first trap source list; adjacency trapping the first trap candidate segments against the third page object to remove portions of the first trap candidate segments from the first trap source list and to add additional trap segments to the trap output list; general-purpose trapping the first trap candidate segments against the second page object to remove portions of the first trap candidate segments from the first trap source list and to add further trap segments to the trap output list; and rendering the trap segments of the trap output list onto appropriate color plates.

According to one embodiment of the present invention, adjacency trapping a first trap candidate segments against a second page object having a lower Z-order than the first page object involves: detecting whether a potential adjacency trapping situation exists between the first trap candidate segment and the second page object; in response to detecting the potential adjacency trapping situation, performing adjacency trapping between the first trap candidate segment and the second page object to create a trap segment and to remove from the first trap source list any portion of the first trap candidate segment that maps to the trap segment; and performing a color test to determine whether the trap segment is to be added to a trap output list or deleted.

In an exemplary embodiment, detecting a potential adjacency trapping situation involves: determining that the second page object abuts the first page object; decomposing the second page object into second page object components to create a second trap source list comprising second trap candidate segments; comparing the first trap candidate segment to each second trap candidate segment in the second trap source list according to the following steps: (1) comparing the rotation states of the first trap candidate segment and the second trap candidate segment, (2) if the rotation states are equivalent, determining whether the first trap candidate segment and the second trap candidate segment are separated by less than a maximum adjacency trapping distance, (3) if the first trap candidate segment and the second trap candidate segment are separated by less than a maximum adjacency trapping distance, determining whether the first trap candidate segment overlaps the second trap candidate segment in the direction corresponding to the rotation states, (4) if the first trap candidate segment overlaps the second trap candidate segment in the direction corresponding to the rotation states, determining whether the shared extent of the first trap candidate segment and the second trap candidate segment is greater than a predetermined length, and (5) if the shared extent of the first trap candidate segment and the second trap candidate segment is greater than a predetermined length, determining whether respective segment normal vectors for the first trap candidate segment and the second trap candidate segment point in opposite directions, whereby a potential adjacency trapping situation exists if it is determined that the respective segment normal vectors for the first trap candidate segment and the second trap candidate segment point in opposite directions. An exemplary method for adjacency trapping involves: creating a trap segment along the shared extent of the first trap candidate segment and the second trap candidate segment; comparing the trap segment to the first trap candidate segment; and removing from the first trap source list any portion of the first trap candidate segment that maps to the trap segment.

According to an exemplary embodiment of the present invention, general-purpose trapping involves: detecting whether a potential general-purpose trapping situation exists between the first trap candidate segment and the second page object; in response to detecting the potential general-purpose trapping situation, performing general-purpose trapping between is the first trap candidate segment and the second page object to create a next trap segment and to remove from the first trap source list any portion of the first trap candidate segment that overlays the second page object; in response to creating the next trap segment, performing a color test to determine whether the next trap segment is to be added to the trap output list or deleted; and rendering the trap segments from the trap output list onto appropriate color plates to hide misregistration errors between the first page object and the second page object.

An exemplary method for detecting whether a potential general-purpose trapping situation exists involves decomposing the second page object into second page object components to create a second trap source list comprising second trap candidate segments and determining whether the first trap candidate segment intersects any of the second trap candidate segments. An exemplary method for performing general-purpose trapping between the first trap candidate segment and the second page object involves: generating the next trap segment having a length equal to the extent of the intersection between the first trap candidate and the second trap candidate segment; and removing from the first trap source list any portion of the first trap candidate segment overlays the second page object component associated with the second trap candidate segment.

According to another aspect of the present invention, text contained within a text-containing page object is also trapped against other page objects in a publication. If the text-containing page object is opaque, the text therein may be trapped against the background of the text-containing page object. If the text-containing page object is transparent, the text therein may be trapped against page objects beneath the text-containing page object.

In an exemplary embodiment, trapping text contained in an opaque text containing page object against the background of the text containing page object involves: determining the color of the text; determining the background color of the first page object; performing a color calculation on the background color of the first page object and the color of the text to determine that trapping between the text and the first page object is appropriate; using trapping heuristics to calculate a trap width and a trap color; rendering the text on the appropriate color plates as it would appear without trapping; obtaining outline information for each character comprising the text, the outline information defining the outlines of the characters; and rendering the outlines of the characters on appropriate color plates in the trap width and trap color.

In an exemplary embodiment, trapping text contained in a transparent text containing page object against the lower Z-ordered page object involves: determining the color of the text; rendering the text on the appropriate color plates as it would appear without trapping; obtaining outline information for each character comprising the text; converting the outline information into line segments to be stored in a new trap source list; and general-purpose trapping the line segments of the new trap source list against the third page object to create new trap segments to be added to the trap output list.

According to another aspect of the present invention, functionality is provided for performing keepaway trapping on any of trap candidate segments in a trap source list that do not intersect with any other colored page object in the publication. In an exemplary embodiment, keepaway trapping involves: determining if a trap candidate segment is associated with a rich black colored first page object component; and if the trap candidate segment is associated with a rich black colored first page object component, rendering a corresponding thin white segment on all color plates except a black color plate.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1, comprising FIG. 1A, FIG. 1B, FIG. 1C, FIG. 1D and FIG. 1E, provides illustrations of page objects to illustrate some basic trapping examples.

FIG. 2 illustrates an exemplary computing environment for implementation of the exemplary embodiments of the present invention.

FIG. 3, comprising FIG. 3A and FIG. 3B, provides a flow chart of an exemplary trapping method for an individual page object.

FIG. 4 is an illustration of a rectangle page object to accompany a discussion of page object decomposition.

FIG. 5, comprising FIG. 5A, FIG. 5B and FIG. 5C, illustrates various rectangle page objects providing examples of three potential adjacency trapping situations.

FIG. 6, comprising FIG. 6A, FIG. 6B and FIG. 6C, provides a flow chart illustrating an exemplary method for analyzing a potential adjacency trapping situation.

FIG. 7 is a flow chart illustrating an exemplary general-purpose trapping method.

FIG. 8, comprising FIG. 8A and FIG. 8B, is a flow chart illustrating an exemplary method for performing a general polygon intersection calculation.

FIG. 9 is a flow chart illustrating an exemplary method for trapping text containing page objects.

DETAILED DESCRIPTION

The present invention provides a system and method for automated intelligent trapping of page objects in desktop publishing software. The present invention provides automatic trapping for all page objects in a publication. Each page object is trapped as completely as possible. Complete trapping means that each page object is subdivided into atomic geometric and color components, each of which is then trapped against all of the components from that same page object. The components of a page object may then be trapped against all page objects beneath them on the page and sometimes to page objects above them on the page. The page objects beneath a component of a page object are all decomposed into subparts as well. Page objects that are adjacent to one another are trapped correctly, so as to avoid traps that negatively impact the appearance of the printed output page. Text characters in the publication may be trapped as well. The present invention also allows manual overrides to be set for a page object and its associated components. Manual overrides may be used to handle cases that are not effectively dealt with, in the view of the printing professional, through automatic trapping.

In accordance with the present invention, when a trap is calculated for a given page object, only the necessary portion of the trap is actually drawn. Drawing only the necessary portion of each trap results in a printed output page having highly accurate traps. The high trapping accuracy of the present invention relies on precise size and color information about each page object in a publication, including text characters. Thus, the present invention may be configured to gather data pertaining to each page object and its associated components, including position and size information, rotation angle, and formatting (e.g., color, borders etc.). Using this gathered data, the present invention may calculate precise intersection points for all page object components. Precise intersection points allow the present invention to determine exact locations on the printed output page where trapping will be required to hide misregistration errors.

It should be understood that trapping calculations are based on both geometric and color calculations. Color calculations are used to determine what color ink to lay down in order to hide misregistration errors. Color calculations depend on two things (1) the front-to-back relationship of the page objects (known as the Z-order of the page objects); and (2) the relative luminance of the colors (i.e., the perceived brightness or darkness of the colors). The Z-order, in combination with information about the position of each page object on the page, may be used to determine which ink colors will end up being adjacent to one another on the printed output page.

Over time, heuristics have been developed that use the Z-order and the luminance of two colors to determine the trap color, if any, that should be applied. By convention, there are four main types of traps based on these color heuristics: spread traps, choke traps, centerline traps and keepaway traps. Each of the four main trap types is designed to cover a specific type or range of color combinations and Z-ordering. Also, combinations of these trap types may be applied to any page objects in a publication, including geometric shapes, pictures, gradient and pattern fills and text. The following reference materials, which are herein incorporated by reference, provide more detailed information regarding trapping: (1) "Makeready: A Prepress Resource," by Dan Margulis, MIS:Press, 1996; (2) "The Complete Guide to Trapping (Second Edition)," by Brian P. Lawler, Hayden Books, 1995.

The following description will hereinafter refer to the drawing, in which like numerals indicate like elements throughout the several figures. FIG. 1, which comprises FIG. 1A, FIG. 1B, FIG. 1C, FIG. 1D and FIG. 1E, and the following description are intended to provide some basic trapping definitions and examples.

Spread Traps

A spread trap is a trap created by drawing the foreground color or shape of a page object slightly oversize. Spread trapping is generally employed when the foreground page object is lighter than the background page object, or when the background page object is an indeterminate color (such as a photograph). For example, in FIG. 1A, the yellow triangle page object 102 is positioned on top of a blue rectangle page object 104. In a colorized representation of FIG. 1A, the blue rectangle page object 104 would be visibly darker than the yellow triangle page object 102. Spread trapping would result in the yellow triangle page object 102 being drawn slightly larger than the corresponding knockout generated within the blue rectangle page object 104. In other words, extra yellow ink would be laid down to bridge any misregistration gaps between the yellow triangle page object 102 and the blue rectangle page object 104, thereby improving the quality of the printed output page.

Choke Traps

A choke trap is created by drawing a background page object or color slightly oversize. Drawing the background page object slightly oversize effectively reduces the size of the knockout of a higher Z-ordered page object. Choke trapping is typically used when the background page object is lighter in color than the foreground page object, or when the foreground page object is an indeterminate page object such as a photograph. By way of example, FIG. 1B shows a blue triangle page object 106 positioned on top of a yellow rectangle page object 108. Within the yellow rectangle page object 108, application of extra yellow ink along the boundary of the knockout corresponding to the blue triangle page object 106 would create a choke trap.

Centerline Traps

A centerline trap uses colors from both foreground and background page objects to hide misregistration errors. Colors that are close to one another in luminance, but that would still potentially cause misregistration errors are candidates for this centerline trapping. For example, in FIG. 1C, an orange triangle page object 112 is positioned on top of a green rectangle page object 114. If the calculated luminance of the two colors (orange and green) are sufficiently close to each other, a centerline trap is created by slightly enlarging the orange triangle page object 112 and also by slightly shrinking the size of the corresponding knockout within the green rectangle 114. Those skilled in the art will recognize that physical process of centerline trapping is slightly more complicated than the above description, but that the net effect is analogous.

Keepaway Traps

Keepaway traps are used to deal with a special type of black ink, known as rich black ink. Rich black ink is black ink that has had other color components added thereto. Rich black inks are used when large patches of black color are to be printed on the printed output page. Rich black inks are used because they tend to look better than pure black ink.

As an example, rich black ink may be created in a process color print job by adding 20 percent each of cyan, magenta and yellow ink to black ink. Creation of rich black in this manner is accomplished by laying down black, cyan, magenta and yellow inks successively. Accordingly, misregistration errors may occur around the edges of rich black page objects if the cyan, magenta or yellow colors "peek out" from the side of a black page object. A keepaway trap prevents this type of misregistration error from happening by reducing the size of the non-black components of the page object. Reducing the size of the non-black components of the page object allows the bulk of the page object to be seen in the desired rich black color, while preventing misregistration errors from causing unwanted effects at the edges of the page object.

Exemplary Operating Environment

FIG. 2 an