# Patent

## Title
Memory-mapped video control registers

## Abstract

The present invention is a continuation-in-part of U.S. patent application Ser. No. 08/192,042 filed on Feb. 4, 1994, which is entitled "Card Creation System And Method" by Stechmann et al. and which is assigned to the assignee of the present invention and now abandoned.

## Background
The present invention relates to a card creation system and method.

Various card creation systems and methods have been used to produce a variety of cards for various applications including employee badges, student identification badges, membership cards, transaction cards, and other photo identification cards.

However most existing systems are rather expensive requiring rather elaborate card production equipment. Most of these systems require specially trained operators to produce cards using these systems. In addition, such systems are not suited for making a card on demand such as is often the case with various membership cards, badges, etc. Moreover, few systems are capable of capturing images and printing them on a card.

Some systems do exist for making a membership card or the like on demand; however, such systems are rather limited in their capability. They typically do not allow storage and/or retrieval of card holder information to and from various database structures. Moreover, such systems do not allow much flexibility in the layout of card designs.

Existing card production systems are often not real user friendly in that they do not provide the user with a "what you see is what you get" (WYSIWYG) display presentation of card layout.

The present invention provides a card creation system and method which offers numerous advantages over existing systems.

The present invention relates to a card creation apparatus and method which captures images and data from databases and/or user input devices such as a keyboard or mouse and print cards containing such images and data.

In one embodiment, a card creation apparatus including a microprocessor which controls operation of the card creation apparatus based on a predetermined card design that specifies positions on a planar surface of a card for layout frames of a video picture and cardholder information fields which are to be printed on the card is provided. An input mechanism is operatively coupled to the microprocessor to input a plurality of user commands and cardholder information corresponding to the cardholder information fields. A video camera is operatively coupled to the microprocessor to obtain a video picture of a subject. A display is operatively coupled to the microprocessor to display an image of the predetermined card design including the video picture and cardholder information within the predetermined card design substantially as can be printed in response to one user command of the plurality of user commands. In another embodiment, a method of creating a card also is provided.

These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and forming a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the accompanying drawings and descriptive matter, which form a further part hereof, and in which there is illustrated and described a preferred embodiment of the invention.

In the drawings wherein like reference numerals generally indicate corresponding parts throughout the various views:

FIG. 1 is a system block diagram of a preferred embodiment of a card creation apparatus and method in accordance with the principles of the present invention;

FIG. 2 is a block diagram of functional modules present in a preferred embodiment of a card creation apparatus and method in accordance with the principles of the present invention;

FIG. 3 is a block diagram illustrating basic operational steps present in a preferred embodiment of a card creation apparatus and method in accordance with the principles of the present invention;

FIG. 4 is an illustration of a Main Window present in a preferred embodiment of the present invention;

FIG. 5 is an illustration of a System Setup dialog box;

FIG. 6 is an illustration of a Badge List dialog box;

FIG. 7 is an illustration of a Network Server dialog box;

FIG. 8 is an illustration of a User Defined Module Strings dialog box;

FIG. 9 is an illustration of a Paths dialog box;

FIG. 10 is an illustration of a Configuration Report dialog box;

FIG. 11 is an illustration of a User Privileges Dialog Box present in a preferred embodiment of the present invention;

FIG. 12 is an illustration of a User List dialog box;

FIG. 13 is an illustration of a User Privileges dialog box;

FIG. 14 is an illustration of a Database Table Name dialog box;

FIG. 15 is an illustration of an Add Data Source dialog box;

FIG. 16 is an illustration of an open database connectivity (ODBC) database setup dialog box;

FIG. 17 is an illustration of a Select Directory dialog box;

FIG. 18 is an illustration of a Data Design Box present in a preferred embodiment of the present invention;

FIG. 19 is an illustration of the Data Design Box with a sample listing of fields;

FIG. 20 is an illustration of a Data Sources dialog box;

FIG. 21 is an illustration of an Add Data Source dialog box;

FIG. 22 is an illustration of a Database Design dialog box;

FIG. 23 is an illustration of a Query Dialog Box present in a preferred embodiment of the present invention;

FIG. 24 is an illustration of a Data Capture window with cardholder data;

FIG. 25 is an illustration of a Choose Background dialog box;

FIG. 26 is an illustration of a Card Design Window present in a preferred embodiment of the present invention;

FIG. 27 is an illustration of a Card Background Dialog Box present in a preferred embodiment of the present invention;

FIG. 28 is an illustration of an Open Dialog Box present in a preferred embodiment of the present invention;

FIG. 29 is an illustration of a Color Dialog Box present in a preferred embodiment of the present invention;

FIG. 30 is an illustration of the Color Dialog Box expanded to include a customized color portion;

FIG. 31 is an illustration of the Card Design Window with a card field present;

FIG. 32 is an illustration of the Card Design Window with the card field selected;

FIG. 33 is an illustration of a Field Definition Menu present in a preferred embodiment of the present invention;

FIG. 34 is an illustration of a Font Dialog Box present in a preferred embodiment of the present invention;

FIG. 35 is an illustration of a Static Text Dialog Box present in a preferred embodiment of the present invention;

FIG. 36 is an illustration of a Bar Code Dialog Box present in a preferred embodiment of the present invention;

FIG. 37 is an illustration of a Bar Code Data Sample Dialog Box present in a preferred embodiment of the present invention;

FIG. 38 is an illustration of a Choose Background dialog box;

FIG. 39 is an illustration of an Open Card Dialog Box present in a preferred embodiment of the present invention;

FIG. 40 is an illustration of a Link Record Dialog Box present in a preferred embodiment of the present invention;

FIG. 41 is an illustration of a Card Design Import/Export dialog box;

FIG. 42 is an illustration of a Data Capture Window present in a preferred embodiment of the present invention where cardholder data is not saved to a database;

FIG. 43 is an illustration of a Data Capture Window present in a preferred embodiment of the present invention where cardholder data is saved to a database;

FIG. 44 is an illustration of an Image Capture Screen present in a preferred embodiment of the present invention;

FIG. 45 is an illustration of the Data Capture Window with an image present in the image box;

FIG. 46 is an illustration of the Data Capture Window with an image of the card to be printed proximate the bottom of the display;

FIG. 47 is an illustration of a Link Definition Dialog Box present in a preferred embodiment of the present invention;

FIG. 48 is an illustration of an Automatic Linking dialog box;

FIG. 49 is an illustration of a Field Names dialog box;

FIG. 50 is a schematic illustration illustrating composite field linking;

FIG. 51 is an illustration of a Composite Field Definition dialog box;

FIG. 52 is an illustration of a Pad Character dialog box;

FIG. 53 is an illustration of a Strip Character dialog box;

FIG. 54 is an illustration of an Audit Log Listing dialog box present in a preferred embodiment of the present invention;

FIG. 55 is an illustration of a Log Query dialog box present in a preferred embodiment of the present invention;

FIG. 56 is a block diagram illustrating some of the various types of data used by the present invention to create a card;

FIG. 57 is a block diagram illustrating Data Capture Screen interaction with different cardholder data sources including database, camera, and keyboard; and

FIG. 58 is a block diagram illustrating system activity log functions of the present invention.

FIG. 59 is an illustration of an embodiment of a customers data structure;

FIG. 60 is an illustration of an embodiment of a users data structure;

FIG. 61 is an illustration of an embodiment of a transaction log data structure;

FIG. 62 is an illustration of an embodiment of a card design data structure;

FIG. 63 is an illustration of an embodiment of a links data structure;

FIG. 64 is an illustration of database interactions;

FIG. 65 is an illustration of a Post Exposure Enhancement dialog box;

FIG. 66 is an illustration of a Crop dialog box;

FIG. 67 is an Illustration of an Input Devices dialog box;

FIG. 68 is an illustration of a Signature Capture Configuration dialog box;

FIG. 69 is an illustration of a SQL Data Source dialog box;

FIG. 70 is an illustration of a Data Objects dialog box;

FIG. 71 is an illustration of a Table Design dialog box;

FIG. 72 is an illustration of an Index Design dialog box;

FIG. 73 is an illustration of an Edit Card Design dialog box;

FIG. 74 is an illustration of a Card Designer dialog box;

FIG. 75 is an illustration of a New Field dialog box;

FIG. 76 is an illustration of the Card Designer window with a Signature field dialog box;

FIG. 77 is an illustration of a Signature Field dialog box;

FIG. 78 is an illustration of an Edit Link Design dialog box;

FIG. 79 is an illustration of a Link dialog box;

FIG. 80 is an illustration of a New Link Field Properties dialog box;

FIG. 81 is an illustration of a Link List dialog box;

FIG. 82 is an illustration of a Production dialog box;

FIG. 83 is an illustration of a Signature Capture dialog box; and

FIG. 84 is an illustration of a Signature Capture Main Window dialog box.

Referring now to the drawings, there is illustrated in FIG. 1 a system block diagram of a preferred embodiment of a card creation apparatus and method in accordance with the principles of the present invention, the apparatus being generally designated by the reference numeral 40. The card creation apparatus 40 includes a microcomputer 42 having a conventional processor such as an Intel 486DX. In addition, the microcomputer 42 includes appropriate storage devices 44 such as a hard disk drive and a floppy disk drive. The storage devices might be used for storing various programs and for storing card holder information. The microcomputer 42 includes a color display 46 for displaying various information including card holder information. This monitor/display 46 displays graphic and live video images. You use the live image option on the monitor 46 to focus the cardholder's image captured by the camera 54. Therefore, you must learn how to adjust the monitor 46 controls to display the clearest picture possible. A keyboard 48 is interconnected to the microcomputer 42 for providing entry of text data, such as card holder information, into the microcomputer. A mouse 50 or other pointing device is used for inputting information and controlling operation of the card creation apparatus and method. You operate the mouse 50 by moving it on a flat surface. The mouse communicates the movements to the microcomputer 42. The computer translates these motions into movements of the cursor, or pointer. The mouse 50 has buttons you use to indicate the position of the pointer in the display. Additional optional user input devices 52 might also be present for inputting various information and controlling the card creation apparatus and method.

Various types of image captured devices such as a color red-green-blue (RGB) camera 54, a black and white camera 56, and/or a scanner 58 might be interconnected to the microcomputer 42 for inputting images. The scanner 58 scans color images you can use as images on cards. Various other additional optional image capture devices 60 might also be present. For example, a signature capture device which captures the image of a cardholder signature to the card may be present. A color printer 62 is interconnected to the microcomputer 42 for printing cards with the information and design as determined by the card creation apparatus and method. The microcomputer 42 of the card creation apparatus and method 40 might be a stand alone computer or it might be interconnected to a plurality of other terminals by a suitable network connection 64. In addition, other devices such as a modem 66 might be interconnected to the microcomputer 42 so as to allow communication with remote terminals, image capture devices, printers, etc. In addition, a magnetic stripe encoder (not shown) may be used to apply a magnetic security code to the card. Also, the image capturing site may be augmented by a camera tripod, counter stand, backdrop, or other accessories as needed.

The printer 62 is preferably a table top unit capable of printing full-card continuous tone color images, mass transfer bi-level black images and a full- or variably-sized overlay within 0.10 inch (0.254 centimeters (cm)) of the edge of a PVC plastic card. The printer has an input hopper and provides single-card output. In addition to the printer 62, it will be appreciated that other devices might be utilized for outputting information.

In one embodiment of the present invention a CCD 4000 RGB flash-sync camera manufactured by Kodak is utilized. The camera is utilized in conjunction with an electronic flash to compose and capture a card holder's picture or an image. The Kodak CCD 4000 RGB Flash-synch Camera provides card creation apparatus and method with solid-state CCD (charge-coupled device) image capture system optimized for flash to produce outstanding image quality, free from geometric distortion and artifacts.

Normally, live image capture applications using video camera input require constant sources of illumination that are usually hot and cumbersome. The use of the synchronized flash, however, provides positive, uniform lighting with a minimum amount of effort. The camera uses existing ambient lighting for focusing and composition and the flash mode for capturing live images. The camera provides the timing and interface to a variety of devices with frame capturing capabilities, including computers and frame grabber boards alike. ______________________________________ Kodak CCD 4000 RGB Video Camera Specifications ______________________________________ Dimension      7.62 .+-. 0.254 cm (3.0 .+-. 0.1") high .times. 9.144 .+-. 0.254 cm (3.6 .+-. 0.1") wide .times. 9.652 .+-. 0.254 cm (3.8 .+-. 0.1") long Scanning       525 lines, (2:1 interlace) Image Device   0.847 cm (1/3 inch) interline transfer CCD Interlace      2:1 Edge Enhancement 10IRE overshoot on 50 IRE Step (horizontal only) Resolution     768 horizontal .times. 484 vertical pixels Signal to Noise Gamma Correction = 0.45 Ratio          50 dB minimum (luminance) 45 dB minimum (chroma PM) Lens Mount     C-mount Camera Mounting 1/4-20 UNC Connectors     Lens Control: 6-pin female Mini-Din External (genlock): 8-pin female Mini-Din Frame-Store: 8-pin female Mini- Din Power: 4-pin female Mini-Din RGB/S/NTSC Composite Video: 9- pin D-Subminiature female Electrical     Voltage: 12 VDC Consumption: 6.72 Watts maximum (12V @ 560 mA) Output: NTSC Video: 1.0 Vp-p, Z = 75 W RGB Video: 0.7 Vpp, Z = 75 W RGB Sync: 2.0 Vp-p, 75 W Operating      -5.degree. C. (23.degree. F.) to 40.degree. C. (104.degree. F.) Temperature Range ______________________________________

The camera assembly includes an automatic electronic flash, as detailed in Table 2. ______________________________________ Electronic Flash Specifications ______________________________________ Dimensions     14.91 cm (5.87") wide .times. 8.89 cm (3.5") high .times. 4.75 cm (1.87") deep Accessories    Removable sensor, 30.48 cm (12") shutter cord Intensity      2900 beam candle power seconds (BCPS) minimum 5500.degree. Kelvin color temperature F-Stop Settings 4 automatic F-stop selections to match the depth of field Flash Duration 1/1000 to 1/30000 second in automatic mode Angles of      45.degree. vertical, 60.degree. horizontal Illumination ______________________________________

The camera assembly also includes a zoom lens, as detailed in Table 3. ______________________________________ Zoom Lens Specifications ______________________________________ Focal Length        1.2 cm-7.2 cm F-Stop              F1.4 Iris Adjust         Manual Lens Mount          C-mount ______________________________________

A frame grabber printed circuit board, as detailed in Table 4 is installed in the microcomputer 42 (e.g., personal computer (PC)) for converting the video image from the camera into an image format that the microcomputer can read, display, and save. It is the device that captures and digitizes the live video image as the image is sent from the video camera.

The card creation apparatus and method of the preferred embodiment operates in the Microsoft Windows operating system. Although it will be appreciated, that the present invention might be utilized in other operating systems.

The basic card creation apparatus 40 consists of the following software components:

In addition, your system may include the following software drivers for peripheral devices:

The following information briefly describes all of the software driver components.

The printer driver translates the image and text output of the card creation system 40 into a language that the card or report printer can read.

The capture driver controls the camera's capturing an of an image and the computer monitor's display of that image.

The database driver software program enables communication between the card creation system 40 and the database to which you save data. The card creation system 40 ships with four different database drivers. Each card creation site must install at least one. If the site does not save cardholder data, the site will not use the database driver.

The scanner option driver interprets a scanned image, digitally reconstructs it, and then displays the image on your screen. It also enables you to adjust the scanner settings you see on your screen.

The signature option driver enables communication between the signature pad and the card creation system 40. It also enables you to adjust the signature option settings you see on screen.

The magnetic stripe encoder option driver allows the card creation system 40 to work with your magnetic stripe encoder. It delivers data to be encoded to the encoder and reads encoded information back into the card creation system 40 once you encode the card.

The card creation apparatus 40 can be summarized as follows in reference to FIGS. 1-84. The card creation apparatus includes a microprocessor 42 which controls operation of the card creation apparatus 40 based on a predetermined card design which specifies positions on a planar surface of a card for layout frames of a video picture and cardholder information fields which are to be printed on the card. An input mechanism 48, 50, 52 is operatively coupled to the microprocessor 42 to input to the microprocessor 42 a plurality of user commands and cardholder information corresponding to the cardholder information fields. A video camera 54, 56 is operatively coupled to the microprocessor 42 to obtain a video picture of a subject. A display 46 is operatively coupled to the microprocessor 42 to display an image of the predetermined card design including the video picture and cardholder information within the predetermined card design substantially as can be printed in response to one user command of the plurality of user commands.

The microprocessor 42 preferably includes a design mechanism 74 for interactively creating the predetermined card design by displaying the predetermined card design on the display 46 and modifying specific positions on a planar surface of a card for each of the layout frames of the video picture and the cardholder information fields in response to several user commands of the plurality of user commands. This interactive card design is further enhanced by having precision placement capabilities of the card fields by specifying exact coordinates, height, and width of card fields. This allows a user to pinpoint card fields which makes alignment and placement easier.

The design mechanism 74 preferably is programmed to provide for placing static fields in the predetermined card design such that a card background can be specified for use with several related cards. By using these static fields a picture and text background can be specified for use by one customer company, department within a company, or security level group within a company.

The microprocessor 42 preferably provides for automatic selection of a card background from a plurality of card backgrounds based on contents of cardholder information associated with a particular cardholder. This automatic selection is termed data driven production and it eliminates a user from some types of data entry so that strict conformity with other generated cards is enforced within a single group or company by the microprocessor 42 making decisions based on data entered as of cardholder information.

The design mechanism 74 also preferably includes the capability to designate a particular cardholder information field in the predetermined card design as a bar code field. Optionally, the card creation apparatus includes a bar code field type which is a black on black bar code. This printing of bar codes on a black background makes photocopying of the bar codes from a card very difficult.

The microprocessor 42 preferably further includes a database interface for storing and retrieving the cardholder information in a card creation database.

The microprocessor 42 preferably further includes a linker 76 for generating a link file and a Data Capture Window by selecting one predetermined card design from a plurality of predetermined card designs with associated cardholder information fields. Subsequently, particular sources for the cardholder information as well as particular storage destinations for the cardholder information are determined in response to user commands. The linker 76 preferably includes a mechanism for incorporating particular source and destination designations for the video picture in the link file and the Data Capture Window in response to user commands.

The database interface in the preferred embodiment is open database connectivity (ODBC) compliant such that at least some customer information can be stored and retrieved from a database external to the card creation apparatus. Details of the ODBC compliant will be discussed in later sections.

The microprocessor 42 also preferably includes a filter for extending functionality of the card creation apparatus 40 beyond a core set of features. For example, a bar code check digit calculation and a data validation scheme can be implemented within the Windows Dynamic Link Library (DLL) structure.

In addition, the microprocessor 42 preferably includes an external command mechanism for exposing a core set of features of the card creation apparatus 40 to function calls external to the card creation apparatus 40. In the preferred embodiment, this is the Window Dynamic Data Exchange (DDE) feature set and preferably includes a DDE API as well.

An interface operation is preferably performed by a frame grabber board which operatively couples the video camera 54 and the microprocessor 42 such that the video picture is stored into a memory of the microprocessor 42 in response to another user command of the plurality of user commands.

The microprocessor 42 preferably includes a Chroma Key processing feature for editing the stored video picture to revise a picture background of the video picture with another picture background. Subsequently, the edited video picture is stored in place of the stored video picture in the memory of the microprocessor 42. The Chroma Key process includes a software package as well as a bright blue back drop. It is a solution for those customers who desire the ability to change background color hue or pattern. With an image captured through the card creation apparatus 40, Chroma Key software replaces the blue background with a user selected color. The components that make up the chroma Key process are as followed:

The ability to change background color offers the utility of color background as classification, aesthetic and security purposes. Sixteen hues are available to user to choose from as shown in Table 5. ______________________________________ Color hue     R value    G value  B value ______________________________________ Saturated Red 250        10       10 Light Red     250        100      100 Saturated Green 10         250      10 Light Green   100        250      100 Saturated Blue 10         10       250 Saturated Magenta 250        10       250 Light Magenta 250        100      250 Saturated yellow 250        250      10 Light yellow  250        250      100 Saturated cyan 10         250      250 Light cyan    100        250      250 gray          100        100      100 black         0          0        0 orange        250        150      50 purple        150        50       250 Twill         50         250      150 ______________________________________

It should be noted that the software only changes the hue, not brightness nor saturation of the color. The brightness of the original background is maintained in the new image to create a smoother transition between background and image. Maintaining the original intensity also hides some of the error in Chroma Key process. In addition to the limitation of color change, user should also note that the color they perceive the monitor is not identical to the color printed on the card. The color error between monitor and printed card is a result no color translation between color devices.

Some errors in the Chroma Key process may occur based on the particular subject being imaged.

Blonde hair produces large error while errors with dark hair is less visible. Also, frizzy hair is more difficult to "key" while clean short hair styles is easy to segregate from background.

Blue clothing or similar color to the back drop may result in edge detection errors. The result is changing of shirt color as well as background.

Lighting must be the similar to the current photo capture procedure in the card creation apparatus. Poor lighting on subject or on back drop may result low signal to noise thus reducing the software's ability to segregate background from subject.

The Chroma Key feature can be enhanced by having a dynamic neckline finder and shoulder edge smoothing. The likelihood of these errors is high when the head to shoulder size ratio is different in the image field. This problem is especially likely to occur with subject wearing blue clothes. Another improvement is the selection of a replacement background color. It may be desirable to have all possible color combinations available to user. Furthermore, customer should have the option to create a background pattern instead of a solid color.

The microprocessor 42 further includes a post-exposure processing feature for editing the stored video picture to alter an average light intensity level of the video picture and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor 42. This option allows you to display, as shown in FIG. 65, a series of nine images with varying exposures after you freeze a temporary image. You click the option with the best exposure to save as your permanent capture. This complexion enhancement feature is particularly important for correcting light exposure levels on light or dark complexion subjects.

The microprocessor 42 further includes an image processing feature for editing by scaling and cropping the stored video picture. Subsequently, the edited video picture is stored in place of the stored video picture in the memory of the microprocessor 42. You use the Crop Image window, shown in FIG. 66, to choose the part of the image that will appear on the card. The Crop Image window displays the captured image, along with a cropping box. Only the portion of the image within the cropping box's border will appear on the card. You can move and size the cropping box. right mouse button. The pointer becomes a four-way arrow. Move the pointer toward the center of the cropping box to make the image smaller. Move the pointer toward the outside of the cropping box to enlarge the image. down the left mouse button. The pointer appears as cross hairs. Move the mouse in the direction in which you want to move the cropping box.

You return to the Production window, shown in FIG. 42.

The microprocessor 42 preferably also includes an automatic data input feature for enhancing cardholder information input through the input mechanisms 48, 50, and 52.

The automatic data input feature offers many functions. One function is placing a default value in one of the cardholder information fields. Users are able to select the following default types of field entry on the linker screen.

If users want Data and Time, they can use a composite field. For simplicity, default data and time formats are the formats specified in the WIN.INI file. A User Defined string is simply text that is inserted to a field. This is similar to a static field on a card but it can be inserted into the database. Just before inserting a record, with autoincrement fields, reads the database and finds the highest value in the autoincrement column (e.g., uses the SQL max function call). Subsequently, the auto-increment value is added to this value for the record and inserted in the field. It is very advisable to make the auto-increment column a numeric type. Also, it is very advisable to make the auto-increment column an index.

The automatic data input feature also preferably provides a function for adjusting a font size assigned to a particular cardholder information field in the predetermined card design when data input to the particular cardholder information field exceeds a predetermined character length. This is particularly useful, for example, when a user has a long last name and wants all of the name to print on a card, but the space allotted for the last name is not large enough if the default font size is used. As such the font size is reduced until all of the name fits on the card.

The automatic data input feature also preferably includes a function for automatically incrementing a numeric value in a particular cardholder information field when an associated card is printed. A new type of link field called PrintActionLink is created. This special link cause "things" to happen when a card is printed. The "things" are to insert a `1` in a field (mark the card as printed) and update the record and, to increment a field (count the number of times a card is printed) and update the record

Reasons for this PrintActionLink are: printed.

The Linker 76 will have a new type of link field: PrintActionLink. The name represents the fact that certain actions will take place when a card is printed. The field types in the linker will then be:

With this change, the inheritance hierarchy in the Linker 76 will appear as: BaseLink -- .vertline.--DisplayableLink-- .vertline.--PromptLink- PrintActionLink .vertline.    .vertline.--ImageLink .vertline.--CompositeLink ______________________________________

A PrintActionLink class will inherit from PromptLink, DisplayableLink and BaseLink. A PrintActionLink link element needs information from DisplayableLink. It doesn't need everything from DisplayableLink but the slight waste of space is compensated by the simplicity of implementing it this way. A PrintActionLink field will have the following properties:

The PrintActionLink class will add the following variables: PRN.sub.-- TRIGGER.sub.-- TYPE PrintActionType; // see enum below BOOL            FilterOnBatchPrint; // If true, during batch print, // only print non-printed cards ______________________________________

An enum will be created to classify the PrintActionLink types: enum PRN.sub.-- TRIGGER.sub.-- TYPE { INSERT.sub.-- ONE, INCREMENT }; ______________________________________

The user chooses a PrintAction Link element just as they would any other type of link element.

The following variables are added to the capture window: MyEdit *PrintedControl; // points to "set to one" control MyEdit *IncrementControl; // points to "increment" control BOOL BatchFilter; // TRUE if we filter on PrintedControl ______________________________________

After the link is read in AND the screen controls exist, scan the link field list. If any PrintTrigger fields are present, set the two pointers as appropriate (otherwise set them to NULL), and set BatchFilter to TRUE or FALSE;

When the Clear key is pressed, set PrintedControl and IncrementControl to 0 (assuming the fields exist). New records should start out as not printed, and 0 cards printed.

In Single Print Mode, when the Print button is pressed (or selected via menu), if (BatchFilterControl !=NULL) OR (IncrementControl !=NULL) call the PrePrint() function.

The PrePrint() function is named since it will take care of any details before the card is printed. The PrePrint function looks at the two pointers: FALSE.

In Batch Print Mode, If BatchFilter is TRUE, Simply check the PrintedControl for a 1. If it has a 1, skip the record; otherwise, call PrePrint() and print the card.

It may be desirable to have an Insert/Update on print. Also, a User defined action on print could be supported with a DLL with a function to call.

The automatic data input feature also preferably includes a function for generating revised contents of a particular cardholder information field based on data input to the particular cardholder information field through the input 48, 50, or 52. For example, a PIN number could be entered and the PIN data is sent to an external function (i.e., DLL) to encrypt the PIN. The encrypted PIN is returned to the card creation apparatus 40 and input in a cardholder information field. Similarly, human readable check digit could be generated for bar codes fields.

A printer 62 preferably is operatively coupled to the microprocessor 42 to print on a card the predetermined card design including the video picture and cardholder information within the predetermined card design substantially as can be printed in response to another user command of the plurality of user commands. In the preferred embodiment, the printer 62 includes the capability to interpret an Encapsulated PostScript file which describes the predetermined card design including the video picture and cardholder information within the predetermined card design to be printed. The advantage of this is more compatibility with various output devices and the files tend to be smaller than bitmap files. It should be noted that the printer 62 may be a color printer which prints a photographic quality images in color or grayscale. The microprocessor 42 preferably includes a mechanism for selecting between at least two printers such that cards can be printed from at least two different printers.In the preferred embodiment, this feature can be implemented with the standard Microsoft Windows printer driver protocol links.

A signature capture device (not shown) preferably is operatively coupled to the microprocessor 42 to obtain a video picture of a subject's signature from a pressure sensitive pad. This feature will be discussed in detail in the following sections.

A scanner 58 preferably is operatively coupled to the microprocessor 42 to obtain a video picture of a subject from a still photograph. The microprocessor 42 preferably includes a mechanism for rotating an orientation of the video picture from the scanner 58 such that orientation within the predetermined card design of the video picture can be modified. In addition, the scanner 58 preferably is compatible with the TWAIN scanner control standard such that the microprocessor 42 can use the industry standard TWAIN control protocols.

Finally, the microprocessor 42 preferably includes a security mechanism for restricting access to different functions within the card creation apparatus based on individual user passwords. For example, one user with one password may be able to perform productions functions, but none of the card creation or administration functions would be enabled. A function can be enabled if the menu option is selectable. Similarly, a function can be disabled if the menu option is not selectable. Another, supervisory user may have full access to all menus and functions and further may assign individual users separate access levels based on passwords.

Returning now to the signature capture optional device which uses a compact pressure sensitive pad that records handwritten data to a file. The pen-like stylus allows you to sign, draw or write notes for printing. It works with any IBM compatible PC that runs Windows and has an available RS-232 serial port.

The minimum system requirements for installing and using the Signature Capture option are as follows:

an IBM 386 compatible system or faster

Windows v3.1

Card Creation Software

8 MB of memory

80 MB disk space

a VGA monitor

an available serial port

To install the Signature pad, be sure to turn your PC off before you begin. your PC. signature pad should flash. If not, check your power supply.

To install the Signature Option software using) and press Enter.

The Signature Capture Option allows you to change the thickness of the pen stroke or the size of the Capture window through the System Setup pulldown menus.

To change the Signature Capture Configuration appears. A drop down menu appears. FIG. 67. are editing the default configuration. The signature pad does not allow multiple configurations. When you click on the Edit button, you are editing the default configuration.) The Signature Capture Configuration dialog box appears as shown in FIG. 68. Thickness text box. The value must be between one and eight. The larger the number, the thicker the signature pen stroke appears. must be within a range of 0.500 and 4.000. A value of 1.000 will produce a window on a VGA display whose size is the approximate size of the pad. appears. You should be careful not to make the window display too large. When the capture process reduces the signature image to field size, some distortion may occur.

This section provides information about how to use the Signature Capture option. This includes:

Adding a Signature Field to a Database

Adding a Signature Field to a Card

Editing a Link

Printing a Card

The procedures in this section assume that you are saving signatures to a database. However, this is an optional step. For more detailed information about databases, card design, links, and production, refer to the following sections.

Adding a Signature Field to the Database

To add a signature field to a database: select Edit. The Data Manager window appears. Connect. The SQL Data Source dialog box appears, as shown in FIG. 69. appears, as shown in FIG. 70. table to include a Signature field. The Table Design dialog box appears, as shown in FIG. 71. the signature field. (Example: Signature) image fields and must be 128 characters.) database table. when you alter your database table. as shown in FIG. 72. Name) least one unique index field.). menu appears, select Exit. The main window returns.

Adding a Signature Field to a Card Design

To add a signature field to a card design Edit. The Edit Card Design dialog box appears, as shown in FIG. 73. in FIG. 74. New. The New Field dialog box appears, as shown in FIG. 75. Signature field, as shown in FIG. 76. box appears, as shown in FIG. 77. click OK. The Card Designer window reappears. main window appears.

Editing the Link

To edit an existing link Link Design Dialog Box appears as shown in FIG. 78. 79. The New Link Field Properties dialog box appears, as shown in FIG. 80. Signature). click on OK. The Link window, as shown in FIG. 79, reappears with a new signature field in the Production Field list. Fields list. Then, still using the right mouse button, click on Signature in the Database Tables/Fields list. A line connecting the two fields appears to indicate that they are linked. Fields list. Then, still using the right mouse button, click on Signature in the Card Fields list. A line connecting the two fields appears to indicate that they are linked. pull down list appears. configuration text box. you have made further changes or No if you have not made any additional changes. The main window appears.

Printing a Card

To print a card with a signature field menu. The Link List dialog box appears, as shown in FIG. 81. in FIG. 82. Tab. and press Tab. Save at each of the capture screens. For more information about capturing image, refer to the following sections. appears, as shown in FIG. 83. function. The red LED lights up. mouse button and moving the mouse to simulate writing. You release the button when you finish. over the writing area on the Signature pad. Use a regular ball-point pen to sign your name. Be sure to keep your signature within the writing area on the signature sheet. The pressure sensitive pad displays the handwritten data on the screen as you write. Your stroke should be even and firm, but not hard. Be careful to press only with the pen as you write. If the pad recognizes pressure from another source, it draws connecting lines between the two pressure points. written image and return control to your mouse. The as shown in FIG. 84 appears. reactivates the Capture window and allows you to start again. record to the database.

Returning now to the scanner optional device 58 which is substantially like the signature capture device in operation and setup. The process of scanning an image is also similar to taking a picture with a camera. However, instead of using a flash or relying on natural light, a light bar on the scanner exposes an image on the scanning glass. The scanning software interprets the image, digitally reconstructs it, and then displays the image on your screen. The Twain interface uses an industry standard protocol to pass the digitized data from the scanner to the microprocessor 42 of the card creation apparatus 40.

The Twain interface works with a variety of scanners. It's important that you familiarize yourself with the particular scanner you are using. Review the documentation and installation information carefully. Know the capabilities of your scanner and learn the scanning process.

The minimum system requirements for installing and using the scanner are the same as those for the signature capture option.

To capture scanned images, you need: (optional)

The procedures in this section assume that the card creation software is installed and that the `Sample` database is enabled. They explain how to add an image field to an existing database, create a card with an image field, edit a link to identify the scanner as an input device, scan an image, and print a card. Saving images to the database is an optional step. For more detailed information about databases, card design, links, and production, refer to the following sections.

Adding a Image Field to the `Sample` Database

To add an image field the database select Edit. The Data Manager window appears, as shown in FIG. 67. Connect. The SQL Data Sources dialog box appears, as shown in FIG. 69. appears, as shown in FIG. 70. field--a NEWIMAGE. The Table Design dialog box appears, as shown in FIG. 71. the image field. (Example: NEWIMAGE) characters.) database table. are removed when you alter your database table. Name) least one unique index field). menu appears, select Exit. The main window returns.

Creating a Card

To create a card with an image field New. The Create New Card Design dialog box appears (not shown). New). Click on the Portrait radio button to create a portrait design. Click on OK. New. The New Field dialog box appears, as shown in FIG. 75. with an Image field. squares on each corner of the field). Hold down on the left mouse button and drag the mouse to enlarge the field. (This is an optional step.) Move the mouse pointer inside the image field, and hold down on the left mouse button. Drag the field to a new location. (This is an optional step.) shown). OK. The Card Designer window reappears, as shown in FIG. 74. New. The New Field dialog box appears, as shown in FIG. 75. with a text field, as shown in FIG. 74. dialog box appears (not shown). (not shown). The Card Designer window reappears, as shown in FIG. 74. The main window appears.

Creating a Link (Example: NEW). The system automatically fills the Link Name field with the same name. fields from the names of the card fields. The Link Definition window appears, as shown in FIG. 79. the names match. If you select the NewImage field in the Production list, notice that both card and database Name fields are linked to it. list. Then, with the right mouse button, click on Image in the Database Tables/Fields list. A line connecting the two fields appears to indicate that they are linked. In the Devices section of the window, click on the Input list box. A pull down list appears. Choose Scanner as the input device. configuration. (If you do not choose a configuration, the software uses the default settings automatically. (For more information about how to change the configuration, refer to the next section.) definition. The NewImage field has the Scanner identified as the input device. In this link definition, the scanner uses the <Default> configuration settings. Choose File from the menu bar and select Save.

Capturing an Image menu. The Link List dialog box appears, as shown in FIG. 81. FIG. 82. to move to the NewImage field. The scanning window becomes active and a preview image appears. documentation for specific information about how to use the settings that become available. Save. The Crop Image dialog box appears, as shown in FIG. 66. only the portion of the image that is within the border of the cropping box. the mouse pointer inside the cropping box. Notice the pointer changes its shape to a four-way arrow. Move the pointer in to make the frame smaller. Move it out to make the frame bigger. pointer inside the cropping box and drag the frame to its new location. window returns with the image displayed in the Image field.

Changing the Scanner Configuration

The scanner configuration settings enable you to make changes that affect how the scanner works. For example, you can rotate the image, or identify a specific part of the picture to scan on the scanning glass. Some scanners may also allow you to adjust the contrast and brightness, or enhance the picture.

The new configurations you create become choices in the Link definition.

The information that follows explains how the settings on this dialog box (which is not shown) affect how your scanner works.

Scanner Settings interface from the scanner will be available to operators as the images are being scanned. This setting toggles on and off. (X=on). are as follows: about the setting the resolution. configuration you are creating. This option is only necessary if you are using more than one type of scanner and you want to define a configuration that uses a scanner other than your default scanner. Click on the list box to display the list of installed scanners.

Image Frame the position of the area you want to scan. Refer to your scanner documentation for the point of origin. Depending on the type of scanner you are using, scanning may be from top to bottom and right to left, or bottom to top and left to right. size of the area you want to scan. measurement.

Configuration configurations currently available. Select the configuration you want to view or change. as the default. system, use this button to identify which one you want to use as your default.

To create a new scanning configuration appears. A drop down menu appears. FIG. 67. configurations appears in the Configurations list. configuration in order to access the Scanner Configuration dialog box.) The Scanner Configuration dialog box appears (not shown). list box changes to indicates that there is no name. default. FIG. 67.

To edit a scanning configuration appears. A drop down menu appears. FIG. 67. Scanner Configuration dialog box appears (not shown). default. FIG. 67.

To delete a configuration appears. A drop down menu appears. FIG. 67.

As illustrated in FIG. 2, a preferred embodiment of the present invention includes five basic functions or modules:

The monitor function oversees the entire system and provides access to the other four functions. In addition to monitoring activity among the system functions, the monitor function provides the following functions to the system:

Security added to the system, a login name and password is specified to provide system security. On a user-to-user basis, specific system functions to which a user has access rights can also be specified. A user's access rights can be changed at any time. monitor checks the versions of the drivers and DDLs, verifying compatibility.

System Configuration system for a variety of capture and output devices. It also provides the capability to view a listing of the current configuration and version strings of the other functions.

System Logs production log provides valuable production statistics from which operator productivity can be measured while the system log provides a listing of all system activity, which may assist in troubleshooting system problems. Both logs contain a maximum of 1000 entries, which are time-stamped and listed serially.

The database design module allows a user to define a database to which cardholder records are stored. Through open database connectivity (ODBC), an existing database format can be defined, provided it complies with ODBC. Local, networked, external, or distributed databases can be defined. Multiple users address a single database server. Standard database functions include:

The Card Design module offers the capability of designing cards in a WYSIWYG (What You See Is What You Get) environment. The card is designed in a work space, which represents the actual card. The type, color, size, and location for each field on the card are defined. As these fields are defined, the user can immediately see what those fields will look like. The Card Design module supports bar codes.

The Card Design module contains the following functions:

Create a Card Design

A card can be designed from scratch or by using a template. If a card is created from scratch, all the fields on the card must be added and defined. If a template is used, an existing card design is selected, modified, and saved under a new name.

Whether a card is created from scratch or a template is used, the Card Design module offers the following features: colors)

Edit a Card Design

Once a card design has been created, it can be modified. When a card design is modified, a design is selected from a list of existing card designs. After being selected, the selected card design is displayed in the WYSIWYG Card Design window.

When editing a card design, the system monitors for errors and notifies the operator if an error exists, such as an overlapping field. The operator is prompted to either fix or ignore the problem.

Save a Card Design

When the operator saves a card design, the card design's attributes are saved to an internal database. A name must be assigned to the card design when it is saved.

Delete a Card Design

Before the operator can delete a card design, the system examines the system data to determine whether or not any of the card's fields are linked to a database field. If a card design field is linked, the card design can't be deleted until the link is removed.

Import a Card Design

Badge forms, logos, and card background patterns can be imported into the card design. From a dialog box, the operator can select the source file to import. A predetermined list of graphic patterns are preferably provided.

Export a Card Design

Once a card design is created, it can be exported to a destination file of any assigned name.

The Link module fulfills two purposes:

Capture data

The link module is used to create the data capture screen into which the operator will type textual data for a cardholder into fields and captures the cardholder's picture into an image field. The card design itself can be used in generating the data capture window, or the data capture window can be created from scratch. The data capture window fields have a range of field attributes available to build a robust capture facility for producing cards, as well as populating the database. Each data capture window assumes the name of the link to which it is associated; when the operator accesses data capture they must specify the name of the link to use.

Dynamically links fields on the card to fields in the database

The link module can also be used to establish the link that ties database fields to card design fields, allowing the system to populate the correct database fields and print the captured data on the card. Each link is assigned a name by which it can be retrieved for modification; the operator must also specify the link to use for each data capture session.

Only those database fields that are actually going to be used on the card need be linked. In addition, each data capture field to appear on the card need not be linked. However, each field appearing on the card must be linked to a database field.

The Production module includes the data capture, card printing, and database update functions. The modules' functionality, however, is dependent on the production mode selected. Two production modes are available:

Single Mode

As the name implies, the single production mode involves data capture, card printing, and optional database update for a single cardholder. When the operator accesses the single production mode, the operator is asked to select a link. The link determines the data capture window that will be displayed, as well as the database fields that will be updated and card design that will be printed. Upon selecting a link definition the associated data capture window is displayed.

The operator types the textual data into the appropriate text fields of the data capture window, captures the cardholder's video image into the image field of the data capture window, and prints the card. The system validates all fields before printing the card. If desired, the operator can update the database with the cardholder's data by entry of the Update button on the Data Capture Window.

When capturing data, the operator has the option of using a feature which displays a representation of the card design with the captured information shown as the operator enters it.

Batch Mode

Batch mode is intended for printing cards for multiple cardholder records. The operator retrieves the records, for which cards are to be printed, by issuing a database query. The system provides an easy-to-use graphic user interface for developing the query statement.

After issuing the query, the system returns a list of records that met the conditions specified in the query. From the list, the operator can select specific records to print.

Before printing, the system builds a metafile from the captured data. After printing the card, the system logs the production information to the Audit Log.

Referring to FIG. 3, there are shown the operational steps of one embodiment of a card creation apparatus and method in accordance with the principles of the present invention. At a production step 90, the user of the card creation apparatus and method selects either single mode or query batch production. In single mode, the user can capture data, print a card, and/or save a record to a database for a single cardholder. In query batch production, the user can retrieve records from a database and print cards for more than one cardholder.

At a select link step 92, the user selects a predefined link definition by link name. The link definition is predefined by someone such as a system administrator. When the link is selected a data capture window is displayed. The link definition also provides the card design on which the cardholder's data and image will be printed. If the cardholder data is saved, the link definition also ensures that the cardholder data is saved to the correct database fields.

At a data capture step 94, the user enters information about the cardholder into labeled text boxes on the data capture window. The data capture window will preferably include an image box into which the user captures a cardholder's image.

As the last steps in a card production run; the user will at 96 elect to print the card at the printer 62 or other suitable hard copy device, at 98 elect to save cardholder data to a database 97, and/or at 100 clear the data capture window.

As noted above, before the user can select a link definition by name, the definition must have been previously created and designated by a particular name. The process of creating a link definition is illustrated at 102. In creating a link definition with the card creation apparatus and method of the present invention, one defines at 104 the card design, at 106 defines a data capture window, and at 108 defines the fields of the database 97 where the cardholder information is to be saved.

Referring now to the FIGS. 1-65, the card creation apparatus and method of the present invention will now be described in more detail. The present invention is a PC-based software system that enables capture of a cardholder's live video image and textual data and printing of selected cardholder data on plastic cards using a suitable printer such as the DataCard ImageCard II Printer (ImageCard II is a trademark of DataCard Corporation). In addition, the present invention enables cardholder image and data to be saved to a database for future retrieval, whether or not a card is printed.

The following additional features are available with the present invention:

Create original card designs operator to view the cardholder data as it is being entered

Store cardholder information in a database Database Connectivity (ODBC), or define or as defined by the user cardholder records to print in batch mode

Build customized data capture screens

Establish dynamic data links a field-to-field basis

One embodiment of the present invention utilizes the familiar, easy-to-use graphic user interface typical of other applications running in the Windows environment.

The tasks used in the operation of the present invention can be grouped into two categories, including card production and system management.

Card Production daily. Card production tasks are performed by the operator and include: Multiple cards can be printed in batch mode, however, a database query statement can be utilized to select specific database records. But this task is simplified through the use of standard SQL and a graphic user interface.

System Management Once the system is up and running, these tasks only as needed. System management tasks are performed by a system manager and include: cardholder data design fields

The internal data structures of the present invention consist of both system and data components. The system structures include the Windows-specific configuration files, e.g., .INI files and resource files, and the internal data structures of the present invention. The data structures of the present invention include:

Listed below are the data component structures: Data Component    Storage Type ______________________________________ Card Design Records Internal Database Database Tables   Dependent on location of external database Linker Design Records Internal Database Card Backgrounds  Windows Bitmaps Cards             EPS (Encapsulated Postscript) ______________________________________

The present invention supports the following operating environments: images and the remote database with text data)

A preferred embodiment of the present invention utilizes Microsoft's Windows Open Services Architecture (WOSA). WOSA provides a single system-level interface for connecting front-end applications with back-end services. Applications do not have to worry about communicating with numerous services, each with their own protocols and APIs. Making these connections is the responsibility of the operating system, not the individual applications.

Each service recognized by WOSA has a set of interfaces that are used by the service providers to take advantage of WOSAs seamless interoperability. These service provider interfaces allow applications, written to the WOSA set of APIs, to have access to their services. In order to provide transparent access for applications, each implementation of a particular WOSA service simply needs to support the functions defined by its service provider interface.

WOSA employs Windows Dynamic Link Library (DLL) to allow software components to be run-time linked. In this way, applications are able to connect to services dynamically. An application needs to know only the definition of the interface, not its implementation.

WOSA defines a system-level DLL to provide common procedures that service providers would otherwise have to implement. In addition, the system DLL can support functions that operate across multiple service implementations.

Applications call system APIs to access services that have been standardized in the system. The code that supports the system APIs routes those calls to the appropriate service providers. That code also provides procedures and functions that are used in common by all providers.

The network operating systems that comply with WOSA standards include:

The present invention utilizes the Multi-Media extension provided for by Windows to allow for the separation from various boards and capture devices. The present invention supports the following image file formats:

Image files can be stored in any of these formats, many of which are independent of specific operating systems or applications. All images are stored in JPEG compression format. Industry standard utilities are available if image compression/decompression is required.

The present invention supports the following bar codes shown in Table 6. ______________________________________ Elements Bar Code   Input      Character  Adjust. per Type       Length     Encoded*   Ratio  Char ______________________________________ UPC-A      11, 13, or 16 N          No     7 UPC-E      11, 13, or 16 N          No     4 EAN/JAN-13 12, 14, or 17 N          No     7 EAN/JAN-8  7, 9, or 12 N          No     7 Code 39    1 to 30    N-U-P      Yes    15 Extended 39 1 to 30    N-U-L-P-C  Yes    15 Int. 2 or 5 2 to 30    N          Yes    9 Code 128   1 to 30    N-U-L-P-C  No     11 Codabar    1 to 30    N          No     11 Zip + 4 Postnet 5, 9, or 11 N          No     5 MSI Plessy 1 to 30    N          No     9 Code 93    1 to 30    N-U-P      No     18 Extended 93 1 to 30    N-U-L-P    No     6 UCC-128    19         N          No     6 HIBC       1 to 30    N          No     6 ______________________________________ *Characters Encoded: N -- Numbers (0-9) U -- Uppercase (A-Z) L -- Lowercase (a-z) P -- Punctuation C -- Control Characters (below space character)

Before one can print cards on the printer, the printer must be installed. Installing a printer also requires that a printer driver be installed. The printer driver, which is actually a file, provides present invention with important information about the printer including printer features, printer interface, font descriptions, character translations, and control sequences. The present invention utilizes a customized version of the Window's postscript printer driver.

A preferred embodiment of the present invention utilizes Open Database Connectivity (ODBC), Microsoft's strategic interface used to access data in an environment of multiple, different relational and non-relational database management systems. Based on Call Level Interface (CLI) specification of the SQL Access Group, ODBC provides an open method of accessing data stored in a variety of proprietary database systems operating on personal computers, minicomputers, workstations, and mainframes.

ODBC diminishes the need for software applications to utilize multiple application programming interfaces (API). ODBC provides a universal data access interface, allowing applications to simultaneously access, view, and update data from multiple, diverse databases. ODBC is a major component of Microsoft Windows Open Services Architecture (WOSA).

A few of the database management systems that are compatible with the present invention through ODBC include:

All functions are accessed by the operator from the Main Window, see FIG. 4, which is the first window the operator sees upon accessing the system. The operator accesses all functions from this window. This section describes the parts of that window.

The menu bar 110 displays the Main Menu. You access all functions from the pull-down menus (also referred to as sub-menus) displayed on the menu bar. Each menu and its menu commands is explained in the following sections.

Choose the File menu commands to log into and out of the system, exit the system, and close the main window. Program Manager window. has the same effect as clicking on the minimize button.

Choose the Security menu commands to add, modify, and delete authorized system users, as well as regulate the system functions to which each has access. To access the system, you must be defined as a system user. This feature is designed to maintain system security for the entire system, as well as specific system functions.

The system manager should be the only user who has access to this menu option. password to user using this command. system, including their password and rights to specific system functions. removed, a user is unable to access the system.

Choose the Production menu commands to choose the mode of production. data, save the record, and print a card. meeting specified criteria and to print multiple cards for those records returned by the query. card on the screen.

Choose the Database menu commands to define or query a database table. database to which cardholder data is stored. If you are not currently using a database to which the system's ODBC is compatible, you can use this command to define a new database. When you choose the Define Table command, a dialog box appears in which you enter the name of the new database table. The Database Definition dialog box appears in which you define the fields of the database table. you choose the Query Database command, a dialog box appears from which you select the database you want to query. You build a query statement using a graphic interface. When you execute the database query, the system returns the cardholder records that meet the criteria established by the query statement in the Database Query Results dialog box.

Choose the Link menu commands to tie one or more database fields to a field on the card design. You also access the Design Capture Screen function from this menu. The link routes the captured image and text data to the correct database fields when saved and the card design when printed. database and card design. Choosing this menu command displays the Link Definition dialog box. When you create a new link, you assign it a name, by which you retrieve it for modification or specify it for data capture. database fields and card fields. When you update a link from the system, the Select Link dialog box appears. You choose the link to modify and the Link Definition dialog box, for the selected link, appears. delete a link from the system, the Select Link dialog box appears. You select the link to delete; the system asks for a confirmation. operator enters cardholder data and captures the cardholder's image.

Choose the Card menu commands to create, modify, and delete card designs. You can create multiple card designs. You assign each card design a unique name, by which you retrieve it to modify or delete. You can import and export card designs. new card design from scratch, by choosing this command, or you can retrieve an existing card design, using the Edit Card command, modify it, and save it under a different name. When you choose this command, the Card Name dialog box appears. You type the name of the new card design. The Card Design dialog box appears. The client area of this dialog box represents an actual card in which you graphically create the card fields. choose this command, the Cards Available dialog box appears. You select the card design to delete; the system asks for a confirmation. choose this command, the Cards Available dialog box appears. You choose the card design to modify and the Card Design dialog box appears with the requested design appearing in the client area. You can modify the design and save it to a different name to create a new card design.

Choose the Log menu commands to print an audit log or system log. 1000 entries about the users, modules used, date/time, and operation. When you choose this command, the Audit Log Listing window appears. This window lists each log entry and displays the Log Actions pull-down menu with the commands Query, Print, Clear and Close. report serves as a good trouble-shooting report because it lists all system activities as they occurred.

Use the Configuration menu commands to setup and manage the system configuration. system. Only authorized users can choose this command. system functions. configuration.

Choose the Help menu commands to access the system help function and to display version information about system. index lists the help topics available, from which you can choose one. help. system.

A Status Bar 112 is located along the bottom of the main window. The information displayed depends on where you are and what you are doing in the system. When only the main window is displayed, the status bar displays a description of each menu and menu command chosen by the operator. The three small boxes at the right end of the bar, however, always tell you whether Caps Lock, Num Lock, and Scroll Lock are on. To toggle the Status Bar on and off, choose Status Bar from the View menu. A check mark indicates that the feature is turned on.

When you install the system, the system sets up a default configuration. Before you begin using system, however, you may need to change the default configuration. As you make changes to your system, you may need to reconfigure the system to reflect those changes. Configuring the system involves three functions:

System Setup

The system provides a system setup dialog box, see FIG. 5, in which you specify the capture and output devices connected to your system, as well as provide information to "customize" the system to your particular site. You should at least check the default configuration, which is displayed in this dialog box, before using the system.

System Setup allows you to define your system site by providing the system with information about the capture and output devices you are using, as well as other pertinent information. You should use this function: after installing the system; whenever you make additions or changes to capture and output devices; and if you reinstall the system.

When you access many of the system dialog boxes, you will find list box, check box, and option button selections have already been made. These selections are the default selections that the system make initially, based on your system configuration. You may, however, want to change these default selections to reflect your particular use of the system. This function allows you to specify new default selections at any time. The link button is depressed to display the badge list dialog box, see FIG. 6. From the list a particular badge format is selected. The network button is depressed to display the network server dialog box, see FIG. 7. In the network server name box, the path to the desired server is entered. The module button is depressed to display the user-defined module strings dialog box, see FIG. 8. The various module strings are defined by electing the default settings or entering specific user defined strings. The paths button is depressed to display the paths dialog box, see FIG. 9. The bin, data, and image paths are then entered.

Set Default

Many of the system dialog boxes contain list boxes, check boxes, and option buttons from which default selections have already been made. The default selections are designed to save you time. You can use this function, however, to change these default selections to more accurately reflect your site.

Configuration Report

After configuring the system, you should use this function to print the current configuration. Upon selecting the configuration menu the configuration window appears, see FIG. 10. A copy of the current Configuration Report may be printed at the local printer. To display the configuration of a particular module, the module name is entered in the module name box.

The Print Manager serves as an important link between the system software and the printer. You use the Print Manager to install and configure the printer, connect to the printer through the network, and to control the printing of cards on the printer.

The system of the present invention uses a customized version of the Microsoft Windows Print Manager. When you print a card, the system creates a PostScript print file and sends it to the Print Manager. The Print Manager then sends the file, in the background, to the printer. You can use the Print Manager to check the status of a print file waiting in the print queue. You can change the status of the file until it starts printing.

The system outputs its card files to the printer in PostScript file format. When you send a card to the printer, the system is actually writing a PostScript program. All text and images are converted to PostScript commands by means of the PostScript driver. This driver interacts directly with the printer. The PostScript commands adhere to a strict structure; if this structure is altered or contains errors, the cards will be printed incorrectly or not at all.

The system handles much of the font management automatically. Because the system utilizes the Windows Print Manager, all TrueType fonts are already installed. If, however, you want to add fonts, you must perform some font management tasks, particularly if the fonts are Adobe.RTM. PostScript fonts. If the fonts you add are Adobe fonts, you must designate a TrueType font substitute in the Font Substitute Table. If a TrueType font substitute is not available, you must specify that the font will be downloaded.

Use the following procedures to setup the print options for the printer:

There are no printer options to set in this dialog box. However, if you plan to leave the printer on for a long time or plan to print a large number of cards, you can speed up the printing process by telling Windows to send the PostScript file header once, instead of with each card file. You must repeat this process for each session though.

If you want to send the PostScript file header, proceed with the following steps.

Choosing the right font family, style, and size can help you create whatever look you want for your cards. The right font can also make your card easier to read, as well as more appealing. The font size and type can determine how much text can fit into a single line - - - an important consideration when dealing with a card.

Windows and the system utilize two types of fonts:

Printers also utilize built-in fonts for printing. These are referred to as printer fonts. You can use also soft fonts with your printer. Soft fonts reside on your PC, but are downloaded to your printer as they are needed. You must install soft fonts using the installation program that came with your fonts package. If an installation program was not included with your fonts package, you can use the Font Installer program provided by Windows.

If matching screen fonts are not available with any soft font packages you purchase then a TrueType font, supplied by Windows is used. Though the font you see on the screen does not look exactly like the font you see in the printed document, the substitute TrueType font does create line lengths on the screen that are similar to those that will print on the printer.

If you select a TrueType font for a text field on a card, the font will look exactly the same on the screen as on the printed card. You do not need to install screen fonts. Because the TrueType fonts are automatically available through Windows, they are available to system and the printer, and you can use them in your card designs. When you use TrueType fonts, the printer driver automatically downloads them to the printer as they are needed; this may require more printing time than if you were to use the printer fonts. TrueType fonts also appear in the Fonts list in the Fonts dialog box. They are preceded with a "TT."

The present invention utilizes the Windows Print Manager. Using the Print Manager provides several capabilities when printing cards on the printer:

You can connect to a network printer either when you initially install the printer or afterward. If you have already installed the printer, you must access the Network Connections window via the Network Connections command on the Print Manager's Option menu. If you are in the process of installing the printer, you can access the Network Connections window via the Connect button in the printers dialog box.

Managing the system users consists of the following tasks: adding a user; modifying a user definition; and deleting a user.

Before anyone can use the system, you must define them as a system user. In defining a system user, you assign the user the following:

Use the following procedure to add a user. Choose Add User from the Security menu. The User Privileges dialog box appears (see FIG. 11). In the Full Name box, type the user's full name. In the Login Name box, type the name the user will enter when they try to access the system. In the Password box, type the password assigned to this user. In the Confirm Password box, type the same characters you typed in the Password box. Select the functions to which the user is to have access. There are eight functions listed in the User Privileges Dialog Box, any of which can be selected. The functions are: Card Design, Link Design, Database Design, Production, Security, Log Files, and Configuration. Choose OK.

You can change a user's definition at any time. You can assign the user a new login name, password, password confirmation, and access rights. Choose Edit User from the Security menu. A User List appears on the screen, see FIG. 12. Select the login name of the user whose user definition you want to change. Choose OK. The User Privilege dialog box for the selected user appears with the full name, login name, and functions identified. The password and confirm password are crossed out so as to not be visible. Make any changes to the user definition you want. Choose OK.

You can delete a user at any time. Once deleted, the user cannot access the system using their previously assigned login name and password. Choose Delete User from the Security menu. The User List dialog box appears listing all defined users. Select the user whose definition you want to delete Choose OK. The User Privileges dialog box to delete the selected user appears, see FIG. 13. The Delete button replaces the OK button. Choose the Delete button. The system removes the user definition from the system.

The system provides a complete database management system for your cardholder data. You can save cardholder data, as entered by the operator on a Data Capture window to a database, if you wish. The database may be local, networked, external, or distributed. If you currently store your cardholder data in an existing database system, and you want to continue using it with the system, the database must be Open Database Connectivity (ODBC) compatible. Otherwise, the system enables you to create your own database to which you can save cardholder data.

The system offers the following database management functions: database is internal or not, and define its fields in the system, whether the database is local, networked, external, or distributed. Defining the database table consists of defining each of the fields contained in the database. For each field, you define its name, length, number of decimal places, type, null, and uniqueness. Once defined, you can view and modify your database configuration, fields, and keys at any time. The system allows you to create and use multiple database tables. table, as well as change any of a field's attributes. interface, you can issue database queries to query any existing database to retrieve cardholder records. You build the query statement using standard Structure Query Language (SQL) syntax in a graphic user interface. This feature is most useful in retrieving records for printing cards in batch mode. You can also, however, use the query function to query records for reports and deletion.

If you intend to use the system in conjunction with an existing cardholder database and that database management system is ODBC compatible, you must create a database table defining that database. If you intend to create a database for cardholder data from scratch, using system database management tools, you must define a table for that database. The database table is a listing of the fields contained in the database in the order in which they occur. For each field, you must specify the field's characteristics, such as its type, length, and whether or not it is a key field. Before you begin, it is important, especially if you are using the system database management tools to create the database from scratch, to plan the database before hand. The database table definition function allows you to make changes to the database table, planning the table beforehand will save you time in the long run. When planning the database, consider the various fields you are going to require, the type of data each will contain, the length of each field, and which fields will be keys.

Use the following procedure to define a database table. Choose Define Table from the Database menu on the main screen. A Database Table Name dialog box appears, see FIG. 14 including a name box for entry of the table name. In the Name box, type the name of the database table you want to define. Choose OK. The Add Databox Source Box dialog box appears, see FIG. 15.

Any ODBC compatible database can be used with the present invention. Each ODBC database comes with its own driver, or one can be purchased from a commercial vendor; e.g., Microsoft. A preferred embodiment of the present invention uses the FoxPro database driver. The driver must be installed and once installed the name of the driver will appear in the Add Data Source dialog box. More than one driver might appear if there are multiple databases. In the Installed ODBC Drivers box select the database driver you want to use. Choose OK. The ODBC database Setup box appears, see FIG. 16 where the ODBC FoxPro Setup is illustrated. The ODBC database Setup box may vary slightly from one database to the next. Type a short description of the database in the Description box. Select a database version. Choose the Select Directory box. The-Select Directory box appears, see FIG. 17. The database driver setup creates a default sub directory in the root directory and assigns it the same name as your database. It is important to select a separate sub directory for each database file you want to create. If you place multiple database tables in the same sub directory, the system may attempt to join all the databases within the sub directory when you perform a database query. You do not have to create the sub directories for the database files. Setup automatically creates these for the operator. The File Name box lists the various types of file extensions created by the database driver. They include the extension .DBF, which is the database itself, and .CDX which is the database's index. Either choose OK to store the database in the default sub directory or select the sub directory in which you want to place your database file. Choose OK. The Database Design box appears, see FIG. 18.

The Database Design dialog box consists of two parts: the field definition area 114 and the database table 116. You define each database field in the field definition area, which includes the top half of the Database Design dialog box. The entire database table, including all defined fields, is displayed in the database table area. As you define and add fields, in the field definition area, they appear in the table below. You can use the database table area to not only view the fields as they are created, but to select fields to modify or delete.

Use the following procedure to add a field. In the Field Name box, type the name of the field. In the Length box, type the maximum length of the field, in characters. In the Decimal box, type the number of decimal places used in this field or leave the value at zero for no decimal places. From the Field Type box, choose the type of data this field contains. Listed below, in Table 7, are the field type and the kind of data the field would contain. ______________________________________ Database Field Types Type         Description of Contents ______________________________________ Character    Alphanumeric data; e.g. name, address, city state, phone number, 9-digit zip codes, etc. String       A sequence of positive (nonnegative) integers. Integer      Numeric data only; e.g. 5-digit zip codes, height, weight. Long         Text that is variable in length but too long to be stored in a character field. Can contain alphanumeric characters, as well as line breaks, tabs, and other print control characters. Auto Increment A numeric value that increments with each record in the database. Logical      Date; e.g. initiation date, Date         expiration date Currency     Monetary amounts. Formatted to contain up to 6 decimal places and a monetary symbol; e.g. balance due, monthly payment Image        Live video image of cardholder as captured by the system. ______________________________________

Select the Not Null check box if you want the field to be a required field. Select the Unique check box if the field's contents will always be unique with every record. Unique fields serve as key fields. Choose the Add a Field button. The field appears in the Database Table. Do one of the following:

Once you create a field, you can modify its description. In the database table, select the field whose definition you want to modify (see FIG. 19 for a sample listing of fields). You select a field by choosing it from a list of defined fields in the database table. You can choose the next field by choosing the Next button. You can choose the previous field by choosing the Previous button. The field becomes highlighted. The field's definition attributes appear in their appropriate boxes in the field definition portion of the dialog box. Make any changes to the field's definition that you like. Choose the Add Field button. The changes now appear in the database table for the selected field. To modify another field, return to Step 1, to add a field, go to "Adding a Field", to delete a field, go to "Deleting a Field", or to exit the Database Design dialog box, choose the Done button.

You can delete any field from the database table. Any data associated with the field will also be deleted. In the database table, select the field you want to delete. You select a field by clicking on it. You can choose the next field by choosing the Next button. You can choose the previous field by choosing the Previous button. The field becomes highlighted. The field's definition attributes appear in their appropriate boxes in the field definition portion of the dialog box. Choose the Delete Field button. The system removes the field from the database table. Do one of the following: to delete another field, return to Step 1, to add a field, go to "Adding a Field", to modify a field, go to "Modifying a Field", or to exit the Database Design dialog box, choose the Done button.

You can delete any unused database file from the system. Choose from the Database menu, choose Delete Database File. The Data Sources dialog box appears, see FIG. 20. Select the database file you want to delete and choose the Delete button.

Once you have created a database file, you may find it necessary to change its structure. You can alter the structure of any existing database file. You can add fields, modify fields, and remove fields. Altering the database consists of choosing the ODBC Data Source, adding a field, modifying a field's attributes, and deleting a field. Before a database can be altered you must specify the database source to be altered. From the Database menu choose Alter Database. The alter Data Source dialog box appears, see FIG. 21. From the ODBC Driver box select the database you want to alter. Choose OK. The Database Design Dialog box appears, see FIG. 22. You can add, modify, or delete a field by selecting the desired field (blank field if adding a field), making the appropriate changes if any, and then pressing the appropriate Add Field, Update Field, or Delete Field button.

If you save the cardholder data to the database each time you capture cardholder data, you can query the database for selected cardholder records. Once the system retrieves the records, you can print the records onto cards, print cardholder reports, and/or delete the records from the database.

To query the database, you access the database Query dialog box. You use the Query dialog box to build a query statement. The query statement states the conditions by which the system selects the records to print. For example, you could build a query statement requesting the records of all card holders whose last name begins with "T" or whose expiration date fell between Aug. 1, 1993 and Aug. 31, 1993. When you query the database, the system searches all of the records for those meeting the conditions you specified in the query statement. The system returns a list of all of the records that it found meeting your conditions. You can then select the specific records for which you want to print a card. To query a database you can build many kinds of query statements; however, to query the database for records to print, you need only build a SELECT statement. The SELECT statement selects records meeting the search conditions you specify as part of the statement. The Query dialog box is designed to simplify the process of building a SELECT statement. You must build your own SELECT statements to meet your needs. Some examples of some SELECT statements are provided. Because your database and printing needs are unique to your site, your SELECT statements will be unique.

A Production Query Dialog Box, see FIG. 23, is used to query the database. The Production Query Dialog Box can be accessed from several locations in the system. For example, from the Production Menu Query Batch Production can be chosen or from the Data Capture Window, the Query button can be selected.

The first step in building a SELECT statement is to become familiar with the tools you will use to build it. All of the tools are located in the Query Dialog Box. The Query Dialog Box contains the text box, labeled Query Statement, in which you build the actual SELECT statement. You create the SELECT statement by selecting the items in the Database Fields, Query Builders, and Attributes sections of the screen and by typing directly in the Query Statement box. When building a SELECT statement, you must use a certain format, or syntax. The format specifies the parts of the statement and the order in which you must place them. This format is shown below:

Below, in Table 8, is described each of the SELECT statement components. ______________________________________ SELECT Statement Components Component     Description ______________________________________ SELECT        Retrieves data from one or more database tables. It uses the database as its input and outputs a list of records (rows) that satisfy the search conditions specified in the WHERE clause. *             Specifies that all records (rows) meeting the search condition specified in the WHERE clause will be retrieved. You can replace the asterisk with the name(s) of a database field (column). The name specified must exist in the database table specified in the FROM clause. If you specify more than one, you must separate them by commas. FROM          Specified the database table for the query. <table name>  The name of the database table, included in the FROM clause. WHERE         Introduces the search conditions that determine which records (rows), from the database specified in the FROM clause, are retrieved. <search condition> Specifies the search conditions by which the system searches the database and retrieves records. When creating the search condition, the following rules apply: .cndot. You can include any database fields listed in the Database Fields box of the Query window. .cndot. You also use the operators represented by buttons under "Attributes" in the Query window. They include: =    Equal to >    Greater than <    Less than >=   Greater than or equal to <=   Less than or equal to !    Not equal to % - .cndot. You must type any values associated with the operators directly into the Query Statement box. ______________________________________

Use the following procedure to build the SELECT statement by which you can query the database for records from which you can print cards in batch mode: each record that meets the search conditions, e.g. first name, last name, membership number, address1, address2. e.g. members, clients, cardholders. name of the database field to which the search conditions are to be applied, choosing operators from the attributes area of the window, and by typing values directly into the box.

Examples of SELECT query statements follow. These examples are for fictitious databases and do not necessarily reflect your own database. begins with "G" SELECT * FROM MEMBERS WHERE lastname=G records from the client database whose initiation date was during 1993

In addition to the basic SELECT statement, you can add functionality to the statement through the use of clauses. A clause is a statement, which performs a specific function in the retrieval process, consisting of a command and its parameters. You can add clauses to your SELECT statement to perform the following functions:

After you have built your SELECT statement, you can query the database for the records meeting the search criteria you specified in the SELECT statement. Choose OK. After a few moments, the system returns the database records meeting your criteria and displays them in the Data Capture window, see FIG. 24 which illustrates a Data Capture window labeled Testscrn, displaying a retrieved card record. You can view, modify, delete and print cards from the individual cardholder records. Retrieved cardholder records are displayed one at a time. The records are arranged in ascending numeric or alphabetic order, depending on the records' key field, or the field you selected for the ORDER BY statement. The Data Capture window contains command buttons that allows you to scroll through the retrieved records, one at a time.

The FIRST button displays the 1st of the retrieved records. NEXT displays the following record of those retrieved. LAST displays the last of the retrieved records. PREV displays the previous record of those retrieved. Each of the cardholder records retrieved can be printed by selecting the PRINT button while the cardholder record is displayed. CLEAR is used to remove a record from the Data Capture window. Press CANCEL to return to the main application window. Press UPDATE to update a cardholder record. Press DELETE to delete a cardholder record. Press INSERT to insert a cardholder record. Press QUERY to query cardholder records.

The system offers you the ability to create your own card designs. In addition, the system includes some card design templates that you can use as is, or as a basis for your own designs. The Card Design module offers the following functions:

Creating a Card Design card will look like when printed on the ImageCard II as you develop it. You can create card designs from scratch or use, as is or modified, any of the template designs provided with the system. You can create multiple card designs and tie each design to a particular data capture screen and database, using the Link module.

Saving a Card Design for modification. The system saves the card design, and all its attributes, to an internal database. You can also retrieve a card design, modify it, and save it under a different name.

Modifying a Card Design select the card design name from a list of existing card designs and it appears in the Card Design window. You can modify an existing card design and save it to a different name to create a new card design.

Importing a Card Design background patterns. The Import dialog box displays a list of files, from which you select the one to import. You cannot overwrite existing card designs using the import function.

Exporting a Card Design file.

Deleting a Card Design not linked to a database field. You can remove links using the Link module, however, before you delete a card design.

You can create card designs from scratch or modify one of the templates provided with the system. Card Design contains the following basic functions:

Select Card Background When you select a card background, the selected background appears in the card design window.

Define Selected Field field, static text fields, bar code fields, image fields, bitmap fields, and solid fields. For each field, depending on its type, you can define such attributes as size, location, font, and color.

Delete Selected Field provided it is not linked to a database field. If it is linked to a database field, you must remove the link before deleting it.

Test Print Card Design idea of what it will really look like.

Save Card Design the assigned name to retrieve the card design for modification, as well as creating a link to the corresponding database fields.

The following procedure is used to access the Card Design module:

Choose New Card from the Cards menu. card and check the portrait box if the card is to be portrait orientation. Choose OK. The Card Design window appears, see FIG. 26. The Card Design window represents an actual plastic card. It is in this WYSIWYG environment that you create the design for your card. The Card Design window contains rulers to assist you in aligning the card components, or card fields. The Card Design window utilizes its own menu.

The first step in creating a card design is to select the card background, if you wish to use one. You can choose from three different kinds of card backgrounds:

Background Bitmap When you select bitmap, an Open dialog box, from which you select the desired bitmap file, appears.

Background Pattern background. When you select Background Color, . . .

Background Solid Color Background Solid Color, a color palette window, from which you can choose an existing color or create a customized color, opens.

To add a background to your card design choose Select Card Background for the Card Design menu. The Card Background dialog box appears, see FIG. 27.

To select a background bitmap, from the Card Background dialog box, select the Background Bitmap check box. If you want the bitmap to appear in a tiled pattern, select the Background Pattern option. Choose OK. The Open dialog box appears, see FIG. 28. Select the bitmap file to use as the card background. Choose OK. The Card Design window appears with the selected bitmap file as the card background.

To Select a background solid color perform the following steps: From the Card Background dialog box, select the Background Color check box. Choose OK. The Color dialog box appears, see FIG. 29. You can either select a basic color to use as the background or you can create a custom color.

To select a basic color background: From the Basic Colors group, select the color you would like to use as the card background. Choose OK.

The color palette contains 48 different colors from which you can choose. If those colors are not satisfactory, you have the capability of customizing your own color by performing the following steps: From the Color dialog box, choose Define Custom Color. The Color dialog box expands to include the customize color portion of the Color dialog box, see FIG. 30.

The Color/Solid box, located in the lower left corner of the dialog box, displays the "current" and "pure" colors. The current color appears on the Color side of the Color/Solid box, while the pure color that is closest to the current color (as determined by your device driver) appears in the Solid side of the box. When the current color and pure color do not match exactly, the current color is dithered, or displayed as a patterned mixture of two colors. Dithering is simply the way Windows displays colors. The true color will appear on your card's background. The current color's Hue or pure color, Saturation or difference from gray, and Luminosity or closeness to black or white is displayed in the appropriately marked boxes. A pointer 118 marks shade currently in use or luminosity. A pointer 120 marks current color which is represented by Hue and Saturation values. A shade bar 122 displays shades of current pigment.

To display a customized color in the Color/Solid box, do any of the following: display the same color in the Color side. drag the pointer through the table to display the colors over which it passes. the pointer up and down on the bar to display the color's shading.

Choose Add to Custom Colors to transfer the customized color to a box in the Custom Colors portion of the Color dialog box. Select the customized color you want to use as the card's background. Choose OK.

Card fields form the basis of all card designs. You can create and place a card field anywhere on the card and size it to any dimension. You define each card field by type, which determines the field's contents. You can create the following types of card fields:

Data Text cardholder database or directly from the data capture screen. You define a data text field's size, location, justification, font, and color. For each data text field you create in the card design, you must define a corresponding field in the database definition, if you plan to save the data to a database. You specify the source of this data when you create a link definition.

Static Text design. When you designate a field as a static text field, the system asks you to enter the text to appear on each card. You can then define the static text field's size, location, justification, font, and color.

Bar code designate a field as a bar code field, the system asks you to specify the type, or brand, of bar code to use, as well as whether or not to use a checksum. You must provide sample bar code data. If you create a bar code field in the card design, you must define a corresponding bar code field in the database definition, if you plan to save the bar code data to a database, and the Link Definition. you create in the card design, you must define a corresponding image field in the database definition, if you plan to save the image data to a database, and the Link Definition. organization's logo. When you designate a field as a bitmap field, the system asks you to specify the bitmap file to import. You can define a bitmap field's size and location. You can also specify that the bitmap be tiled or repeated.

Each type of card field requires a slightly different procedure. The procedures that are common to all field types, such as creating, sizing, and moving the field, will be discussed first.

The Card Design module of the system offers considerable flexibility in designing cards. Through the use of card fields, you can position data, static text, bar codes, images, and graphics anywhere on a card and size the card fields to any dimensions.

The card is designed in the Card Design window, see FIG. 26. Rulers are displayed at the left and top of the Card Design window to help you place the card fields. The title bar of the Card Design window displays the coordinates of the origin point and the size of the field. All card fields are linked to a database and/or data capture field. The link provides the connection that allows data to pass between the card design and database or data capture screen. You can link the card design fields with the database fields after you have established the card design and defined the database.

The system of the present invention provides an alternative method of creating a card design. Instead of creating the card design and defining the database first, you can define the database and create the link first. Then, in Card Design, you select an option that allows you to display a list of the link fields. By "dropping and dragging" the link fields from the list to the Card Design window, you automatically create the card fields and their link in a single step. Once you place the linked fields on the card, you can define their appearance.

This section provides both sets of procedures for placing the card fields: any links established. Once you place the card fields on the card, and save the card design, you can establish the links to the card fields in the Link module. established the links to the database fields.

The procedures to place unlinked card fields on the card will now be discussed. Once defined, you must link the card fields with the database fields using the Link module.

1. Position the pointer, within the Card Design window, at the point at which you want the top left corner of the card field to be located. This is the origin point. box appears. The diagonal corners of the box extend from the origin point to the cursor.

You can resize the card field later if you are not satisfied with its size, or if you need to change the size based on the field's attributes. The field appears as a box 124 in the Card Design Window, as shown in FIG. 31.

Before you can move, size, define, or delete a field, you must select it. Move the pointer to within the card field's boundaries. Click the left mouse button. Small black boxes, or handles, appear at the corners of the card field 124, as shown in FIG. 32.

You can change a card field's size, once you've placed it on the card.

You can change a card field's position on the card after you've placed it.

If your card has overlapping fields, you can move the fields "vertically" from the front to the back and vice versa. To move a field to the back, choose the Move to Front command from the Card Design menu. To move a field to the front, choose the Move to Back command from the Card Design menu.

Once you have placed a card field, you must define it. You can move and size any card field, even after you've defined it. In fact, you may find it necessary to resize or move a card field after you've defined its field type and/or font. You can define a card field to be one of five types:

Before you define a card field you must complete the following steps: section. section. Field Types dialog box appears, see FIG. 33. Then finish defining the field as discussed below.

Defining Data text card fields will now be discussed. Data text card fields contain cardholder data. This data originates from the cardholder data stored in your database or may come directly from the data capture screen as entered by the operator. Either way, you do not need to specify the source until you create the links to the card fields using the Link module. When you define a data text field in card design, you merely specify the font and color of the data text as it will be printed on the card. earlier. When you choose OK on the Field Type dialog box, the Font dialog box appears, see FIG. 34. to appear on the card. data text to appear on the card. text to appear on the card. data text to appear on the card. appear on the card.

The Color dialog box appears, see FIG. 29. You can either select a basic color to use as the card field background or you can create a custom color.

Selecting a Basic Color Card Field Background the card field background.

Creating a Custom Color Card Field Background The color palette contains 48 different colors from which you can choose. If those colors are not satisfactory, you have the capability of customizing your own color. box expands to include the customize color portion of the Color dialog box. The Color/Solid box, located in the lower left corner of the dialog box, displays the "current" and "pure" colors. The current color appears on the Color side of the Color/Solid box, while the pure color that is closest to the current color (as determined by your device driver) appears in the Solid side of the box. When the current color and pure color do not match exactly, the current color is dithered, or displayed as a patterned mixture of two colors. Dithering is simply the way Windows displays colors. The true color will appear on your card's background. following: display the same color in the Color side. drag the pointer through the table to display the colors over which it passes. the pointer up and down on the bar to display the color's shading. the Custom Colors portion of the Color dialog box. the field name in the specified font attributes.

Static text is any text, up to 40 characters, that you specify to appear on every card using this card design. When you define a field as a static text field, the system asks you to enter the text that will appear on every card. Once you have defined the static text, you can specify the font and color in which the text will appear on the card. earlier. When you choose OK on the Field Type dialog box, the Static Text dialog box appears, see FIG. 35. attributes, for the static text field that you use for data text field (see the preceding section). The Color dialog box appears. for the static text field that you use for data text field (see the preceding section). When you choose OK on the Color dialog box, the static text field appears in the Card Design window as you defined it.

You define a bar code field to contain bar codes. When you define a bar code card field, the system asks you to specify the type of bar code to use. The system supports 15 types of bar codes. You can also specify that the bar code field utilizes a checksum. After selecting the type of bar code to use, the system asks you to enter bar code sample data. earlier. When you choose OK on the Field Type dialog box, the Bar Code dialog box appears, see FIG. 36. will contain. check box.

Defining an Image Card Field

You define an image field to contain the captured cardholder image. If you define an image field for the card you must also define an image field in the Link Definition. Doing this will place an image field on the Data Capture window. If you plan to save the image, along with cardholder data, to the database, you must also define a corresponding image field in the database definition. You designate a card field as an image field. When you choose OK on the Field Type dialog box, the Card Design window reappears with a sample image displayed within the image field.

Defining a Bitmap Card Field

You can define a bitmap card field in which you can import a bitmap graphic file, such as your organization's logo. The bitmap must be in either a .BMP or .DIP format. When you specify a card field as a bitmap field, the Open dialog box, from which you select the bitmap file, appears. described earlier. When you choose OK on the Field Type dialog box, the Open dialog box appears (see FIG. 28). resides.

You can delete any card field that you have created. If you attempt, however, to delete a card field that has been linked to a database field, you must first remove the link in the link module. earlier in this section. Field dialog box appears, asking that you verify deleting the card field.

You can test print the card design to the printer at the time while creating it. This feature is very useful, because colors, such as card background color, field foreground and background colors may look differently when printed on a card than what appears on your monitor. In addition, you can get a much better feel for what the card looks like when you actually see it.

From the Card Design menu, choose Test Print Card.

The system prints the card, in its current state of development, on the printer.

You should always save your card design periodically as you're creating it, in the event of a power outage or computer malfunction. The system saves the card design under the name you assigned it when you choose the Card Design command from the Card's menu. In addition to saving a card design to its assigned name, you can also save a card design to a different name. This feature is useful if you want to create a new card design based on an existing card design, such as one of the system-supplied card templates. You can save the card design at any time while you're creating it. dialog box appears.

You can save any card design that you are working on to a different name. This feature is useful if you want to use a card design as the basis for a new design. You can open the original card design, make any desired changes, and save the new design to another name, leaving the original design intact. You can save the card design to a different name by choosing the Save As entry. A Save As dialog appears, see FIG. 38. Enter the new name in the Save Card Design As box.

Once you create and save a card design, you can edit it at any time. You use the edit feature to make changes to one of your existing designs. You can also create new card designs by retrieving an existing design, including the system card design templates; make any changes you want; and save the design to a new name. Before you can edit a card design, you must retrieve the card design. appears, see FIG. 39. appears.

You can add, modify, or delete any card fields on the card design. Use the procedures from the previous section, Creating a Card Design, to modify the current card design.

You can delete any card design you are not using. Deleting unused card designs will save disk space. Before you delete a card design, you must remove all links associated with the card fields on the design. The system will not let you delete a card design containing fields that are linked to database fields. Before you can edit a card design, you must retrieve the card design. appears, see FIG. 40. from the system.

The system saves card designs as a record within an internal database. It is not a file within itself. Therefore, you cannot transport card designs among stand alone image capture stations by copying a file to diskette. You can transport card designs by diskette, however, using the Import/Export Card Design function. When you choose this function, you select a card design to import or export. If exporting, the system removes the card design from the internal database and saves it to the specified destination. Likewise, if importing a card design, the system reads the exported card design from the file into the internal database structure. From the Cards menu choose Import/Export. The Card Design Import/Export dialog box appears, see FIG. 41. From the Specify First box, choose the function you want to perform. A message box asking you to specify the card design to import or export appears. Choose OK. From the Drives box, select the drive on which the card design file to import or export resides. From the Directories box, select the directory in which the card design file resides. From the Card Records box, select the card designs to import or export. Choose OK. The system imports or exports the card design as specified.

The link module is used to create the data capture screen into which the operator will type textual data for a cardholder into fields and captures the cardholder's picture. The card design itself can be used in generating the data capture window, or the data capture window can be created from scratch. The data capture window fields have a range of field attributes available to build a robust capture facility for producing cards, as well as populating the database. Each data capture window assumes the name of the link to which it is associated; when the operator accesses data capture they must specify the name of the link to use.

The operator selects the SELECT LINK menu item from the LINK menu of the main screen. A Select Link Record Dialog box appears (see FIG. 20). The operator selects the name of the link to be used in the Link Name Box and the associated Data Capture Window appears. The Data Capture Window assumes the same name as the link. Shown in FIGS. 42 and 43 are sample Data Capture Windows. FIG. 42 is a sample Data Capture Screen where cardholder data is not saved to a database. Three command buttons are present: Print, Clear, and Cancel. FIG. 43 is a sample of a Data Capture Screen where cardholder data is saved to a database. Command buttons are present to retrieve and display cardholder records as follows:

The Data Capture Window contains predefined boxes or areas into which cardholder data is entered. The Data Capture Window uses two types of boxes, text and image. In the examples shown there are a plurality of text boxes and one image box. Cardholder text data is entered in the text boxes and image data is entered in the image box, typically this will be the cardholder's image or picture. Labels precede the boxes where data is to be entered. The labels for the text boxes indicate the specific cardholder data to be entered in each box. The label for the image box indicates that it is the image box.

Data capture includes user input from a keyboard and a capture device(s) for both card production and/or populating the database, selecting a specific record from the database, displaying the information to the user for modification and/or card production, and capturing from other sources. A split screen displays the data entry in one section and its actual representation on a card layout in another section. Both sections are dynamically updated whenever the user enters a keystroke.

An image capture screen (see FIG. 44) is displayed when the cursor is moved (use of pointer device such as a mouse or by tabbing to the image field) to the image field. A live video image can be displayed. The image can be frozen by the operator; e.g., pressing the left mouse button or unfrozen by pressing the left mouse button again. The Image Capture Window includes a focus box which represents the area of the live image which will be captured. The camera should be adjusted until the image appears clearly inside the focus box. To capture the frozen image, the operator chooses the OK dialog box. The captured image then appears with the text data on the Data Capture Window (see FIG. 45).

The operator can view the cardholder's card on the display screen before printing. An actual image of the card as it will be printed appears only after the operator chooses the print button. To make the card visible, the operator moves the cursor (pointer) to the bottom of the Data Capture Window at which time the single arrow pointer turns into a double arrow pointer. Holding down the left mouse button the operator then drags the bottom border of the Data Capture Window up revealing at the bottom of the screen an image of the card as it will be printed (see FIG. 46).

To save cardholder data captured on the Data Capture Window to a database, the Insert button is pressed (if the site does not save data to a database, the Insert button will not be displayed). The Data Capture Window is cleared by pressing the Clear button. To cancel the data captured and return to the main window, the Cancel button is pressed. To print the cardholder's card, the Print button is pressed. The operator will then be asked if they wish to print the card and if the operator answers yes, the card will be printed.

Data capture can proceed in either the single mode or batch mode. The appropriate mode is selected by use of the Production sub-menu on the main screen. In the single mode the user will type cardholder information into the text boxes. Some text boxes require that data be entered. If the user does not enter data, the system will not let the user proceed. Some of the text data entered may not be printed on a card but saved to an associated database and vice versa. If the user selected query batch mode from the production sub-menu, the Query Dialog box appears. A query for the selected database file can be generated by selecting the appropriate icons and entering variable information as requested by the Query Dialog box. For example to select all records from a database named CLIENTS, the operator would select the SELECT, *, and FROM icons and then enter the file name, CLIENTS.

Link definitions form an integral part of the system. You must create a link definition for each card design you use, even if you do not save cardholder data to the database. The link definition also provides the mechanism by which the operator captures cardholder data and images--the Data Capture window. In addition, the link definition ensures that the data input by the operator prints in the proper card fields. It also ensures that the system saves the same data to the corresponding database fields. You assign a badge name to each link definition you create. Before accessing Single Mode production, the system operator must choose a badge name to use. When the operator chooses a badge name, the system displays the Data Capture window created by the link definition associated with the selected badge name. When you create a new link definition, you use the AutoLink feature to create a new link definition. When you choose the card design for which you want to create a link definition, the system offers the option to use AutoLink. AutoLink automatically creates a link definition for the card design. It adds a field to the link definition for each data text, bar code, and image field on your card design. For each card field it adds to the link definition, it places defaults in the link definition. You only need to change the defaults for each card field it adds and manually link each field to its corresponding database field.

The Link module utilizes four functions: use the AutoLink feature to create the new link definition initially. You must then modify the default values AutoLink places in the link definition for each card field it adds. changes to the card design. For example, if you want to remove a field from a card design, you must first use this function to remove the field from the link definition. If you add a new field to the card design, you must use this function to add that field to the link definition. delete an entire link definition only when you want to remove a card design from the system entirely. from one system to another. Because a link definition consists of several files, you cannot use the standard DOS or Windows copy functions. The Import function places the Link Definition's files in their correct residence in the system. Likewise, the Export function retrieves the various files associated with the link definition from their respective residences.

For each new card design that you create and use in the system, you must establish a new link definition, even if you do not save cardholder data. The first step in creating a new link definition is to choose the card design. When you choose the card design, you have the option to use AutoLink. AutoLink automatically establishes a link for each data text, bar code, and image field on the card design. AutoLink enters default values in the Link Definition dialog box text boxes for each of these field types. Depending on the complexity of your link, you may need only modify the default values in order to complete the link definition. You assign a badge name to the link definition. When the operator wants to produce a card, they must first choose the name of a badge to use. By choosing a badge, the operator, through the link definition, also selects the Data Capture window to use, the card design on which to print the data and image, and the database to which the system saves the cardholder's data and image. If your site saves cardholder data, and you have already established your database tables, you must also specify the database schema and database to which the system saves the cardholder data for this link. Later, as you modify the default values input by AutoLink, you must specify the database field to which the system saves the values, as input by the operator, for each Data Capture window text and image box. You create a link in the Link Definition dialog box. The Link Definition dialog box contains fields for defining data text, image, and composite field links. Creating a link definition involves some or all of the following steps, each of which is discussed in the following sections: design. The AutoLink feature automatically establishes links for each data text, bar code, and image field in the card design. and specific database to which you want to link the card design fields. displays link information on a field-by-field basis. You can list the fields that have been added to the link definition to check to see which fields have been added to the link definition, as well as choose the field for which you want to display the link information. field-by-field basis. The field for which the Link Definition dialog box displays link information is the current field. There are several methods by which you can change the current field. define links for text fields, image fields, and composite fields. You define links for each differently. This section includes procedures for defining links for each of these types of fields.

AutoLinking the Card Design

Use the following procedures to create a new link definition: appears: which you want to establish a link. places the name of the card design in the Badge Name box. It adds the data text and image fields from the card design to the Card Design Field Links box. For each card field listed in the box, it places default values in the Field Type, Field Name, Field Prompt String, Field Width, and Field Capture Order boxes. After AutoLink creates the initial links to card design fields, the Link Definition dialog box is filled with certain information.

Linking the Database

If your site saves cardholder data and you want the system to update the database with the cardholder data, you must create a link definition that links the Data Capture window fields with the database fields. database tables before establishing links. Refer to Section 6, Database Management. want to save the cardholder data associated with the card design.

Listing the Link Definition Fields

You can easily verify that card fields have been added to the link definition by listing them. The list only displays those card design fields that have been added to the link definition. In addition, you can use the Field Name list to select the current link definition field of those linked fields that were created manually, as well as card design fields. They do not show up in Card Design Field Links box. AutoLink, to the link definition appears, see FIG. 49. link definition field, choose Cancel. field or select the desired field and choose OK.

Changing the Current Field

The Link Definition dialog box displays the link values for one card field at a time. If the field originates in the card design, the "current" field, or the field for which the Link Definition dialog box displays the link values, it is highlighted in the Card Design Field Links box. The name of the current field also appears in the Field Name box. If you create a field manually, however, it is easier to select the current field by selecting from the Field Names box.

To change the current field of fields that originate in the card design, do either of the following: button.

To change the current field of fields that were created manually, as well as AutoLinked fields:

Defining a Field

You create a link definition on a field-by-field basis. Using AutoLink, the system establishes a link to each data text, bar code, and image field originating on the card design. It places default information in some of the text boxes found on the Link Definition window. You must edit the default entries, as well as specify other information about the link field.

You define links for fields in the link definition by field type. In fact, if defining a link for a field manually, you must specify the type of field, for which you are defining the link, first. You can define links for three types of fields: operator enters by typing it into a text box on the Data Capture window. Bar code fields are considered text fields in the link definition. image. definition. A composite field is a field consisting of two or more database fields that prints as a single field on the card design. A typical use of a composite field might be to print a cardholder's first and last name, which is stored in the database, as a single field on the card. Because the procedures for linking each of these three field types is different, the following sections describe the procedures for each.

Defining a Text Field Link

AutoLink placed default values in some of the Link Definition boxes for each data text card design field. You need to modify the values for each linked data text card field to reflect the attributes of the individual field. Define bar code fields as text fields. buttons, for which you want to define a link. default values inserted by AutoLink and entering values in the appropriate boxes. text and bar code fields and describes each. ______________________________________ Link Definition Text Box Description of Entry ______________________________________ Field Type        Required. Leave as "Text." Field Name        Required. Displays the name of the current field. AutoLink places the card design field name in this box. If not AutoLinked, you must type the name of the link definition field. Field Equation String Type a mathematical expression to be executed on the data input to this field when saved to the database or printed on the card. Use this feature primarily for bar code fields. Use the following mathematical operators to create your mathematical equation strings. +    addition -    subtraction >    greater than <    less than =    equal to !=   not equal to <>   not equal to Field Prompt String Required. AutoLink places "Enter" and the card design field name in this box. You can edit this entry. If not AutoLinked, you must enter the text to appear as a prompt for this field in the Data Capture window. Field Validation String Create a mask describing the field's contents. The operator's input in the Data Capture window field must match the mask created in this text box. This feature is useful for use with bar code fields. Create the mask using the following characters to designate the type of input required. 9    numeric input A    uppercase alpha input a    lowercase alpha input X    uppercase alphanumeric input x   lowercase alphanumeric input In addition, you can use any other punctuation desired. To create a field validation string for social security numbers, for example, you would enter: 999-99-9999 Field Width       Required. Specify the length of the field in number of characters. The width you specify must fit within the card field boundaries, considering the physical length of the field, as well as the point size and font used, on the card design. The system displays an error massage if the field width would exceed the card design field area. Field Capture Order Required. Specify the position of the field in the Data Capture window in relation to the other link fields. Linked Database Field Select the name of the database field to which you want to link this card design field. The system will save data input to this field in the database. Mandatory Entry Field Check this box if you want the field to be a required field on the Data Capture window. The system displays an error message if the operator attempts to tab past this field or print of save the card without making an entry. Changeable Field  Check this box to make the field modifiable. Save in Audit Log Check this box if you want all activity involving this field to be logged to the Audit Log. 3.    Do one of the following: .cndot. To define link for another text field, go back to step 1 of this section. .cndot. To define a link for an image field, go to "Defining an Image Field Link." .cndot. To define a composite field, go to the following section, "Defining a Composite Field Link." .cndot. To complete the link definition for this card design, go to "Saving the Link Definition" later in this section. ______________________________________

Defining an Image Field Link

AutoLink placed default values in some of the Link Definition boxes for each image card design field (there is probably only one.). You can modify the values for each linked image card field to define the image that the field will contain. for which you want to define a link. default values inserted by AutoLink and entering values in the appropriate boxes. The following Table 10 lists each link definition box that applies to image fields and describes each. ______________________________________ Link Definition Text Box Description ______________________________________ Field Type         Required. Leave as "Image." Field Name         Required. Displays the name of the current field. AutoLink places the card design field name in this box. If not AutoLinked, you must type the name of the link definition field. Field Prompt String Required. AutoLink places "Enter" and the card design field name in this box. You can edit this entry. If not AutoLinked, you must enter the text to appear as a prompt for this field in the Data Capture window. Field Capture Order Required. Specify the position of the field in the Data Capture window in relation to the other link fields. Linked Database Field Select the name of the database field to which you want to link this image field, if you plan to save cardholder images to the database. The system will save the captured image to this field in the database. Field Image Type   At this time, JPEG (Joint Photographic Experts Group) is the only supported image type to which the system outputs. JPEG is a type of image file format that uses a lossy compression technique to achieve high compression ratios. Field Compression Type Specify the resizing algorithm to use when compressing the image: Standard Resizes by determining the average pixel values. This method produces satisfactor y output at a faster output than linear resizing. Linear Calculates resizing by interpolati ng pixel values. It sacrifices speed quality. Image Capture Device At this time, "Camera" is the only supported capture device. Mandatory Entry Field Check this box if you want the field to be a required field on the Data Capture window. The system displays an error message if the operator attempts to tab past this field or print or save the card without making an entry. Changeable Field   Check this box to make the field modifiable. Save in Audit Log  Check this box if you want all activity involving this field to be logged to the Audit Log. ______________________________________ Link Definition" later in this section.

Defining a Composite Field Link

There may be times when you want to combine one or more database fields into a single field on the card. For example, you may store the cardholder's first and last names as separate fields on the database, but want to place them as a single field on the card. To do this you must create a composite field. A composite field is a field that contains two or more fields. When you build a composite field, you specify each component field to be part of the composite field in the order in which it is to appear when printed on the card. In addition, you can specify that the system perform any of the following on any of the component fields. field

The FIG. 50 illustrates how composite fields work. Before you create a composite field in the link definition, you must create a field on the card design for the composite field. You should not create fields on the card design for the composite field components. You do not want to print the composite field components as separate fields. If you want to create a composite field for the example illustrated above, for instance, you would create the Name field on the card design; you would not create a FirstName field or LastName field on the card.

In the Link Definition dialog box, you must manually create links for each of the components of the composite field. AutoLink does not create links for fields that are not on the card design. You link each component field to its respective database field. You define links for each component of the composite field so they appear in the Data Capture window. Therefore, using the above example, you would manually create links for the FirstName and LastName fields. You would link these fields to their respective database fields. You would not link these fields to the card design.

You must also remove the field that you intend to use as the composite field from the Link Definition. You must redefine this field as a composite field type.

Lastly, you define the composite field in the Composite Field Definition dialog box. In this dialog box you specify each component of the composite field, in the order in which their values are to appear on the printed card. You can then apply padding, stripping, trimming, and user-defined text strings to the components, as necessary. For example, you would define the Name composite field by choosing the LastName field first, followed by the FirstName field. You would then specify that the system trims and strips both components. You would need to add a user-defined text string of a comma and space to the LastName field.

Using the following procedure to create a composite field in your link definition: Refer to Section 7, Card Design. link definition for this card design, choose Edit Badge. want to define a composite field. A message box asking if you want to use AutoLink appears. the card design. The list of data text and image fields on the card design appears in the Card Design Field Links box. The name of the composite field will appear in this list. of the fields on the card except for the card design field that will become the composite field.

Creating Links for the Composite Field Components

Using the following procedures to create the components of the composite field: displays "Text." you want the composite field component to be linked. Text Field, to continue to define the link for this field. the Add button. if the field for which you have created the link has been added to the link definition, choose the List button. composite field, you are ready to define the composite field itself.

Defining the Composite Field

Use the following procedures to define the composite field itself: current field. removing it from the link definition. Definition dialog box appears, see FIG. 51.

All of the available text fields that have been defined for the Link Definition appear in the Available Fields box. To the right of the Available Fields box is the Composite Description box. This box will list the composite field components in the order in which you add them to the composite field. This is the order in which they will appear on the card when printed. The highlighted field in the Composite Description box is the current field.

Specifying User-Defined Text Strings

In addition to the composite field components, you can specify text strings of up to 10 characters to print on the card at any position within the composite field. You must place these text strings into the composite field in the position in which they are to appear in the composite field on the card. For instance, to create the Name composite field in the previous example, you would want to place a text string consisting of a comma and space between the LastName field and the FirstName field. You must specify the text string after you add the LastName field, but before you add the FirstName field. Therefore, you should plan and create any user-defined text strings before you add fields to the composite field. to add to the composite field.

Adding the Composite Field Components

You must specify each component of the composite field, in the order in which it is to be printed, within the composite field, on the card. As you specify each component, its name appears in the Component Description box. You can remove a component from the Component Description box. user-defined text string. the components in the order in which they are to appear within the composite field on the card. For example, if the composite field is Name and you want its value to appear on the card with the cardholder's first name first, followed by a comma, and the last name, you would double-click on the FirstName field first, followed by the user-defined string and the LastName. field's component field's values.

Manipulating the Component Field's Value

For each component in the composite field, you can choose to have the system pad, strip, and trim its value as it relates to the database. These options do not apply to the component field's value when printed on the card. The following Table 11 describes these three options. ______________________________________ Option      Description ______________________________________ Padding     Pads the value with a specified character when stored to the database. Stripping   Removes up to 10 specific characters from the field's value when retrieved from the database. You specify the characters to remove. Trimming    Removes non-printable characters and spaces from either side of the field's value. ______________________________________ for which you want to manipulate its value. Enter Pad Character box. the Enter Number Times box. characters. want The system to remove from the field's value when it retrieves the value from the database. want to manipulate.

Completing the Composite Field Definition

After defining the composite field components, you must complete the definition of the composite field in the Link Definition dialog box. which you want to link the composite field. section. Image Field Link." Link Definition" later in this section.

Saving the Link Definition

The last step to building a link definition is to save it: a message box indicating what is missing. It also highlights the particular text box on the Link Definition dialog box for which data is missing or in error.

Edit Badge

Once you build and save a link definition, you can edit it. The same procedures apply to editing a link definition that apply to creating one. You do not, however, have to save each link to a field after making changes to its link definition. You can add and delete a field's link from the link definition. If you plan to make changes to a link definition that involve the database or the card design, it is recommended that you make the necessary changes to the database table and card design before you edit the link definition. Editing a link definition involves the following procedures:

Choosing the Badge to Edit

Before you can edit a link definition, you must select the badge. A badge name is associated with each link definition. Therefore, by selecting the badge name, you select the link definition to which it is associated. that you want to edit. definition associated with the badge.

Adding a Field to the Link Definition

You can add a field to the link definition. Before you add the field, however, you must add the field to the card design, if you will want the field's value to be printed on the card. Refer to Card Design. If you want the field's value to be saved to the database with the cardholder's record, you must add the field to the database definition. Refer to Database Management. pull-down list of field types available. definition and displays default values for the new field in the appropriate text boxes. composite field, you must add the fields that are to become the composite field components. boxes in the Link Definition dialog box, or Composite dialog box. For complete procedures and information regarding link definitions for these field types, refer to New Badge earlier in this section. field, choose the Add button. If the new field is linked to a field on the card design, the field name will appear in the Card Design Field Links box. If the new field is linked to the database, the new field name will appear in the Field Names dialog box. above. section, Editing a Field in the Link Definition. the Link Definition.

Editing a Field in the Link Definition

Once you have added a field to the link definition, you can edit it. If you make changes to a field's link definition and it is linked to a card design field, make sure you have made the appropriate changes to the card design before you change the link definition. If you make changes to a field's link definition and it is linked to a database field, make sure you make the appropriate changes to the database design before you change the link definition.

Choosing the Link Definition Field to Edit

You can edit any information in the Link Definition dialog box. You edit the link definition on a field-by-field basis, like how you build the link definition. Therefore, in order to edit link definition information, you must make sure that the field for which you want to edit the link definition is the current field. You can use two methods to display the current field link information. you can only choose link information for fields that originate on the card design. Link Definition dialog box allows you to select any linked fields as the current field.

Choosing the Current Field from the Linked Card Design Fields

You can quickly display the link information for any linked card design field: the Link Definition dialog box. This is the current field.

Choosing the Current Field from All Linked Fields

Although not as fast, this option enables you to select any linked field in the link definition. Because your link definition may contain linked fields that are not on the card design, you cannot select the current field using the previous method. You can use one of two methods to select these fields: choose the Previous button to display the previous field in the link definition.

or that have been linked in the link definition. Link Definition dialog box. selected field. appears.

Editing the Link Definition Field's Data box, refer to Defining a Field earlier in this section. Link Definition. the Link Definition.

Deleting a Field from the Link Definition

You can delete any field from the link definition. However, before you delete the field from the link definition, you should be aware that if the field is linked to the card design, the field's value will no longer print on the card. If the field is linked to the database, it's value will not be stored to the database. In fact, by removing the field from the link definition, the field will no longer appear as a text or image box in the Data Capture window.

Choosing the Link Definition Field to Delete

You can edit any information in the Link Definition dialog box. You edit the link definition on a field-by-field basis, like when you build the link definition. Therefore, in order to edit link definition information, you must make sure that the field for which you want to edit the link definition is the current field. You can use two methods to display the current field link information: you can only choose link information for fields that originate on the card design. Link Definition dialog box allows you to select any linked fields as the current field.

Displaying a Linked Card Design Field as the Current Field

You can quickly display the link information for any linked card design field: the Link Definition dialog box. This is the current field.

Displaying any Linked Field as the Current Field

Although not as fast, this option enables you to select any linked field in the link definition. Because your link definition may contain linked fields that are not on the card design, you cannot select the current field using the previous method. You can use one of two methods to select these fields: or choose the Previous button to display the previous field in the link definition.

or that have been linked in the link definition. Link Definition dialog box. selected field. appears.

Removing the Field

Once the field you want to delete from the link definition is displayed in the Link Definition dialog box, you can delete it by: appear in the Card Design Fields Link box. The field's name, however, will not appear in the Field Names dialog box, which you can access by choosing the List button in the Link Definition dialog box.

Deleting a Link

You can delete any link from the system. However, if you delete a link, remember that you also loose the Data Capture screen and its links to the database and card design fields that are associated with the link. want to delete.

Importing/Exporting a Badge

When you create a link, the system saves the information associated with the link in an internal database. Because the link definition becomes part of that database's structure, you cannot simply copy the link definition to a diskette to transport it to another system. Therefore, you must export the link definition to a destination and import it from a specified source.

Exporting Badges reside. want to export. different drive or directory, change those in the appropriate dialog box lists before selecting the badge records to export. drive and directory.

You must use the import function to retrieve the badge records.

Importing Badge Records

You must import any badge records that have been exported. import reside. records to be imported reside. structure.

Activity Management

The system provides a log that serve as a useful production management tool: analyzing operator production data.

Monitoring Production

If your site outputs a large volume of cards and operator production rates are important, monitoring system production will be an important consideration. The system provides a tool that allows you to display and/or print production activity. The Audit Log monitors all production activity, including user, module(s) used, date/time, and operation. The Audit Log tracks a maximum of 1,000 entries; when it reaches that limit, new entries overwrite the oldest entries.

You can view and print the log. In addition, you can query the Audit Log for specific entries that meet your search conditions.

Viewing the Audit Log

You can view the current Audit log. FIG. 46.

Querying the Audit Log

To view system activity, you must specify the information that you want to see. You specify this information in a SELECT statement. You build your select statement, using SQL syntax, by choosing from the Query Builders displayed on the Query dialog box, see FIG. 55.

In the Query Statement box, the system places a default SELECT statement. This statement automatically returns all of the possible records showing database fields, users, and operations. You can display this activity by choosing the Query button.

If you want to specify the user, database field, or operation for which you want to report, you must create your own SELECT statement. For more information on SELECT statement syntax, refer to Section 6, Database Management.

SELECT Statement Syntax for Log Query

Use the following syntax to build a basic SELECT statement:

The following Table 12 describes each component of the basic SELECT statement. ______________________________________ Component       Description ______________________________________ SELECT          Use to introduce the SELECT statement. ALL             Specifies that The system retrieves all fields of those records meting the search condition. You can replace the ALL with the name(s) of a database field. If you specify more than one field, separate each with commas. In fact, build a SELECT statement of SELECT ALL to retrieve all production information. WHERE           Introduces the WHERE clause, which states the search conditions. Use only if you want to specify search conditions. <field.sub.-- name> Select one of the listed users or operations to specify the user or activity you want to query. Can by USER if retrieving production information based on one or more users, or OPERATION to query specific production information. <comparison operator> The system uses the comparison operator to compare the field name with the specified value. The operator states the conditions by which the query selects production information. The comparison operators include: =     Equal to < > or = ! Not equal t o >     Greater than <     Less than >=    Greater than or equal to <=    Less than or equal to -     Wild card (one character) %     Wild card (more than one character) <value>         The value, together with the comparison operator, states the condition, by which the query retrieves production information. If the <field.sub.-- name> is PRODUCTION, you will enter a value of one or more specific operations. AND,OR          Use these Boolean operators to build a compound SELECT statement, which specifies multiple conditions, or WHERE clauses, by which you query production data. ( )             Use the parenthesis to group WHERE clauses. Grouping WHERE clauses determines the order in which multiple search conditions are processes. The system processes those conditions enclosed in parenthesis first. ______________________________________

Building Your Basic SELECT Statement

Use the following procedure to build the SELECT statement. Your system administrator will be able to help you if you need assistance. statement to its original form. You can choose the Clear button to clear the Query Statement box and start over. to query production activity from the Database Fields list. Separate multiple fields with commas. specify one or more users to query. specify one or more operations to query. production activity for specific users. Separate multiple users with commas. production activity for specific system functions. Separate multiple operations with commas. to retrieve. Replace the placeholders with a specific time or date. your SELECT statement. SELECT statement. Repeat steps 4 through 6 to add additional search criteria to the SELECT statement.

Printing the Audit Log

Once you display the Audit Log, you can print a copy of it. need to connect to a different printer in Printer Setup.

Clearing the Audit Log

After viewing and printing the Audit Log, you can clear the Audit Log window to create another.

In summary the present invention provides a card creation apparatus and method which can produce a card using any combination of text, photographical images, barcode, and graphics (see FIG. 56). The present invention links database information, video image input from a camera, and user input from an input device such as a keyboard and allows presentation in a Data-Input or Data Capture Screen. Upon editing card holder data on the Data Capture Screen, the database can be accordingly updated. The present invention provides a print preview function wherein the card can be viewed as it will actually appear upon being printed out. As shown in FIG. 58, the present invention monitors its (system activity) so that logs can be obtained based on user, module function, data/time, and/or operation.

There are four primary data structures in the system in addition to the Cardholder data structure(s). These structures include files for the card layout or design, user management/security, link function, and transaction log. The definition of these structures will expand as the system takes on additional functionality.

The cardholder data, also referred to as customer data, is stored and maintained in "open" industry standard formats. Open connectivity is facilitated by industry standards such as that defined by the Microsoft ODBC architecture. As shown in FIG. 59, the customer data may take on any number of standard database formats which support an ODBC compliant Driver (ISAM or SQL) such as:

The customer data might include information such as:

The Users.Dat data structure as shown in FIG. 60 includes information required for user management and security. It basically stores user information to control access to different parts of the system. Information stored in this structure includes:

The Transaction Log data structure as shown in FIG. 61 tracks system activity. Information stored in this structure includes:

The Cards.dat data structure as shown in FIG. 62 stores information which contains card format or layout specifications. The specific data stored in this structure will change as additional functions such as embossing, mag stripe encoding, logic programming, etc. are added to the system. Examples of data stored in this information include:

The Linds.Dat data structure as shown in FIG. 63 includes the list of Badges available for production. The Link structure ties the entire system together. The primary structures that are linked together include: Link to Card Design, Link to Customer Database, and Input to screen format and prompts.

An example of various data structure interactions is shown in FIG. 64. It will be appreciated that the data structures may take on varying configurations and interactions and still be in keeping with the principles of the invention.

The external design of the card creation system 40 is broken into two areas. The areas covered in this section are:

The areas of Internal Design affected by this implementation is discussed in the sections that follow.

Filters provide a method in which third-party developers can extend the functionality of the product. The primary purpose of Filters is to extend functionality without requiring modification of the main product. Examples of filters are custom bar code check digit calculation and data validation. The input for Filters is a Windows Dynamic Link Library (DLL) that is in a predefined format. For example, the entry points of the DLL must be consistent so the system can access them at runtime.

The operator or administrator enables Filters using Configuration functions. A filter is associated with a particular field in a badge form during the Link phase. The system accesses the Filter during the Production phase.

The inputs and outputs of Filters vary depending on the purpose of the filter. For example, a filter may require the operator to enter data in a specific format in production.

A link field may have exactly one input device. The default is the edit field on the production screen. Alternate input devices are cameras, signature pads, etc.

A link field will have one or more output devices. The card is the default output device. Additional output devices are the magstripe encoder, an embosser, etc. An output device is a piece of hardware and it's device driver.

A filter modifies data. It modifies the data of a production screen element (an edit field or image, etc.) It executes when a trigger or event happens. After the filter modifies the data, it can be sent to one or more places. Examples: then return the data to the screen after the user has entered the data (it may then be inserted to the database or printed). Note: By pressing insert or print, the field will lose focus. screen data is not modified. displayed to the screen.

To attach filters, the users will have to select the output devices first. Internally each field will have a list of output devices. Each output device will have a list of filters.

Turning now to an example filter/DLL, a BarCode Custom Checksums filter may be provided. Some customers prefer to create their own checksums to be used with Barcodes. This can now be accomplished through the use of the .INI file and a DLL which will produce the checksum and add it to the barcode data. Each time a customer requests a custom checksum a new DLL must be created. No changes will be required in the core card creation apparatus 40 (i.e., no recompilation of software code is required).

An .INI file will store the checksum DLL names. The entries in .INI must be under the heading CUSTOM BAR CODE CHECKSUMS. Each bar code type must have its own entry if it will have any custom barcode checksums. The entry names for the bar codes are the same as the bar code names listed in the Card Designer with all spaces removed. No spaces are allowed in the entries. All DLL names must have the DLL extension included in the entry. For example,

In this case, the Bar code "Code 128" has two user installed checksum DLLs. It should be noted that there are no spaces in the tag to the left of the equal sign. Also note that there are no spaces following the commas between the file names.

In the card designer, when the user selects a Barcode type, software code must be added to scan the .INI file and look for any custom checksum DLL entries for the selected Barcode type. If found, insert the entries in the checksum list box. Save the information in the ChecksumDLL variable.

Also, in production, if there is an entry in the Checksum DLL variable, then the DLL must be loaded. A pointer to the DLL's function (AddCustomCheckDigit) must be added and the function must be called for the barcode data (this will append the checksum). Finally, the library must be unloaded when finished.

The function in the DLL must be:

Some barcodes, by definition, require mandatory checksums. In this case, the users checksum is added to the data followed by the mandatory checksum. If the barcode does not have a mandatory checksum, the custom checksum will be the only checksum appended.

To satisfy the requirement of Visible checksums, two functions exist:

This returns TRUE if the current text field is attached to a Link Field and the Link Field is also attached to a barcode field. This call also collects the bar code type, the checksum type and the name of the custom check digit DLL.

Appends either the Strandware checksum digits or the custom checksum digits.

This leads to some complications in that some barcode types put a binary number as the check digit, others interpret the binary digit and display it as character. For example, assume the calculated checkdigit is 68. Some barcode strings will display as:

At this time it is known that CODE39, MSI Plessy, and Int 2 of 5 are the barcodes who's checksums are translated to ASCII characters in this manner.

Another related filter/DLL, is Custom barcodes which can be added by providing a Windows DLL to draw the custom barcode. A custom checksum DLL can be used in conjunction with a custom barcode DLL.

When the custom barcode DLL is installed, the .INI file must be modified so that the Card Designer can show the custom barcode to a user.

The usage of a custom barcode DLL will be as follows: barcode DLL so that a user can select it. system will load the custom barcode DLL into memory and call the functions required to validate and/or draw the barcode.

To give the user the ability to select a particular custom barcode DLL, the .INI file (found in the windows directory) must get changed. The Card Designer will use the "Barcode" "Custom" .INI setting to display custom barcode DLLs in the barcode dialog. An example of the .INI setting follows:

In the Card Designer system 40 barcode dialog box "cust.sub.-- bar.dll" and "new.sub.-- bar.dll" will get displayed in the "Barcode Type" combobox (in addition to the standard barcodes).

A custom checksum DLL can be associated with a custom barcode DLL. To do that an additional .INI setting must get added to section "Custom Bar Code Checksums". An example follows:

When "new.sub.-- bar.dll" is selected as the bar code type, "newbarck.dll" will be displayed in the check digit "Type" combobox.

Two functions are called from a custom barcode DLL. They are ValidateBarcode and DrawBarcode, which are explained below.

DrawBarcode should take the barcode data that is passed to it and draw it in the passed rectangle. This function should not be used to display popup error messages because it will get called during the WM.sub.-- PAINT handling. If there is an error, DrawBarcode should draw an error barcode.

Parameters: may be the screen or the printer DrawBarcode the viewport extents have been set so that 1 device unit maps to 1 pixel of the device that is associated with the passed device context.

Return values:

ValidateBarcode should take the barcode data that is passed to it and do two things. The first is to make sure that the passed data is valid. The second is to make sure that the resulting barcode fits into the passed rectangle. One thing that ValidateBarcode should not do is to draw in the passed rectangle.

The card designer system 40 will always display a message box if an error value is returned. ValidateBarcode can put up error messages for invalid data, if they are more precise than "Invalid Data" (which is what will be displayed). Parameters: HDC          Handle to a device context to draw the bitmap to, note that that this may be the screen or the printer LPCSTR       Pointer to the barcode data int          Printer resolution of the card printer RECT         Rectangle, in device coords, to put the barcode into. On entry to DrawBarcode the viewport extents have been set so that 1 device unit maps to 1 pixel of the device that is associated with the passed device context. int          orientation (0, 90, 180, 270) Return values: 0 = Ok 1 = Invalid data 2 = Barcode is too big for the field ______________________________________

Yet another filter/DLL is a live video capture DLL which is integrated into the card system 40 or can be used by some other program which is capable of calling a DLL.

The capture DLL provides a means of capturing a live image. It remains independent from the software. As a result, changes can be made to the capture DLL without affecting the core software or requiring a major upgrade to the card creation system 40.

The capture software produces 3 files. First the "base file" which is the captured image as seen in the live video. This file normally is captured as a 16 bit Targa file (smallest type with maximum resolution). The second file is the "cropped file" which saves the image portion which has been cropped by the operator. The last file is the "resized" cropped image resized to the X/Y coordinates passed to the capture program. The name of this file is the name passed to the DLL (extension determines format). If no name is given to the DLL, the DLL uses the name in the Temp.INI file for final save name.

Another filter/DLL example is for supporting the encoding of magstripes using the DataCard 160 encoder/reader. This encoder requires software for the 160 to allow emulation of the American Magnetics Corporation (AMC) 712 encoder/reader. The following will outline this DLL and highlight the differences between this DLL and the DLL intended for the AMC712.

The purpose of this DLL is to give a simple interface that allows the DataCard 160 encoder to be driven with a minimum of internal code. This DLL is one of a series of output filters (or formatters) that will be used with the card creation apparatus 40. The purpose of the output filters, in general, is to provide a method for adding output devices while minimizing the amount of code that must be added to the core software to support these devices.

This DLL is basically the same as the AMC712 DLL which is described below.

First, the software calls the FilterControl function with the BEGIN.sub.-- PRODUCTION escape. This is currently done for each card, but could eventually be done only once at the beginning of production. Next, FilterControl is with the BEGIN.sub.-- CARD escape. Following this, the ProcessMagstripe function is called with three arguments: an integer indicating the track number, a character pointer to the data to be encoded, and an integer indicating the number of bytes to be encoded.

Then, FilterControl is called with the END.sub.-- CARD escape. At this point, the user will be prompted to swipe a card through the encoder. The "Print" button, is disabled among others, before it calls this. After a return value is received from the function call, the disabled buttons are re-enabled. Finally, FilterControl is called with the END.sub.-- PRODUCTION escape.

For each of these functions, a positive value means the function call was a success, while a negative value indicates a failure. A zero value would indicate that the function is not implemented.

The other external link is Dynamic Data Exchange (DDE) which is employed to expose Production mode functionality to external processes (other Windows applications). The card creation apparatus 40 exposes Production functionality by enabling the system to be a DDE server. Limited functionality is available such as selecting a badge form, entering data into the production window, transferring control to the apparatus 40 for capture and printing, and data retrieval from the production window. Badge forms associated with a database are not supported.

The inputs to the DDE option come in the form of commands from a DDE client. Third-party developers can create DDE clients using published information about the apparatus 40.

The output of the DDE comes in the form of automated Production. The results of such automation depends on the implementation of the DDE client.

This document defines a DDE API/interface for Production. Client applications will be able to issue DDE Execute commands to control the production window. Client applications will be given the following abilities through the DDE interface: cards

Before calling any DDE Commands, Client applications must determine whether or not Card creation apparatus 40 is currently executing. If it is not, then call WinExec to load the Card creation apparatus 40 executable. When Card creation apparatus 40 is loaded it will register its service name "Card creation apparatus" and topic ("Production"). Client applications must call DdeConnect using "Card creation apparatus" and "Production" before calling any of the DDE commands.

Parameters MUST be enclosed in quotes or else the command will not be parsed correctly.

The card creation apparatus 40 DDE interface will consist of a set of execute command handlers--each of the commands are described below. Note: each parameter must be enclosed in quotes.

STARTCARD

Description

Tells Card creation apparatus 40 to start a new card using Badge Name (the passed parameter) as the selected badge type. If the production window is active and Badge Name is the selected badge type then the production window will get cleared.

STARTCARD can be used in two ways. The first way is to call STARTCARD at the beginning of every card, even if the badge type does not change--this is recommended. The advantage to this is that the production window is cleared at the beginning of each new card. The second way is to only call STARTCARD when the badge type changes.

FILLFIELD

Description

This command allows client applications to pass information to Card creation apparatus 40. FILLFIELD will associate Text Data (a passed parameter) with the field specified by Field Name (a passed parameter). If Field Name is a text field, then Text Data should be a text string. If Field Name specifies a capture field, then Text Data should be a pathname denoting a captured image.

DOCARD

Description

This command will make the Card creation apparatus 40 production window the active window. The user will then be able to complete the data entry (to capture fields and fill text fields) and press the print or exit button. The data transferred with previous FILLFIELD commands will be displayed in the production window.

After the user presses PRINT or EXIT, Card creation apparatus 40 will ignore all user input (it will respond to dde execute messages though) until either an ABORT, STARTCARD, or FILLFIELD is called. The way that I forsee the DOCARD command to be used is as follows: desired fields.

STATUS

Description

This command returns the current status of the DOCARD command. How to use the STATUS command: the client application will execute a DOCARD command, create a timer, and then call the STATUS command until the clipboard contains something other than NOT COMPLETE.

GETFIELD

Description

This command allows client applications to retrieve information from the Card creation apparatus 40 production window. GETFIELD will put the data associated with Field Name (a passed parameter) onto the clipboard. If the field is an image field and no image has been selected then "ERROR 008: No Image" is returned on the clipboard.

Note that the image files generated by Card creation apparatus 40 are JPEG files (generated by the Accusoft Image Format Library). Also, the image filenames that Card creation apparatus 40 generates will be reused when a new card is created, so copy (or rename) the files that are returned.

ABORT

Description

Throw away any current information and return Card creation apparatus 40 into interactive mode.

SHOWQW

Description

Command Card creation apparatus 40 to minimize, maximize, or restore itself. This command can be used by a client application to minimize Card creation apparatus 40 when the client application needs to take control.

SHOWBUTTON

Description

Command the Production window to show (make visible) or hide the buttons that are available on the Production window. Note that all buttons are visible after a call to STARTCARD which changes the Badge Name.

The DDE commands must be properly sequenced, or else the DDE interface will not function correctly. The example usage of the DDE API calls use the EMPLOYEE badge that is included with Card creation apparatus 40 as an example. The example follows.

First, start up Card creation apparatus 40 and minimize it.

Next, start up the Clipboard Viewer (to see the return codes)

Then start up the utility to send DDE execute commands

Via the utility, send the following DDE commands:

The DOCARD command results in Card creation apparatus 40 being maximized and getting activated. The image field on the card can then be captured and the card printed.

When the DOCARD command is sent, a windows timer should be created. On each timer tick call the STATUS command until the STATUS command returns something other than NOT COMPLETE.

Starting another card of the same card type--this call will clear all fields.

The DDE API gives customers the ability to put information onto and get entered information off of the Production window. Customers can be provided with solutions for environments that don't support ODBC.

Some limitations on the DDE API exist, including: used by the DDE interface. window in the preferred embodiment.

It will be appreciated by those skilled in the art that the DDE API may be given the ability to control the Production window without having to transfer control to it. Some of the required commands for this capability are: creation apparatus 40 creation apparatus 40.

Having read the foregoing description, it is to be understood that even though numerous characteristics and advantages of various embodiments in accordance with principles of the invention have been set forth in the foregoing description, together with details of the structure and function of the invention, the disclosure is illustrative only and changes may be made in detail, especially in matters of shape, size and arrangement of the parts within the principles of the invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.

## Claims

1. A method of creating a card, comprising the steps of: predetermined card design and modifying specific positions on a planar surface of a card for each layout frame of a video picture, cardholder information fields, and static fields; information fields; including the video picture, cardholder information, and static fields within the predetermined card design substantially as can be printed; and

2. A card creation apparatus, comprising: apparatus based on a predetermined card design which specifies positions on a planar surface of a card for layout frames of a video picture and cardholder information fields which are to be printed on the card, the microprocessor means including design means for interactively creating the predetermined card design by displaying the predetermined card design to a user and modifying specific positions on a planar surface of a card for each layout frame of the video picture and the cardholder information fields in response to several user commands of a plurality of user commands; inputting to the microprocessor means the plurality of user commands and cardholder information corresponding to the cardholder information fields; for obtaining a video picture of a subject; and displaying an image of the predetermined card design including the video picture and cardholder information within the predetermined card design substantially as can be printed in response to one user command of the plurality of user commands.

3. The card creation apparatus of claim 1 wherein the design means comprises means for placing static fields in the predetermined card design such that a card background can be specified for use with several related cards.

4. The card creation apparatus of claim 3 wherein the microprocessor means selects a card background from a plurality of card backgrounds based on contents of cardholder information associated with a particular cardholder.

5. The card creation apparatus of claim 1 wherein the design means comprises means for designating a particular cardholder information field in the predetermined card design as a bar code field.

6. The card creation apparatus of claim 5 wherein the bar code field is a black on black bar code.

7. The card creation apparatus of claim 1 wherein the microprocessor means further comprises database interface means for storing and retrieving the cardholder information in a card creation database.

8. The card creation apparatus of claim 7 wherein the microprocessor means further comprises a linker means for generating a link file and a Data Capture Window by selecting one predetermined card design from a plurality of predetermined card designs with associated cardholder information fields and subsequently determining particular sources for the cardholder information as well as particular storage destinations for the cardholder information in response to user commands.

9. The card creation apparatus of claim 8 wherein the linker means includes means for incorporating particular source and destination designations for the video picture in the link file and the Data Capture Window in response to user commands.

10. The card creation apparatus of claim 7 wherein the database interface means is open database connectivity (ODBC) compliant such that at least some customer information can be stored and retrieved from a database external to the card creation apparatus.

11. The card creation apparatus of claim 1 wherein the microprocessor means comprises a filter means for extending functionality of the card creation apparatus beyond a core set of features.

12. The card creation apparatus of claim 1 wherein the microprocessor means comprises an external command means for exposing a core set of features of the card creation apparatus to function calls external to the card creation apparatus.

13. The card creation apparatus of claim 1 further comprising interface means, operatively coupled to the video camera means and the microprocessor means, for storing the video picture into a memory of the microprocessor means in response to another user command of the plurality of user commands.

14. The card creation apparatus of claim 13 wherein the microprocessor means further comprises Chroma Key processing means for editing the stored video picture to revise a picture background of the video picture with another picture background and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

15. The card creation apparatus of claim 13 wherein the microprocessor means further comprises post-exposure processing means for editing the stored video picture to alter an average light intensity level of the video picture and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

16. The card creation apparatus of claim 13 wherein the microprocessor means further comprises image processing means for editing by scaling and cropping the stored video picture and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

17. The card creation apparatus of claim 1 wherein the microprocessor means further comprises automatic data input means for enhancing cardholder information input through the input means.

18. The card creation apparatus of claim 17 wherein the automatic data input means comprises means for providing a default value in one of the cardholder information fields.

19. The card creation apparatus of claim 17 wherein the automatic data input means comprises means for adjusting a font size assigned to a particular cardholder information field in the predetermined card design when data input to the particular cardholder information field exceeds a predetermined character length.

20. The card creation apparatus of claim 17 wherein the automatic data input means comprises means for automatically incrementing a numeric value in a particular cardholder information field when an associated card is printed.

21. The card creation apparatus of claim 17 wherein the automatic data input means comprises means for generating revised contents of a particular cardholder information field based on data input to the particular cardholder information field through the input means.

22. The card creation apparatus of claim 1 further comprising printer means, operatively coupled to the microprocessor means, for printing on a card the predetermined card design including the video picture and cardholder information within the predetermined card design substantially as can be printed in response to another user command of the plurality of user commands.

23. The card creation apparatus of claim 22 wherein the printer means comprises means for interpreting an Encapsulated PostScript file which describes the predetermined card design including the video picture and cardholder information within the predetermined card design to be printed.

24. The card creation apparatus of claim 22 wherein the microprocessor means comprises means for selecting between at least two printer means such that cards can be printed from at least two different printing means.

25. The card creation apparatus of claim 1 further comprising signature capture means, operatively coupled to the microprocessor means, for obtaining a video picture of a subject's signature from a pressure sensitive pad.

26. The card creation apparatus of claim 1 further comprising scanner means, operatively coupled to the microprocessor means, for obtaining a video picture of a subject from a still photograph.

27. The card creation apparatus of claim 26 wherein the microprocessor means comprises means for rotating an orientation of the video picture from the scanner means such that orientation within the predetermined card design of the video picture can be modified.

28. The card creation apparatus of claim 26 wherein the scanner means is compatible with a protocol for exchanging information between the microprocessor means and the scanner means such that hardware within the scanner means is directly accessed by at least one user command from the plurality of user commands.

29. The card creation apparatus of claim 1 wherein the microprocessor means comprises security means for restricting access to different functions within the card creation apparatus based on individual user passwords.

30. A card creation apparatus, comprising: information; controlling operation of the card creation apparatus based on a predetermined card design, the microprocessor means including design means for interactively creating the predetermined card design by displaying the predetermined card design to a user and modifying specific positions on a planar surface of a card for each layout frame of a video picture and cardholder information fields which stipulate the cardholder information to be printed on the card in response to several user commands of the plurality of user commands; microprocessor means, for storing the video picture into a memory of the microprocessor means in response to another user command of the plurality of user commands; displaying an image of the predetermined card design including the stored video picture and cardholder information within the predetermined card design substantially as can be printed in response to one user command of the plurality of user commands; and printing on a card the predetermined card design including the stored video picture and cardholder information within the predetermined card design substantially as can be printed in response to another user command of the plurality of user commands.

31. The card creation apparatus of claim 30 wherein the design means comprises means for placing static fields in the predetermined card design such that a card background can be specified for use with several related cards.

32. The card creation apparatus of claim 31 wherein the microprocessor means selects a card background from a plurality of card backgrounds based on contents of cardholder information associated with a particular cardholder.

33. The card creation apparatus of claim 30 wherein the design means comprises means for designating a particular cardholder information field in the predetermined card design as a bar code field.

34. The card creation apparatus of claim 30 wherein the microprocessor means further comprises database interface means for storing and retrieving the cardholder information in a card creation database.

35. The card creation apparatus of claim 34 wherein the microprocessor means further comprises a linker means for generating a link file and a Data Capture Window by selecting one predetermined card design from a plurality of predetermined card designs with associated cardholder information fields and subsequently determining particular sources for the cardholder information and video picture as well as particular storage destinations for the cardholder information and video picture in response to user commands.

36. The card creation apparatus of claim 34 wherein the database interface means is open database connectivity (ODBC) compliant such that at least some customer information can be stored and retrieved from a database external to the card creation apparatus.

37. The card creation apparatus of claim 30 wherein the microprocessor means comprises a filter means for extending functionality of the card creation apparatus beyond a core set of features.

38. The card creation apparatus of claim 30 wherein the microprocessor means comprises an external command means for exposing a core set of features of the card creation apparatus to function calls external to the card creation apparatus.

39. The card creation apparatus of claim 30 wherein the microprocessor means further comprises Chroma Key processing means for editing the stored video picture to revise a picture background of the video picture with another picture background and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

40. The card creation apparatus of claim 30 wherein the microprocessor means further comprises post-exposure processing means for editing the stored video picture to alter an average light intensity level of the video picture and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

41. The card creation apparatus of claim 30 wherein the microprocessor means further comprises image processing means for editing by scaling and cropping the stored video picture and subsequently storing the edited video picture in place of the stored video picture in the memory of the microprocessor means.

42. The card creation apparatus of claim 30 wherein the microprocessor means further comprises automatic data input means for enhancing cardholder information input through the input means.

43. The card creation apparatus of claim 42 wherein the automatic data input means comprises a mechanism selected from the group consisting of: information fields; information field in the predetermined card design when data input to the particular cardholder information field exceeds a predetermined character length; cardholder information field when an associated card is printed; and information field based on data input to the particular cardholder information field through the input means.

44. The card creation apparatus of claim 30 wherein the printer means comprises means for interpreting an Encapsulated PostScript file which describes the predetermined card design including the video picture and cardholder information within the predetermined card design to be printed.

45. The card creation apparatus of claim 30 wherein the microprocessor means comprises means for selecting between at least two printer means such that cards can be printed from at least two different printing means.

46. The card creation apparatus of claim 30 further comprising signature capture means, operatively coupled to the microprocessor means, for obtaining a video picture of a subject's signature from a pressure sensitive pad.

47. The card creation apparatus of claim 30 further comprising scanner means, operatively coupled to the microprocessor means, for obtaining a video picture of a subject from a still photograph, the scanner means being compatible with a protocol for exchanging information between the microprocessor means and the scanner means such that hardware within the scanner means is directly accessed by at least one user command from the plurality of user commands.

48. The card creation apparatus of claim 30 wherein the microprocessor means comprises security means for restricting access to different functions within the card creation apparatus based on individual user passwords.