U.S. patent application number 11/975161 was filed with the patent office on 2008-05-01 for variable length file header apparatus and system.
This patent application is currently assigned to Ariba, Inc.. Invention is credited to William R. Blair, David J. Tetuan.
Application Number | 20080104097 11/975161 |
Document ID | / |
Family ID | 39153333 |
Filed Date | 2008-05-01 |
United States Patent
Application |
20080104097 |
Kind Code |
A1 |
Blair; William R. ; et
al. |
May 1, 2008 |
Variable length file header apparatus and system
Abstract
Ensuring that a file originating on a first computer running a
first application, and having a file header section and a data
section, is stored in a proper location on a second computer is
disclosed. Storage location information is extracted from the file
header and a storage location on the second computer is determined
based on the extracted storage location information. The storage
location information is inserted in the file header by the first
application and the storage location information is extracted by
the second computer.
Inventors: |
Blair; William R.; (Erie,
PA) ; Tetuan; David J.; (Erie, PA) |
Correspondence
Address: |
VAN PELT, YI & JAMES LLP
10050 N. FOOTHILL BLVD #200
CUPERTINO
CA
95014
US
|
Assignee: |
Ariba, Inc.
|
Family ID: |
39153333 |
Appl. No.: |
11/975161 |
Filed: |
October 17, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11903459 |
Sep 21, 2007 |
|
|
|
11975161 |
Oct 17, 2007 |
|
|
|
10279864 |
Oct 25, 2002 |
7277878 |
|
|
11903459 |
Sep 21, 2007 |
|
|
|
09782620 |
Feb 13, 2001 |
7072061 |
|
|
10279864 |
Oct 25, 2002 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.101; 707/E17.031 |
Current CPC
Class: |
Y10S 707/99945 20130101;
G06F 16/10 20190101; Y10S 707/99933 20130101; H03M 7/30 20130101;
G06Q 30/08 20130101; Y10S 707/99931 20130101; Y10S 707/99943
20130101; G06F 16/51 20190101 |
Class at
Publication: |
707/101 |
International
Class: |
G06F 7/00 20060101
G06F007/00 |
Claims
1. A method of ensuring that a file originating on a first computer
running a first application, and having a file header section and a
data section, is stored in a proper location on a second computer,
comprising: extracting storage location information from the file
header; and determining a storage location on the second computer
based on the extracted storage location information; wherein the
storage location information is inserted in the file header by the
first application and wherein the storage location information is
extracted by the second computer.
2. The method of claim 1, wherein said storage location information
comprises file originator information.
3. The method of claim 2, wherein extracting the storage location
information from the file header includes: reading a data tag from
a field in the file header; determining whether the data tag is a
file originator data tag; and if the data tag is a file originator
data tag, reading originator information from the field.
4. The method of claim 1, wherein extracting the storage location
information from the file header includes: reading a first data tag
from a first field in the file header; determining whether the
first data tag is a first originator data tag; if the first data
tag is a first originator data tag, reading first originator
information from the field; reading a data tag from a second field
in the file header; determining whether the second data tag is a
second originator data tag; and if the second data tag is a second
originator data tag, reading second originator information from the
field; wherein a storage location on the second computer is
determined by the second application based on the first originator
information and the second originator information.
5. The method of claim 4, wherein said first originator information
is an auction sponsor name and said second originator information
is an auction event.
6. A system for ensuring that a file originating on a first
computer running a first application, and having a file header
section and a data section, is stored in a proper location on a
second computer, comprising: a processor; and a memory coupled with
the processor, wherein the memory is configured to provide the
processor with instructions which when executed cause the processor
to: extract storage location information from the file header; and
determine a storage location on the second computer based on the
extracted storage location information; wherein the storage
location information is inserted in the file header by the first
application and wherein the storage location information is
extracted by the second computer.
7. The system of claim 6, wherein said storage location information
comprises file originator information.
8. The system of claim 7, wherein extracting the storage location
information from the file header includes: reading a data tag from
a field in the file header; determining whether the data tag is a
file originator data tag; and if the data tag is a file originator
data tag, reading originator information from the field.
9. The system of claim 6, wherein extracting the storage location
information from the file header includes: reading a first data tag
from a first field in the file header; determining whether the
first data tag is a first originator data tag; if the first data
tag is a first originator data tag, reading first originator
information from the field; reading a data tag from a second field
in the file header; determining whether the second data tag is a
second originator data tag; and if the second data tag is a second
originator data tag, reading second originator information from the
field; wherein a storage location on the second computer is
determined by the second application based on the first originator
information and the second originator information.
10. The system of claim 9, wherein said first originator
information is an auction sponsor name and said second originator
information is an auction event.
11. A computer program product for ensuring that a file originating
on a first computer running a first application, and having a file
header section and a data section, is stored in a proper location
on a second computer, the computer program product being embodied
in a computer readable medium and comprising computer instructions
for: extracting storage location information from the file header;
and determining a storage location on the second computer based on
the extracted storage location information; wherein the storage
location information is inserted in the file header by the first
application and wherein the storage location information is
extracted by the second computer.
12. The computer program product of claim 11, wherein said storage
location information comprises file originator information.
13. The computer program product of claim 12, wherein extracting
the storage location information from the file header includes:
reading a data tag from a field in the file header; determining
whether the data tag is a file originator data tag; and if the data
tag is a file originator data tag, reading originator information
from the field.
14. The computer program product of claim 11, wherein extracting
the storage location information from the file header includes:
reading a first data tag from a first field in the file header;
determining whether the first data tag is a first originator data
tag; if the first data tag is a first originator data tag, reading
first originator information from the field; reading a data tag
from a second field in the file header; determining whether the
second data tag is a second originator data tag; and if the second
data tag is a second originator data tag, reading second originator
information from the field; wherein a storage location on the
second computer is determined by the second application based on
the first originator information and the second originator
information.
15. The computer program product of claim 14, wherein said first
originator information is an auction sponsor name and said second
originator information is an auction event.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a continuation-in-part of application
Ser. No. 09/782,620 filed Feb. 13, 2001.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to an apparatus and system for
implementing variable-length file headers, and in particular to a
file header that utilizes a varying number of parameters to store
meta-data about the contents of the data stored in the file.
[0004] 2. Description of Related Art
[0005] Electronic files have long been used to store data used in
computer applications. While at the most basic level, all
electronic files contain a collection of bits and bytes, the format
of the data in an electronic file may vary greatly. For instance, a
simple data file may contain a number of records that are all
arranged into a predefined format. In the simplest case, the format
is identical for each record. For example, a simple data file may
contain records that are formatted to include an integer record
number field, a date field, and a 2-character text field. In this
case, each record is exactly the same length, as each record has
exactly the same fields, and each field has a predefined
length.
[0006] Data files containing fixed-length records have limitations
though, as all of the data must be in the predefined format.
Because the data has to be structured into fixed format records,
many types of data, such as bitmap images, cannot be stored in
files comprised of fixed-length records. Therefore, alternative
file formats have been developed. One widely used method of
structuring data in an electronic file is to store information
about the data, the "meta-data", in a file header section of the
file, while storing the data itself in a data section of the file.
The meta-data in the header section typically provides information
to application reading the electronic file about how to read,
interpret, process or display the data stored in the data section.
Typically, file formats that incorporate file headers have a
predefined file header section at the beginning of the file
followed by a variable-length data section. By storing the
meta-data in a predefined format, it is relatively easy for an
application to read and use the data by simply parsing the known
format of the header to obtain the information needed to read,
process or interpret the data in the data section.
[0007] The use of file headers has made it possible for data that
cannot be stored in fixed-length record formats to be stored in an
electronic file in a format that can be used by many applications.
For example, several different platform-independent formats have
been developed for the storage of bitmap image data in electronic
files. Most of these file formats consist of two sections--a file
header and a binary image data section, although some formats may
have additional sections in the file. The header may be separated
from the image data by a special control character, or the header
may be defined in such a way that the application reading the file
can determine where the image data is stored within the file. The
header section typically contains information about the image,
while the image data section contains the actual image data. BMP
(Windows), PCX (PC Paintbrush), and GIF (Graphics Image Format) are
all examples of image file formats that utilize file headers.
[0008] Image file headers typically define the image size, number
of colors, and other information needed by an application to
display the image. FIG. 1 illustrates the structure of the file
header used in BMP files. As shown, each field in the header is of
a fixed length, and every field must be present in the correct
order for an application reading the file to properly display or
use the image data, even if some of the fields in the header do not
have a value. The BMP file header is always exactly 54 bytes
long.
[0009] File formats with these types of predefined, fixed-length
file headers are limited in many ways. Only very particular,
pre-determined information or meta-data can be stored in the
header. While some fields in the header may be reserved for future
use, it is very difficult to change the file header after it has
been defined and in use, as every application that uses the fixed
format must be updated if the format is changed.
[0010] These types of fixed file header formats work well for data
that does not require a large amount of meta-data, such as a simple
bitmap image file. However, there are cases when it would be
desirable to store varying amounts of diverse meta-data in a file
header. One example of a situation where fixed-length predefined
file headers are inadequate is described in co-pending application
Ser. No. 09/782,620, entitled "Method and System for Extracting
Information from RFQ documents and Compressing RFQ files into a
Common File Format", filed Feb. 13, 2001, which is hereby
incorporated by reference. As described in this application, the
current assignee has developed a method and system of converting
numerous types of electronic documents into a common compressed
file type, whereby a single viewing application can be used to view
any document that has been converted to the common compressed file
type.
[0011] Many different types of files can be converted into a single
common file type using the disclosed method and system. Because of
the wide variety of information that may be in the original
documents, it is difficult to define a fixed-format file header
that will capture all information that may be desirable to store
with the compressed data. Even if it were possible to define a
fixed-format that would adequately store data for all currently
known types of information, it is impossible to predict what
additional types and amount of information that would be desirable
to store in the future.
[0012] Thus, what is needed is a method and system for storing
variable amounts and types of information in a file header.
SUMMARY OF THE INVENTION
[0013] In accordance with one form of the present invention, there
is provided a method and system of creating a file header for a
computer file that provides meta-data about data stored in a data
portion of a computer file, wherein the header is comprised of a
plurality of header fields. The method includes storing a data tag
in each header field, whereby the data tag indicates the type of
header field; and for storing a meta-data item for each header
field, whereby the type of meta-data item is defined by the data
tag; whereby at least one header field contains a meta-data item
used by an application to categorize the computer file.
[0014] A method and system for ensuring that a file originating on
a first computer running a first application is stored in a proper
location on a second computer running a second application, where
the file is comprised of a file header section and a data section
is also disclosed. The method includes inserting storage location
information in the file header by the first application; extracting
the storage location information from the file header by the second
application; and determining a storage location on the second
computer by the second application based on the extracted storage
location information.
[0015] A method and system for creating the header portion of a
computer file comprised of a header portion and a data portion,
wherein the header portion provides meta-data about the data stored
in the data portion, wherein the header portion is comprised of at
least one field is also disclosed. The method includes storing a
data tag in each header field, whereby the data tag indicates the
type of field; and storing meta-data about the data portion of the
file in each header field whereby the meta-data in the field is
defined by the data tag in the field, for each field in the header;
whereby the meta-data in at least one field is comprised of data
that is used by an application to define an expiration date for the
computer file.
[0016] A method and system for ensuring that a user obtains a
correct version of a file, where the file is comprised of a file
header section and a data section is also disclosed. The method
includes inserting expiration information in the file header by a
first application; extracting the expiration information from the
file header by a second application; determining an expiration date
for the file from the extracted expiration information by the
second application; and comparing the determined expiration date to
another date by the second application; wherein use of the file is
disallowed by the second application if the comparison determines
that the file has expired.
[0017] A method and system for creating the header portion of a
computer file comprised of a header portion and a data portion,
wherein said header portion provides meta-data about the image
stored in the image data portion, wherein the header portion is
comprised of at least one field is also disclosed. The method
includes storing a data tag in each field of the header, whereby a
data tag indicates the field type; and storing meta-data about the
image data portion of the file in each field whereby the type and
format of the meta-data in the field is defined by the field's data
tag; whereby the meta-data in at least one field is comprised of
data that is used by an application to automatically configure how
the image stored in the image data portion is displayed.
[0018] A method and system for displaying an image in a
predetermined view state, where the image is stored in a file
comprised of a file header section and an image data section is
also disclosed. The method includes a first application inserting
view state information in the file header; a second application
extracting the view state information from the file header; and
displaying the image by the second application, wherein the second
application uses the extracted view state information to configure
the display of the image.
[0019] Accordingly, the present invention provides solutions to the
shortcomings of prior file acquisition and processing techniques.
Those of ordinary skill in the art will readily appreciate,
therefore, that those and other details, features, and advantages
will become apparent in the following detailed description of the
preferred embodiments.
DESCRIPTION OF THE FIGURES
[0020] The accompanying drawings, wherein like references numerals
are employed to designate like parts or steps, are included to
provide a further understanding of the invention, are incorporated
in and constitute a part of this specification, and illustrate
embodiments of the invention that together with the description
serve to explain the principles of the invention.
[0021] In the figures:
[0022] FIG. 1 is a table illustrating the format of the Windows BMP
file header.
[0023] FIG. 2 illustrates the format for a RFQ compressed file.
[0024] FIG. 3 is a table illustrating some of the codes that may be
used as header tags.
[0025] FIG. 4 illustrates an example interface for entering header
information during the conversion process.
[0026] FIG. 5 illustrates an original view of a drawing after
conversion.
[0027] FIG. 6 illustrates a rotated view of the drawing in FIG.
5.
[0028] FIG. 7 illustrates a scaled version of the drawing in FIG.
6.
DETAILED DESCRIPTION
[0029] Reference will now be made in detail to the preferred
embodiments of the present invention, examples of which are
illustrated in the accompanying drawings. It is to be understood
that the Figures and the description of the present invention
included herein illustrate and describe elements that are of
particular relevance to the present invention, while eliminating,
for purposes of clarity, other elements that may be found in
typical auction systems and computer networks.
[0030] It is worthy to note that any reference in the specification
to "one embodiment" or "an embodiment" means that a particular
feature, structure or characteristic described in connection with
the embodiment is included in at least one embodiment of the
invention. The appearances of the phrase "in one embodiment" in
various places in the specification are not necessarily all
referring to the same embodiment.
[0031] The present invention is directed to a method and apparatus
for a variable-length file header. The invention is described
herein using the file conversion process described in co-pending
application Ser. No. 09/782,620, previously incorporated by
reference, as an example. The method disclosed in this co-pending
application compresses a file such that no information is lost in
the conversion process and a single viewing application can be used
to view the resultant compressed file. However, other types of
files besides files converted using the disclosed method may use
the file header apparatus and system of the present invention, and
it is intended that the scope of the present invention cover any
such case.
[0032] The method and system of previously incorporated by
reference co-pending application Ser. No. 09/782,620 will be
briefly described so that it can be used by way of example herein.
In brief, a Request For Quotations (RFQ) is used to provide
information to potential bidders in an electronic auction, or in
other procurement processes, about the services or goods in the
auction. For example, a RFQ may contain engineering drawings,
manufacturing specifications, quality specifications, auction
specific information and buyer information. In order to publish an
electronic RFQ, all of this information must be gathered from
different sources, and converted to a common electronic file
format. The system disclosed in the co-pending application is used
to convert the various documents from their native formats to a
common format. The system extracts important information from
documents, converts the documents into raster images, compresses
the raster images and then stores the compressed images with the
extracted information in an "RFQ compressed format" file. Although
the term "RFQ compressed format" is used herein, it will be obvious
to those skilled in the art that the disclosed compressed file
format could be used by many applications other than the electronic
RFQ publication.
[0033] The electronic files may first be converted to an
intermediate file format, such as PDF (Portable Document Format
from Adobe Acrobat). In one embodiment, hyperlink information may
be extracted from text documents and saved. In another embodiment,
symbol information in CAD files may be extracted and saved. All
documents are converted into a common raster image format, such as
TIFF (Tag Image File Format). Once the documents have been
converted into the common raster format, the raster images are
compressed preferably using a wavelet compression scheme. Wavelet
compression creates a highly compressed file format suitable for
transmitting over low bandwidth connections. Any information that
may have been extracted may be re-inserted into the compressed
file, and a "RFQ compressed format" file is created.
[0034] Both text-based documents and engineering drawings are
converted to one common format. By compressing all of the files
into a common format, only one viewing application is needed, and
the viewing time is minimized. No matter what native format a
document in an RFQ started as, when it is delivered as part of the
electronic RFQ generated by the disclosed system, only a single
viewing application is needed to decode and view the document. The
RFQ compressed format therefore provides for the consolidation of
all data across a common format, while preserving valuable
information from the RFQ input files.
[0035] It is therefore advantageous to "publish" an electronic RFQ
such that all of the RFQ documents are stored in the RFQ compressed
format. By using a single file format, a reader of the RFQ need
only have a single viewing application to view every document in
the RFQ.
[0036] In a preferred embodiment, the RFQ compressed file format
follows standard industry practice, and is comprised of a file
header followed by the compressed data. As is typical for most file
headers, the RFQ compressed file format header contains meta-data,
or information regarding the compressed data that follows it. Some
of this information is typical display and compression information,
however, the RFQ compressed file format header may also store
additional meta-data about the document that is compressed within
the file.
[0037] An electronic RFQ used in an online auction contains a wide
variety of information. Within a single RFQ, there may be many
different types of documents that originated as text, image or CAD
drawings. In addition, different buyers have different requirements
and utilize different systems to create the documents that are used
in an electronic RFQ. It is desirable to store this information
relating to the original documents with the converted document. It
is desirable to store information about an online auction with any
converted documents that are used in that online auction's
electronic RFQ. It is desirable to store other types of meta-data
with the converted document.
[0038] However, only one format for a RFQ compressed file can
exist. It would be extremely difficult to try to anticipate every
type of meta-data that could be stored with the converted document
and create a field for it in the file header. In addition, it would
be very wasteful to include every possible field in every RFQ
compressed file, as some of the fields will only be used in limited
situations. Therefore, the assignee of the present invention has
created a variable-length header for the RFQ compressed file.
[0039] FIG. 2 illustrates the structure of the RFQ compressed file
using the variable-length file header of the present invention.
Block 240 represents the entire RFQ compressed file, which is
comprised of header 230 and data 235. In a preferred embodiment,
header 230 is comprised of an identifying section 210 and header
data section 220.
[0040] The identifying section of the header 210 is shown with four
fields, although more or fewer may be used. In the example shown in
FIG. 2, the identifying section 210 is comprised of an ID Tag field
201, Cipher flag field 202, Cipher key field 203 and Offset 204. ID
Tag field 201 is preferably an ASCII tag indicating the file type.
Cipher flag field 202 is preferably a flag indicating whether
enciphering is in use. If the file is enciphered, Cipher key field
203 is preferably used as an index into a key file. Enciphering
will be described in more detail below. Offset 204 is preferably an
integer that represents an offset from the beginning of the file to
the beginning of the compressed data 235. Offset 204 is typically
the number of bytes from the beginning of the file to the data
section.
[0041] In a preferred embodiment, header data section 220 and/or
Offset 204 are enciphered to prevent unauthorized access and
alteration of the data. A preferred cipher mechanism is the public
domain Blowfish algorithm. Other cipher methods are known to those
skilled in the art, and are intended to come within the scope of
the present invention.
[0042] As shown by header data section 220, the present invention
utilizes tags in the header to allow for a variable number of
fields in the header. Each field in header data section 220
consists of a data tag, the field's data and at least one control
character used as an "end of field" character. As an alternative to
control character(s), each type of header field may be of a known,
fixed length. Header data section 220 may contain 0 to N data tags.
It is this feature that provides flexibility. Any number of tags
may be defined to allow for any amount of meta-data to be stored in
the header. Unlike previous file headers having a fixed number of
fields, the present invention provides for a variable number of
header fields.
[0043] An application that parses the header of the present
invention can then use any of the information stored in the header
for any purpose. By using a tagged header format, the present
invention allows for future tags to be defined. Because only fields
that have information associated with them need to be saved in the
file header, valuable space is saved. There is no requirement to
have any tags saved with the file.
[0044] The software used to read, write, parse, and optionally
encipher and decipher the header is preferably isolated as a
component so that it may be reused by any application that accesses
the RFQ compressed format files. The component may be delivered as
a DLL (Dynamic Link Library) so that it may be embedded within an
application to the prevent exposure of the API (Application Program
Interface).
[0045] FIG. 3 illustrates some of the tags that may be used in the
file header of the present invention. The tags shown in FIG. 3
demonstrate just an example of the types of tags that can be used
in the file header apparatus of the present invention. The tag
codes shown in FIG. 3 are codes identifying data that is useful to
store in the context of electronic RFQs used in online auctions. As
will be obvious to one skilled in the art, any number and type of
code may be defined and used to identify a header field. Any type
of information may be stored in the header. All that is required is
that a unique tag code be defined for a particular piece of
information.
[0046] Some of the codes shown in FIG. 3 are discussed in more
detail below.
Auction and Customer Information
[0047] Due to the manual nature of the RFQ creation process, there
is the possibility that files from one customer may inadvertently
be placed in another customer's RFQ. For example, company X's
engineering drawings end up in company Y's RFQ because a user
processing files using a drag-and-drop operation accidentally
places the files in the wrong location. The file header of the
present invention can be used to mitigate this problem by storing
customer and competitive bidding event information in the header of
converted files. The tags that have been created for these fields
are shown in FIG. 3 as Customer (CU), Competitive Bidding Event
Number (CB), Competitive Bidding Event Revision (CR), and
Competitive Bidding Event Release Date (CV).
[0048] When the electronic RFQ is published, this information may
be verified to ensure that only files that are supposed to be
published for a particular RFQ are indeed published. An application
publishing the RFQ can perform the verification by comparing the
Customer and/or Competitive Bidding Event information in a file's
header against the RFQ's information. By using these fields in the
header, the application can then perform referential integrity on
the collection of files used in an electronic RFQ. As will be
obvious to those skilled in the art, there are many other
referential integrity applications that may use the variable length
header of the present invention, and the present invention is not
intended to be limited to the publishing electronic RFQs for online
auctions.
[0049] An example of the interface that can be used to set these
fields in a header is shown in FIG. 4. This example interface is
utilized in an application used to perform post-processing and
quality assurance on files that have been converted to the RFQ
compressed format. These RFQ compressed files will be used in the
publication of an electronic RFQ for a particular competitive
bidding event for the auction sponsor. As shown in FIG. 4, the user
enters the Customer, CBE (Competitive Bidding Event) Number,
Revision and Release date. There are also fields that can be used
to store the user's name, customer division that created the
original file, drawing number information, customer site
information, and so on. The fields shown in FIG. 4 may require
manual entry, or they can be populated with default values during
the conversion process that the user can change. Any part of or all
of this information can be stored in the variable-length header of
the present invention. Each entry is stored as a separate field in
the header, each with its own unique tag.
Expiration Date
[0050] As shown in FIG. 3, two tags that may be used in the
variable-length file header of the present invention include EA
(Absolute Expiration) and ER (Relative Expiration). The Absolute
Expiration tag sets the date on which the RFQ compressed file will
"expire." That is, when the viewing application loads the file, it
compares the expiration date in the file header to the current
date. If the current date is after the expiration date in the file
header, the file has "expired", and the viewing application will
not display the compressed image. Additionally, in a preferred
embodiment, the viewing application will also not print the file
once it has expired.
[0051] The Relative Expiration date tag works in a similar manner.
This tag contains an integer that represents the number of days
used to calculate the expiration date of the RFQ compressed file.
In one embodiment, the Relative Expiration date calculation
requires that the Competitive Bidding Release date (CV) tag also be
set. In this embodiment, the Relative Expiration date is calculated
by adding the number of days set in the Relative Expiration field
to the Competitive Bidding Event Release date. If the current date
is after this calculated expiration date, the file has "expired".
In a preferred embodiment, if the Competitive Bidding Event Release
date tag is not set, the Relative Expiration Date may be ignored.
In alternative embodiments, the expiration date of the file may be
calculated by adding the Relative Expiration to other variables,
such as a timestamp on another file, or a date stored on the
displaying system. There are many alternative methods of
calculating an expiration date using a Relative Expiration value
that will be obvious to those skilled in the art, and it is
intended that the scope of the present invention include these
alternatives.
[0052] In a preferred embodiment, if the Relative Expiration value
is set as well as the Absolute Expiration, the Absolute Expiration
takes precedence. That is, if a file has not "expired" according to
the Relative Expiration, but has "expired" according to the
Absolute Expiration, it is treated as an expired file.
[0053] The expiration date fields can be used in a number of ways.
For example, the expiration date field can be used to ensure that a
user is viewing a current version of a drawing or document. Because
drawings and documents are constantly under revision, it is easy
for a user to accidentally rely on the information in an
out-of-date document or drawing simply because he does not know
there is a newer version of the file. If an expiration date
corresponding to the expected date of the next revision of a
document is stored in the file header, and the viewing application
disallows display or printing of the document after this expiration
date, the user will be forced to acquire the latest version of the
document. There are many other uses for the expiration date fields,
as will be obvious to those skilled in the art, and it is intended
that these uses come within the scope of the present invention.
Image View State
[0054] One of the more common problems associated with image data
is that frequently the user must manipulate the image when it is
first displayed in order to optimally view the image. For example,
the document may be a portrait document, but was scanned in
landscape mode, and is therefore rotated 90 degrees when initially
displayed by a viewing application. In this example, a user must
rotate it back 90 degrees in order to properly view it. As another
example, the image of interest to the user may be smaller than the
entire scanned area. This results in a very small image surrounded
by white space. In this case the user must zoom the image in order
to achieve an adequate view state. One of the features of the
present invention is the ability to capture a view state that
corresponds to a particular viewing configuration, and store this
view state in the header of the RFQ compressed file. When the file
is subsequently displayed, the view state saved in the header is
used by the viewing application to display the compressed image
such that a good initial presentation of the image that requires no
additional manipulation by the user is displayed. By saving view
state information in the header, the image itself is not
modified.
[0055] This is an important feature in the context of the
publication of electronic RFQs. The documents that are used in an
electronic RFQ are typically converted to the RFQ compressed format
in batch processing. The initial documents may be stored in any
orientation, and may have originally been paper documents that were
scanned. For any number of reasons, the documents are frequently
not stored in an optimal view state. In the present invention, a
user can manipulate the image to an optimal view state in an
application, then save this view state with the image--without
changing the image data itself.
[0056] This view state can then be considered the base view state,
in that any future fit operations will use this view state rather
than the original image. The printing function may also be modified
to use this view state to output the image.
[0057] The present invention saves a view state in the file header,
but does not alter the image data itself. This feature is important
because it would take a great deal of effort to re-convert a
document in such a manner that it is saved in an optimal view
state. This feature allows a user to set the optimal view state,
then save it without changing the image data itself. This portion
of the header acts as a set of directives to the viewing
application to display the image in a certain manner.
[0058] The view state data may include rotation, scale, page and x
and y offset information, for example. In a preferred embodiment,
the view state is saved in the header in the following format:
[0059] VS, <page#>, <rotation>, <scale>,
<xoff>, <yoff>
[0060] In the above format, "VS" is the tag for view state field.
The Page # parameter is an integer indicating the page to which the
view state applies if the document is a multi-page document. In a
preferred embodiment, if the value is set to zero (or some other
defined value), the view state is applied to all pages in the file.
Rotation is an integer representing the degrees of rotation in the
clockwise direction. For example, a value of 90 means that the
image should be rotated 90 degrees in the clockwise direction by
the viewing application. In a preferred embodiment, valid values
for the Rotation parameter may be limited. For example, valid
Rotation values may be limited to 0, 90, 180 and 270. Scale is a
real number that represents the zoom that viewing application
should set for the image. Xoff and Yoff represent the horizontal
and vertical offsets from the image origin to which the viewing
application should center the image on the display. As will be
apparent to one skilled in the art, not all of the above-identified
parameters are required when saving view state information. In
addition, in alternative embodiments, it may be desirable to add
further parameters to the View State field. The parameters itemized
above were given by way of example, and are not intended to be
limiting.
[0061] The viewing application should capable of interpreting this
header field and using the data stored in the field to fit the
image to the user's display device. If a user is using a version of
a viewing application that does not recognize this tag, the viewing
application will preferably ignore this field, and display the
image in its original state. It is a feature of the present
invention that if the viewing application does not recognize a tag
in the header, then it can simply ignore that field of the header.
In this manner, extra tags should not cause errors, and new tags
can be created as needed. The viewing application can updated as
needed to recognize and process new tags.
[0062] In a preferred embodiment, the viewing application may have
an "Original Tool" that can be used to revert the image to its
original view state. The information saved in the VS field will be
ignored by the viewing application in this case. The Original Tool
may have an option to remove all view states, or just revert to the
original state on the current page.
[0063] FIGS. 5, 6 and 7 illustrate how a view state can be saved.
The image shown in FIG. 5 is the original image. The user clicks on
the rotate button, as shown by button 710, until the image is in
its proper orientation, as shown in FIG. 6. The user then fits the
image to fit the display, as shown by button 720 in FIG. 6. The
properly zoomed image is shown in FIG. 7. The user can then save
this view state by clicking on the "Save View" button 730, shown in
FIG. 7. This causes the application to save the changed rotation
and zoom in the file header when the image is converted to the RFQ
compressed format.
[0064] While the invention has been described in detail and with
reference to specific embodiments thereof, it will be apparent to
one skilled in the art that various changes and modifications can
be made therein without departing from the spirit and scope
thereof. Thus, it is intended that the present invention cover the
modifications and variations of this invention provided they come
within the scope of the appended claims and their equivalents.
* * * * *