Method of utilizing variable data fields with a page description language

Information

  • Patent Grant
  • 7274479
  • Patent Number
    7,274,479
  • Date Filed
    Wednesday, January 28, 2004
    20 years ago
  • Date Issued
    Tuesday, September 25, 2007
    17 years ago
Abstract
A computer implemented method for generating a bitmap suitable for high-speed variable printing, comprising the steps of: (a) providing a page description language file, the page description language file defining at least one variable data area and at least one static data area; (b) interpreting the page description language file, and during the interpreting step: (i) generating a static bitmap of the static data area, (ii) identifying the variable data area, and (iii) responsive to the identification of the variable data area, not adding a bitmap of the variable data area to the static bitmap; and (c) saving the static bitmap, whereby the saved static bitmap is used repeatedly in the generation of a plurality of documents, each of which contain the static bitmap and a variable data bitmap.
Description
BACKGROUND OF INVENTION

The present invention relates to the high-speed printing industry, and more particularly, to a method for printing variable data using a page description language in a high-speed printing environment.


Application programs, such as Adobe Illustrator®, typically include a program which generates a specification of a screen or page's contents in a page description language. The specification, or page description code, provides instructions as to how to generate the image in a printer. The page description code is transferred from the application program to a printer, where it is executed to generate a bit map of the page. The most commonly used page description language is PostScript®, which is a machine independent language produced by Adobe Systems, Inc.


An application program page typically contains a number of data areas with either graphic or alphanumeric data. The PostScript language includes commands that define or build “graphics states” for each of the data areas on the page. These graphics states are sets of default attributes such as angle, scale factor, type-font, location, etc., which define how data is to appear on the page. Often, multiple graphics states are defined for a single page, with the different graphic states corresponding to different data areas on the page. Examples of commands that are used in PostScript to build a graphics state are: 20 rotate, /Times-Roman findfont, 14 scalefont, and setfont. In addition to commands which build graphics states, PostScript specifications also include the graphic or alphanumeric data which is displayed in the data areas, as well as a print command such as “SHOW”, which causes a bit map to be generated for the data.


In the past, page description languages, including PostScript, have only been used to print static data pages, because page description languages lack the functionality required for variable data printing. In variable data printing, each page shares a common background, and the displayed data in at least one data field changes for each page. Up until now, it has not been possible to print pages of variable data with page description languages such as PostScript, because the page description languages are unable to save page backgrounds and graphics states from a page specification, and are thus unable reuse the same background and graphics states when printing subsequent pages. Thus, with page description languages such as PostScript, whether the entire page is changed, or only a single item of data on the page is changed, a new page description language specification is generated to print each separate page.


For example, if thousands of copies of a mass mailing advertisement were to be printed, each copy being identical except for the recipient's name and address, it would be necessary to generate a new PostScript specification defining the page background, and the graphics states for the name and address fields, for each new name and address that is printed. Hence, to print 50 advertisements, it would be necessary to generate 50 PostScript specifications which each define virtually the same image.


In general, PostScript specifications are very complex and require extensive processing to generate and execute. Thus, generating a new PostScript specification each time a page of variable data is printed consumes an immense amount of processing time. In high-speed printing systems, it is typically the processing time, not the printer hardware, which determines the speed at which pages can be printed. Therefore, the processing required to repetitively redefine the same background and graphics states for each page of variable data significantly slows the entire printing system.


Due to the amount of processing time consumed in redefining the page template and graphics states for each new page of data that is printed, as well as the resultant effect on printing speed, it is desirable to have a method for processing variable data wherein once defined, the template and graphics states for a page can be stored and reused for printing subsequent pages. Further, it is desirable to have a method for printing variable data which is compatible with existing printing systems and page description languages, such as PostScript, and which is capable of processing variable data in a high-speed industrial printing system.


SUMMARY OF INVENTION

It is an object of the present invention to provide a method for utilizing variable data with a page description language, which enables the template and graphics states for a page of variable data to be defined and stored; and which enables the stored graphics states to be associated with multiple items of variable data from a database or merge file; so that once stored, the graphics states can be repeatedly applied to the items of variable data to print multiple pages of variable data or multiple variable data bitmaps. Further, it is an object of the present invention to provide such a method which is compatible with existing page description languages, and which can be used in a high-speed industrial printing system.


The method of the present invention is implemented by means of a control task which executes in conjunction with a page description code interpretive program, such as a PostScript program, to identify variable data areas in the page description code specification, and reserve the graphics states for the variable data areas as they are defined by the specification. After the interpreter program has executed, a merge task is initiated. The merge task associates items of variable data from a data file with the reserved graphics states, generates a bit map for each variable data area, merges the bit maps with the page template, and outputs a complete bit map for the page. Accordingly, in the method of the present invention, bit maps for multiple pages of variable data are generated from a single page description language specification.


The present invention assumes the generation of a page specification in PostScript, or another similar page description language, by the application program, and the transfer of this specification to a printer. According to the present invention, a control task activates and monitors the PostScript interpreter program in the printer. As the interpreter executes, it defines graphics states for the data areas on the page. The PostScript attributes for a graphics state are stored in a stack as they are defined, so that at any given point in the code, the stack represents all of the PostScript attributes for the current graphics state.


When the control task identifies a print command in the code, the control task interrupts the interpreter to determine whether the data to be printed is variable data. If the data is variable, the current graphics state, consisting of the attributes then existing in the stack and job specific attributes which are defined in a job file, is linked to the data area and reserved in an internal database. Further, character bit maps are generated in accordance with the graphics state, and linked to and reserved with the graphics state. After the graphics state and character bit maps have been reserved, the PostScript interpreter is resumed at the line of code following the print command.


The interpreter continues executing until either the control task detects another print command, or the last line of code is reached. If a second print command is detected, the interpreter is interrupted again and the above steps repeated, to reserve the stack contents and job attributes for the second data area, and to generate and store a second set of character bit maps. The control task continues in this manner monitoring and interrupting the interpreter program, until all of the variable data areas on the page have been detected, and graphics states and possibly character bit maps for the variable data areas have been reserved in the database.


As the PostScript interpreter executes, a bit map of the non-variable background graphics and text, otherwise referred to as a “template”, is generated for the page. At the last code command, which in PostScript is typically “SHOW-PAGE,” the control task terminates the PostScript interpreter, and reserves the template in the database.


The merge task is then initiated to print variable data pages using the reserved page template, graphics states and character bit maps. The merge task begins by retrieving a merge file containing the variable data to be printed. After retrieving the merge file, the task identifies the correct template for the current page, and the names of the graphics states related to that template, from data in the merge file. Then, using the name of the first graphics state reserved for the template, the merge task retrieves the graphics state from the database and the character bit maps linked to that state. The merge task then retrieves data corresponding to that graphics state from the appropriate field in the merge file, and generates a bit map of the data in accordance with the graphics state and character bit maps. The merge task then merges the data bit map into the template. After the bit map has been generated and merged, the merge task identifies retrieves another graphics state for the template and repeats the process. If there are no more graphics states which correspond to variable data areas on the page, the merge task outputs the finished bit map for the page.


After the first page of data has been printed, the merge task retrieves a “clean” template from the database, and again identifies the graphics states for the page. The merge task then retrieves the next record of variable data from the database, and generates variable data bit maps for each of the fields in the record, in accordance with the reserved graphics states and character bit maps which correspond to each of the fields. The merge task continues in this manner, identifying variable data areas and generating bit maps for the variable data in the merge file, until a page has been printed for each variable data record in the file.


The method of the present invention is advantageous in that once the graphics states and template have been defined for a variable data page, they can be reused to print multiple pages of variable data with only a minimal amount of additional processing.


Accordingly, it is an object of the present invention to provide a method for printing variable data with a page description language; a method which increases the speed at which variable data pages can be printed; a method which enables the printing attributes for a page to be saved and used for printing multiple pages of data; and a method which is compatible with existing page description languages and printing systems.


Other objects and advantages of the present invention will be apparent from the following description, the accompanying drawings and the appended claims.





BRIEF DESCRIPTION OF DRAWINGS


FIG. 1 is a data flow diagram illustrating the preferred embodiment of the method of the present invention;



FIG. 2 is an example of a variable data page generated in accordance with the method of the present invention.





DETAILED DESCRIPTION

The present invention provides a computer-implemented method for reserving graphics states, which enables a page description language to be used for variable data printing. In accordance with the present invention, graphics states describing variable data areas are generated by a page interpreter program and reserved in an internal database. The graphics states are later accessed from the database and used for printing variable data pages. The method of the present invention can be employed with a conventional page description language, such as PostScript, to enable variable data pages to be printed with a minimum amount of processing.


As shown in FIG. 1, an image containing text and/or graphics data is created at a workstation 10, using a graphics application program such as Adobe Illustrator®. As the image is created, the application program displays the image on the workstation screen. When the image is complete and ready to be printed as a page, the application program generates a specification of the image in PostScript in a conventional manner.


After the PostScript file 11 is generated, it is transferred from the workstation 10 to a printer generally designated as 12. In the printer 12, a PostScript interpreter 14 is executed to generate a pagemap of the image. In the method of the present invention, a control task operates in the printer 12 to initiate the PostScript interpreter program 14 and a merge task 16. The control task is initiated upon power-on of the printer 12, and controls and coordinates the variable data printing.


As the PostScript interpreter 14 executes, it defines the PostScript graphics state attributes for the page. These attributes can include the size, font, position, orientation, and location in which the graphic or text data is to appear on the page. The specifics of the attributes which are available in PostScript to define how data is to appear on a page would be well-known to one skilled in the art. Therefore, further description of these PostScript attributes is not provided.


However, one of the PostScript attributes, namely the region, has been expanded in the present invention to allow for variable data printing. In the method of the present invention, the region attribute is used to define the boundaries or extent to which a variable data graphics state will be allowed to effect a page. The graphics state extent is an invisible boundary which acts as a clippath for the page, to prevent variable data for a particular graphics state from extending outside the intended boundaries of the graphics state. The region of the graphics state extent is defined without altering PostScript, by using an ordinary shape, which is created as part of the image, to define the region. In the present invention, the artist creates a shape representing the extent as part of the page image, and specifies a particular trigger color or gray scale for the shape. Thus, the artist could include a medium gray scale rectangle in the upper left-hand corner of the page, with the boundaries of the rectangle representing the extent which the artist has defined for the graphics state positioned at that corner of the page. The medium gray scale will then represent the trigger color, and will be specified as the trigger for the region attribute in a job file 18 in the printer 12.


In addition, a second parameter in the job file 18 can be used to specify whether the rectangle should appear on the page, or whether it is being used only to define a graphics state extent. Thus, if the artist also wants the medium gray scale rectangle to appear on the printed page, this parameter enables the color to act as a trigger, yet not inhibit the artist's design. When the rectangle is interpreted during the method of this invention, the control task will detect the trigger color and will save an “invisible” boundary represented by the rectangular as part of the graphics state.


As the PostScript attributes are defined, they are placed in a stack. When a new attribute is defined, it is added to the top of the stack. When an attribute is deleted, it is removed from the stack. The combination of all of the attributes located in the stack at any point during the execution of the PostScript interpreter 14 constitutes the “current” graphics state for the page.


When the interpreter reaches a print command, such as “SHOW” in PostScript, the command triggers the control task to interrupt the interpreter program. During this interruption, the control task interprets data in the PostScript file 11 and reserves a graphics state if the data is variable. Normally in a PostScript file, data which is to appear on the printed document is enclosed within parentheses. Thus, the control task identifies data in the file 11 by locating parentheses in the code.


After the control task identifies the data, it interprets the data to determine whether it is static data, which is to be part of the page template, or variable data. To interpret the data, the control task first reads the data located in the parentheses and compares the data with a list of literal data strings stored in the job file 18. The job file 18 contains a list of data strings which are each associated with the name of a graphics state and its corresponding data field in a merge file 20. In the preferred embodiment, the graphics state name is the same as the field name in the merge file 20. The merge file 20 contains variable data arranged in records, with each record corresponding to a different page. Each record contains one or more data fields, which each correspond to separate variable data areas on the page. The list of data strings and associated graphics state names is entered in the job file 18 by the print operator prior to initiating the print job. If the data from the PostScript file 11 matches a data string in the job file 18, the control task replaces the data from the file 11 with the graphics state name associated with the matching data string. In this manner, the control task transforms static data in the PostScript file into a variable data field, by substituting a graphics state field name for the static data in the file.


In a second embodiment, the graphics state name corresponding to the data area is defined directly within the PostScript file 11, by making the name part of the image that is created in the application program. In this embodiment, the name is enclosed within brackets in the file, such as “<< >>”, to enable the control task to identify the data as defining a graphics state rather than being an ordinary data string. Thus, to define the graphics state “ADDRESS” within the PostScript file 11, the following would appear before a show command in the code: “(<<ADDRESS>>)”. This second embodiment is advantageous in that it does not require the control task to compare the file data with a data list in the job file 18; however, it does require coordinating the graphics state and field names between the merge file 20 and the application program.


If the control task determines that the data corresponds to a variable area, it reads the current contents of the graphics state stack to determine the attributes to be used for printing data in that area. In addition to the PostScript attributes specified in the stack, the graphics state can also include attributes which are specifically tailored to variable data printing. These additional attributes can either appear after the graphics state name inside a “show” command, if the graphics state is defined directly in the PostScript file, or can be specified in the job file 18 prior to execution of the print job. These additional attributes specify how the variable data is to be positioned within the graphics state. The following is a list of the variable data attributes which can be specified for a print job: Name: A label used to identify the data to which the graphics state applies. A single datum may be inserted into more than one graphics state so this attribute is not unique to a single state.


Glyphs: A list of character glyphs, both attributes and images, which are available for use in the graphics state. (e.g. an alphabet of 72 point Times-Roman bold italic characters).


Static Data: Data to be used in the event that variable data is not available.


Identification: A number used to uniquely identify a graphics state.


Justification: How to handle the text left to right-left border, right border, centered or justified.


Alignment: How to place the text vertically in the graphics state. This could be top, bottom or centered.


Word Wrapping: Selects a word wrapping algorithm.


Dynamic Registration: Information on how to determine the registration from one page to the next.


Logic Mode: The manner in which the bitmap merge takes place. This is one of seven binary combination techniques.


DP Procedure: A procedure (or program) used to manipulate the variable data just before the graphics state is applied.


Data Selection: Which portions of the variable data to use.


Underline: Selects underlined text.


When the control task is triggered to reserve a graphics state, the above listed attributes, if specified, are combined with the PostScript attributes from the stack, and reserved as a single graphics state under the name obtained from the PostScript file 11 or the job file 18 such as shown at 22.


After the control task has compiled the attributes for the current graphics state, it may instruct PostScript to generate a font cache 26 for the graphics state. The font cache 26 consists of a character bit map for each of the alphanumeric characters A-Z and 0-9 generated in the font specified in the graphics state. After PostScript has generated all of the character bit maps, and placed the bit maps in the font cache 26, the font cache is linked to the graphics state 22, and reserved in the database. After the control task has reserved the current graphics state 22 and the font cache 26 in the database, it resumes execution of the PostScript interpreter 14 at the first line of code after the print or “SHOW” command, so that the print command is not executed.


After the interpreter is resumed, it continues defining graphics state attributes for the page, until the control task detects another print or “SHOW” command. Upon detecting another print command, the control task again interrupts execution of the interpreter, and determines whether the data in the PostScript file 11 corresponds to a variable data area. If the data corresponds to a variable data area, the control task again substitutes a graphics state name from the job file 18 for the data in the PostScript file 11, and reads the graphics state attributes from the stack and job file. The control task also instructs PostScript to generate another font cache, if the attributes of the current graphics state differ from the attributes of previously reserved graphics states. The current graphics state and font cache are then linked, and reserved in the database under the second graphics state name from the job file 18, such as shown at 24. If the data does not correspond to a variable data area, the control task resumes execution of the interpreter at the print command, so that a bit map for the data can be generated and added to the tern plate.


At the final line of code, the template is complete, and incorporates all of the static text and graphic data that is to appear on the printed document. At this point, the control task terminates the interpreter, and saves the template to the database such as shown at 28. In PostScript, the control task is triggered to save the template by the “SHOW-PAGE” command.


Since the control task of the invention operates externally of the PostScript interpreter, the method of the present invention enables bit maps and graphics states to be generated by the interpreter in a conventional manner. However, rather than printing a completed page map at the end of the interpreter program, the method of this invention reserves the page maps, character bit maps and graphics states generated by the interpreter, in order that they may be subsequently accessed and used to print multiple pages of variable data.


After the interpreter has been terminated, the control task initiates the merge task 16. The merge task 16 interfaces between the merge file 20, which has been preprogrammed with items of variable data, and the database in which the templates, font caches and graphics states defined by the interpreter have been saved, in order to combine the variable data with a template on a single page map. The merge task 16 begins by accessing the merge file 20 to retrieve the name of the template for the page, and then retrieving the specified template from the database. In addition, the merge task 16 retrieves the names of the data fields and reserved graphics states which are associated with the selected template from the merge file 20.


Using the name corresponding to the first graphics state on the page, the merge task 16 accesses the merge file 20 and retrieves the data stored under that field name in the first data record. In the representative merge file 20 shown in FIG. 1, the field names are NAME and NUMBER.


After the merge task 16 has read the data corresponding to the designated field name, it retrieves the graphics state which was reserved under the same name, as well as the character bit maps which are linked to that graphics state. The merge task 16 then generates a bit map of the data in accordance with the graphics state attributes. After the bit map is generated, it is merged into the template at the region corresponding to the graphics state, by writing the data bit map over the existing template bit map.


It will be apparent to those of ordinary skill in the art that it is within the scope of the invention to write the data bit map over a clean page as opposed to the template bitmap. For example, if the template contains no static bitmap data, then it would not be necessary to save an empty bitmap of the template in the database as described above. Thus, it is within the scope of the invention that the PostScript file 11 defines only variable data areas and does not define any static data areas. Such a PostScript file is illustrated in FIG. 1.


After the data from the first field has been merged into the template, the merge task 16 reads the name corresponding to a second variable data area from the merge file 20, if a second variable area exists on the page. The merge task 16 then retrieves the graphics state and linked font cache having the same name as the second variable area. Next, using this name, the merge task 16 again accesses the merge file 20, and reads the data from the field of the same name. The merge task 16 then generates a bit map for the data in accordance with the graphics state and font cache, and again merges the data bit map into the template 28.


The merge task 16 continues the steps of identifying variable data areas for the template, retrieving graphics states and character bit maps corresponding to the variable areas, accessing variable data from the merge file 20, and generating bit maps for the variable data, until bit maps have been generated and merged for all of the variable data to be included on the page. When a bit map has been generated for each variable data area, and merged with the template 28, the pagemap is output for printing as shown at 29.


The merge task 16 then proceeds with printing a second page using the same template and graphics states, but a different variable data record in the merge file 20. To print the second page, the merge task 16 retrieves a “clean” template from the database. Next, the merge task 16 again identifies the name of the first variable data area for that template and retrieves the graphics state of the same name. Then, the merge task 16 reads the data for that field from the second record of the merge file 20, and generates a bit map of the data using the retrieved graphics state attributes and character bit maps. Once the bit map is generated, the merge task 16 merges the bit map into the template by writing the bit map over the template at the location defined by the graphics state.


The merge task 16 then continues processing in this manner until bit maps have been generated and merged into the template for all of the graphics states reserved for the page. After all of the bit maps for the second page have been merged into the template, the page is printed. The merge task 16 continues, repeating these steps for each record of data in the merge file 20, until all of the variable data records have been printed on a page.



FIG. 2 shows a variable data page printed in accordance with the method of this invention. On this page, the data fields 30 and 32 are static fields which are part of the page template. The data field 34 containing the name “William” is a variable data field. Different names such as Mark or Sam, from the merge file 20, are printed in this field on subsequent pages. The font, angle and color contrast in which “William” is displayed are all aspects of the graphics state which were defined and stored during the steps of the present invention. Data field 36 which contains the number “00467727” is a second variable data area on the page. Again, the data displayed in this area varies on each page, depending upon the contents of the merge file 20.


While the method described constitutes a preferred embodiment of the invention, it is to be understood that the present invention is not limited to this precise form, and that variations may be made without departing from the scope of the invention.

Claims
  • 1. A computer implemented method for generating a plurality of bit maps suitable for high-speed printing, comprising the steps of: (a) providing a print specification, the print specification defining at least one variable data area and at least one static data area, and the print specification further defining at least one graphic state associated with the variable data area, the graphic state including at least one attribute controlling the appearance of items to be printed in the variable data area;(b) providing a plurality of variable data items;(c) processing the print specification, and during the processing step, identifying the variable data area and the graphic state associated with the variable data area;(d) retrieving a variable data item from the plurality of variable data items;(e) generating a bitmap for the variable item, the generating step including a step of applying the graphic state associated with the variable data area to the variable data item; and(f) repeating steps (d) and (e) for remaining variable data items in the plurality of variable data items, whereby the graphic state associated with the variable data area is applied repeatedly to generate a plurality of variable data bitmaps.
  • 2. The method of claim 1, wherein the variable data area and the static data area are defined, at least in part, by page description language commands.
  • 3. The method of claim 1, further comprising a step of caching the graphic state associated with the variable data area.
  • 4. The method of claim 1, further comprising a step of caching a representation of the static data area, whereby the cached representation of the static data area is available for merging with the variable data bitmaps to generate merged documents.
  • 5. The method of claim 4, wherein the cached representation of the static data area is a bitmap representation.
  • 6. The method of claim 1, wherein: the plurality of data items are associated with a field name; andhe step of identifying a variable data area includes the step of detecting, in the print specification, a character string associated with the variable data area that matches the field name associated with the plurality of data items.
  • 7. The method of claim 6, wherein the plurality of data items and the associated field name are contained in a file external to the print specification.
  • 8. The method of claim 1, further comprising the steps of: (i) generating a bitmap of the static data area;(ii) caching the bitmap of the static data area; and(iii) following or during step (e), merging the bitmap of the variable data item with the bitmap of the static data area;wherein step (iii) is repeated with steps (d) and (e) in step (f).
  • 9. A computer implemented method for generating a plurality of bit maps suitable for high-speed printing, comprising the steps of: (a) providing a print specification, the print specification defining at least one variable data area and at least one static data area;(b) providing a plurality of variable data items;(c) identifying the variable data area;(d) associating a graphic state with the variable data area, the graphic state including at least one attribute controlling the appearance of items to be printed in the variable data area;(e) retrieving a variable data item from the plurality of variable data items;(f) generating a bitmap for the variable item, the generating step including a step of applying the graphic state associated with the variable data area to the variable data item; and(g) repeating steps (e) and (f) for remaining variable data items in the plurality of variable data items, whereby the graphic state associated with the variable data area is applied repeatedly to generate a plurality of variable data bitmaps.
  • 10. The method of claim 9, wherein the graphic state associated with the variable data area is defined within the print specification.
  • 11. The method of claim 9, wherein the graphic state associated with the variable data area is defined external to the print specification.
  • 12. The method of claim 11, wherein the graphic state defines a justification setting of items to be printed in the variable data area.
  • 13. The method of claim 11, wherein the graphic state defines vertical alignment of items to be printed in the variable data area.
  • 14. The method of claim 11, wherein the graphic state defines a wrapping algorithm for flowing items in the variable data area.
  • 15. The method of claim 9, wherein the variable data area and the static data area are defined, at least in part, by page description language commands.
  • 16. The method of claim 9, further comprising a step of caching the graphic state associated with the variable data area.
  • 17. The method of claim 9, further comprising a step of caching a representation of the static data area, whereby the cached representation of the static data area is available for merging with the variable data bitmaps to generate merged documents.
  • 18. The method of claim 17, wherein the cached representation of the static data area is a bitmap representation.
  • 19. The method of claim 9, wherein: the plurality of data items are associated with a field name; andthe step of identifying a variable data area includes the step of detecting, in the print specification, a character string associated with the variable data area that matches the field name associated with the plurality of data items.
  • 20. The method of claim 19, wherein the plurality of data items and the associated field name are contained in a file external to the print specification.
  • 21. The method of claim 9, further comprising the steps of: (i) generating a bitmap of the static data area;(ii) caching the bitmap of the static data area; and(iii) following or during step (f), merging the bitmap of the variable data item with the bitmap of the static data area;wherein step (iii) is repeated with steps (e) and (f) in step (g).
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/090,074, filed Mar. 1, 2002 now U.S. Pat. No. 6,771,387, which is a continuation of U.S. patent application Ser. No. 09/299,502, filed Apr. 26, 1999, and issued as U.S. Pat. No. 6,381,028, issued Apr. 30, 2002; which is a continuation of U.S. patent application Ser. No. 08/896,899, filed Jul. 18, 1997, and issued as U.S. Pat. No. 5,937,153, issued Aug. 10, 1999; which is a continuation-in-part of U.S. patent application Ser. No. 08/373,582, filed Jan. 18, 1995, and issued as U.S. Pat. No. 5,729,665, issued Mar. 17, 1998.

US Referenced Citations (294)
Number Name Date Kind
3576367 Sable Apr 1971 A
3744899 Sable Jul 1973 A
4085445 Blevins et al. Apr 1978 A
4203154 Lampson et al. May 1980 A
4250976 Mochida Feb 1981 A
4268164 Yajima et al. May 1981 A
4300206 Belleson et al. Nov 1981 A
4314357 Kimura et al. Feb 1982 A
4322157 Miura et al. Mar 1982 A
4417322 Berry et al. Nov 1983 A
4441829 Hebert, Jr. et al. Apr 1984 A
4445795 Levine et al. May 1984 A
4454576 McInroy et al. Jun 1984 A
4460975 Torkelsen et al. Jul 1984 A
4470129 Disbrow et al. Sep 1984 A
4493049 Donohue et al. Jan 1985 A
4509826 Araghi Apr 1985 A
4539653 Bartlett et al. Sep 1985 A
4553860 Imaizumi et al. Nov 1985 A
4651278 Herzog et al. Mar 1987 A
4677551 Suganuma Jun 1987 A
4718784 Drisko Jan 1988 A
4723209 Hernandez et al. Feb 1988 A
4723210 Barker et al. Feb 1988 A
4723211 Barker et al. Feb 1988 A
4739477 Barker et al. Apr 1988 A
4745415 Konda et al. May 1988 A
4745560 Decker et al. May 1988 A
4770972 Nelson et al. Sep 1988 A
4771340 Notermans Sep 1988 A
4809220 Carlson et al. Feb 1989 A
4825251 Nelson et al. Apr 1989 A
4826333 Tanaka May 1989 A
4839814 Steidel Jun 1989 A
4857955 Crandall Aug 1989 A
4862386 Axelrod et al. Aug 1989 A
4870611 Martin et al. Sep 1989 A
4903067 Murayama et al. Feb 1990 A
4903229 Schmidt et al. Feb 1990 A
4912491 Hoshino et al. Mar 1990 A
4933880 Borgendale et al. Jun 1990 A
4937664 Chiku et al. Jun 1990 A
4939674 Price et al. Jul 1990 A
4944614 Tanaka Jul 1990 A
4953105 Hirata et al. Aug 1990 A
4959769 Cooper et al. Sep 1990 A
4963459 Beery et al. Oct 1990 A
4963899 Resch, III Oct 1990 A
4965597 Ohigashi et al. Oct 1990 A
4965748 Chang et al. Oct 1990 A
4969093 Barker et al. Nov 1990 A
4992956 Kaku et al. Feb 1991 A
4994968 Kato et al. Feb 1991 A
4996662 Cooper et al. Feb 1991 A
5001653 Buchanan et al. Mar 1991 A
5021975 Yamanashi Jun 1991 A
5025396 Parks et al. Jun 1991 A
5029327 Nureki Jul 1991 A
5033009 Dubnoff Jul 1991 A
5043749 Punater et al. Aug 1991 A
5050101 Kiuchi et al. Sep 1991 A
5060980 Johnson et al. Oct 1991 A
5067024 Anzai Nov 1991 A
5077795 Rourke et al. Dec 1991 A
5078748 Akram et al. Jan 1992 A
5084831 Morikawa et al. Jan 1992 A
5103490 McMillin Apr 1992 A
5104245 Oguri et al. Apr 1992 A
5107423 Sasaki et al. Apr 1992 A
5134669 Keogh et al. Jul 1992 A
5136316 Punater et al. Aug 1992 A
5139003 Ohhashi et al. Aug 1992 A
5142667 Dimperio et al. Aug 1992 A
5143362 Doane et al. Sep 1992 A
5148366 Buchanan et al. Sep 1992 A
5150455 Morikawa et al. Sep 1992 A
5157765 Birk et al. Oct 1992 A
5157767 Nihei Oct 1992 A
5157773 Matsumoto et al. Oct 1992 A
5173853 Kelly et al. Dec 1992 A
5181162 Smith et al. Jan 1993 A
5191429 Rourke Mar 1993 A
5202206 Tam Apr 1993 A
5204916 Hamilton, Jr. et al. Apr 1993 A
5204946 Shimamura Apr 1993 A
5206951 Khoyi et al. Apr 1993 A
5208906 Morgan May 1993 A
5218539 Elphick et al. Jun 1993 A
5222211 Mueller et al. Jun 1993 A
5222235 Hintz et al. Jun 1993 A
5222236 Potash et al. Jun 1993 A
5226161 Khoyi et al. Jul 1993 A
5231698 Forcier Jul 1993 A
5235654 Anderson et al. Aug 1993 A
5237655 Statt et al. Aug 1993 A
5239625 Bogart et al. Aug 1993 A
5241464 Greulich et al. Aug 1993 A
5243518 Holt et al. Sep 1993 A
5257097 Pineau et al. Oct 1993 A
5261047 Rivshin Nov 1993 A
5267155 Buchanan et al. Nov 1993 A
5276799 Rivshin Jan 1994 A
5280574 Mizuta et al. Jan 1994 A
5282269 Willems et al. Jan 1994 A
5287128 Doane et al. Feb 1994 A
5287444 Enescu et al. Feb 1994 A
5290109 Midorikawa Mar 1994 A
5291243 Heckman et al. Mar 1994 A
5297217 Hamilton, Jr. et al. Mar 1994 A
5303341 Rivshin Apr 1994 A
5303379 Khoyi et al. Apr 1994 A
5307266 Hayashi et al. Apr 1994 A
5307458 Freiburg et al. Apr 1994 A
5309558 Rourke et al. May 1994 A
5315693 Hirosawa May 1994 A
5317646 Sang, Jr. et al. May 1994 A
5319748 Motoyama Jun 1994 A
5323217 Christy et al. Jun 1994 A
5323312 Saito et al. Jun 1994 A
5325484 Motoyama Jun 1994 A
5327341 Whalen et al. Jul 1994 A
5328092 File Jul 1994 A
5329616 Silverbrook Jul 1994 A
5339240 Beaverson Aug 1994 A
5349647 Freiburg et al. Sep 1994 A
5353388 Motoyama Oct 1994 A
5355493 Silberbauer et al. Oct 1994 A
5360277 Matsubara et al. Nov 1994 A
5367673 Goldsmith et al. Nov 1994 A
5368334 Christy et al. Nov 1994 A
5375204 Motoyama et al. Dec 1994 A
5379368 Imai et al. Jan 1995 A
5379373 Hayashi et al. Jan 1995 A
5384886 Rourke Jan 1995 A
5384901 Glassner et al. Jan 1995 A
5404294 Karnik Apr 1995 A
5412566 Sawa May 1995 A
5416849 Huang May 1995 A
5416896 Motoyama May 1995 A
5420696 Wegeng et al. May 1995 A
5420974 Morris et al. May 1995 A
5421015 Khoyi et al. May 1995 A
5422992 Motoyama et al. Jun 1995 A
5425140 Bloomfield et al. Jun 1995 A
5436627 Motoyama et al. Jul 1995 A
5437038 Silberbauer et al. Jul 1995 A
5438650 Motoyama et al. Aug 1995 A
5440745 Platte et al. Aug 1995 A
5446837 Motoyama et al. Aug 1995 A
5446842 Schaeffer et al. Aug 1995 A
5448685 Ogura et al. Sep 1995 A
5448691 Motoyama Sep 1995 A
5450537 Hirai et al. Sep 1995 A
5450541 Rourke et al. Sep 1995 A
5451111 Matsuhisa Sep 1995 A
5452094 Ebner et al. Sep 1995 A
5455599 Cabral et al. Oct 1995 A
5455945 VanderDrift Oct 1995 A
5458284 Haan et al. Oct 1995 A
5459819 Watkins et al. Oct 1995 A
5459826 Archibald Oct 1995 A
5465165 Tanio et al. Nov 1995 A
5467448 Hilton et al. Nov 1995 A
5483623 Nagashima Jan 1996 A
5483624 Christopher et al. Jan 1996 A
5483629 Motoyama et al. Jan 1996 A
5487165 Tsay et al. Jan 1996 A
5490243 Millman et al. Feb 1996 A
5493634 Bonk et al. Feb 1996 A
5495565 Millard et al. Feb 1996 A
5499329 Motoyama et al. Mar 1996 A
5500928 Cook et al. Mar 1996 A
5502796 Takahashi Mar 1996 A
5504843 Catapano et al. Apr 1996 A
5504891 Motoyama et al. Apr 1996 A
5506697 Li et al. Apr 1996 A
5506985 Motoyama et al. Apr 1996 A
5521710 Strossman et al. May 1996 A
5532100 Christy et al. Jul 1996 A
5535318 Motoyama et al. Jul 1996 A
5539529 Merchant Jul 1996 A
5542052 Deutsch et al. Jul 1996 A
5544287 Roth Aug 1996 A
5546577 Marlin et al. Aug 1996 A
5548687 Motoyama Aug 1996 A
5559933 Boswell Sep 1996 A
5563987 Scott Oct 1996 A
5563998 Yaksich et al. Oct 1996 A
5563999 Yaksich et al. Oct 1996 A
5587800 Miyazaki Dec 1996 A
5592683 Chen et al. Jan 1997 A
5594860 Gauthier Jan 1997 A
5600768 Andresen Feb 1997 A
5611024 Campbell et al. Mar 1997 A
5611035 Hall Mar 1997 A
5615316 Imai et al. Mar 1997 A
5621020 Khatib et al. Apr 1997 A
5634091 Sands et al. May 1997 A
5640559 Silberbauer et al. Jun 1997 A
5640577 Scharmer Jun 1997 A
5642435 Loris Jun 1997 A
5668897 Stolfo Sep 1997 A
5671345 Lhotak Sep 1997 A
5675788 Husick et al. Oct 1997 A
5680615 Marlin et al. Oct 1997 A
5689625 Austin et al. Nov 1997 A
5706365 Rangarajan et al. Jan 1998 A
5717840 Pardo Feb 1998 A
5727220 Hohensee et al. Mar 1998 A
5729665 Gauthier Mar 1998 A
5729674 Rosewarne et al. Mar 1998 A
5734915 Roewer Mar 1998 A
5740338 Gauthier et al. Apr 1998 A
5745910 Piersol et al. Apr 1998 A
5754750 Butterfield et al. May 1998 A
5758074 Marlin et al. May 1998 A
5760914 Gauthier et al. Jun 1998 A
5765006 Motoyama Jun 1998 A
5765874 Chanenson et al. Jun 1998 A
5768488 Stone et al. Jun 1998 A
5778377 Marlin et al. Jul 1998 A
5781711 Austin et al. Jul 1998 A
5793946 Gauthier et al. Aug 1998 A
5796411 Cyman et al. Aug 1998 A
5796930 Gauthier et al. Aug 1998 A
5801716 Silverbrook Sep 1998 A
5832530 Paknad et al. Nov 1998 A
5833375 Gauthier et al. Nov 1998 A
5841420 Kaply et al. Nov 1998 A
5852673 Young Dec 1998 A
5866286 Christy et al. Feb 1999 A
5877865 Fukuta Mar 1999 A
5880742 Rao et al. Mar 1999 A
5895455 Bellinger et al. Apr 1999 A
5896462 Stern Apr 1999 A
5900003 Ben Dror May 1999 A
5915258 Toyokura Jun 1999 A
5926185 Vyncke et al. Jul 1999 A
5937153 Gauthier Aug 1999 A
5946461 Landry et al. Aug 1999 A
5949438 Cyman et al. Sep 1999 A
5953007 Center et al. Sep 1999 A
5960164 Dorfman et al. Sep 1999 A
5963968 Warmus et al. Oct 1999 A
5982994 Mori et al. Nov 1999 A
5983243 Heiney et al. Nov 1999 A
5987461 Dreyer et al. Nov 1999 A
6006242 Poole et al. Dec 1999 A
6006281 Edmunds Dec 1999 A
6009442 Chen et al. Dec 1999 A
6016380 Norton Jan 2000 A
6018774 Mayle et al. Jan 2000 A
6020894 Silverbrook Feb 2000 A
6027195 Gauthier et al. Feb 2000 A
6049390 Notredame et al. Apr 2000 A
6064397 Herregods et al. May 2000 A
6078403 Palmer Jun 2000 A
6078406 Nickerson Jun 2000 A
6145946 Gauthier et al. Nov 2000 A
6146027 Orton et al. Nov 2000 A
6209010 Gauthier et al. Mar 2001 B1
6236463 Cyman et al. May 2001 B1
6243172 Gauthier et al. Jun 2001 B1
6290406 Gauthier et al. Sep 2001 B1
6292267 Mori et al. Sep 2001 B1
6310695 Gauthier et al. Oct 2001 B1
6326983 Venable et al. Dec 2001 B1
6327599 Warmus et al. Dec 2001 B1
6330073 Sciatto Dec 2001 B1
6332149 Warmus et al. Dec 2001 B1
6381028 Gauthier Apr 2002 B1
6437875 Unno Aug 2002 B1
6446100 Warmus et al. Sep 2002 B1
6459498 Miyake et al. Oct 2002 B2
6465165 Landry-Coltrain et al. Oct 2002 B2
6487568 Gauthier et al. Nov 2002 B1
6493106 Gauthier et al. Dec 2002 B1
6505980 Allday Jan 2003 B1
6557017 Venable Apr 2003 B1
6597467 Miyake et al. Jul 2003 B2
6599325 Gauthier et al. Jul 2003 B2
6684188 Mitchell et al. Jan 2004 B1
6687016 Gauthier Feb 2004 B2
6707572 Walker et al. Mar 2004 B1
6771387 Gauthier Aug 2004 B2
20020089681 Gauthier Jul 2002 A1
20020122205 Gauthier Sep 2002 A1
20020149792 Gauthier et al. Oct 2002 A1
20030050934 Gauthier et al. Mar 2003 A1
20040130752 Gauthier Jul 2004 A1
20040141197 Gauthier Jul 2004 A1
20050076001 Gauthier et al. Apr 2005 A1
20050185212 Gauthier Aug 2005 A1
20050286065 Gauthier et al. Dec 2005 A1
Foreign Referenced Citations (94)
Number Date Country
2210405 Jul 1996 CA
2207840 Dec 1997 CA
2215094 Apr 1998 CA
4313958 Nov 1993 DE
4313959 Nov 1993 DE
4316282 Nov 1994 DE
4313958 Aug 1998 DE
4313959 Aug 1998 DE
0075732 Apr 1983 EP
0131966 Jan 1985 EP
0075732 Aug 1987 EP
0131966 Mar 1990 EP
0394168 Oct 1990 EP
0475601 Mar 1992 EP
0478335 Apr 1992 EP
0527097 Feb 1993 EP
0538059 Apr 1993 EP
0539135 Apr 1993 EP
0539135 Jul 1993 EP
0594370 Apr 1994 EP
0614156 Sep 1994 EP
0527097 Mar 1995 EP
0703524 Mar 1996 EP
0703524 Jan 1997 EP
0394168 Jun 1997 EP
0 703 524 Aug 1997 EP
0475601 Oct 1997 EP
0539135 Dec 1997 EP
0837401 Apr 1998 EP
0538059 Apr 1999 EP
0594370 Jan 2000 EP
1011981 Jun 2000 EP
1132809 Sep 2001 EP
0837401 Feb 2003 EP
1132809 Jan 2004 EP
2220511 Jan 1990 GB
56157369 Dec 1981 JP
58108045 Jun 1983 JP
58224755 Dec 1983 JP
59068244 Apr 1984 JP
59068277 Apr 1984 JP
60073869 Apr 1985 JP
60145865 Aug 1985 JP
61018802 Jan 1986 JP
61118775 Jun 1986 JP
61130067 Jun 1986 JP
61179463 Aug 1986 JP
61223935 Oct 1986 JP
61254369 Nov 1986 JP
62065126 Mar 1987 JP
62207664 Sep 1987 JP
62261467 Nov 1987 JP
63039085 Feb 1988 JP
63108428 May 1988 JP
63271275 Nov 1988 JP
63300259 Dec 1988 JP
63300260 Dec 1988 JP
63300263 Dec 1988 JP
1133051 May 1989 JP
1141746 Jun 1989 JP
1142674 Jun 1989 JP
1142675 Jun 1989 JP
1142680 Jun 1989 JP
2112017 Apr 1990 JP
3091064 Apr 1991 JP
3121870 May 1991 JP
4059372 Feb 1992 JP
5016450 Jan 1993 JP
5031997 Feb 1993 JP
5057967 Mar 1993 JP
5119937 May 1993 JP
5246104 Sep 1993 JP
5270093 Oct 1993 JP
5298037 Nov 1993 JP
5338313 Dec 1993 JP
6032015 Feb 1994 JP
6035632 Feb 1994 JP
6099635 Apr 1994 JP
6106810 Apr 1994 JP
6125454 May 1994 JP
6171176 Jun 1994 JP
6171177 Jun 1994 JP
6238982 Aug 1994 JP
6340129 Dec 1994 JP
7064981 Mar 1995 JP
3048582 Mar 2000 JP
WO9502224 Jan 1995 WO
WO9622573 Jul 1996 WO
WO9718514 May 1997 WO
WO9881176 Feb 1998 WO
WO9808176 Feb 1998 WO
WO9821044 May 1998 WO
WO0028435 May 2000 WO
WO0028435 Oct 2000 WO
Related Publications (1)
Number Date Country
20040130752 A1 Jul 2004 US
Continuations (3)
Number Date Country
Parent 10090074 Mar 2002 US
Child 10707955 US
Parent 09299502 Apr 1999 US
Child 10090074 US
Parent 08896899 Jul 1997 US
Child 09299502 US
Continuation in Parts (1)
Number Date Country
Parent 08373582 Jan 1995 US
Child 08896899 US