Suche Bilder Maps Play YouTube News Gmail Drive Mehr »
Erweiterte Patentsuche | Abbildungen der Seite | Webprotokoll | Anmelden

Patente

  
[graphic][table][merged small][merged small][merged small][table][graphic][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small]
[graphic][merged small][merged small][merged small]

1

IMAGE PROCESS SYSTEM AND PROCESS
USING PERSONALIZATION TECHNIQUES

FIELD OF THE INVENTION

The present invention is related generally to image processing. In particular, the present invention is related to raster image processors using personalization techniques.

BACKGROUND OF THE INVENTION

A common use of computers is preparation of personalized documents. Personalized documents are, generally, a set of documents, such as form letters, which include information which is shared by all of the documents, such as the body of a form letter, and information which is unique to each document, such as a name and address for a recipient of a form letter. The shared data generally is called "fixed" data or information, whereas the unique data generally is called "variable" data or information. Personalized documents may be simple, such as form letters, or complex, such as a catalog with item descriptions or prices individually targeted to each customer.

The general problem addressed in any computer system which generates personalized documents is how to merge variable information with fixed information while printing in volume at a reasonable speed.

In some systems, variable information is merged with fixed information prior to formatting of the merged data for printing. For example, a word processing program may have a feature which creates multiple documents, such as form letters, by filling in a template (fixed information) with variable information, e.g., addresses, taken from another data file to create a set of personalized documents. Such a feature often is called a "mail merge" operation. Using such a feature, however, results in duplicative processing of the fixed information when each personalized document is actually printed.

Many other commercially available computer systems which control electronic printing systems to prepare personalized documents are designed based on analogies to mechanical printing systems. In mechanical printing systems, fixed information generally is printed first, and variable information is then printed in specified regions within the fixed information. In electronic printing systems, fixed content is processed as a raster image in a frame buffer used by a printing engine. Variable data for each personalized document is placed in the raster image by specifying a region of the frame buffer to be modified, and modifying the contents of the frame buffer with the variable data for the specified region for the currently processed document. As a result, a raster image processor or other application providing the variable data must be specialized so that it may specify particular regions of the frame buffer which will be modified. As a result, such systems tend to be cumbersome, expensive and require content to be generated by only specialized applications which are capable of specifying regions of a frame buffer. Because of such limitations, these systems often require special operator training.

SUMMARY OF THE INVENTION

The present invention solves the problem of merging fixed and variable content by using a raster image processor that, for each page to be printed, initializes a frame buffer according to fixed content specified for the page. The fixed content may be specified in initialization information that is placed at the beginning of the stream of variable content to

2

be processed, or could be specified in some other manner. This fixed content may be preprocessed and stored in memory accessible to the raster image processor. The variable content then may be added to the frame buffer without

5 the need to specify a region in which it should be placed. In one embodiment of a computer system in accordance with the invention, both fixed content and variable content can be defined by any application that can issue a command to print data. A printer driver receives the data from the

10 application and converts it into a series of commands in a page description language defining the document to be printed. The printer driver is programmable so that a user may specify that data being printed should be applied to fixed content, i.e., it is variable content, or may be used as

15 fixed content, or both. Such a specification may be inserted at the beginning of the series of commands defining the document to be printed along with other initialization information provided by the printer driver. This series of commands is processed by the raster image processor to

20 generate, in the frame buffer, a raster image of each page of the personalized document. In particular, for each page, the raster image processor initializes a frame buffer according to whether the data being printed should be applied to any specified fixed content. The appropriate content, or no

25 content, is read from memory into the frame buffer. The data being printed, when defined using commands in a page description language, is automatically converted into image data and locations in the frame buffer without specifying regions. When the page is completely processed, the raster

30 image processor may store the contents of the frame buffer according to whether the data may be used as fixed content.

Accordingly, one aspect of the invention is a computer system or a computer-implemented process for generating personalized documents. A frame buffer is used by a raster

35 image processor to generate each frame of a document to be printed. A first input to the raster image processor is fixed content, while a second input is variable content. The variable content has variable content information which follows initialization information which includes an indica

40 tion of a source of the fixed content. The initialization information in the variable content is processed to identify the indication of the source of the fixed content. The indicated source of the fixed content is accessed to retrieve the fixed content. The frame buffer is initialized according to

45 the received fixed content. The variable content information is then processed so as to modify the contents of the frame buffer according to the processed variable content information. In one embodiment, fixed content is preprocessed and is stored in data files on a computer readable medium

50 accessible by the raster image processor. In this embodiment, the indication of the source of the fixed content includes an indication of one of the data files on the computer readable medium. The frame buffer is initialized by reading the fixed content into the frame buffer.

55 In one embodiment of the invention, the frame buffer is a virtual frame buffer which is divided logically into several regions. Each frame of preprocessed fixed content is stored using a representation including an indication of the plurality of regions into which the frame is divided, compressed

60 image data for each region and an index indicating a storage location of the compressed image data for each region. The preprocessed fixed content is read into the virtual frame buffer by initializing a representation of the virtual frame buffer using the indication of the plurality of regions and the

65 index. Variable content information is added by identifying each pixel of the frame buffer affected by the variable content information, and changing the pixel value to contain

3 4

the variable information. Modifying the pixel value may management, memory management, and communication

require compressing, decompressing or otherwise process- control and related services. The processor and operating

ing the previous contents of the pixel. system define a computer platform for which application

programs in high level programming languages are written.

BRIEF DESCRIPTION OF THE DRAWING 5 It should be understood that the invention is not limited to

. a particular computer platform, particular operating system,

For a better understanding of the present invention, ref- particular pr0cessor, or particular high level programming

erence is made to the accompanying drawings, where are language. Additionally, the computer system 20 may be a

incorporated herein by reference and in which: multi-processor computer system or may include multiple

FIG. 1 is a block diagram of an example computer system lQ computers connected over a computer network,

which may be used for implementing the present invention; exampie memory system 24 will now be described in

FIG. 2 is a block diagram illustrating a typical memory more detail in connection with FIG. 2. A memory system

system for use in the computer system in FIG. 1; typically includes a computer readable and writable non

FIG. 3 is a data flow diagram of one embodiment of the volatile recording medium 40, of which a magnetic disk, a

present invention; 15 flash memory, and tape are examples. The disk may be

FIG. 4 is a flowchart describing processing steps taken at removable, known as a floppy disk, and/or permanent,

the beginning of a page' and known as a hard drive. The disk, which is shown in FIG. 2,

• , has a number of tracks, as indicated at 42, in which signals

FIG. 5 is a flowchart describing processing steps taken at t j • u- £ • £ • * * J

jjj j j are stored* m binary form, i.e., a form interpreted as a

e en o a page. ^ sequence of l's and 0's, as shown at 44. Such signals may

DETAILED DESCRIPTION define an application program to be executed by the

microprocessor, or information stored on the disk to be

The present invention will be more completely under- processed by the application program, such as video infor

stood through the following detailed description which mation stored in a data file Typically, in operation, the

should be read in conjunction with the attached drawing in 2J processor 22 causes data to be read from the non-volatile

which similar reference numbers indicate similar structures. recording medium 40 into an integrated circuit memory

The present invention may be implemented using a digital element 46, which is typically a volatile random access computer. Atypical computer system 20 is shown in FIG. 1, memory, such as a dynamic random access memory and includes a processor 22 connected to a memory system (DRAM) or static memory (SRAM). The integrated circuit 24 via an interconnection mechanism 26. The interconnec- 30 memory element 46 allows for faster access to the information mechanism is typically a combination of one or more tion by the processor and disk 40, and is typically called the buses and one or more switches. An input device 28 is also system memory. The processor generally causes the data to connected to the processor and memory system via the be manipulated within the integrated circuit memory 46 and interconnection mechanism, as is an output device 30, such copies the data to the disk 40 if modified, when processing as a printer. 35 is completed. A variety of mechanisms are known for

It should be understood that one or more output devices managing data movement between the disk 40 and the may be connected to the computer system. Example output integrated circuit memory 46, and the invention is not devices include a cathode ray tube (CRT) display, liquid limited thereto. It should also be understood that the invencrystal display (LCD), printers including color laser copiers, tion is not limited to a particular memory system, communication devices, such as a modem, and audio output. 40 A block diagram describing one embodiment of the It should also be understood that one or more input devices invention will now be described in connection with FIG. 3. 28 may be connected to the computer system. Example input Various applications (not shown) are executed by the corndevices include a keyboard, keypad, trackball, mouse, pen puter system 20 and provide a data 50 to be printed. This and tablet, communication device, audio input and image data is received by a printer driver 52 which is another scanner. It should be understood that the invention is not 45 application executed on computer system 20. For example, limited to the particular input or output devices used in the printer driver 52 may be an Adobe PostScript printer combination with the computer system or to those described driver. Such a printer driver, in this embodiment, receives a herein. The input and output devices may be included within printer description 54. The printer description defines sevor external to a main unit which typically houses the eral user programmable options for the printer driver 52. For processor 22, memory system 24 and interconnection 50 an Adobe PostScript printer driver, the printer description is mechanism 26. often called a "PostScript printer description" or "PPD". The

The computer system 20 may be a general purpose printer description 54 is interpreted by the printer driver 52

computer system, which is programmable using a high level and is used to provide an interface, such as a graphical user

computer programming language, such as "C++." The com- interface (not shown), which enables a user to input values

puter system may also be implemented using specially 55 associated with the user programmable options of the printer

programmed, special purpose hardware. In a general pur- driver 52.

pose computer system, the processor is typically a commer- In response to data from the various applications and the

cially available processor, such as the Pentium micropro- values input by the user for the user programmable options,

cessor from Intel Corporation, PowerPC microprocessor or the printer driver 52 generates page description data 56, for

68000 series microprocessor. Many other processors are also 60 example, in a page description language such as PostScript

available. Such a processor executes a program called an or Printer Control Language (PCL). The values associated

operating system, such as the various versions of the Win- with the user-programmable options typically appear at the

dows and DOS operating systems from Microsoft Corpora- beginning of the output of the page description data. Page

tion or the System 7 operating system from Apple Computer, description languages are a form of high level computer

which controls the execution of other computer programs 65 language. Commands in a page description language indi

and provides scheduling, debugging, input-output control, cate a location on a page and data to be printed at the

accounting compilation, storage assignment, data location. These commands are interpreted or compiled much

like other high level computer languages such as BASIC. The page description data 56 is interpreted by a raster image processor 58 to generate pixel data 60 for a printer engine 62. The printer engine 62 uses the pixel data 60 to control a printing mechanism to place ink on paper so that the data 50 5 ultimately is printed. The raster image processor 58 includes a frame buffer 59 which provides and stores the pixel data 60 for use by the printer engine 62. The raster image processor 58 may reside on the computer system 20, for example, like an application called Freedom of the Press, available from ColorAge, Inc. of Billerica, Massachusetts, or may reside on the printer output device itself. On the former system, the pixel data typically is communicated over a computer network from the computer to the printer engine 62. When the raster image processor image 58 resides in the printer, the page description data 56 typically is transmitted to the printer over a computer network.

For most page description languages, such as PostScript, a corresponding raster image processor begins processing each new page of a document on a blank page, i.e., its frame 20 buffer is initialized to all white. This blank page is modified according to the received page description data. In one embodiment of the present invention, the userprogrammable options of the printer driver 52 are used to modify the page description language to specify whether the 25 frame buffer should be initialized to other pre-processed data, allowing such pre-processed data to be the fixed content of a personalized document. Other mechanisms may be used to modify the page to description language. In turn, the raster image processor 58, which interprets the docu- 30 ments in this modified page description language, has an associated storage 64 in which previously processed images 68 are stored. These processed images 68 may be stored on storage 64 and may be read from storage 64 into the frame buffer 59 of the raster image processor 58 in response to 35 requests 66. These requests are determined according to the user-programmable options.

As stated above, the user programmable data in the printer description 54 is inserted at the beginning of the stream of page description data for a document by the printer driver 40 along with other initialization information generated by the printer driver. In one embodiment of the present invention, two options are used to allow a user to identify 1) whether a form (fixed content) is to be created 2) whether a form (fixed content) is to be used and how the form should be 45 repeated for long documents and 3) the length in pages of each document within the data being printed. These values are input by a user through an interface generated by the printer driver, which is done using known techniques. The printer driver, when preparing page description data for a 50 document, inserts a tag or label representing variable name and its associated value and or values in the beginning of the stream of page description data. Example names or labels for

these user programmable options are "Form Create" and

"Form Use," and "Document Length." 55

Form template images, to be used as fixed content, are created with the "Form Create" command. The value associated with this command specifies a name of a form file to be created, and changes the meaning of the subsequently processed pages. When the document description indicates 60 that a page should be printed, the frame buffer contents are written to the form file, e.g., on a disk or other storage associated with the raster image processor. If the document consists of more than one page, the frame buffer contents of all pages of the document are written to the form file. 65

The "Form Use" value specifies a name of a form file

stored on disk or other storage associated with the raster

image processor which will be used when rendering and printing the current document. The page description language interpreter in the raster image processor initializes the frame buffer to the contents of a corresponding frame in the form file, rather than initializing the frame buffer to be blank (white) before processing each of the pages. As will be described in more detail below, if the document has more pages than the form file, either the frames in the form file are reused in sequence, or the last frame is reused, depending on a specified parameter. This parameter may be specified as another command or with the "Form Use" command.

The "Document Length" value is used when a document

file being processed is not a single document, but is instead the concatenation of several documents, each the same number of pages long. The number of pages in each document is the "Document Length" value and is specified by

the user. For example, this value is used by the master image

processor in conjunction with the Form Use command to

permit each front page of each form letter in the document file to be associated with the first frame in the form file. For example, if each front page of a form letter is to be printed

on the same letterhead, the "Document Length" command

causes the template specified by "Form Use" to be applied

starting with the first page of each document processed. Thus, when a new document is to be printed, the length of that document is known and is used to calculate what page of the form template should be used.

As an example of how these values may be used, the printer driver may insert the following string:

Form Create =background2; Form Use =background 1,

no repeat; Document Length=l to indicate that the document being printed will be applied to a document called "background 1," to create a document called "background2", which has a length of 1 page. Such an example, for example, might be used to personalize company letterhead, defined by document "background 1," for a particular individual, using the document to be printed. The document being printed would then be stored as "background2," and could be used as fixed content for other documents.

As another example, several form letters could be prepared using the newly created personalized letterhead, with the following command string:

Form Create = null; Form Use = background2,

no repeat; Document Length=l These commands indicate

the form letters being printed are each one page long. Each new document is printed using "background2" as the fixed content.

After preparing the command string from the user programmable options, the printer driver otherwise prepares the page description data just as it would for any other document. That is, the raster image processor 58 operates just as any other raster image processor, such as a PostScript Interpreter, with an additional capability that it is responsive to the three commands inserted by the printer driver according to the printer description 54. The processing of these three variables by the raster image processor occurs at the beginning and end of processing of each page, as will now be described.

Processing of a beginning of a page will now be described in connection with FIG. 4. The first step of this process is determining whether a form should be used in step 70 by

evaluating the value of the "Form Use" command. If this

value does not indicate a valid stored form, the frame buffer for the page is initialized to be white in step 72. Otherwise, form page and current page counters are incremented in step

« ZurückWeiter »