home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Graphics
/
WOGRAPH.BIN
/
324.VMANUAL.DOC
< prev
next >
Wrap
Text File
|
1992-04-15
|
59KB
|
1,703 lines
* * * * * * * * * * * * * * * * * * * * * *
* *
* *
* Visage LITE *
* DOCUMENT IMAGE MANAGEMENT *
* User's Guide *
* *
* Shareware Edition *
* *
* *
* ┌──────┐┌──────┐┌──────┐ *
* │ ┌──────┐ ││ ┌──────┐ *
* │ │ │ ││ │ │ *
* │ │ │ ││ │ │ *
* └─│ │─────┘└─│ │ *
* └──────┘ └──────┘ *
* *
* * * * * * * * * * * * * * * * * * * * * *
Document Image Development Corp.
270 Lafayette Street, Suite 1008
New York, New York 10012
(212) 431-4084 Fax: (212) 431-4109
(C) Copyright 1991 1992, Worldwide Rights Reserved
IMPORTANT LICENSE INFORMATION
Visage LITE is provided at no charge for evaluation purposes only.
This shareware edition of Visage LITE is the complete working version of
the program, not a crippled or demo copy.
The Document Image Development Corp. ('DIDC') hereby grants you a
limited license to use this software for evaluation purposes only for a
period not to exceed thirty (30) days. If you intend to continue using
this software (and/or its documentation) after the thirty (30) day
evaluation period, you MUST make a registration payment to DIDC. Using
this software after the evaluation period has ended without registering
is a violation of the terms of this limited license.
Licensee shall not use, copy, rent, lease, sell, modify, decompile,
disassemble, otherwise reverse engineer, or transfer the licensed
program except as provided in this agreement. Any such unauthorized
use shall result in immediate and automatic termination of this
license.
All rights not expressly granted here are reserved to DIDC.
Warranty Disclaimer
THE DOCUMENT IMAGE DEVELOPMENT CORP. MAKES NO WARRANTY OF ANY KIND,
EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY WARRANTIES
OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
THE DOCUMENT IMAGE DEVELOPMENT CORP. DOES NOT ASSUME ANY LIABILITY
FOR THE USE OF THIS SOFTWARE BEYOND THE ORIGINAL PURCHASE PRICE OF
THIS SOFTWARE.
IN NO EVENT WILL THE DOCUMENT IMAGE DEVELOPMENT CORP. BE LIABLE TO
YOU FOR ANY ADDITIONAL DAMAGES, INCLUDING ANY LOST PROFITS, LOST
SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM
THE USE OF, OR INABILITY TO USE, THIS SOFTWARE AND ITS ACCOMPANYING
DOCUMENTATION, EVEN IF THE DOCUMENT IMAGE DEVELOPMENT CORP. HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
OVERVIEW
Visage is a complete document storage and retrieval subsystem.
It handles the scanning, storing, management, display, and printing of
all document images. Scanned documents are linked to your data and
stored in disk files which can be on standard PC hard drives or
removable optical cartridges. Because Visage maintains its own database
that keeps track of where images are stored, you are relieved of this
tedious chore.
Visage provides the application programmer with a wide variety
of functions that control the scanning, storing, display, and printing
of document images. Linkable interface modules are currently available
for Microsoft C, Turbo C, most other C compilers, Turbo Pascal, and
Clipper. In addition, Visage may be accessed by your application without
using any programming interface.
A major advantage of Visage lies in its ability to load as a
"swappable" TSR requiring less than 9K of conventional memory. When
loaded, the TSR swaps itself to expanded memory or, if no expanded
memory is available, to disk. It then waits for a request at which
time it swaps out the active program and swaps itself back in. This
process is completely invisible to the user.
The following are the key functions Visage provides:
Scanning: entire document or single pages. Insert, delete
and replace options
Viewing : next page, previous page, go to specific page
Printing: single page, range of pages or entire document.
Multiple copies.
Storage : automatic indexing and optical disk management
Perhaps the most important feature of Visage is that it operates under
MS-DOS. No other special software is required.
Advanced Visage Features
------------------------
The Visage system incorporates many advanced features to
maximize the speed and efficiency of document processing. These include:
IMAGE STAGING: Scanned images are initially written to
magnetic media and are later move to optical media via a batch
update mode. This speeds up the scanning process and also
allows the user to delete unwanted images before they are
committed to optical medial. The batch update can be
performed overnight, providing a minimum of system downtime.
VOLUME MANAGEMENT: Visage keeps track of the location of
stored images across many volumes. This is absolutely
essential in applications that maintain a large number of
document images.
IMAGE CACHING: Retrieved images are cached to the PC's hard
drive. Optical disks are considerably slower than magnetic
drives. By caching images to the PC's hard drive, subsequent
access to images already retrieved is made much faster.
SOFTWARE DECOMPRESSION: Images are stored in compressed format
to maximize disk space. Our DIDC2.EXE and DIDC3.EXE TSRs
support software decompression so you don't need special
hardware to view images.
IMAGE MANIPILATION: Viewed images can be zoomed, panned,
scrolled, and rotated.
NETWORK SUPPORT: DIDC's WormServ software provides
network-wide multiple simultaneous access to images on Novell
networks.
ADVANCED DATABASE DESIGN: The image databases maintained by
Visage use variable length records with key compression to
minimize the amount of disk space required.
SAFETY AND RELIABILITY: Visage protects against data loss
from power outages or computer failure. Image storage and
database updates use advanced write-through techniques to
ensure data and image integrity.
STANDARDIZATION: Visage uses industry standard CCITT group
3/4 compression (the most effective image compression
available) and all images are stored in industry standard TIFF
format. Visage also uses standard DOS file formats making it
easy to back-up image files to tape or make copies of image
volumes using standard back-up programs or by simply using the
COPY command.
SUB-DOCUMENT HANDLING: Visage allows you to define
sub-documents within a document allowing for more versatile
image management.
INSERT, REPLACE AND DELETE: New pages can be inserted at
any point in a document. Selected document pages can also be
deleted or replaced.
HARDWARE SUPPORT: Visage supports a wide range of scanners,
printers, optical drives and display systems from
manufacturers such as Hewlett Packard, Panasonic, Ricoh,
Fujitsu, Canon, TDC and Bell & Howell.
Hardware and Software Requirements
----------------------------------
The Visage system comprises three different TSRs -- one that
provides full functionality (but requires special hardware), one that
provides low speed page scanner compatability (but requires no special
hardware), and one that provides display only capability. DIDC1.EXE is
the full-function TSR used in conjunction with the Kofax Document
Processor. It provides access to all Kofax supported peripherals.
DIDC2.EXE is a view only version for network workstations.
DIDC3.EXE (distributed as Visage LITE) is the version addressed
by this manual. DIDC3 requires no special add-in board. It provides
scanning facilities through the Hewlett Packard ScanJet and ScanJet Plus
scanners. Typically, DIDC3 will be used in environments with low volume
document image management requirements and for application prototyping.
Data and images produced by DIDC3.EXE are 100% compatible with our high
volume image management platforms!
Visage is compatible with all EGA and VGA display systems.
Visage will operate on any computer with an 80286, 80386 or 80486
processor running under MS- DOS or PC-DOS 3.0 or higher. A minimum of
555K free conventional memory is required. For optimal performance, at
least an 80386 based computer, math co-processor, disk cache and one
megabtye of expanded memory is recommended.
SETTING UP TO USE VISAGE
Before you run Visage LITE for the first time, you must install
your scanner driver. Make sure all the scanner drivers are in your
current directory. Execute the INSTALL3.EXE file and choose your
scanner from the displayed list. That's all there is to it. You do not
need to do this again unless you change to a different scanner.
Prior to loading the VISAGE TSR itself, you must set certain
environment variables. These are required so that VISAGE knows the
location of its image data and index files; .DOC and .DCX respectively.
You may set the environment variables in your AUTOEXEC.BAT file, from
another batch file or at the DOS command line. The syntax is as follows:
SET DIDC=C:\VISAGE (where C:\VISAGE is your working directory
This can be any directory and will contain
the VISAGE data and index files)
SET DIDCTMP=C:\ (where C:\ is a directory to be used for
temporary images storage. Note: if you do
not specify a DIDCTMP variable, VISAGE will
default to using C:\)
Using Visage Without EMS
------------------------
If your computer does not have EMS, Visage will swap to disk in
the directory in which the TSR was loaded. When activated by a Visage
function call, the TSR will swap back from disk and perform the task.
This process takes a few seconds -- the actual time will depend on how
fast your hard disk is. Using disk caching software will improve
performance.
You can control where the TSR swaps by using the SAVEPATH
environment variable to control how the Visage TSRs swap. You can set
the SAVEPATH variable from the DOS prompt as shown here:
set savepath=C:\
This tells Visage to swap to the root directory of drive C:.
Important: If you set the SAVEPATH variable, Visage will always swap to
disk even if sufficient EMS is available. The SAVEPATH variable is
useful if you have a RAM disk installed. If, for example, you have a RAM
disk installed as drive D:, you can tell Visage to swap to that drive.
Swapping to RAM disk is considerably faster than swapping to a hard
drive. Removing Visage From Memory
To remove the Visage TSR from memory, hold down the CTRL and ALT
keys at the same time and press Q. The TSR will not unload if other
memory resident programs were loaded after it. Some memory resident
programs and device drivers such as network drivers must be loaded
before Visage. If you encounter problems after loading Visage, make sure
that no other resident programs were loaded after Visage.
Using Visage With Existing Applications
---------------------------------------
Visage is designed so that it can be used even with programs
that do not have Visage function calls. This means you can use Visage
with just about any program. When used with existing programs, you must
define a Visage Key -- a string of characters that Visage can find on
the computer screen. Let's say you are using a database application
with the following fields displayed on the screen:
Name: Jones
ID: 903214
Address: 301 Main Street
City: Hohokus
State: NJ
Suppose you want to store a document for this individual and use
the contents of the ID field as the key into the image database. You
simply tell Visage that the key field is ID: and Visage will search the
display for those characters (make sure you include the colon), skip
past any blanks, and pick up the value 903214. The only restriction is
that the key field must be on the screen so that Visage can find it.
Defining a Key Field
--------------------
To define a key field, you must create a file named VISAGE.KEY
and in that file store the name of the field Visage should look for. In
the example just given, VISAGE.KEY would contain "ID:". The key field is
case sensitive, so make sure you type in the field exactly as it appears
on the screen.
Using Visage in Popup Mode
--------------------------
To use Visage with existing applications, you must load the TSR
in popup mode. To do this, simply add the command line parameter P
(e.g., DIDC1 -P). In popup mode, Visage allows you to use the following
hot keys:
CTL+F1: Visage Menu. Activates the Visage menu system. When you press
this key combination, Visage searches the screen to find the key field.
If it finds the field, it picks up the contents of the field, opens the
VISAGE image database, and activates the menu system. If VISAGE does
not find the key field, it will use the last key value it found. If
there is no previous key value to use, VISAGE will beep and return to
the application.
CTL+F2: Batch Update. Initiates a batch update, which copies images
from the default volume to the destination volume.
CTL+F3: Batch Print. This function lets you print a batch of documents
at one time. Prior to calling this function, you must create a text file
name PRT.LST, which will contain a list of document keys, one per line.
Visage will read the keys from this file and print their associated
documents.
Figure 1: Using Visage to link images to a database record
╔══════════════════════════════╗
║ ║
║ ║
║ (Figure not shown) ║
║ ║
║ ║
║ ║
╚══════════════════════════════╝
OPERATING VISAGE
Visage will typically be used in conjunction with a database
application which has been compiled with the Visage function calls. The
function calls activate various image processing functions. To use
these functions effectively, it is necessary to understand how Visage
stores images
The Visage Document and Volume Storage System
---------------------------------------------
Visage manages documents up to 1,000 pages in length. The Visage
database uses compressed variable length data records that require
minimal disk storage. Key values used to access images can be up to 30
characters long. The database resides on a magnetic hard drive, but
images can be stored on magnetic or optical media.
Visage stores images on volumes. A volume is simply a hard drive
or optical disk that has a volume id contained in a VOL.ID file in its
root directory. For example, if your computer has a D: hard drive, and
you want to make the D: drive volume 3, you would simply create a file
D:\VOL.ID that contains the ASCII text number "3". Visage supports
volumes from 1 to 65535. NOTE: Zero is not a valid visage volume number.
Visage will store images only to drives or optical disks that have a
valid VOL.ID file in the root directory.
When Visage starts up, it locates all drives that have VOL.ID
files in the root directory. It will also look on those drives to see if
an image file exists. On any one volume, all images are stored in a file
named IMAGES.FIL. If this file does not exist, Visage will create it.
When images are scanned Visage will ask which volume should be used to
store the images.
The Default Volume
------------------
Visage is designed to be used with WORM (Write Once-Read Many)
optical media. WORM media can store huge amounts of data, but anything
written to a WORM cartridge cannot be erased. To minimize wastage of
optical media, Visage utilizes a default volume for temporary storage of
images before committing them to optical media. In fact, Visage will not
allow images to be scanned unless a default volume is identified.
One of the PC's hard drives must be setup as a default volume.
To do this, in the root directory of the drive, create a VOL.ID file
containing the volume id 65535. Visage reserves this volume id for use
as a default volume number. When images are scanned, Visage stores them
on the default drive, regardless of the volume to which they have been
assigned. Later, the batch update procedure transfers the images from
the default drive to the designated optical volume.
Using a magnetic drive as a default volume has several
advantages. First, it speeds up scanning because writing to magnetic
media is much faster than writing to optical media. Second, it allows
the user to delete pages prior to batch updating without wasting optical
disk space. Third, it is more convenient because the destination volume
does not have to be mounted while scanning takes place. Visage Network
Support
The Visage document image processing system comes in two
versions -- standalone and network server. The standalone system
requires that all image volumes (hard drives and optical media) be
attached to the image workstation PC. The network system utilizes a PC
running the WormServer software. This PC has optical drives attached
and is dedicated to storing and retrieving images. Visage currently
supports Novell networks (SPX/IPX) and soon will provide support for
NetBios, and TCP/IP networks, which means just about any network you'll
find.
In a typical network implementation, the image server (running
the WormServer software) would have one large magnetic drive assigned as
the default volume, and one or more optical drives. To the user, the
standalone and network versions of Visage look identical. The only
difference is that images are stored on the network image server rather
than a local drive. Just as important, the network and standalone
versions of Visage have exactly the same programmer's interface. That
means that the same version of your application can support either
environment.
PREPARING YOUR APPLICATION
Visage maintains database files that record the location of
stored pages. Each document within a database is uniquely identified by
a key -- a character string of up to 30 characters. To access documents
in application programs, you must tell Visage which database to use and
provide the key to locate the image information. For example, the
function call
DIDC_call_menu("RECORDS","100233",0);
activates the Visage menu system using the RECORDS image database. This
database consists of two files: RECORDS.DOC and RECORDS.DCX. In the
RECORDS database, Visage will locate the record with a key equal to
"100233". (The use of the third parameter is described in the
Programmer's Interface section.) Your application is responsible for
keeping track of key values. Typically, the key will be stored in a
field of your database record. Each record will have a key that links it
to the Visage database. One word of caution -- once images are stored,
it is imperative that the key in your database not be changed or you
will lose your link to the image database. The DIDC Menu
The DIDC Menu system is activated by a call to DIDC_call_menu.
When first activated, the menu system displays menu options across the
top line of the screen and status information at the bottom of the
screen. The main menu choices are View, Scan, Print, and Misc. At the
bottom of the screen, the status line tells which page is selected, the
number of pages in the document, the volume selected for storing images,
the name of the image database, and the key associated with the current
document.
THE VISAGE MENU SYSTEM
The Main Menu
-------------
To select the menu option you want, use the left and right arrow
keys to highlight your selection, then press the down arrow key to
activate the pull-down menu. To return to the Main Menu from a pull-down
menu, press ESC.
The View Menu
-------------
The View Menu offers
the following options:
╔══════════════════════════════╗
Next Page ║ ║
Prev page ║ ║
Same page ║ (Figure not shown) ║
Go to page ║ ║
Clear screen ║ ║
║ ║
╚══════════════════════════════╝
When the menu system is first activated, no page is selected.
Selecting Next Page will retrieve the first page of the document and
make it the selected page. Subsequent use of Next Page will retrieve
next pages in the document in sequential order. Selecting Prev Page
will retrieve the page previous to the currently selected page. If the
currently selected page is 0 or 1, Prev Page does nothing.
On systems equipped with VGA or EGA monitors, the page displayed
will take up the entire screen, so you will not be able to view the
application and the image at the same time. If you want to review the
selected page, use Same Page.
Go to Page
The Go to Page option
allows you to view a ╔══════════════════════════════╗
specific page by page ║ ║
number. When you ║ ║
select this option, you ║ (Figure not shown) ║
will be asked to enter ║ ║
the page number to ║ ║
view. Type in the page ║ ║
number and press ╚══════════════════════════════╝
ENTER or press ESC
to return to the menu.
Clear Screen
The Clear Screen option removes the images from the image window
on dual page display systems.
Viewing Options
Visage provides the following image manipilation functions:
ALT+Z: Enlarge the image
CTL+Z: Reduce the image
ALT+R: Rotate the image clockwise
CTL+R: Rotate the image counterclockwise
Arrows: Move the image
Home: Position image at upper left
H: Hide data window (on dual page displays)
PgDn Retrieve next page
PgUp Retrieve previous page
ENTER Return to menu system
The Scan Menu
-------------
The Scan Menu offers
the following options:
Scan pages ╔══════════════════════════════╗
Insert pages ║ ║
Replace page ║ ║
Replace specific page ║ (Figure not shown) ║
Delete current page ║ ║
Delete specific page ║ ║
Delete page range ║ ║
Delete document ╚══════════════════════════════╝
Scan pages
When this option is selected, Visage activates the scanner,
scans in as many pages as are in the hopper (or just one page in Flat
Bed mode) and appends the pages to the current document.
Insert pages
This option operates like Scan Pages except that the scanned
pages are inserted into the document in front of the currently selected
page.
Replace page
This option will replace the currently selected page with a
newly scanned image
Replace specific page
Use this option to identify a specific page you want to replace
with a new image Delete current page
Delete current page
This option deletes the currently selected page from the
document. Before the deletion is made, Visage will ask you to confirm
that this is what you want to do
Delete specific page
Deletes an image you specify by page number
Delete page range
Deletes a specified range of pages. You will be prompted to
enter the starting and ending page numbers
Delete document
This option deletes all pages from the currently selected
document. As with all delete functions, the user must confirm the action
before the deletion is made.
The Print Menu
--------------
The Print Menu offers the following options:
Print document ╔══════════════════════════════╗
Print current page ║ ║
Print page range ║ ║
Print specific page ║ (Figure not shown) ║
║ ║
║ ║
║ ║
║ ║
╚══════════════════════════════╝
Print document
This option prints all pages of the current document.
Print current page
This option prints the currently selected page.
Print page range
This option permits printing part of a document. You will be
prompted for the starting and ending page.
Print specific page
You will be prompted for the number of the single page you wish
to print.
NOTE: For all print options, you will be prompted for the number of copies.
The Misc Menu
-------------
The Misc Menu offers the following options:
╔══════════════════════════════╗
Drive status ║ ║
Select write volume ║ ║
Mount volume ║ (Figure not shown) ║
Batch update ║ ║
Extract pages to TIF ║ ║
Extract pages to PCX ║ ║
╚══════════════════════════════╝
Drive status
This option displays the
currently logged image
volumes and the percent
of disk space used on
each volume.
Select write volume
This option lets you change the volume to which subsequently
scanned images will be stored.
Mount volume
If you need to view images that are on a volume that is not
currently mounted, select this option, mount the desired volume, and
then press ENTER. This function applies only to images stored on
removable media such as optical disk cartridges.
Batch update
When images are scanned, they are initially stored on the
default volume (identified by volume id 65535). The batch update process
moves images from the default volume to the volume selected as the write
volume when the images were scanned in. The default volume must be a
magnetic hard drive and when the batch update is completed, the images
on the default drive are erased.
When you are ready for a batch update, call the Visage Menu and
select BatchUpdate. You will see a series of questions at the top of
your screen. Answer each question as indicated. The main item the Visage
needs to know is the volume number of the storage destination. The is
the VOL.ID entered when a new document was scanned. After you supply the
volume number, you will be asked to confirm your decision. If you answer
no, you will be returned to the Menu. If you answer yes, make sure you
have the correct disk in the optical drive and Visage will begin moving
your documents to the optical disk or designated hard disk
sub-directory. Depending on how much scanning you've done, this process
may take some time. In most cases, you will probably want to do this at
the end of the day.
Extract pages to TIF (or PCX)
All images scanned through VISAGE are stored in a single file.
This technique improves the performance and efficiency of the system.
Since VISAGE stores files in a graphics format (TIFF) supported by many
OCR software packages, you may want to convert specific pages of a
document (or an entire document) to ASCII or a word processing format.
The EXTRACT option permits you to specify pages from a document and
creates a single TIFF file for each page. You will first be prompted
for a directory for the extracted pages and then the range of pages you
wish to convert. Finally, you will be asked for a three (3) letter
filename prefix. VISAGE will increment this prefix with the number of
each page you extract. For example; ABC00001.TIF, ABC00002.TIF, etc.
Optionally, files may be extracted to a PCX format for use with FAX or
other programs.
Working with Sub Documents
When your application provides Visage with a new key, a document
is created for images associated with the database record holding that
key. Thus, there is a specific and unique image set, or document per
database key. However, there may be applications which require a more
comprehensive document definition. When this is the case, Visage
provides a facility for creating Document Types. For example, suppose
your were designing a document image processing system for a doctor's
office. The doctor interested in medical information about a patient
and doesn't want to browse through boring financial and insurance
information (as long as the bills are paid). However, the office staff
are mainly concerned with looking at the financial and insurance
information (to make sure the bills are paid). By using the Visage Sub
Document Type facility you can create two or more sections within each
document. These are referred to as document types.
Defining document types and adding them too your application is
very easy. Simply create an ASCII file with the name of a single
document type on each line and give the file any name you want.
For example, in the doctor's office situation you might create a
file called PTCHART.LST with the following document types:
Financial
Med History
Exams
Lab Work
Consults
Inpatient
General
To get your application to use these document types, you would
place the above file name at the end of your call to the Visage Menu:
DIDC_call_menu(DB,KEY,0,"PTCHART.LST");
If no file name is provided, Visage will always look for a
default file named DOCTYPES.LST and use this for its sub document type
definitions. If this file is not found and you do not explicitly call a
document type file, this option will be ignored in your application
(i.e., you won't be able to specify document types).
Scanning and retrieving in applications which use document types
require that the user select a specific type prior to scanning or
retrieving an image.
The Visage Programmer's Interface
The Visage Programmer's Interface allows your application
program to communicate with the Visage TSR. The function calls give you
complete control over the document image processing capabilities of
Visage. You can use as many or as few of the functions as you desire.
Currently, interfaces modules are available for Turbo C, Microsoft C,
Clipper, and Turbo Pascal.
Visage maintains its own database that keeps track of where
images are stored. Each document can be up to 500 pages long. Documents
can also be subdivided into sub-documents. For example, in a personnel
records management system, a document might consist of three types of
sub-documents: a resume, correspondence with the applicant, and
correspondence with prospective employers. All three types of
sub-documents are stored in the same document record, but are
distinguished by the document type -- a name you assign when the
sub-documents are scanned. The C language function call below scans
pages into the IMGDB database with a key of DOC1. The pages are assigned
to document type 1, as indicated by the third parameter.
res = DIDC_auto_scan ("IMGDB","DOC1",1);
Note that if the IMGDB database does not exist, it will be
created. If the record with a key value "DOC1" is not found in
the database, a new record will be added.
Documents are uniquely identified by a database name and a key,
both of which are character strings. The database keeps track of:
- Which pages belong to a document
- Where the pages are stored
- The sub-document type of each page
- The order of the pages within a document
and sub-document
For example, IMGDB is a document database containing two
document records. The records contain the following information:
Record 1: Key = "DOC1"
Page Type Location
=======================================
1 1 Volume 1
2 1 Volume 1
3 2 Volume 3
Record 2: Key = "DOC2"
Page Type Location
=======================================
1 1 Volume 1
2 2 Volume 4
3 2 Volume 3
4 2 Volume 4
5 3 Volume 6
Notice that pages are ordered by document type -- pages of type
1 come before pages of type 2, etc. Note also that pages need
not necessarily reside on the same volume. If pages are scanned
at different times, it is likely that they will be stored on
different volumes because the earlier volumes were filled.
Visage keeps track of where pages are stored so you can make
sure the correct volumes are mounted.
One of the most useful functions Visage provides is the menu
system. For example, the Visage C function:
DIDC_call_menu("RECORDS","100233",0);
calls the Visage popup menu system for database "RECORDS" using
the key "100233". Visage will automatically create a database
RECORDS.DOC and an index RECORDS.DCX, which it will use to keep
track of where images are stored. It is vital that database and
index files are not deleted or damaged since they are difficult
to rebuild. We recommend frequent backups of these files to
insure access to images.
The DIDC_call_menu() function is just one of many function calls
Visage provides the application programmer. Other function calls
provide direct (that is, invisible to the user) access to
scanning, storage, display, and printing capabilities. Interface
modules are currently available for MicroSoft C, Turbo C, most
other C compilers, Turbo Pascal, and Clipper. A major advantage
of Visage lies in its ability to load as a "swappable" TSR
requiring less than 9K of conventional memory.
Visage C Function Calls
The following are the Visage function calls for the C language.
The Visage modules are compiled using the large model, so your
application must also use the large model. The files MSCVIS.OBJ (for
Microsoft C) and TCVIS.OBJ (for Borland C) contain the Visage function
calls for C (SOME FUNCTIONS MAY NOT BE AVAILABLE IN VISAGE LITE).
int DIDC_locate_tsr(void);
Locates the Visage TSR and initializes the shared data area. The
function returns the following value:
1 The TSR was located.
0 The TSR was not located.
Important: This function must be called before any other Visage
function calls.
int DIDC_tsr_type(void);
DIDC provides two types of TSR programs. One supports display,
scan, and print -- the other supports display only. This
function indicates which type of TSR is currently loaded. The
return values are:
1 Supports scan, print, display
2 Supports display only
int DIDC_total_pages(char db[], char key[]);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image database
Returns the total number of pages, of all types, associated with
key.
int DIDC_total_pages_type(char db[], char key[], int page_type);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to count. Must be
greater than zero.
Returns the total number of pages of type page_type associated
with key.
int DIDC_show_luns(void);
Displays the status of all volumes currently mounted.
int DIDC_scan_page(char db[], char key[], int page_type);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to scan. Must be
greater than zero.
Initiates scanning mode for the document defined by db and key.
Scans one page only.
int DIDC_auto_scan(char db[], char key[], int doctype);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to scan. Must be
greater than zero.
Initiates scanning mode for the document defined by db and key.
Scanned pages will be appended to the document. The doctype
parameter assigns a sub-document type to the pages being
scanned. The Visage system allows documents to be divided into
sub-documents by document type. You can scan some pages with
doctype equal to 1 and others pages with other values -- Visage
keeps track of which pages belong to which document type.
int DIDC_insert_page(char db[], char key[], int doctype, int page_num);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to scan. Must be
greater than zero.
page_num: Page to insert in front of.
Initiates scanning mode for the document defined by db and key.
Scanned pages will be inserted into the document in front of the
page identified by page_num. The doctype parameter assigns a
sub-document type to the pages being scanned.
int DIDC_delete_page(char db[], char key[], int doctype, int page_num);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to scan. Must be
greater than zero.
page_num: Page to delete.
Deletes page page_num of type page_type from document key in
database db.
int DIDC_call_menu(char db[], char key[], int flag, tfname[]);
Activates the Visage menu system.
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
flag: when set to 0, menu pops up immediately. when set
to 1, TSR immediately displays image. When user presses
ESC, TSR returns to menu. If document has no pages, menu
will popup immediately.
tfname: name of file containing a list of sub-document
types. You can pass a null string ("") to indicate that
sub-document types are not used.
int DIDC_set_write_vol(unsigned wv);
Sets the write volume to the value of wv. The write volume is a
number that specifies on which volume scanned images should be
stored. The write volume can also be changed by the user at the
Visage menu.
int DIDC_get_write_vol(void)
Returns the number of the current destination volume.
int DIDC_batch_update(void);
Initiates a batch update. During batch update, images are
transferred from the default volume to their ultimate
destination. For example, a page that was scanned to volume 2
will first be stored on the default volume. During the batch
update process, the image will be moved from the default volume
to volume 2.
int DIDC_set_scanner(int page_len, int source, int intensity);
Controls scanner settings for the length of the pages to be
scanned (letter or legal), the paper source (hopper or flat
bed), and the intensity of the scan from lightest (0) to darkest
(6).
Parameters:
page_len: 0 = Legal size
1 = Letter size
source: 0 = Hopper
1 = Flat bed
intensity: 0 = Lightest
1 = Very light
2 = Light
3 = Normal
4 = Dark
5 = Very dark
6 = Darkest
int DIDC_get_scanner(int param);
Returns the current setting for a specified scanner attribute.
Controls scanner settings for the length of the pages to be
scanned (letter or legal), the paper source (hopper or flat
bed), and the intensity of the scan from lightest (0) to darkest
(6).
Parameters:
param: 1 = return current page size.
0 = Legal size
1 = Letter size
2 = return current paper source.
0 = Hopper
1 = Flat bed
3 = return current intensity setting.
0 = Lightest
1 = Very light
2 = Light
3 = Normal
4 = Dark
5 = Very dark
6 = Darkest
int DIDC_save_scan_set(void);
Parameters: None.
Saves the current scanner settings as the default settings for
future use.
int DIDC_print_all_pages_type(char db[],
char key[],
int doctype);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
doctype: Identifies subdocument type to scan. Must be
greater than zero.
Prints all pages of document key in image database db that are
of type doctype. Setting doctype to 0 will cause all pages to be
printed, regardless of document type.
int DIDC_print_pages(char db[],
char key[],
int doctype,
int first_page,
int last_page);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database.
doctype: identifies subdocument type to print.
first_page, last_page: Identifies range of pages to
print.
Prints selected pages of document key in image database db that
are of type doctype. Setting doctype to 0 will cause all pages
to be printed, regardless of document type. Setting first_page
to zero, will cause all pages of the selected document type to
print.
int DIDC_clear_doc_page(void);
Clears the document display portion of the screen. Function is
performed only when KoFax high resolution display is used. Has
no effect on VGA or EGA displays.
int DIDC_display_page(char db[], char key[],
int pagetype, int page, int control);
Parameters:
db: name of the image database
key: unique identifier used to locate document in image
database
page_type: Identifies subdocument type to scan. Must be
greater than zero.
page: Page to display.
control: If 1, allows user to manipulate image.
Displays the page defined by db, key, and page where db is the
document database, key is the unique document identifier,
pagetype is the document type, and page is the page within the
document. If control is set to 1, then the user is allowed to
pan, scroll, zoom, and rotate the image. If control is set to
0, then user has no control over the image.
int DIDC_unique_key(char db[], char key[], int len);
Parameters:
db: name of the image database
key: character string that will be filled in with a
unique key value. The character string must be at least
31 characters long.
len: Length of key to return. Must be at least 6 but no
more than 30.
Returns a unique key [key] value for database db. The key
returned will be len characters long. This function is used when
a new document is added to the system. Usually, the application
will maintain a key field in each record. This key field is used
to access the document associated with that record. When the new
document record is created, this function call can be used to
ensure that the document key field will have a unique value.
int DIDC_extract_image(char db[],
char key[],
int pagetype,
int page,
char fname[]);
Parameters:
db: name of the image database
key: character string that will be filled in with a
unique key value. The character string must be at least
31 characters long.
pagetype: Specifies subdocument type of page to extract.
page: Specifies page to extract.
textfname: name of TIFF file to create.
Extracts a specified page and stores the TIFF image in the file
name specified.
CLIPPER Function Calls
To make Visage function calls from CLIPPER applications, you
must link the MSCVIS.OBJ and CLIPVIS.OBJ files into your applications.
The CLIPPER function calls are functionally equivalent to those used in
C applications -- for detailed descriptions of how the functions
operate, see the section on C Language Calls.
<num> LOCATETSR()
Functionally equivalent to DIDC_locate_tsr().
<num> CALLMENU(<char> db, <char> key, <num> flag, <char> tfname)
Functionally equivalent to DIDC_call_menu().
<num> SETWVOL(wv)
Functionally equivalent to DIDC_set_write_vol().
<num> GETWVOL()
Functionally equivalent to DIDC_get_write_vol().
<num> BATCHUP()
Functionally equivalent to DIDC_batch_update().
<num> CLRPGE()
Functionally equivalent to DIDC_clear_doc_page().
<char> UKEY(db,len)
Functionally equivalent to DIDC_unique_key except that the key
is returned by the function call.
<num> AUTOSCAN(db,key,doctype)
Functionally equivalent to DIDC_auto_scan().
<num> PRTALL(db,key,doctype)
Functionally equivalent to DIDC_print_all_pages().
<num> DISPPAGE(db,key,doctype,page)
Functionally equivalent to DIDC_display_page().
<num> SETSCAN(page_len,source,intensity)
Functionally equivalent to DIDC_set_scanner().
<num> TSRTYPE()
Functionally equivalent to DIDC_tsr_type(void).
<num> CNT_P_TYPE(<char> db, <char> key, <num> doctype)
Returns the number of pages in subdocument doctype in document
key in database db.
<num> SHOWLUNS()
Displays information about all volumes currently mounted.
<num> INSPGE(<char> db, <char> key,
<num> doctype, <num> page)
Scans a page and stores it by inserting it before the page specified.
<num> DELPGE(<char> db, <char> key,
<num> doctype, <num> page)
Deletes specified page.
<num> GETSCAN(<num> param)
Gets current setting for specified parameter. See
DIDC_get_scanner in the C function call section.
<num> SAVESCAN()
Saves current scanner settings as system defaults.
<num> PRTPGES(<char> db, <char> key, <num> doctype,
<num> first_page, <num> last_page)
Prints the range of pages specified of a particular document
type. Set doctype to zero to print pages regardless of document
type. Set first_page to zero to print all pages of specified
type.
<num> EXTIMG(<char> db, <char> key,
<num> doctype, <num> page,
<char> filename)
Extracts page, in TIFF format, to the filename specified.
TURBO PASCAL Function Calls
The Visage function calls for Turbo Pascal are contained in the
file VISAGE.TPU. For details of these functions, see the C
language calls of the same name.
function DIDC_total_pages(var dbname : string;
var key : string) : integer;
function DIDC_total_pages_type(var dbname : string;
var key : string;
doc_type : integer) : integer;
function DIDC_call_menu(var dbname : string;
var kname : string;
flag : integer;
var DocListFname : string) : Integer;
function DIDC_tsr_type : integer;
function DIDC_batch_update: integer;
function DIDC_set_write_vol(wv : word) : integer;
function DIDC_clear_doc_page : integer;
function DIDC_unique_key(var dbname : string;
var key : string;
len : integer) : integer;
function DIDC_get_write_vol : integer;
function DIDC_auto_scan(var dbname : string;
var key : string;
doctype : integer): integer;
function DIDC_set_scanner(page_len : integer;
source : integer;
intensity : integer) : integer;
function DIDC_print_all_pages(var dbname : string;
var key : string;
doctype : integer) : integer;
function DIDC_print_pages(var dbname : string;
var key : string;
doctype : integer;
first_page : integer;
last_page : integer) : integer;
function DIDC_locate_tsr : boolean;
function DIDC_display_page(var dbname : string;
var kname : string;
pagetype, page : integer;
control : integer) : Integer;
Using IMGCALLS.EXE
Some programming languages, such as Dbase IV and Clarion
Professional Developer, cannot link directly with external object
modules. These programs do, however, have the ability to execute other
programs. The Visage program IMGCALLS.EXE (included with the Visage
Developer's Edition disk) provides access to all Visage functions
through command line parameters. For example, in Dbase IV, you could
call the Visage menu system with the following statement:
RUN IMGCALLS 3 IMGDB ABC 0
In Clarion Developer, you could call the Visage menu system with the
following statement:
RUN('IMGCALLS 3 IMGDB ABC 0')
The first parameter for IMGCALLS is always a numeric value that
specifies the function to be invoked. In this example, function 3 calls
the Visage menu system. Additional parameters, if any, vary depending on
the function you want to use. In the example, IMGDB is the name of the
image database, ABC is the document key, and 0 is the function flag.
(See the C language calls for a full description of the use of these
parameters).
When IMGCALLS terminates, it stores a result code in a file named
IMGCALLS.RES. Your application can read the contents
of this file to determine the result of the Visage function call. If
IMGCALLS.RES contains a negative number, then some sort of error
occurred. See Appendix A for a complete listing of error codes. A
result of -1 means that IMGCALLS was invoked with no parameters. A
result of -2 means that the Visage TSR is not resident.
IMGCALLS Function Calls
Function 1: Return total number of document pages.
Additional Parameters: Name of image database
Document Key
Example: RUN IMGCALLS 1 IMDB ABC
Function 2: Return total number of sub-document pages.
Additional Parameters: Name of image database
Document Key
Sub-document type
Example: RUN IMGCALLS 2 IMDB ABC 1
Function 3: Invoke Visage menu system.
Additional Parameters: Name of image database
Document Key
Function flag
Document type file <Optional>
Example: RUN IMGCALLS 3 IMDB ABC 0
Function 4: Return version of Visage TSR currently loaded.
Additional Parameters: None
Example: RUN IMGCALLS 4
Function 5: Invoke batch update.
Additional Parameters: None
Example: RUN IMGCALLS 5
Function 6: Set value for write volume.
Additional Parameters: Write-volume number
Example: RUN IMGCALLS 6 3
Function 7: Clear document from screen.
Additional Parameters: None
Example: RUN IMGCALLS 7
Function 9: Return unique key for specified image database.
Additional Parameters: Name of image database
Desired key length
Example: RUN IMGCALLS 9 IMGDB 10
Note: If successful, Visage stores the unique key in IMGCALLS.RES.
Function 10: Get current value of write volume.
Additional Parameters: None
Example: RUN IMGCALLS 10
Function 11: Display volume status.
Additional Parameters: None
Example: RUN IMGCALLS 11
Function 101: Scan one document page.
Additional Parameters: Name of image database
Document Key
Sub-document type
Example: RUN IMGCALLS 101 IMGDB ABC 0
Function 102: Scan document pages.
Additional Parameters: Name of image database
Document Key
Sub-document type
Example: RUN IMGCALLS 102 IMGDB ABC 0
Function 103: Set scanner parameters.
Additional Parameters: Page length (legal or letter)
Paper source (hopper or flat bed)
Intensity
Example: RUN IMGCALLS 103 1 0 3
Function 104: Scan and insert a page.
Additional Parameters: Name of image database
Document Key
Sub-document type
Page number to insert in front of
Example: RUN IMGCALLS 104 IMGDB ABC 1 1
Function 105: Delete a page.
Additional Parameters: Name of image database
Document Key
Sub-document type
Page number to delete
Example: RUN IMGCALLS 105 IMGDB ABC 1 1
Function 203: Print a range of pages for entire document or specified
sub-document.
Additional Parameters: Name of image database
Document Key
Sub-document type
First page
Last page
Example: RUN IMGCALLS 203 IMGDB 1 1 10
Function 300: Display specified document or sub-document page.
Additional Parameters: Name of image database
Document Key
Sub-document type
Page number
Example: RUN IMGCALLS 300 IMGDB ABC 1 1
Function Result Codes
-500 WRITE_VOL_NOT_MOUNTED
-501 READ_VOL_NOT_MOUNTED
-502 INVALID_VOLID
-503 NO_DB_RECORD
-504 DATABASE_ERR
-505 NETWORK_ERR
-506 LOCKED_OUT
-508 PAGE_NOT_FOUND
-509 FSEEK_ERR
-510 NO_BYTES_READ
-511 FILE_CLOSED
-512 FWRITE_ERR
-513 STATUS_NOT_2
-514 FTELL_ERR
-515 UNEQUAL_EOF
-516 NO_TRFR_FILE
-517 VOLUME_FULL
-518 NOT_LOGGED_IN
-519 TEMP_FILE_NOP
-520 FWRITE_ERR_TRFR
-521 FSEEK_ERR_TRFR
-522 BAD_PAGE_TYPE
-523 BAD_PAGE_OP
-524 NO_MORE_USERS
-525 ISAM_CLOSED
-526 ISAM_OPEN
-527 F_CREATE_ERR
-528 TIMEOUT
-529 DECOMP_ERR
-530 SEQUENCE_ERR
-531 PARAM_ERR
-532 BLOCK_HDR_ERR
-533 USER_BREAK
-534 DBNAME_ERR
-535 BATCH_UPDATE_NEEDED
-536 CORRUPTED_IMAGE
-537 NOT_LOCKED_OUT
-538 IMG_DB_NOP
-539 ERR_GET_REC
-540 DEST_VOL_NT_MTD
-541 ERR_RD_BLKHDR
-542 ERR_WT_BLKHDR
-543 ERR_RD_IMAGE
-544 ERR_WT_IMAGE
-545 SRCE_VOL_NT_MTD
-546 SRCE_EQLS_DEST
-547 DEST_FILE_NT_MTD
-548 INVALID_USER
-549 NO_MORE_PAGES
-550 ERR_PUT_REC
-551 ADD_TRFR_REC
-552 PAGE_DOESN'T_EXIST
-553 PRINTER_ERROR
-554 DISPLAY_ERROR
-555 DTI_TIMEOUT
-556 EMPTY_KEY
-557 TSR_NOT_LOADED
-558 NO_KEY
-559 KEY_TOO_LONG
-560 NO_DB_NAME
-561 DB_NAME_TOO_LONG
-562 BAD_PAGE_NUMBERS
-563 FUNCTION_NOT_SUPPORTED