U.S. patent application number 11/998324 was filed with the patent office on 2008-06-26 for system and method for automated closed-loop production of customized books.
Invention is credited to Riyazhassan M. Asaria, Mark G. Dreyer, J. Thomas Shively, James L. Warmus.
Application Number | 20080154943 11/998324 |
Document ID | / |
Family ID | 38535935 |
Filed Date | 2008-06-26 |
United States Patent
Application |
20080154943 |
Kind Code |
A1 |
Dreyer; Mark G. ; et
al. |
June 26, 2008 |
System and method for automated closed-loop production of
customized books
Abstract
A page description file that is used for producing a printed
publication is processed to generate data that comprise a database
regarding a product. The data are used to produce a document from
the database and, in response to producing the document, an order
is generated.
Inventors: |
Dreyer; Mark G.; (Aurora,
IL) ; Asaria; Riyazhassan M.; (Oak Park, IL) ;
Shively; J. Thomas; (Hinsdale, IL) ; Warmus; James
L.; (LaGrange, IL) |
Correspondence
Address: |
MCCRACKEN & FRANK LLP
311 S. WACKER DRIVE, SUITE 2500
CHICAGO
IL
60606
US
|
Family ID: |
38535935 |
Appl. No.: |
11/998324 |
Filed: |
November 29, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09563882 |
May 3, 2000 |
7278094 |
|
|
11998324 |
|
|
|
|
09388191 |
Sep 1, 1999 |
|
|
|
09563882 |
|
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.102; 707/E17.001; 707/E17.009 |
Current CPC
Class: |
G06F 40/186 20200101;
B65H 2301/4311 20130101 |
Class at
Publication: |
707/102 ;
707/E17.001 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method for using a page description file to generate data that
comprise a database regarding a product for which orders are
generated, the method comprising the steps of: (a) providing the
page description file that is used for producing a printed
publication; (b) processing the page description file to generate
the data; (c) using the data to produce a document from the
database; and (d) generating an order for the product in response
to producing the document.
2. The method of claim 1, wherein the data regarding the product
include at least one of an item name, a description, a catalog
number, a style description, and a price.
3. The method of claim 1, wherein the data regarding the product
are developed from untagged and unstructured data included in the
page description file.
4. The method of claim 1, wherein the database has a plurality of
records.
5. The method of claim 1, wherein a record is associated with a
product.
6. The method of claim 1, wherein the step of producing the
document comprises producing a printed document.
7. The method of claim 1, wherein the step of producing the
document comprises producing an electronic document.
8. The method of claim 7, wherein the step of producing the
electronic document further comprises transmitting the electronic
document as an email.
9. The method of claim 7, wherein the step of producing the
electronic document further comprises transmitting the electronic
document as a web page.
10. The method of claim 1, wherein the step of generating an order
comprises interaction of a user with the document.
11. A software system for generating data that comprise a database
from a page description file, wherein the page description file is
used for producing a printed publication, the software system
comprises: a computer-readable medium and a software program stored
in the computer-readable medium, wherein the software program
comprises: a first routine that processes the page description file
to generate the data regarding a product; a second routine that
uses the data to produce a document; and a third routine that
accepts an order for the product in response to producing the
document.
12. The software system of claim 11, wherein the data regarding the
product comprises at least one of an item name, a description, an
item number, a style description, and a price.
13. The software system of claim 11, wherein the first routine
generates data regarding the product from untagged and unstructured
data that comprise the page description file.
14. The software system of claim 11, wherein the second routine
produces an electronic document.
15. The software system of claim 14, wherein the software system
comprises a fourth routine for transmitting the electronic document
as an e-mail.
16. The software system of claim 14, wherein the software system
comprises a fourth routine for transmitting the electronic document
to a web browser.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 09/388,101, filed Sep. 1, 1999.
FIELD OF THE INVENTION
[0002] The present invention relates generally to document
production methods and systems, and more particularly to a method
of and system for production of documents from a database.
BACKGROUND OF THE INVENTION
[0003] Printed documents are often assembled into books, such as
catalogs, brochures, manuals, and the like. Such documents may have
diverse content including text, images, and line art positioned in
a myriad of ways. Through the use of page make-up software, each
page of a book may be designed to include such content using a
computer. In the specific example of printed catalogs, the page
make-up software is used to design the pages of the catalog such
that the pages include, for example, product names, descriptions,
images, and prices.
[0004] The design of a catalog (or any other type of book) often
begins with the creation or development of content, which includes
both textual data and image portions. Traditional preliminary
prepress steps, such as color correction, undercolor removal, and
screening, may then be performed to prepare the content for
incorporation into a page description file, such as a
QuarkXPress.RTM. file. For a catalog, the page description file may
contain detailed information for each of a number of products
spread over one or more pages. In addition to this content-related
information, the page description files usually contain further
information directed to the layout of each page, i.e., formatting
and other control data. Taken together, the content information and
control information are supplied to a raster image processor or
other apparatus responsive to page description files for processing
in connection with either a computer-to-plate or digital press
workflow.
[0005] Generation of these page description files has typically
been a labor-intensive process. A publisher or other layout
designer can spend a great deal of time manually gathering,
preparing, and formatting the content for a single book despite the
efficiencies provided by the page make-up software. Even if the
majority of the content of a book has been incorporated into a
previously published book, extensive time may still be devoted to
page layout and other formatting issues.
[0006] The time available for layout design and related processing
is particularly limited for certain types of catalogs. Seasonal
clothing catalogs, for example, are typically printed and
distributed several times each year, often with clearance catalogs
interspersed between the seasonal versions. However, the marketing
of clearance items through special editions of a catalog usually
depends upon timely inventory determinations. In these situations,
the layout designer may proceed through the laborious process of
developing the page description file(s) for the clearance catalog,
only to find out that the inventory has changed dramatically in the
interim (e.g., some products have sold out). Clearance catalogs
designed and processed in current production workflows are, thus,
routinely outdated because of the finite amount of time needed to
generate the page description files and the ongoing sales during
such time. Such outdated catalogs have often been forced to rely on
red-lining or other undesirable modifications to accurately
indicate which products or items are no longer available.
SUMMARY OF THE INVENTION
[0007] In accordance with one aspect of the present invention, a
method uses a page description file to generate data that comprise
a database regarding a product for which orders are generated. The
page description file, which is used to produce a printed
publication, is processed to generate the data and the data are
used to produce a document from the database. An order for the
product is generated in response to producing the document.
[0008] According to another aspect of the present invention, a
software system for generating data that comprise a database from a
page description file, wherein the page description file is used
for producing a printed publication, includes a computer-readable
medium that has a software program stored therein. The software
program includes a first routine that processes the page
description file to generate the data regarding a product, a second
routine that uses the data to produce a document, and a third
routine that accepts an order for the product in response to
producing the document.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a sample page of a catalog as represented by a
page make-up program, such as QuarkXPress.RTM.;
[0010] FIG. 2 illustrates a main dialog box which is displayed to
an operator during the process of converting page make-up files to
page description files;
[0011] FIG. 3 is a high-level flowchart of a portion of the process
of converting page make-up files to page description files;
[0012] FIG. 4 is a flowchart of programming executed by the block
30 of FIG. 3;
[0013] FIGS. 5A-5C, when joined side-by-side with FIG. 5A on the
left, FIG. 5B in the middle and FIG. 5C on the right, is an
illustration of the product table noted in FIG. 4;
[0014] FIG. 6 is an illustration of the SKU table noted in FIG.
4;
[0015] FIG. 7 is a flowchart of programming executed by the block
32 of FIG. 3;
[0016] FIG. 8 is a flowchart of programming executed by the block
34 of FIG. 3;
[0017] FIG. 9 is a flowchart of programming executed by the block
36 of FIG. 3;
[0018] FIG. 10 is an illustration of the dialog box of FIG. 2 with
sample information entered therein;
[0019] FIG. 11 is a flowchart of programming executed by the block
154 of FIG. 9;
[0020] FIGS. 12 and 13 are illustrations of dialog boxes which are
presented to an operator during execution of the programming of
FIG. 11;
[0021] FIG. 14 is a flowchart of programming executed by the block
198 of FIG. 11;
[0022] FIG. 15 is a flowchart of programming executed by the block
158 of FIG. 9;
[0023] FIG. 16 is an illustration of a dialog box which is
presented to an operator during execution of the programming of
FIG. 15;
[0024] FIG. 17 is a flowchart of programming executed by the block
162 of FIG. 9;
[0025] FIG. 18 is a flowchart illustrating the a portion of the
programming executed by the block 166 of FIG. 9 when the "Save"
button of FIG. 10 is selected;
[0026] FIGS. 19A-19C, when joined side-by-side with FIG. 19A on the
left, FIG. 19B in the middle and FIG. 19C on the right, is an
illustration of the product table with sample data stored
therein;
[0027] FIGS. 20A-20C, when joined along similarly lettered lines,
together represent programming executed by the block 38 of FIG.
3;
[0028] FIG. 21 is an illustration of a dialog box which is
presented to an operator during execution of the programming of
FIGS. 20A-20C;
[0029] FIG. 22 is a flowchart of programming executed by the blocks
432 and 424 of FIGS. 20A and 20C, respectively;
[0030] FIG. 23 is a block diagram of a computer system which may be
used to implement the present invention;
[0031] FIG. 24 is a block diagram of a process of converting
print-ready documents to web pages according to the present
invention; and
[0032] FIG. 25 is a workflow diagram that illustrates the
incorporation of portions of the process of FIG. 3 into a
closed-loop production system and method in accordance with one
embodiment of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0033] The present invention is described below with reference
first to the conversion of the contents of QuarkXPress.RTM.
print-ready documents into one or more Microsoft Excel.RTM.
database tables and image(s) converted into a web-ready (i.e.,
Internet) format using Adobe Photoshop.RTM.. The contents of the
database tables can then be converted to a web format and the
resulting text coding and web-ready image(s) can then be formatted
by a display program known as Marketplace (Version 2) licensed by
Multimedia Live of Petaluma, Calif., to dynamically generate web
pages for display by a server (not shown) on the Internet (FIG. 24
illustrates this process). However, it should be apparent to one of
ordinary skill in the art that the conversion process and utility
described herein may be used in other applications or with other
page layout programs, image manipulation programs and/or page
development programs and still be within the scope of the present
invention.
[0034] In accordance with the present invention, the database
tables and images utilized to develop the web pages may be utilized
as part of a closed-loop production workflow in which the database
tables and images are utilized to develop page description files
for production of customized pages in any target or output medium,
such as a computer monitor, ink or toner on paper, dye in film, and
the like. Also, while the present invention is described in the
context of converting and processing the pages of a print-ready
catalog, it should be understood that other printed matter may
instead be processed by the present invention.
[0035] According to the workflow described herein, once copies of
the catalog are distributed (whether via hardcopy, electronically
or otherwise), orders for items presented in the catalog are
processed that modify the inventory of products presented in the
catalog. The system and method of the present invention may utilize
data indicative of this modified inventory and any other
information relating to the processed orders to facilitate the
generation of further catalogs having customized content. In this
manner, the system and method of the present invention provide a
user with a closed-loop workflow for producing printed (or
otherwise distributed) matter having content that changes as a
result of sales originating from the distribution of previous
catalogs.
[0036] Initially, one or more page make-up files (also referred to
as layout files) are created using a computer system running a page
make-up (or layout) program, such as QuarkXpress.RTM.. The computer
system may be like that shown in FIG. 23 including a computer 25
having internal memory 26, input devices 27, such as a keyboard and
mouse, a monitor 28 and, optionally, a connection to a network 29.
The page make-up file(s) represent a book which has or will be
produced, such as a catalog or other printed matter. Generally,
these page layout file(s) can be stored on a computer-readable
memory such as a hard drive or other storage device or the page
layout file(s) may be stored and accessed remotely through the
network 29. FIG. 1 illustrates a sample page from a seed catalog as
displayed by QuarkXpress.RTM.. The sample page includes three
catalog items (alternatively termed objects herein) referred to by
the large text "Sugar Crunch," "Watercolor Memories" and "Super
Tasty." All catalog items contain a text portion and a high
resolution image. The text portion for each catalog item contains
detailed information including item name, description, catalog
number or SKU number, style description and price. Other
information and variations on this detailed information may be
provided. Furthermore, not every catalog item need have the same
types or levels of detailed information.
[0037] The text portions of the page layout file are untagged and
unstructured, i.e., they are not stored as separate character
strings based on the contents thereof but rather as a single group
of characters. Thus, while the text "Sugar Crunch" is the name of
one of the catalog items, "B-54031" is the item number and "$2.95"
is the price for 30 seeds, all of this text is stored as one
complete group of characters in the page layout file, with embedded
characters indicating special symbols, fractions, end-of-line, etc.
. . . . Furthermore, these text items are stored in the page layout
file without relational linking among the text items, e.g., the
price string for "Sugar Crunch" is not relationally linked to the
item number string even though they both relate to the same catalog
item or object.
[0038] An automated conversion process converts the text portions
of the page layout file into a database and converts the image(s)
into a proper format for generation of web pages or another type of
visual display. A main dialog box for the conversion program is
shown in FIG. 2 and is opened by a user operating a computer system
like that shown in FIG. 23. The page layout file is also opened
using the native application that created the page layout file (in
the illustrated example, QuarkXpress.RTM.). The dialog box includes
fields for substantially all of the text items relating to a given
catalog item. Each dialog box field contains a label indicating the
field name (i.e., "Item Number," "Item Name," "Headline," "Tn
Description," (for thumbnail description) "Image Name," "Keywords,"
"Description," "Detail Image(s)," "Category Information" and "SKU
Information") and a text box into which converted text from the
page layout file or information generated by the user is placed and
stored. The dialog box fields preferably coincide with the contents
of the catalog items in the page layout file, and therefore may
vary from catalog to catalog. In the present example, the fields
identified by the labels "Item number," "Item name," "Headline,"
and "Description" are referred to as conversion fields because text
from the page layout file is automatically converted to a desired
format and cleaned (i.e., undesired codes are removed and other
codes are inserted to cause proper display of text) by a conversion
program when the text is placed into such fields. This conversion
and cleaning can be performed in a manner unique to each conversion
field or some or all of the conversion fields can employ the same
conversion and cleaning process. The remaining fields are referred
to as user fields because the information stored therein is
provided by the user (except for some fields in the "SKU
Information" area), as described in detail below.
[0039] With reference to the generalized flow diagram of FIG. 3,
the steps shown therein may be executed by a user using the
computer system of FIG. 23 after the dialog box of FIG. 3 and the
page layout file are opened. The steps of FIG. 3 and the flowcharts
following FIG. 3 may be partially or fully implemented by software
programmed in a desired programming language, such as
AppleScript.RTM. by Apple Computer, Inc. At least a portion of the
programming described herein is set forth in the AppleScript.RTM.
coding included in the Appendix attached hereto. After
initialization of process variables and data structures, a block 30
opens a database file using a native application, such as
Excel.RTM.. The database file comprises a template which stores
converted and cleaned data from the conversion fields of the dialog
box of FIG. 2. Next, a name translation file is opened by a block
32. The name translation file stores the names of images in the
page layout file that are to be processed. Thereafter, a categories
file, which contains previously stored information listing possible
categorizations of a particular catalog item, is opened and
processed by a block 34, again using a native application, such as
Excel.RTM.. In summary, the blocks 30, 32 and 34 open files that
will be accessible during use of the dialog box shown in FIG. 2.
Next, at a block 36, the user can select text displayed by the page
make-up program by highlighting such text using the mouse and
clicking on one of the conversion fields of the dialog box of FIG.
2. This action causes the block 36 to run the conversion program to
convert and clean the text selected from the page layout file. The
converted and cleaned text is also displayed in the selected
conversion field.
[0040] After the block 36, a block 38 runs an image conversion
program which converts any image(s) into a format suitable for
display.
[0041] Though the process steps of FIG. 3 are shown in a particular
order, one of ordinary skill in the art will appreciate that the
first three steps 30, 32 and 34 may be performed in any order and
that the steps 36 and 38 may be undertaken independently.
Furthermore, it should be appreciated that any of the steps may be
initiated from the dialog box of FIG. 2. By way of example, the
categories file could be opened from a specified directory by
clicking on one of the boxes of the category information field of
the dialog box of FIG. 2.
[0042] A detailed flow diagram of the programming executed by the
block 30 of FIG. 3 is shown in FIG. 4. A block 62 displays a dialog
box prompting the user to open a new or existing Excel.RTM.
database file. Control pauses at a block 64 until a database file
is selected. Each database file is preferably organized into
multiple tables to separate different types of information. For
example, a database file may contain a product table 66, a SKU
table 68, an alternate image table 70, etc. . . . . The database
file may also include scratch tables which temporarily store data.
Each table comprises a plurality of records, and each record
includes a number of fields each organized under a field heading. A
sample empty product table is shown in FIGS. 5A, 5B and 5C. The
product table has item number, item name, keywords, category,
manufacturer name, manufacturer logo, main category 1 and 2, sub
category 1 and 2, detail category 1 and 2, headline, thumbnail
description, thumbnail image, product description, product page
image, publish, default price, and tax exempt headings. These
headings are exemplary in nature and may be replaced by other
headings depending upon the particular catalog or other printed
matter that is being converted for display. Other field headings
may also be used depending upon whether the page layout file
contains more information to be characterized and displayed.
Preferably, there is at least one product table heading for each of
the conversion fields of the dialog box of FIG. 2.
[0043] A detailed view of the SKU table is shown in FIG. 6. The SKU
table is used to track items for availability and promotion. The
SKU table may have, for example, a heading for promotion name,
promotion description, promotion rank, start and end dates of
promotion, etc. . . . .
[0044] The alternative image table is used to track "detail
images." A detail image is an image derived from the high
resolution image of an object. For example, a detail image may be a
cropped and enlarged portion of a high resolution image.
[0045] Referring again to FIG. 4, once the user has selected a
database file, a block 66 opens the tables of the file and a block
68 searches for the next available open (or blank) row in each
table. Because these rows may not be in the same location in the
various tables, the locations of these next available rows are
noted and stored by the block 68 so that all of the information for
a given object that is populated into the database records will be
linked together. After the next open row for each table is found,
the rows are marked for data entry by the block 68 and thereafter
the database file selection process ends.
[0046] FIG. 7 illustrates the programming executed by the block 32
of FIG. 3. The name translation file is a file which maps the names
of the high resolution image files in the page layout file to the
names of images that will be created during the image processing of
the block 38 of FIG. 3. As discussed below, the high-resolution
images of the page layout file, which vary in size and shape, may
be converted in an automated fashion into images that can be
displayed in or on the target medium (e.g., the Internet) including
a thumbnail image and/or a cropped image. The name translation file
stores the names of all images that are noted in the fields labeled
"Detail Image(s)" of the dialog box of FIG. 2.
[0047] A block 90 displays a dialog box (not shown) prompting the
user to select opening of either an existing or a new name
translation file. If the user selects that an existing file is to
be opened, which would be done to continue inputting image names
from a previously saved catalog conversion, a block 92 displays a
dialog box (also not shown) which presents all existing file names
for selection by the user. Once the user indicates selection of a
particular file, a block 94 opens the selected file and determines
the next empty row in the table. Control then passes to the block
34 of FIG. 3. If the operator opens a new file, a block 96 displays
a dialog box (not shown) which prompts the user to enter a file
name and a block 98 opens the file. A block 100 then sets the file
length to a null value so that all data that may be in the file are
cleared. Control then passes to the block 34 of FIG. 3.
[0048] The block 34 of FIG. 3 processes a category file created by
the same user or a different user. Generally, an object can be
categorized to permit the objects to be searched at a later time.
Each object can be categorized at three levels under the "Main,"
"Sub," and "Detail" headings of the fields labeled "Category
Information" of the dialog box of FIG. 2. In order to facilitate
this categorization, the category file is processed to provide the
possible listings for a main category, a sub-category and a detail
category. A sample format for a category file is listed in TABLE 1
below:
TABLE-US-00001 TABLE 1 C S D STR 1 0 0 Lawn & Garden 1 1 0
Flowers 1 1 1 Geraniums 1 1 2 Marigolds 1 1 3 Sunflowers 1 1 4
Pansy 1 1 5 Phlox 1 1 6 Iris 1 1 7 Daisy 1 2 0 Vegetables 1 2 1
Tomatoes 1 2 2 Squash 1 2 3 Gourds 1 2 4 Melons 1 2 5 Beans 1 2 6
Cucumbers 1 2 7 Swiss Chard 1 2 8 Onions 1 2 9 Eggplant 2 0 0 Toys
& Games
[0049] TABLE 1 includes a variable C identifying a number of
possible main categories, a variable S identifying a number of
possible sub-categories and a variable D identifying a number of
possible detail categories. The fourth column of TABLE 1 contains a
string STR identifying the name or title of the corresponding
categorization. For example, the first entry in the table includes
the string "Lawn & Garden." Because this entry has a zero value
for the sub-category variable S and the detail variable D, this
string is a main category title. Similarly, "Toys & Games" is a
main category title, as indicated by the stored values of C=2, S=0,
and D=0. There are two sub-categories under the "Lawn & Garden"
main category identified as "Flowers" and "Vegetables," as
indicated by the zero value for the variable D. Under the "Flowers"
sub-category, there are numerous detail categories, such as
"Geraniums," "Marigolds," "Sunflowers," "Pansies" and "Phlox."
Detail categories such as "Tomatoes," "Squash," "Beans" and
"Cucumbers" are arranged under the "Vegetables" sub-category
(which, in this case, results in an incorrect categorization
because tomatoes are a fruit and beans are legumes). The category
file contains as many main categories, sub-categories and detail
categories as are desired by the user or called for by the design
of the web pages. Preferably, there are at least enough categories
to adequately describe all of the objects in the print-ready
file.
[0050] FIG. 8 illustrates the programming executed by the block 34
of FIG. 3. A block 120 displays a dialog box which prompts the user
to select a categories file for processing. Once a file is selected
by the user, the categories file is opened by a block 122 and a
block 124 checks to determine whether all records in the categories
file have been processed. If not, a block 126 assigns the values of
the next record in the file to variables C, S, D, and STR. A block
128 then checks to determine whether the value of S is equal to
zero. If this is the case, a block 130 stores the string STR in
memory as a main category. If the block 128 determines that the
value of S is not equal to zero, a block 132 determines whether the
value of the variable D is equal to zero. If this is true, a block
134 stores the string STR in memory as a sub-category under the
main category identified by the values C=X, S=0 and D=0, where X is
the value of C for the current record.
[0051] If the block 132 determines that the value of D is nonzero,
a block 136 stores the string STR as a detail category in memory
under the subcategory identified by the values C=X, S=Y and D=0,
where Y is the value of S for the current record.
[0052] It should be evident from the foregoing that the programming
of FIG. 8 is dependent upon the format of the categories file and
that such programming may change if the categories file format is
different from that set forth above.
[0053] With the pre-conversion steps complete, the block 36 of FIG.
3 performs the conversion and cleaning process. A detailed
description of the programming executed by the block 36 is
presented in FIG. 9.
[0054] Initially, a block 150 displays the main dialog box of FIG.
2. The user then can highlight a portion of the text on the page
layout file and click on a corresponding one of the conversion
fields. Alternatively, the user can click on any other field or
button without first highlighting text in the page layout file.
Once an action is taken by the user, a series of blocks 152, 156,
160 and 164 determine whether the user has clicked on a field in
the "SKU Information," "Category Information" or "Detail Image(s)"
areas or on the "Image Name" field or on one of the buttons at the
bottom of the dialog box. If any of these conditions is found to be
true, control passes to one of blocks 154, 158, 162 or 166. The
programming executed by blocks 154, 158 and 162 is shown in detail
in FIGS. 11, 15 and 17, respectively. In the case of the block 166,
clicking on the button labeled "Reset Excel" causes the database
file opened by the block 30 of FIG. 3 to be reset, i.e., the
contents of the database file are deleted from the table. Clicking
on the button "Save Excel" causes the information in the database
file to be saved. Clicking on the button "Edit on SKU WS" causes
the Excel.RTM. program to be displayed with the SKU table opened to
permit direct editing thereof. Clicking on the button "Save SKU WS"
causes the SKU table to be saved. If the user clicks on the "Reset"
button, the contents of all the fields of the dialog box of FIG. 3
are erased. If the user clicks on the "Save" button, the data in
the various fields of the dialog box are saved to the appropriate
files. Clicking on the "Done" button causes the information in the
fields of the dialog box to be saved to the appropriate files and
closure of the dialog box.
[0055] If none of the conditions checked by the blocks 152, 156,
160 or 164 is found to be true, then it has been determined that
the user has clicked on one of the conversion fields, and hence a
block 168 automatically converts and cleans the text that was
highlighted by the user. The highlighted information is filtered to
remove and/or replace characters which, if unaltered, would not
display properly in some or all web browsers. Control from each of
the blocks 154, 158, 162, 166 and 168 returns to the block 150.
[0056] Preferably, all of the information for a specific conversion
object is characterized (by highlighting specific text and clicking
on the appropriate conversion field) and cleaned before converting
information for the next conversion object. For example, referring
again to FIG. 1, all of the information for the object "Sugar
Crunch" is characterized and cleaned before processing is
undertaken for the object "Watercolor Memories."
[0057] FIG. 10 illustrates the dialog box of FIG. 2 with
information entered for the "Sugar Crunch" object. The text strings
in the "Item Number," "Item Name," "Headline" and "Description"
fields are separately entered into such fields, at which time the
strings are converted and cleaned. The text strings in the "Tn
Description," "Keywords" and "Detail Images" fields are entered by
the user. The information in the "Category Information" fields is
entered by successively clicking on the fields under the "Main,"
"Sub" and "Detail" headings, in turn causing selections for such
fields to be displayed by a pop-down menu. The appropriate
information may then be selected by the user by clicking on
same.
[0058] Some of the information in the "SKU Information" field is
entered like the information in the conversion fields (at which
point such data are cleaned and converted) while the remaining
information is manually entered by the user. Before describing this
process further it is helpful to describe the ways in which an
object is identified. In the illustrated example, each catalog
object is identified by at least one item number which is stored in
the "Item Number" conversion field. In addition to the item number,
a catalog object is identified by at least one SKU number. Usually,
an object is identified by more than one SKU number when the object
may have differing attributes. For example, different SKU numbers
may denote seeds which are for the same plant or vegetable except
that the seeds have variations in style, colors, or sizes. Thus,
seeds which grow into a blue version of a flower may have a
different SKU number than seeds which grow into a red version of
the same flower. The "SKU Information" area of the dialog box
includes fields which allow object attributes and other information
relating to an object to be specified. The fields include SKU,
Style, Price, Color, Size, Sale Price ("Sale P"), Quantity Price
("Quan"), Quantity Needed ("Quan N"), Thumbnail Price ("TP"),
Weight ("W") and M. (When a "Y" is stored in the M field, the data
in the respective row of the "SKU Information" table are stored in
the SKU table as marked text, which may be in a different color
than the remaining data in the SKU table. This facilitates location
of such data so that the data can be further processed as desired.)
Other fields may be used depending on user preference and/or
catalog content.
[0059] The programming executed by the block 154 of FIG. 9 is shown
in detail in FIG. 11. The programming is initiated by clicking on
one of the "SKU Information" fields of the dialog box of FIG. 2. A
block 190 then opens a dialog box as illustrated in FIG. 12. This
dialog box contains fields for SKU Number, Style, Price, Color,
Size, Sale Price, Quantity Price, Quantity Needed, and Weight, all
of which have corresponding fields in the main dialog box of FIG.
2. Once the user clicks on a field or button of the dialog box of
FIG. 12, a block 192 determines whether a button denoted "Combos"
has been clicked on. If this is true, a block 194 displays the
dialog box illustrated in FIG. 13 to allow the user to specify
combinations of attributes (this operation is discussed in greater
detail hereinafter.) Control then returns to the block 190. If the
block 192 determines that the "Combos" button has not been clicked
on, a block 196 determines whether one of the text fields has been
clicked on. If this is true, a block 198 executes the routine
executed in FIG. 14. This allows the user to enter SKU data through
the use of the highlight text process described above with respect
to the inputting of data into the conversion fields. Thus, if a
page layout file has SKU information the user may highlight that
information within the page layout file and click on the respective
SKU conversion field to convert and clean the data in the same
manner as described above and then store clean data into the SKU
conversion fields.
[0060] If the block 196 determines that one of the text fields has
not been clicked on, a block 200 determines whether an "OK" button
has been clicked on. If this is the case, the data in the text
boxes are transferred to the fields of the "SKU Information" area
of the dialog box of FIG. 2 by a block 201. Control then passes to
the block 150 of FIG. 9. Otherwise, a block 202 executes
programming which checks to determine whether a "Thumbnail Price"
box, an "Apply" button, a "Copies" field, a "Delete" button, a
"Mark Item" box or a "Cancel" button has been clicked on. If the
"Thumbnail Price" box has been clicked on, then a value is loaded
into a field referred to as "Thumbnail Price" in the database. If
the "Apply" button has been clicked on, then the values in the
"Item Number," "SKU Number," "Size," "Sale Price," "Quantity
Price," "Quantity Needed," Weight" and "Thumbnail Price" fields are
loaded into temporary memory for use during "Combo" processing, as
noted hereinafter. If the "Copies" field has been clicked on, the
user may specify that the information in text fields may be copied
a specified number of times into the SKU table. If the "Delete"
button has been clicked on, the corresponding record in the SKU
table is deleted. When the "Mark Item" box has been clicked on, the
entry in the SKU table corresponding to the information in the text
boxes is marked as noted above. If the "Cancel" button has been
clicked on, the data in text fields (if any) are deleted. Control
from the block 202 then returns to the block 190.
[0061] Alternatively, if desired, SKU data may be automatically
stored into the SKU text fields through the use of a combinations
(hereinafter "combo") selection process initiated by clicking on
the "Combos" button of the dialog box of FIG. 12. Once this button
is clicked on, the dialog box of FIG. 13 is displayed. At this
point the user can copy multiple entries from combination tables by
clicking a "Load" button under each of three columns of text boxes.
These combination tables may be previously generated by the same or
a different user. Each combination table includes a plurality of
columns each including a different combination of attribute values.
The text boxes may be filled as shown in the example of FIG. 13. If
the user decides to clear the entries in the text boxes, he or she
can click on one or more of the "Clear Style," "Clear Color" or
"Clear Size" buttons or the user can directly create and/or edit
the entries. The user can click on the "Make Combos" button to
generate a combination table listing all possible combinations of
the various attribute values in the text boxes along with the
parameters stored in temporary memory when the "Apply" button was
selected. The "Save Combos" button can then be selected to save the
combination table. If desired, the "Advanced . . . " button can be
clicked on to open the combination table in Excel.RTM. so that more
powerful editing features can be employed. When the user is
finished with the combo process, he or she can select the "Done"
button, whereupon the dialog box of FIG. 13 is closed.
[0062] It should be noted that the design of the dialog box of FIG.
13 will be different if values of different attributes are to be
combined.
[0063] FIG. 14 illustrates the converting and cleaning process
invoked by the block 168 of FIG. 9 and the block 198 of FIG. 11. A
block 240 fetches the highlighted text from the page layout file.
Next, a block 242 converts and cleans the text. In the illustrated
embodiment, text cleaning software routines are written as a number
of AppleScript.RTM. routines, each performing a different cleaning
function. First, the block 242 can include a character counting
function to truncate strings longer than a predetermined length.
For example, if it is desirable to limit the product description
records of the product table to only 30 characters to ensure proper
display in a web page, then the block 242 could include a character
counter which truncates any characters of the highlighted text of
the page layout file that are beyond the thirtieth character. This
character counting and truncation routine can be programmed using
known routines. Alternatively, the user could be prompted to
reselect text from the page layout file.
[0064] Second, the block 242 may include an embedded control
character elimination routine. In order to accomplish this cleaning
function, an AppleScript.RTM. routine is written which stores the
characterized text into a character string. The embedded character
elimination routine iterates through each character within the
string. As it iterates through each character, the routine
determines if the ASCII value for the current string character is
between a user-definable range of ASCII values. This range of ASCII
values corresponds to the range of ASCII characters which will be
properly displayed on-line. Characters outside of this desirable
range, such as control characters, are removed or replaced with a
more appropriate character (e.g., a tab may be replaced by a single
space) by this second cleaning routine. As characters from the
stored highlighted string are removed, the string is truncated by
the removal. Alternatively, the embedded character elimination
routine could compare the ASCII value of each character to a
user-specified set of ASCII characters, instead of to a user
specified range of ASCII characters, and remove those ASCII
characters which match the user-specified ASCII characters.
[0065] Certain ASCII characters, like .RTM., .COPYRGT., and .TM.
should not be removed, but rather replaced with codes recognizable
by a web browser to display the character properly on-line. For
example, the conversion program may contain routines which identify
these ASCII characters and replace them with command strings
recognizable in HTML, like ® © and ™ respectively. Other characters
may be replaced through similar routines. In addition to these
cleaning routines, any number of other cleaning routines, such as
removing double spaces from highlighted text or replacing fraction
strings with abbreviated characters (e.g., replacing "1/2" with
"1/2") may also be implemented through similar AppleScript.RTM.
programming routines.
[0066] As noted previously, the cleaning undertaken by the block
242 may vary depending upon which field or text box has been
selected.
[0067] Before storing the cleaned highlighted text in a
corresponding conversion field, the cleaned text is analyzed by a
block 244 to determine whether it is valid. If the cleaned text is
valid, then it is placed into the appropriate field or text box. If
the cleaned text does not satisfy the text criteria an error
message is displayed by a block 248. Control from the blocks 246
and 248 passes to the block 150 of FIG. 9 or the block 190 of FIG.
11.
[0068] While the process described above is an automated
characterization and cleaning process, it should be noted that the
user could manually enter data into the various fields or text
boxes or could manually clean data stored in the conversion fields,
as desired.
[0069] A detailed flow diagram of the process category selection
block 158 of FIG. 9 is shown in FIG. 15. To input category
information for a given object into the fields of the main dialog
box of FIG. 2, the user clicks on one of the fields of the
"Category Information" area, whereupon a block 280 of FIG. 15
displays a pop-up category dialog box (seen in FIG. 16). The
category dialog box includes fields for indicating two different
category assignments. A first set of fields (labeled "Main Category
1," "Sub Category 1" and "Detail Category 1") contains pull-down
menus for entry of a first categorization of an object. A second
set of fields (labeled "Main Category 2," "Sub Category 2" and
"Detail Category 2") includes pull-down menus that allow the user
to specify a second categorization for the object. Selecting one of
the main category pull-down menus causes a block 282 of FIG. 15 to
display a list of all possible main categories as specified in the
categories file. Once a main category has been chosen, a block 284
causes the associated sub-category pull-down menu to display only
those sub-categories that are stored in memory under the selected
main category. The user may then select a sub-category by clicking
on same. Similarly, once a sub-category is selected, a block 286
causes the detail category field pull-down menu associated with the
sub-category to display only those detail categories stored in
memory under such sub-category. At this point the user may select
the appropriate detail category by clicking on such detail
category. An OK button and a Cancel button are provided for exiting
the category dialog box. Upon exiting the category dialog box, the
selected category information is populated into the "Category
Information" fields of the main dialog box as shown in FIG. 2.
[0070] FIG. 17 illustrates the programming executed by the block
162 of FIG. 9. This process identifies which high-resolution images
from the page layout file are to be converted to a web-ready format
and displayed on-line. The process could also convert these
identified images into small thumbnail images and/or cropped images
and could further store "beauty shots," which are the enlarged
images shown after a user has selected a thumbnail image. At a
block 310, if the user has clicked on one of the high-resolution
images in the displayed page layout, and subsequently clicks on the
"Image Name" field, a dialog box is displayed identifying the file
name and giving the user the opportunity to change the file name.
Once the user has indicated acceptance of the original or modified
file name, a block 312 stores the name of the image file as a
string in the "Image Name" field of the main dialog box of FIG. 2.
Typically, the stored image name string will be manually edited to
remove any name extensions from the name. If, for example, the
cucumber image of FIG. 1 were stored as a Photoshop.RTM. image with
the name Cucumbers.tif, the .tif extension which indicates that the
file is a tagged-image file format file is removed. This is done in
part to allow other name extensions, such as .gif and .jpg, to be
appended onto the name upon image processing.
[0071] In addition, at any point during which the main dialog box
of FIG. 2 is displayed and active, one or more image names
identifying the image(s) derived from the high-resolution image can
be stored in the fields under the "Image Names" heading of the
"Detail Image(s)" area of the main dialog box of FIG. 2. Further, a
description of each derived image can be inputted manually in the
adjacent "Description" column of the main dialog box. A pull-down
menu activated by clicking on the arrows of the button adjacent the
label "Detail Image(s)" in the main dialog box can be used to
select a "Counter" option to indicate the number of derived images
stored for a given object. A button labeled "Edit Images" can be
clicked on to allow editing of the description of the derived
images in the "Description" field of the "Detail Image(s)" area of
the main dialog box.
[0072] After all the appropriate fields of the main dialog box have
been populated (e.g., as seen in FIG. 10), the operator can click
on the "Save" button to save the data in the database file. The
saving process is shown in FIG. 18. Every conversion field is
stored in a field of at least one database record, where all
database fields for a given object are relationally linked with one
another. This process begins at a block 336 which checks to
determine whether all fields which must be filled with valid data
are in fact so loaded. If this is not the case, an error message is
generated and the saving process ends. On the other hand, if this
is the case, then a block 340 checks to determine whether there are
any remaining fields or text boxes of the main dialog box to
process. If so, a block 342 fetches the contents of the next field
or text box of the dialog box. A block 348 then places the field
value into the database. Control then returns to the block 340.
[0073] Eventually, all of the field values are loaded into the
database, whereupon control passes from the block 340 to a block
352, which checks to determine whether there are any images to
process. If this is true, a block 354 places the name of the image
into the database and a block 356 writes out the name translation
information pertaining to the image into the name translation file.
Control then returns to the block 352. Once all the images have
been processed, a block 358 clears out all fields (except as noted
below) in the main dialog box and resets all counters. Control then
terminates. The pull-down values for the main category, sub
category, and detail category of the category dialog box are not
cleared because they may be used while converting page layout
information for the next object.
[0074] As should be evident from the foregoing, the programming of
FIG. 18 stores cleaned data and image names into the database file.
A sample database file product table having fields stored therein
is shown in FIGS. 19A, 19B, and 19C. The data stored therein
corresponds to the data in the conversion fields of FIG. 10. Thus,
the number B-54031 is stored in the first record of the field "item
number." Other values are stored at least some of the remaining
fields of the database. In this regard, it should be noted that the
database contains data that will not be displayed on-line or which
is not necessary to identify images to be displayed. For example, a
field "tax exempt" is loaded with data, as are the categories
fields "main," "sub" and "detail," even though such fields are not
required to permit on-line display. These fields are provided to
allow a user to track such information for any desired purpose. In
this regard, once the database is assembled it may be sent to the
catalog publisher so that the publisher can track the
information.
[0075] FIGS. 20A-20C illustrate the programming executed by the
block 38 of FIG. 3. After all of the text information of the page
layout file has been converted and cleaned, automated image
processing functions are performed to convert specified high
resolution images from the page layout file into images suitable
for display in web browsers. The automated functions are undertaken
by a program stored in a computer-readable memory, which may be the
memory 26 of the computer system of FIG. 23. Alternatively, the
instructions need not be stored in the same memory or run by the
same processor that runs the conversion process discussed above. In
fact, it may be desirable to have image processing performed on a
different computer system than that illustrated in FIG. 23,
although the computer system that undertakes the image processing
would be similar or identical to that shown in FIG. 23.
[0076] Referring specifically to FIG. 20A, the same or a different
user opens the image processing program, causing a block 380 to
display an image dialog box illustrated in FIG. 21 and prompting
the user to provide a specific location for the appropriate name
translation file, (i.e., folder, directory or network location).
Once this location is specified, a counter N is set equal to zero.
(In the preferred embodiment the counter N is not used; however,
employing the counter N in the description herein facilitates
understanding. Also, some of the steps described in this and other
portions of the specification do not find a one-to-one
correspondence with the programming. (See the appendix appended
hereto to obtain a full description of the programming.)
Thereafter, a block 382 opens the name translation file which, as
noted above, provides a mapping from the names of the
high-resolution image files that appear in the page layout file to
the names of the derived images that will be displayed on-line.
Alternatively, as shown in FIG. 20, the image processing program
could execute a set of instructions for automatically creating a
first list of high-resolution image files stored in a particular
location, and which further develops a list of thumbnail and
cropped image names from the first list.
[0077] In either case, a block 384 opens a "cropped images file"
containing a listing of the names of previously cropped images. If
a cropped images file is not found (because it has not been yet
created), an empty cropped images file is created at this point.
This cropped images file may be stored at the location of the
high-resolution files, or may be stored at another directory,
folder or network location. A block 386 then compares the name N of
the name translation file to the names stored in the cropped images
file. If the name N of the name translation file is not in the
cropped images file, then it has been determined that the image
identified by the name N of the name translation file must be
cropped and/or otherwise processed. Accordingly, a block 390 opens
the high resolution image in a native image processing application,
such as Adobe Photoshop.RTM.. As seen in FIG. 21, the image dialog
box has five buttons: "Next," "Skip," "Start Batch," "Thumbnail"
and "Quit." Because high-resolution images often cannot be loaded
by a browser in a sufficiently short time and because of display
resolution limitations, it may be desirable to crop the high
resolution images and/or reduce the size in pixels of the images so
that only a portion thereof will be displayed. At a block 392 (FIG.
20B) desired non-automated modifications to the high resolution
image are undertaken by the user using the native image processing
software.
[0078] After the desired non-automated modifications are complete,
control pauses at a block 394 to allow the operator to select any
one of the "Next," "Skip," "Start Batch," "Thumbnail" or "Quit"
buttons. If the "Next" button is clicked on, then a block 398
executes specified changes to the image that can be programmed to
be undertaken by the image processing application (i.e., the block
executes "scriptable" or otherwise programmable changes to the
image.) In the preferred embodiment, the block 398 converts the
image file from a CMYK format (consisting of values for the
printing primary colors of cyan, magenta, yellow and key (or
black)) to a three-color RGB (e.g, red, green and blue) format
suitable for computer monitor display. If desired, an indexed color
format file could also be derived from the RGB format file. After
programmed changes have been effected, a block 400 saves the
modified image(s) as intermediate image(s) and names such files
with a mapped name, which is mapped from the name of the high
resolution image file. In the illustrated embodiment, the
intermediates file(s), however, have no extension. The high
resolution image file is then closed and a block 402 appends the
name N to the cropped images file, indicating that the processing
of this image has been completed. Control then returns to a block
430 of FIG. 20A.
[0079] If the block 396 determines that the "Next" button has not
been selected, a block 404 checks to determine whether the
"Thumbnail" button has been clicked on. If this is the case, a
block 406 executes scriptable changes to the image (like the block
398) and a block 408 converts the image to thumbnail size. The
high-resolution image is changed to thumbnail size through the use
of image processing algorithms in the image processing software,
which can (for example) reduce an 800.times.600 pixel image to a
40.times.30 pixel image. A block 410 then automatically performs an
unsharp masking routine using the native application and a block
412 saves the resulting thumbnail image file(s) with mapped
filename(s) mapped from the name of the high resolution image, but
with the extension ".gif." Thereafter, a block 414 closes the
thumbnail image file, a block 416 reopens the original image file
and a block 418 appends the name N in the name translation file to
an additional file called the "Done Images File," which lists all
images that have been converted into a thumbnail. Control then
returns to the block 392 of FIG. 20B to permit the corresponding
high-resolution image to be processed in Photoshope for custom
modifications. This allows a set of custom modifications, separate
from the custom modifications made in creating the thumbnail image,
to be performed in creating the cropped image.
[0080] If desired, if an image name appears with a detail image
extension, (i.e., if a file has a name with one of the extensions
".dn," where n=1, 2, 3 . . . ) then the programming could provide a
dialog box indicating to the operator that the file is a detail
image and, therefore, that no thumbnail image will be created by
the programming of FIG. 22.
[0081] The above customizations of both the thumbnail image and the
cropped image can be suspended by selecting the Quit button from
the image dialog box. Specifically, if the block 404 of FIG. 20B
determines that the "Thumbnail" button has not been selected, a
block 420, FIG. 20C, checks to determine whether the "Skip" button
has been clicked on. If this is the case, control returns to the
block 430 of FIG. 20A. The block 430 increments the value of N and
control passes to the blocks 386 and 388. At some point in the
process all of the image files will have been processed and a block
428 passes control to a block 432, at which the automated
processing routine of FIG. 22 is invoked. Following the block 432,
a block 434 determines whether the user has selected an option
"Open Folder" in the "Files" heading of a menu bar that is
displayed by the operating system (Apple OS). If this has been
selected, control passes to the block 380. Otherwise, a block 436
checks to determine whether the user has selected an option "Quit"
in the "Files" heading of the menu bar. If this is true, program
execution terminates. If this is not true, control returns to the
block 434.
[0082] Referring again to FIG. 20C, if the block 420 determines
that the "Skip" button has not been selected, a block 422 checks to
determine whether the "Start Batch" button has been selected. If
this button has been clicked on, then the user has requested that
automated image processing be undertaken and hence the automated
processing routine shown in FIG. 22 is invoked by a block 424.
After the automated processing routine is complete, control passes
to the block 434 of FIG. 20A.
[0083] If the block 422 determines that the "Start Batch" button
has not been selected, a block 426 determines whether the "Quit"
button has been clicked on. If this is the case, further program
execution is terminated. Otherwise, control returns to the block
394 of FIG. 20B.
[0084] Referring now to FIG. 22 the automated procedures can be
facilitated by an automation tool, such as PreFab Player.RTM. from
PreFab Software, Inc. of Westford, Mass., which allows the
execution of pre-defined actions such as button selections,
keystrokes, and control commands. Preferably, the automated
procedures at least open each RGB file from the cropped files list,
apply an unsharp masking to the image, apply an image compression
such as a JPEG compression to the image, and save the compressed
file in the compressed image format. If the file is not already in
the "Done Files" list, the same RGB file is then re-opened, scaled
to thumbnail size, sharpened, converted into an indexed color file
and saved as a compressed image file, such as a GIF file, after
which the file name is stored in the "Done Files" list. Other
automated actions may be carried out in a similar manner. The
thumbnail and cropped images created in this manner and stored in
the proper location correspond to the image names stored by the
programming of FIG. 18. Furthermore, the images are sized and image
processed for proper display in the on-line catalog.
[0085] Specifically as seen in FIG. 22, a block 450 reads the next
name from the cropped images file (if this is the first pass
through the programming of FIG. 22, the block 450 reads the first
name in the file.) A block 452 then checks to determine whether all
images in the cropped images file have been processed. If so, then
execution of the programming of FIG. 22 ends. If not, a block 454
performs unsharp masking on the file contents and a block 456
performs a JPEG compression and saves the resulting file with the
extension ".JPG." A block 458 then determines whether the file is a
detail image. If this is not the case, a block 462 checks to
determine whether the file name is in the Done Files list. If this
is also not the case, a series of blocks 462, 464, 466 and 468
changes the size of the image to thumbnail, performs unsharp
masking, executes scriptable changes (identical or similar to the
block 398 of FIG. 20b) and saves the resulting file(s) with the
extension ".GIF." A block 470 then closes the image file(s).
[0086] Following the block 470, or following the blocks 458 and 460
if the file is a detail file or if the file is in the Done Files
list, a block 472 deletes the intermediate file(s) (i.e., the
file(s) that were stored with no extension). A block 474 then
determines whether the Done Files list includes the file name. If
this is not the case, a block 476 adds the file name to the Done
Files list and control returns to the block 450. The block 476 is
skipped and control returns directly to the block 450 if the block
474 determines that the Done Files list does not include the file
name.
[0087] It should be evident from the foregoing that the process and
system described hereinabove coverts the unstructured and untagged
data in the page layout file into searchable data related to an
object.
[0088] With reference now to FIG. 25, the above-described system
may be incorporated into a document production workflow 500 that
streamlines the process of modifying one or more page description
files 502 of a first book for the printing and distribution of a
second, customized book (not shown). The page description files 502
should not be limited to any one particular page description
format, such as QuarkXPress.RTM. as specified by Quark, Inc., but
rather shall be understood to include any type of page mark-up or
layout file (e.g., Acrobat.RTM. PDF as specified by Adobe, Inc. or
HTML), or any other type of file that comprises content and layout
information for one or more pages to be printed, displayed, or
otherwise distributed. It should further be understood that each
page description file 502 may be representative of any number of
pages to be printed, such that an entire book may be represented by
a single file. It should be still further understood that the term
"file," as used herein, includes any computer-readable collection
or assembly of data and/or information in either a localized or
distributed manner, regardless of the manner in which the data or
information is accessed.
[0089] Each page description file 502 may, for example, constitute
a QuarkXPress.RTM. file representative of one or more pages of a
catalog to be distributed to consumers to provide product-related
information on a seasonal basis. Thus, the page description file
502 may, for instance, comprise product information for certain
fashion items directed toward the current season. As will be
explained further hereinbelow, the content and page layout data
stored in the page description file 502 leads to the production of
a first catalog 504.
[0090] Practice of the present invention, however, is not limited
to the specific example of catalog production, and is broadly
applicable to any type of book or document production workflow in
which customized printed matter is produced from previously
designed matter. Nevertheless, it shall be hereinafter assumed for
purposes of illustration only that the printed matter to be
produced constitutes such clothing catalogs.
[0091] In accordance with one embodiment of the present invention,
the document production workflow 500 modifies the content and page
layout data stored in the page description file 502 to produce a
further page description file 506 for production of the second,
customized catalog. In one instance, the second catalog may be
customized to reflect inventory changes since the distribution of
the catalog 504.
[0092] Initially, the page description file 502 representative of
the first catalog 504 is generated in a page make-up software
program or system (such as the system described hereinabove in
connection with FIG. 23) after certain pre-press steps 508 have
been performed. The details of both the pre-press steps 508 and the
page make-up process are well known to those skilled in the art and
any one of a variety of known systems may be employed. In one
embodiment, the page description file 502 is developed as a
QuarkXPress.RTM. file that can be raster image processed to develop
bitmap representations of each page of the catalog 504. These
bitmap representations may be subsequently used for rendering of
the pages on press cylinders or plates 510 in connection with
printing using conventional presses or, alternatively, for
rendering of the pages using a digital press. In any event, a press
generates multiple copies of the catalog 504 having one or more
pages. In a digital press embodiment, the digital press responsive
to such bitmap representations may be utilized to print copies
having further customization, as explained hereinbelow.
[0093] Next, the printed copies of the catalog 504 are then
provided to recipients in a conventional distribution process 512,
the details of which are not pertinent to practice of the present
invention. The recipients of the catalog 504 then place orders for
items described in the catalog 504 via mail, telephone, and the
like. These orders are handled manually or, preferably, by a
processing system 514 having one or more computer systems that may
be localized or distributed in nature and, more generally, may take
on any suitable form.
[0094] At the same time that the above-described conventional
catalog order process is occurring, web-based commerce based on the
same page description file 502 is also resulting in orders for the
processing system 514. More particularly, the page description file
502 is processed in accordance with the system and method described
hereinabove to generate one or more web pages 516 for display and
delivery via the Internet or other network as an electronic
document. Briefly, the page description file 502 is first processed
in a block 518 to generate a database for storing data indicative
of portions of the page description file 502, which may constitute
textual, image, or line art items. For example, if one of the pages
represented by the page description file 502 contains a textual
portion comprising a paragraph of text describing a certain
product, the database generated by the block 518 may contain a
record for the certain product with a field designated for storing
product descriptions. The database may correspond with the product
table shown in FIGS. 19A-19C.
[0095] More generally, the block 518 is preferably implemented by
the software routine set forth hereinabove that allows a user to
characterize each portion of the page description file 502. In
summary, the block 518 implements the steps described in connection
with FIG. 24 and other related figures such that the content (e.g.,
image or text) data are then extracted from the page description
file 502 to generate the database. For purposes of clarity in
explanation only, the database generated by the block 518 will be
hereinafter referred to as the "catalog database." As set forth
hereinabove in connection with the product table of FIGS. 19A-19C,
the catalog database has a plurality of records wherein each record
is associated with one or more products or items of the catalog
504. In one embodiment, each record of the catalog database stores
detailed information for a number of products corresponding with
the number of products to be displayed on each page of the
catalog.
[0096] As described hereinabove, the extraction of content data
from the page description file 502 also results in the generation
of derived image files that may be, for instance, cropped, of a low
resolution quality, and/or of the "thumbnail" variety. These images
are particularly well-suited for use in connection with the web
pages 516, and may be referenced by filename in the catalog
database. However, these image files are generated at a block 522
that may also generate high resolution images suitable for printed
publications. The manner in which the processing of the page
description file 502 generates high resolution images saved as
separate files (rather than the low resolution images, for
instance) will be readily apparent to those skilled in the art in
light of the description hereinabove of the web-based conversion
system. The image data associated with these high resolution images
may then be incorporated into the page description files 506
developed by the document workflow system 500, as set forth
hereinbelow.
[0097] The catalog database and any associated image files are then
provided to a network server 520 to generate the web pages 516 for
transmission via the Internet, an Intranet, or any other type of
distributed or localized network. The web pages 516 may provide an
electronic version of the content provided via the printed catalog
504, or some other version modified to suitably display via the
Internet. In any event, the transmission of the web pages 516
results in further orders for handling by the order processing
system 514.
[0098] As a result of the orders handled by the order processing
system 514, the catalog database may need to be modified. For
example, if a certain product is no longer available in a
particular color or size, the content presented in the second,
customized catalog should be modified to reflect this
unavailability. To this end, the catalog database is provided to a
block 524, together with data representative of, indicative of, or
relating to these database modifications, for analysis and
processing. The data utilized by the data analysis block 524 need
not be limited to data relating to orders that have been processed,
but may further include questionnaire data provided from a block
526 or any other data that may be utilized to analyze whether
customization of the content of the catalog should occur.
[0099] In a preferred embodiment, the data analysis block 524 not
only modifies the catalog database in light of orders processed to
date, but also performs data mining routines known to those skilled
in the art, such as product or affinity clustering, regression
analysis, correlation, positive and reverse seasonality, and the
like. In this manner, the catalog database may be modified to
reflect actual sales (i.e., in terms of which products are still in
stock), as well as data related to actual sales, such as whether
sales of two or more items have exhibited a correlation. Analyzing
such related data may then lead to a customized catalog with a
different layout designed to exploit beneficial relationships
between items.
[0100] The data analysis block 524 may be implemented via a
software routine that provides a user interface for displaying data
collected from various sources, such as questionnaires, or data
that has been generated from actual sales data. The data may then
be analyzed by an operator or user as appropriate by, for example,
compiling and comparing sales statistics of two or more products to
check for correlation and the like. Alternatively, the data
analysis is either performed or assisted by a data mining
application or suite of tools known to those skilled in the art.
Subsequently, the user interface may provide an option for
reordering the records in the catalog database in light of the
correlation or other statistics. For example, if the data collected
by the block 524 shows that two clothing items have been sold in
complementary fashion, the catalog database may be modified to
reorder the records in a manner such that the page description file
506 for the second, customized catalog to be printed has the
complementary products presented on the same page or in similar
sections of the customized catalog. As a further example, when an
item has sold out of a particular color or size, the corresponding
information associated with that color or size is removed from the
catalog database. Thus, when the catalog database is utilized to
generate the page description file 506 for the second, customized
catalog to be printed, the content of the catalog will reflect the
most recent evaluation of the inventory situation.
[0101] The manner in which the catalog database determines the
content data for the page description file 506, and thereby the
second, customized catalog to be printed, will now be described. In
general, the page description file 506 is generated from the
catalog database (including any modifications thereto by the block
524) and a template or series of templates (hereinafter "catalog
template"). In one embodiment, the catalog template is derived from
the page description file 502 for the previously printed catalog
504. Alternatively, the catalog template is developed independently
of the page description file 502. In either case, the catalog
template comprises placeholders that establish or define an area or
position of the page to be populated by the content data stored in
the catalog database.
[0102] Preferably, the catalog template is generated in a page
make-up software application, such as QuarkXPress.RTM. or the like,
that has been modified (via a software extension or otherwise) to
support placeholders. The modified QuarkXPress.RTM. program may be
adapted for operation on the Apple Macintosh.RTM. operating system
or any other operating system, such as the Microsoft Windows.RTM.
operating system. The details of the programming for use as a
QuarkXPress.RTM. extension to create a template or template file
having placeholders may be found in commonly assigned, co-pending
application Ser. No. 08/498,397, the disclosure of which is hereby
incorporated by reference herein.
[0103] A placeholder, as used herein, should be understood to
establish an absolute or relative position on a page where variable
information is to be printed. That is, each placeholder in a
template will be populated with variable information such that the
variable information is incorporated into the resulting page
description file in preparation for printing or distribution, in
general.
[0104] In general, the modified QuarkXPress.RTM. program provides a
user interface for establishing placeholders in the template. The
user interface, in turn, is generated via the programming described
in the above-referenced application and will not be further
discussed herein.
[0105] In one embodiment of the present invention, the page
description file 502 is opened into the modified QuarkXPress.RTM.
program in a block 528 for conversion of the portions thereof into
placeholders. As described in the above-referenced application, one
or more of the image portions set forth in the page description
file 502 may be replaced by reference images associated with a
particular field in the catalog database that indicates image file
names for the images generated by the block 522. Likewise, any
textual portion may be replaced with a placeholder that calls out
to a database field name for which text has been saved in the
catalog database during the block 518. In this manner, one or more
pages of the catalog 504 based on the page description file 502 can
be converted into one or more templates for automated incorporation
of variable information.
[0106] After converting the appropriate portions of the page
description file 502 into placeholders, a catalog template is
generated by a block 530. The block 530 preferably saves data
indicative of the catalog template and, thus, the placeholders
defined therein, in a template file.
[0107] In an alternative embodiment of the present invention, the
template file has either already been generated in connection with
the page description file 502 or has been generated independently
thereof. In either of these cases, the template file is merely
retrieved by the block 530 for processing.
[0108] Generation of the catalog template in connection with the
page description file 502 may be useful when a great deal of
information or content will remain constant between the catalog 504
and the customized catalog to be printed. For example, the template
may retain a background image portion from the page description
file 502 when each page of the catalog 504 contains a fixed image
that forms a background for all of the other portions on the page.
Conversely, generation of the template in an independent manner may
be useful when the customized catalog to be printed has a
completely different layout than the catalog 504, such as a
different number of products displayed on each page, a different
background, a different header or footer, and so on. These
differences may be particularly acute when the customized catalog
to be printed constitutes a clearance catalog.
[0109] In one application of the present invention, a clearance
catalog to be printed comprises a cover page followed by a
plurality of pages of the same basic layout. In this case, two
templates may be generated by the block 530 independently of any
prior page description file. More particularly, a template having
mostly fixed information is generated for the cover page of the
clearance catalog. The fixed information may include content
information for identifying the source of the catalog, a cover
image, text specifying applicable dates for transactions, and text
identifying the catalog as a "Special Clearance Catalog."
[0110] In this particular example, each page of the remainder of
the customized catalog, i.e., the body of the catalog, follows the
same basic format and layout. As a result, each one of the body
pages may be derived from the second of the two templates,
hereinafter referred to as the "body template." The body template
may include one or more placeholders for product images, together
with one or more corresponding textual sections for the respective
products associated with the images. The textual sections, in turn,
may comprise a placeholder for a general product description,
followed by placeholders for the available colors and sizes. The
textual section may further include one or more additional
placeholders for such content as SKU number, original price,
clearance price, and the like.
[0111] In this case, the body template is associated with a
plurality of pages of the customized catalog to be printed and,
thus, may be utilized multiple times during generation of the page
description file for the catalog. It should be noted, however, that
the present invention may be practiced using any number of
templates with each respective template being associated with any
number of pages in the customized catalog to be printed. To that
end, each record in the catalog database may include data
indicative of which template of a plurality of templates should be
used for the content data stored in that record. This
template-identifying data may be entered by an operator of the
above-described system for extracting the content data from the
page description file 502. Alternatively, the block 524 may include
conditional programming that analyzes the content data for a
particular record to determine which template should be associated
with the record. For example, the catalog database may include
statistics regarding whether small or large images have resulted in
purchases of the particular product. Based on the statistics, a
particular template may be selected based on the size of an image
placeholder therein. Similar schemes for performing such
conditional layout design may be devised by those skilled in the
art based on the data analysis performed by the block 524.
[0112] Once the template or templates have been either generated or
retrieved by the block 530, the page description file(s) 506 for
the customized catalog to be printed are generated by a block 532.
The block 532 is generally responsive to the catalog database (as
modified by the block 524), any images files generated by the block
522, and the catalog template(s) generated or retrieved by the
block 530. More particularly, the block 532 processes the catalog
template(s) in accordance with the content data stored in the
catalog database that has been associated with the template(s).
That is, for each record in the database, a selected template is
populated with content data identified by the database record in
accordance with the placeholders in the template. Further details
on the programming routines necessary for processing the
template(s) are set forth in the above-referenced application and
will not be repeated herein. However, the programming routines are
preferably modified to provide a single output file for each
populated template. In other words, the information provided by the
template and the database is not processed to develop separate
streams of page description data (e.g., a master file
representative of fixed information, and a variable data file
representative of information that varies from record to record).
Rather, the block 532 preferably writes out a single page
description file having the fixed information from the template as
well as the content information provided by the database record
being processed. To this end, the fixed information and the
placeholder information in each template need not be separated (as
it is done in the above-referenced application). Instead, a copy of
the catalog template may be generated and processed to populate the
placeholders with content data. However, if the customized catalog
will be printed using a digital press, the block 532 may, in fact,
separate the output into two or more data streams, such as a master
data stream and a variable data stream.
[0113] It should be noted that the catalog database generated in
accordance with the teachings of the present invention may have to
be modified by the block 524 in form (rather than content) to be
compatible with the database format specified by the processing
system of the block 532. It should also be noted that the filenames
generated by the block 522 for the image files should be compatible
with the filename convention specified for the processing system of
the block 532.
[0114] The block 532 generally provides an initial dialog box for
initiating the process of generating the page description file 506.
In addition to providing a standard "START" or "RUN" option, the
dialog box allows a user to define parameters for the job to be
run. More particularly, the user has the option of selecting one of
several different types of output formats (e.g., QuarkXPress.RTM.),
as well as whether the output should be dumped into one single page
description file or multiple files, which may, for example, result
in one file per page (or flat) of the catalog. The dialog may also
prompt the user to identify the catalog database by name and
location (i.e., path), as well as the total number of pages in the
catalog.
[0115] After the page description file(s) have been generated, an
imposition routine may be run to set forth the pages in proper
order for printing. In one embodiment, imposition may be handled by
an off-the-shelf software package for imposing one or more page
description files. Alternatively, if the catalog will be printed
using a digital press, the imposition routine set forth in the
above-referenced application may be utilized to impose the pages of
the customized catalog.
[0116] As a result of the processing of the block 532, one or more
page description files 506 may be provided to a conventional
computer-to-plate press system or a digital press for production of
a customized catalog. If a digital press is utilized, the catalog
may be further customized by treating the page description file(s)
532 as template files representative of fixed content for a
plurality of pages. The system of the above-referenced application
may again be utilized to add further placeholders to the layout
defined by the page description files 532. These placeholders may
be associated, for instance, with recipient address information for
a cover page. Then a variable information database (such as that
described in the above-referenced application) having addressee
information and other variable information could be used to print
catalogs with content customized for each recipient of the catalog,
as specified by the template(s).
[0117] It should be noted that the catalog database may include
additional data directed toward this added layer of customization.
In such an embodiment, the data analysis block 524 may include
functionality for providing a user with an opportunity to modify
the catalog database appropriately.
[0118] The document production workflow described hereinabove shall
be understood to include a software system or suite of software
applications that may or may not be incorporated into a single,
cohesive application. In any event, the workflow is practiced using
a software system having routines dedicated to implementing the
routines specified hereinabove. The routines, in turn, are stored
in a computer-readable medium, which may comprise any type of
computer-readable storage mechanism, such as an optical or magnetic
disk. Alternatively, the computer-readable medium may form a part
of a publishing or production system such that the routines are
stored in resident memory of the system, or in a portion of the
system that stores data optically, magnetically, or in any other
fashion known to those skilled in the art. Still further, the
routines may stored in either a localized or distributed manner
such that the computer-readable medium may comprise a network of
computer-readable media.
[0119] Numerous modifications to the present invention will be
apparent to those skilled in the art in view of the foregoing
description. Accordingly, this description is to be construed as
illustrative only and is presented for the purpose of enabling
those skilled in the art to make and use the invention and to teach
the best mode of carrying out same. The exclusive rights of all
modifications which come within the scope of the appended claims
are reserved.
* * * * *