WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method of trapping graphical objects in a desktop publishing program    
United States Patent5666543   
Link to this pagehttp://www.wikipatents.com/5666543.html
Inventor(s)Gartland; Richard A. (Bothell, WA)
AbstractThe publication prolog of a PostScript page description language (PDL) or other PDL file is modified to create traps within an interpreter or raster image processor (RIP). The publication prolog is modified to provide the trapping instructions to the RIP, while the script is sent unmodified to the RIP. In a preferred embodiment, modification of the publication prolog to instruct the RIP includes creating a directory of the color objects in the publication, and trapping the color objects in the publication using the directory. Thereafter, the modified publication prolog and script are sent to the RIP and trap areas are created as the publication is rendered.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Gartland; Richard A. (Bothell, WA)
Owner/Assignee     Adobe Systems Incorporated (Mountain View, CA)
Patent assignment
All assignments
Publication Date     September 9, 1997
Application Number     08/216,729
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 23, 1994
US Classification     715/526 348/666 358/1.17 715/513
Int'l Classification     G06T 001/00
Examiner     Feild; Joseph H.
Assistant Examiner    
Attorney/Law Firm     Fish & Richardson P.C.
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/145 395/146 395/147 395/148 395/131 395/145 395/146 395/147 395/148 395/145 395/146 395/147 395/148 395/109 395/779 395/780 395/782 395/783 395/784 395/785 395/787 395/145 395/146 395/147 395/148 345/115 345/136 345/149 345/150 345/149 345/150
Patent Tags     trapping graphical objects desktop publishing program
   
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
5542052
Deutsch
345/589
Jul,1996

[0 after 0 votes]
5438653
Boenke
345/592
Aug,1995

[0 after 0 votes]
5353388
Motoyama
358/1.18
Oct,1994

[0 after 0 votes]
5313570
Dermer
345/589
May,1994

[0 after 0 votes]
5295236
Bjorge

Mar,1994

[0 after 0 votes]
5274758
Beitel
715/500.1
Dec,1993

[0 after 0 votes]
5251298
Nally
345/568
Oct,1993

[0 after 0 votes]
5208905
Takakura
715/515
May,1993

[0 after 0 votes]
5157783
Anderson
707/4
Oct,1992

[0 after 0 votes]
5131058
Ting
382/162
Jul,1992

[0 after 0 votes]
5115402
Matsushiro
345/441
May,1992

[0 after 0 votes]
5113249
Yosefi
358/1.9
May,1992

[0 after 0 votes]
5043711
Harrington
345/440
Aug,1991

[0 after 0 votes]
5029115
Geraci
345/601
Jul,1991

[0 after 0 votes]
4931861
Taniguchi
382/167
Jun,1990

[0 after 0 votes]
4916484
Ohlig
355/91
Apr,1990

[0 after 0 votes]
4852485
Brunner
101/211
Aug,1989

[0 after 0 votes]
4824761
Sturgis
430/209
Apr,1989

[0 after 0 votes]
4821336
Roye
382/245
Apr,1989

[0 after 0 votes]
4817187
Lien
382/253
Mar,1989

[0 after 0 votes]
4815009
Blatin
345/441
Mar,1989

[0 after 0 votes]
4683492
Sugiura
358/518
Jul,1987

[0 after 0 votes]
4603431
Grover
382/241
Jul,1986

[0 after 0 votes]
4583116
Hennig
358/515
Apr,1986

[0 after 0 votes]
4115816
Moe
358/3.15
Sep,1978

[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
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%
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%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

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]
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]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



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

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



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

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:

1. A method in a raster image processor to trap page objects, comprising:

receiving a page prolog, comprising page description language (PDL) instructions executable by a raster image processor (RIP) to trap page objects;

receiving a page script, comprising PDL instructions describing a plurality of page objects and executable by the RIP; and

executing the prolog PDL instructions to trap an object described by the script PDL instructions.

2. The method of claim 1, further comprising executing the prolog PDL instructions to trap each object described by the script PDL instructions.

3. The method of claim 1, further comprising:

executing script PDL instructions by the RIP to draw a current object; and

executing prolog PDL instructions by the RIP to:

store the current object to an object directory;

retrieve an object from the object directory as a background object; and

evaluate trapping criteria to determine whether to trap the current object against the background object, and if the current object is to be trapped against the background object, determine a color and position for a trap and draw the trap.

4. A computer program stored on a computer-readable medium, comprising instructions for causing a raster image processor to trap page objects, comprising:

a page prolog, comprising page description language (PDL) instructions executable by a raster image processor (RIP),

wherein a RIP receives the page prolog and a page script, the page script comprising PDL instructions describing a plurality of page objects and executable by the RIP, and executes the prolog PDL instructions to trap an object described by the script PDL instructions.

5. The computer program of claim 4, wherein the prolog PDL instructions further cause the RIP to:

execute script PDL instructions to draw a current object; and

execute prolog PDL instructions to:

store the current object to an object directory;

retrieve an object from the object directory as a background object; and

evaluate trapping criteria to determine whether to trap the current object against the background object, and if the current object is to be trapped against the background object, determine a color and position for a trap and draw the trap.

6. A computer program stored on a computer-readable medium, comprising instructions for causing a computer to:

send a page prolog to a raster image processor (RIP); and

send a page script to the RIP, the page script comprising page description language (PDL) instructions describing a plurality of page objects, wherein the page prolog comprises page description language (PDL) instructions for causing the RIP to trap a page object described by the script PDL instructions.

7. The computer program of claim 6, wherein the prolog PDL instructions further cause the RIP to:

execute script PDL instructions to draw a current object; and

execute prolog PDL instructions to:

store the current object to an object directory;

retrieve an object from the object directory as a background object; and

evaluate trapping criteria to determine whether to trap the current object against the background object, and if the current object is to be trapped against the background object, determine a color and position for a trap and draw the trap.
 Description Submit all comments and votes
 


CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No. 08/188,246, filed Jan. 26, 1994, U.S. Pat. No. 5,542,052 entitled "Applying Traps to a Printed Page Specified in a Page Description Language Format" and assigned to the assignee of the present invention, the subject matter of which is hereby incorporated by reference.

FIELD OF THE INVENTION

The invention generally relates to color trapping and, more particularly, to a method of creating traps for objects in desktop publishing programs.

BACKGROUND OF THE INVENTION

Color printing has traditionally required the integration of many unique and varied talents to see a project through from conception to a printed page. Prior to "desktop publishing," ideas or concepts were typically first drawn by hand and photographed, any text or illustrations added, and the aggregate of pictures and text used to produce a printed page. The traditional process generally required, in addition to design personnel, a paste-up person, typesetting bureau and a lithography department that would produce separations from the photographs. Desktop publishing has relieved some of the burden of publishers by allowing color production, i.e., drawing and layout, to be integrated electronically using personal computers. Color documents can now be designed, enhanced, color-corrected, and separated on a computer "desktop." The success of desktop publishing is, in large part, the result of standards-based computer programs such as the page description language (PDL) PostScript.RTM. from Adobe Systems Incorporated of Mountain View, Calif. The PostScript language has become the industry standard that serves as an intermediary between applications packages, e.g., desktop publishing programs, and PDL-compatible composite reproduction equipment, such as a desktop printer. The applications packages translate information for a page into PDL for transmission to the PDL-compatible desktop printer. The PDL-compatible printer includes an interpreter that converts the PDL code to low-level instructions that indicate to the printer how to render the text and graphics. Alternatively, the information can be transferred to a file for importation by another applications program or for use by a service bureau. The process of interpreting and rendering PDL is often performed within a raster image processor or "RIP." For further information on the PostScript programming language, please see PostScript Language Reference Manual, 2nd Ed., by Adobe Systems, Inc., published by Addison Wesley, which is hereby incorporated by reference.

A desktop printer uses toner to produce the colors comprising a color publication. Because composite printing is generally efficient only for small quantity jobs, larger quantities of the same publication are generally reproduced on a commercial printing press using ink. Methods of printing color publications using a commercial printer press include process-color printing, spot-color printing, or a combination of the two. Process-color printing separates the original image into its cyan (C), magenta (M), yellow (Y), and black (K) components to recreate the original shadings of color in the publication. This is accomplished by printing dots of the process-color inks in different combinations in close proximity to simulate a variety of colors on a printed page. Spot-color printing involves printing one or more specific colors (or inks) that have been specified according to a color matching system. One popular color matching system is the PANTONE.TM. MATCHING SYSTEM by Pantone, Inc. Spot-color printing is often used to produce colors that are not easily produced using CMYK inks, such as silver, gold, and fluorescent colors. Spot-color printing is also used in lieu of printing the four process colors, such as when only a couple of inks are required for a particular publication.

Before a color publication can be reproduced on a commercial printing press, each page containing composite art must be separated into its component colors by printing a film separation for each ink (cyan, magenta, yellow, and black, if process colors are to be printed) and any spot colors. Thus, process-color printing always requires four film separations. Spot-color printing requires a separation for each color being printed. A commercial printer uses these film separations to create the printing plates used on the press. For instance, if one specifies the four process colors and a single spot color in a publication, there will be five separations, and hence printing plates, for each page. A separate component ink is added by each plate as the pages in the publication pass through the press. For a more detailed explanation of the commercial printing process, please see the Commercial Printing Guide from PageMaker.RTM., Version 5.0. PageMaker.RTM. is a desktop publishing program produced by Aldus Corporation, the assignee of the present application. The PageMaker 5.0 User Manual and Commercial Printing Guide are hereby incorporated by reference. For additional information on desktop publishing generally, see Desktop Publishing in Color by Michael Kieran, published by Bantam Books (1991), which is also incorporated by reference.

High-quality printing, such as that required by the publishing industry, poses many difficult problems in controlling the separations. For example, color printing is compromised if paper is not properly aligned as it makes multiple passes through the plates of a printer. This problem is typically referred to as misregistration. One common solution to the registration problem is to perform a technique known as trapping. Trapping refers to expanding or "spreading" regions of a particular color beyond its normal boundaries, and contracting or "choking" a color region so that a small overlap exists between graphical objects where misregistration may occur. Trapping techniques have traditionally been performed manually. Although tedious, in the past, manual trapping techniques have been used in applications such as magazine publishing, where the time and labor required to create individual traps for each printed page are economically justified.

In recent years, computer systems that perform choking and spreading electronically have come into widespread use. A typical approach has been to: (1) start with a PDL file such as a PostScript file; (2) convert the vector graphics and/or text within the PDL file into a raster (bit mapped) image through a RIP; and (3) trap the raster image using pixel data comprising the image. The third step usually requires a creation of a separate frame buffer for each of the process colors. Each frame buffer is then choked and spread on a pixel-by-pixel basis, and the result used to control the printing of its respective color. As will be appreciated, this approach is very memory intensive.

A more recent approach to electronic trapping is set forth in U.S. Pat. No. 5,295,236 ("'236 patent"), titled "Applying Traps to a Printed Page Specified in a Page Description Language Format" and assigned to the assignee of the present invention. The '236 patent discloses a method and apparatus for electronically trapping a printed color page in a desktop publishing, layout, graphics, or similar applications program. The method translates PDL instructions comprising the printed page into a format suitable for detection and analysis of edges between color regions in the printed page; creates, according to a set of trapping rules, a set of traps between the color edges; and produces a trap output file that includes the traps expressed in the PDL format. Such a method is referred to as a "post-processing approach." An advantage to the method described in the '236 patent is that virtually any printed page that is expressed in a PDL format may be trapped regardless of the application that originally created the graphics, i.e., the originating program. However, this capability is at the expense of software complexity. In particular, the PDL file must be interpreted before traps are created.

Another approach to electronic trapping is to have the originating program also create traps for the graphics. As an example, in drawing programs such as Aldus Freehand.RTM., a user is allowed to add outlines around objects to accommodate trapping. Trapping approaches at the originating program level are beneficial because additional trapping costs may be eliminated, i.e., it is not necessary to utilize a post-processing program or traditional trapping techniques. However, the capability to perform trapping in originating programs is relatively new, and has typically required extensive reworking of the computer code comprising the programs. This, in turn, requires a new release of the software, and involves associated costs with such a release, including extensive debugging. Further, trapping capabilities in originating programs have typically been very limited. One shortcoming is apparent in situations where the background and/or foreground is formed by a number of differently colored objects. This situation arises, for example, where individual text characters overlap more than one object. Typical originating programs with trapping capabilities tend to handle objects such as text or boxes in a relatively course fashion, such that traps are only able to be applied to an entire text block, or at best an entire character. Thus, the trap results in these instances are less than desirable.

In contrast to the prior art discussed above, the invention alleviates the need to change the computer code of the originating application to provide trapping capabilities and reimplement the PDL interpreter. Hence, a trapping method implemented in accordance with the invention may be created, debugged, and distributed independent of the desktop publishing program. Further, as will be described in detail below, the invention allows very accurate trap placement, thus providing results superior to trapping solutions currently available in originating programs.

SUMMARY OF THE INVENTION

The invention is a method of electronically trapping a printed page that includes a plurality of objects expressed in a page description language, with the page description language instructions being interpreted by a raster image processor for output to an output device. The method comprises the step of providing instructions to the raster image processor to trap the objects in the page as the page description language instructions comprising the objects are interpreted by the raster image processor.

In accordance with other aspects of the invention, the printed page is in a publication in a desktop publishing program. The publication including a prolog and a script that specify the objects to be printed. The method further includes the step of modifying the publication prolog to provide the trapping instructions to the raster image processor. Further, the script is sent unmodified to the raster image processor.

In accordance with still further aspects of the invention, the printed page is in a publication in a desktop publishing program. The method comprises the steps of: (a) modifying the publication prolog to instruct the raster image processor to (i) create a directory of the color objects in the publication and (ii)trap the color objects in the publication using the shape directory; and (b) sending the modified publication prolog and script to the raster image processor wherein trap areas are created as the publication is rendered.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of the invention may be better understood by referring to the following description together with the accompanying drawings, wherein:

FIG. 1 is a block diagram of a trapping program in accordance with the invention that works in conjunction with prior art desktop publishing programs to trap a publication as it is being rasterized by a raster image processor (RIP);

FIG. 2 is a block diagram illustrating a PDL publication, including a prolog and script, being sent to a RIP by a desktop publishing program in accordance with conventional procedure;

FIG. 3 is a flow chart illustrating a conventional procedure by which a desktop publishing program sends information to a RIP enabling it to draw a publication;

FIG. 4 is a flow chart illustrating the internal procedure followed by a conventional RIP to draw an object in a PDL publication;

FIG. 5 is the block diagram of FIG. 2 but including revisions that illustrate the sending of additional prolog commands to the RIP to facilitate trapping of the publication in accordance with the invention;

FIG. 6 is a flow chart of an exemplary routine by which a desktop publishing program sends information to a RIP enabling it to trap a publication in accordance with the invention;

FIG. 7 is a flow chart of an exemplary routine illustrating how traps are created for objects by the RIP in accordance with the invention;

FIG. 8 is a flow chart illustrating how objects are trapped within the RIP in accordance with the invention, as a result of the instructions created and sent to the RIP in FIG. 6;

FIG. 9 is a flow chart of an exemplary routine in accordance with the invention for revising a trap created for a background object when multiple overlaps interfere with the trap;

FIG. 10 is a block diagram of a simplified PDL, e.g., PostScript, publication, including a prolog and script written in pseudo code;

FIG. 11 is a block diagram of the PDL publication illustrated in FIG. 10, but including modifications to the prolog to provide trapping of the publication during the rendering process at the RIP;

FIGS. 12A-12C illustrate a trapping example involving exemplary objects X and Y to facilitate explanation of the invention;

FIGS. 13A-13C illustrate the trapping example of FIGS. 12A-12C but including a third object Z that overlaps the original objects; and

FIGS. 14A-14C illustrate the repairing of a previous trap in accordance with the procedure set forth in FIG. 9.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

A trapping program 20 in accordance with the invention is illustrated in FIG. 1. The trapping program 20 works in conjunction with a computer program, such as a desktop publishing program 22, that is suitable for incorporating text, graphics and other aspects of documents to be published. The desktop publishing program 20 may be, for example, the PageMaker.RTM. desktop publishing program sold and supported by Aldus Corporation, the assignee of the present invention. It is noted, however, that the benefits of the invention are not limited to use with an application whose primary purpose is to combine text and graphics. Thus, throughout the specification and claims, the term "desktop publishing program" is hereby defined as any computer program that has the ability to manipulate graphical objects, including programs such as presentation, art, and drawing programs.

The trapping and desktop publishing programs 20 and 22 run on a processing unit 24 controlled by an operating system 26. Memory 28 is connected to the processing unit and generally comprises, for example, random access memory (RAM), read only memory (ROM), and magnetic storage media such as a hard drive, floppy disk, or magnetic tape. The processing unit and memory are typically housed within a personal computer 30, including Macintosh.TM., International Business Machines (IBM.TM.), and IBM-compatible personal computers. When used with IBM and IBM-compatible personal computers, the operating system 26 may incorporate a windowing environment such as Microsoft Windows.TM..

The desktop publishing program 22 includes a user interface 32 that interacts between the operating system 26 and the internal process application of the desktop publishing program 22. Using the desktop publishing program 22, an author creates the text, images, and graphics comprising a publication. Text, images and graphics are generically referred to as "objects" through the specification and claims. In many cases, the data comprising a publication is also imported from one or more sources including, for example, illustration, image enhancement, word processing, and desktop publishing programs. At block 34, input data including text 36 and graphics 38 that were created within or imported into a publication are shown. After the input data comprising a publication have been entered, the data may be trapped using the trapping program 20. As will be apparent from the following discussion, this is accomplished by sending instructions to a PostScript (PS) interpreter or raster image processor (RIP) 40, e.g., within a printer or at a service provider, to trap the objects in the publication as the PS instructions comprising the publication are being interpreted. The RIP 40 then outputs the data comprising the trapped publication to film or paper.

Prior to discussing the specific details of how trapping is accomplished by the trapping program 20, background information on the operation of PDL languages, and directed specifically toward the PS language, is provided. While the remainder of this discussion focuses on the PS language, those skilled in the art will appreciate that the ideas presented are applicable to other page description languages as well.

With reference to FIG. 2, the recommended structure for a PDL file such as a PS publication 50 file is that it contain two basic components: a prolog 52 and a script 54. The prolog 52 contains routines or procedures, as well as named variables and constants, that will be used throughout the rest of a publication. As is known by those skilled in the art, it is efficient to have a routine to perform a given task that will be repeated multiple times, e.g., drawing a line, box, or oval, and then call the routine with the appropriate parameters. In contrast, a more burdensome approach would be to set forth all of the instructions contained in the routine each time a line, box, or oval is to be drawn. The prolog is written by a PDL programmer, and will precede the first part of every publication, or script, that uses it. The script 54 provides the setup for the publication and describes the specific elements to be produced as the output in terms of procedures and variables defined in the prolog, along with operand data.

When a user of the desktop publishing program enters the print command, the prolog 52 and script 54 are sent to the RIP 40 where the PDL language is interpreted and converted into a bit map format. The bit map is used to draw the objects in the publication on paper or film.

FIG. 3 is a flow diagram of a prior art routine that illustrates the construction of a publication written in PS language at the interpreter/RIP level. At block 100, the prolog from the publication is sent to the RIP. The next (current) page to be printed is then targeted for "printing" at block 110. Printing in this context refers to sending the PS commands to a RIP, and not necessarily the act of placing ink on paper. At block 112, a test is made to determine whether all objects in the current page have been printed. If all objects in the current page have not been printed, the next object to be considered is selected at block 114. At block 116, the appropriate PS commands are constructed to create the object. The PS commands are then sent to the RIP at block 118, and the routine loops to block 112.

If all the objects in the current page were determined to be printed at block 112, a test is made at block 120 to determine if all pages in the publication have been printed. If all pages in the publication have not been printed, the routine loops to block 110. Otherwise, the routine is terminated and the RIP is ready to begin converting the PS code comprising the publication into a format acceptable to an output device such as an imagesetter (creating film) or a printer. FIG. 4 illustrates a simplified, genetic version of the process