Interactive system and method for graphical document generation

A system and method is provided for generating customized documents, such as labels, in a client-server computing environment. A server is communicably accessed by a client, which then retrieves a dynamic link library module configured for use by a client-based application. The client also retrieves an ActiveX control module configured for controlling operational aspects of the application; and retrieves a document structure file. The application generates a document using the dynamic link library and the label structure file. A user may then modify the document using the ActiveX control module, and print the document.

BACKGROUND

1. Technical Field

This invention relates to a system and method for accessing, transporting, viewing, interacting with, and printing pre-formatted graphics-laden documents over a distributed computer network.

2. Background Information

Bar coded labels, signs, coupons, tickets, forms, or other pre-formatted, graphics-laden documents (collectively referred to herein as ‘documents’), are an integral part of many businesses and business systems. These documents are commonly used for event admission, product identification, display, reimbursement, shipment, returns, redemption, receipt and return of goods.

Currently, such documents may be presented in a business system operating in a distributed networkas graphical images in various graphical formats, such as GIF, TIFF, JPEG, BMP, PDF and more. However, these images are fixed and non-interactive. Any user-directed changes to these images generally require that the changes to be submitted to the application running on the server and that the image be re-drawn at the host computer server or at the host web server and re-transmitted back to the client workstation, where the client can then use an application software on the client or a browser running on the client to view and print the image.

A need therefore exists for a system and method that provides the ability to dynamically change or otherwise interact with part or all of the elements/objects within such a document, at the client level, rather than at the remote network's server node.

SUMMARY

An aspect of the present invention includes a method for generating customized labels in a client-server computing environment. The method includes communicably accessing a server with a client; retrieving a document editing application from the server; retrieving a dynamic link library module configured for use by a client-based application; retrieving an ActiveX control module configured for controlling operational aspects of the application; and retrieving a label structure file. The method also includes generating a label using the application, the dynamic link library, and the label structure file; interacting with the label, using the ActiveX control module; and printing the label.

Another aspect of the invention includes a computer implemented method in an interactive medium for generating customized graphical documents. The method includes communicably accessing a server with a client; opening a client-based application; retrieving document information from the server; and retrieving from the server, an ActiveX control module configured for controlling operational aspects of the application. The method also includes, at the client, generating a graphical document with the application, the dynamic link library, and the graphical document information; interacting with the graphical document at the client, using the ActiveX control module; and printing the graphical document.

A still further aspect includes a computer implemented method in an interactive medium for generating customized interactive graphical documents. The method includes loading a graphical document information file on a server; loading on the server, a dynamic link library module configured for use by a client-based application; loading on the server, an ActiveX control module configured for controlling operational aspects of the application; and communicably coupling the server to a client. The method also includes transmitting the dynamic link library module to the client; transmitting the ActiveX control module to the client; and transmitting the graphical document information file to the client. Additional steps include configuring the dynamic link library, and the graphical document information file, to interoperate with a client-based application for generating a graphical document at the client; and configuring the ActiveX control module to enable interaction with the graphical document at the client.

In a yet further aspect, the present invention includes a computer implemented method in an interactive medium for generating customized graphical documents. The method includes communicably coupling a server to a client; transmitting a dynamic link library module to the client; and transmitting a graphical document information file to the client. The dynamic link library, and graphical document information file, are configured to interoperate with a client-based application for generating a graphical document at the client. The method also includes transmitting an ActiveX control module to the client, the ActiveX control module being configured to enable interaction with the graphical document at the client.

In yet another aspect, the invention includes a computer system in an interactive medium for generating customized graphical documents. The system includes a server having a graphical document information module configured for being transmitted to a client; a dynamic link library module configured for being transmitted to the client; an ActiveX control module configured for controlling operational aspects of a client-based application, and which is configured for being transmitted to the client; and a client communicably couplable to the server. The client is configured to download the dynamic link library module, the ActiveX control module, and the graphical document information file; operate the application, the dynamic link library module, the ActiveX control module, and the graphical document information file, to generate a graphical document; and operate the ActiveX control module to enable modification of the content of the graphical document.

In another aspect, the invention includes a computer system in an interactive medium for generating customized graphical documents. The system includes a server being communicably couplable to a client. The server includes a graphical document information module configured for being transmitted to the client; a dynamic link library module configured for being transmitted to the client; and an ActiveX control module configured for controlling operational aspects of a client application and configured for being transmitted to a client.

The present invention also includes a computer system in an interactive medium for generating customized graphical documents, the system including a client communicably couplable to a server. The client includes a dynamic link library module; an ActiveX control module; a graphical document information file; and an application configured to interoperate with the dynamic link library module, the ActiveX control module, and the graphical document information file, to generate a graphical document. The ActiveX control module is configured to enable modification of the content of the graphical document at the client.

DETAILED DESCRIPTION

Referring to the figures set forth in the accompanying drawings, the illustrative embodiments of the present invention will be described in detail hereinbelow. For clarity of exposition, like features shown in the accompanying drawings shall be indicated with like reference numerals and similar features as shown in alternate embodiments in the drawings shall be indicated with similar reference numerals.

As used herein, the term ‘distributed network’ refers to a client server network, a thin client network such as the world wide web on the internet, or an internal intranet within an organization. Such a distributed network generally includes a server computer referred to herein as ‘server’ and a client workstation computer referred to herein as ‘client’. Application software typically runs on the server and a client application or a browser typically runs on the client workstation communicating with the server software.

Embodiments of the present invention include an on-line document-handling (e.g., labeling) Internet site on the World Wide Web, which offers convenient document generation services in a distributed network (e.g., thin client in the case of the Web and Internet) environment. Particular embodiments of the site serve as a platform to publish, communicate and access packaging and labeling information for internal and external enterprise-wide compliance. For example, manufacturers, suppliers, and/or other subscribers (i.e., at the client level) may easily and accurately produce labels that conform to standards that have been uploaded to the site (i.e., at the server level), by a publisher, such as manufacturers, distributors or retail chains for compliance in regards to shipping goods or returned merchandise. Publishers may generate and upload their unique label configurations to the site using a format that advantageously occupies a relatively small footprint, and facilitates manipulation by a user. Subscribers thus may relatively easily and quickly download the label configuration, manipulate information contained therein, and use it to generate output on nominally any printer via a conventional PC workstation and an Internet Browser. Thus, subscribers may generate and print labels, and the like, simply by choosing the appropriate label configuration, which is then downloaded automatically from the server to the client, viewing it, and filling in any variable information.

Variable information may include various user-defined (i.e., publisher-defined) information such as label size, return address, tracking number, and carton numbers, etc.

Optionally, other items such as Purchase Order numbers, Invoice numbers, and etc. with any other related information, may be uploaded to the site by the publisher, and downloaded by the subscriber along with the label configuration information. The site thus enables publishers to quickly update their labels, to provide a convenient means for ensuring that label configurations remain in compliance.

Referring toFIGS. 1-8, exemplary embodiments of the present invention are shown and described. Turning toFIG. 1, particular embodiments of the present invention include a client112/server102configuration including a server site100that allows substantially any client application110,210which is compatible with Microsoft® ActiveX technology, to load, display, interact with, and print signs, labels, coupons, tickets, forms, or other similar documents. Application110may include a conventional browser (e.g., Microsoft® Internet Explorer® or Netscape® browser), which makes use of embodiments of this invention to load, access, view, set up and print these documents through the browser's graphical user interface. Optionally, as shown in phantom, an application210may be used, which may either be based-upon (e.g., running on top of) a browser)110, or may be nominally any other stand-alone program that is compatible with ActiveX technology, such as described in greater detail hereinbelow.

As shown, site100is hosted on a server102, such as one running the Microsoft® NT platform. Site100includes a DLL (Dynamic Link Library) module104, a control module (also referred to as an “OCX” or “Active X” module)106, and a graphical document information module, which in this embodiment includes a collection of document structure modules (or “TLD”)108.

The DLL module104performs graphical rendering of a desired document, loading and saving of files containing the document, printing of the document, and many other functions that permit manipulation of the document. This module may be embodied in software, such as written in any desired high-level programming language such as the C++ programming language. Alternatively, module104may be embodied in hardware or combinations of hardware and software, without departing from the spirit and scope of the present invention. Further, an electronic image of this module,104, is transferred to the remote computer112, automatically one time only when the remote computer and client access the server for the first time. Thereafter, all the graphical rendering and processing as described above takes place at the client on the remote computer without relying on the server.

Document Structure (TLD) module108is typically a software file containing the structure of the desired document (e.g., label, forms, signs, and etc.), which allows for incorporation of various types of objects within the document. The various objects may include text, bar codes, lines, boxes, drawings, pictures, logos and fixed and dynamic data stored in various forms within the document. In exemplary embodiments, module/file108may be disposed in the .TLD (Tattoo Label Design) format commonly used by the Tattoo ID® label-making software available from Integrated Software Design, Inc. (Mansfield, Mass.). The .TLD format is configured to contain graphical components, logic, and user-defined data elements to provide a convenient and compact mechanism for efficiently transmitting components (graphical and logic) which effectively define the graphical document in a manner that permits aspects of the document to be pre-defined, while permitting other aspects to be modified by the user at the client level, so that the document may be selectively modified and displayed/rendered at the client on multiple devices, independently of the server. In these embodiments, the collection of .TLD files108associated with particular documents112(FIG. 2) are created (e.g., remotely by a publisher) using the Tattoo ID® label-making software, and uploaded to server102for use in the present invention. As mentioned hereinabove, although the documents are labels in the examples shown herein, substantially any type of document capable of being defined in the .TLD format, including signs, tickets, coupons, forms, and the like, may be used in connection with the present invention.

Moreover, although the .TLD format is described herein, the skilled artisan will recognize that substantially any format capable of containing the structure of the desired document, and allowing for incorporation of various types of objects within the document, may be used without departing from the spirit and scope of the present invention.

In alternative embodiments, the graphical document information module may include data that is retrieved from an optional database180(shown in phantom) which may be used in conjunction with the .TLD module108to retrieve and incorporate variable information for the .TLD document, thereby offering open connectivity to populate .TLD files with dynamic data from other third party application and databases. In these embodiments, other (e.g., developed by third parties) applications210, as also shown in phantom, may be equipped (e.g., may incorporate the appropriate specifications used by the TattooID® software) to enable them to generate their own variable data to populate .TLD files. These applications may be resident on the server100, downloaded from other connected servers, or communicated with via an interface between them and the server100for the purpose of transporting data from other remote server to the server100or databases180. Applications210may include programs developed by third parties, including those written in Visual Basic (VB), Visual C (VC), ASP (Active Server Pages) or any compatible development tool. Moreover, most applications developed by Microsoft® Corporation provide support for OLE, and thus may integrate with ActiveX Control106,206. Nominally any of these applications that are configured to communicate with ActiveX components via OLE, may pass data back and forth to a document108via XML or a comma delimited file, to effectively operate in the context of the present invention. Operational details of such embodiments including an application210, are discussed in greater detail hereinbelow.

Control module206offers an interface that may be called by client applications110,210to enable them to access the functionalities of DLL204. In exemplary embodiments, module206is an ActiveX component developed in C++, which conveniently interfaces with substantially any application that supports ActiveX controls, i.e., any application that supports OLE (Object Linking and Embedding) such as Microsoft® Internet Explorer® or the Netscape® browser.

In particular embodiments, module206provides applications with various functions and properties that may be selectively accessed by the user using an on-screen display (window)111to communicate or otherwise interact with a document, such as shown inFIG. 2. Exemplary functions include the ability to load and display documents, disable or enable tool button controls (e.g., zoom in/zoom out), retrieve or update information in documents being displayed, and print documents.

Moreover, the user may adjust various parameters of display111, such as height, width, appearance and location, to customize the look and feel of the display within the application.

Examples of properties and custom functions that may be adjusted using the ActiveX control module206are included in the following Tables 1 and Table 1A.

TABLE 1Height/Width: The height or width, in points, of an object.The Height and Width properties are automatically updated when a usermoves or sizes a control. When a user changes the size of a control,the Height or Width property stores the new height or width. If a userspecifies a setting for the Left or Top property that is less thanzero, that value will be used to calculate the height or width of thecontrol, but a portion of the control may not be visible on the HTMLLayout.If a user moves a control from one part of an HTML Layout to another,the setting of Height or Width changes only if the user sizes thecontrol as it is moved. The settings of the control's Left and Topproperties will change to reflect the control's new position relativeto the edges of the HTML Layout that contain it.The value assigned to Height or Width must generally be greater thanor equal to zero. For most systems, the recommended range of values isfrom 0 to +32,767. Higher values may also work depending the systemconfiguration.Visible: Specifies whether a control is visible or hidden.To hide an object at startup, the Visible property may be set to‘False’ at design time. Setting this property in code enables acontrol to be hidden and later redisplayed at run time in response toa particular event.All controls are visible at design time.Codebase:The CodeBase property makes it possible to automatically downloadActiveX controls from a server to a user's machine.The CodeBase property supports the following file types:PE (portable executable): The PE (for example, .ocx, .dll, .exe)is downloaded, installed, and registered automatically if the controlis not already registered on the user's computer. This is the simplestway to package a single-file ActiveX control, but it does not use filecompression and isn't platform independent except with HTTP..cab (cabinet): The .cab file contains one or more files, all of whichare downloaded together in a single compressed cabinet file. One filein the cabinet is an .inf file providing further installationinformation. The .inf file may refer to files in the .cab as well asto files at other URLs..inf (installation information): The stand-alone .inf file specifiesvarious files that need to be downloaded and set up for an .ocx torun. The syntax of the .inf file supports URLs pointing to files todownload as well as platform independence (by enumerating files forvarious platforms). This mechanism provides platform independence fornon-HTTP servers.ID: Specifies the name of a control or an object, or the name of afont to associate with a Font object.Left/Top: The distance between a control and the left or top edge ofthe HTML Layout that contains itTabStop: Indicates whether an object can receive focus when the usertabs to it.The TabStop property is generally set at design time.TabIndex: Specifies the position of a single object in the HTMLLayout's tab order. The index value of the first object in the taborder is typically zero.bControlInitialized: Flag to indicate that the control isinitialized and ready to load documents. This property is set by thecontrol itself and should be checked to see if it is set prior toloading any labels to it.pszTLDFileName: Path name of the document to be loaded into thecontrol. This property may be used to specify the default label toload in the control during startup.

TABLE 1Aint Open (String filename)Return Value: Returns 1 if the file was openedsuccessfully, otherwise 0Parameters: filename - path of local file and or remotefile URL to be openedRemarks: Opens the file specified and displays it in thecontrolint GetFileInfo(XMLString & fileInfo)Return Value: Returns 1 if successfully obtained information about thelabel, otherwise 0Parameters: filelnfo - XML formatted string with retrievedinformation about the label. Reference **XML DTD below for the fileformat.int SetFileInfo(XMLString fileInfo, int nMask)Return Value: Returns 1 if successfully updated information about thelabel, otherwise 0Parameters: filelnfo -XML formatted string with updated informationabout the label. Reference **XML DTD below for the file format.UpdateFileInfo (fileInfo)int EnableControls (int nMask)Return Value: Returns 1 if successfully updated controls information,otherwise 0Parameters: nMask - the mask that determines which controls to enableand which ones to disable.TID_CTRL_PRINT - (1)TID_CTRL_OPEN - (2)TID_CTRL_ZOOM_IN - (4)TID_CTRL_ZOOM_OUT - (8)TID_CTRL_PRINT_SETUP - (16)int ZoomLabel (float Scale)Return Value: Returns 1 if the operation completed successfully,otherwise 0Parameters: Scale - new scaling factor to be used for label drawingRemarks: ZoomLabel function proportionally enlarges or shrinkscurrently loaded label to specified scaling factor. Scaling onlyaffects the way the label is displayed on the screen and has no affecton the way the label is printed.int PrintLabel( )Return Value: Returns 1 if the operation completed successfully,otherwise 0Parameters: - none -Remarks: Displays Tattoo ID print dialog on the screen (See thediagram). From the dialog the user has a choice of configuring andprinting currently loaded label or canceling the print job.

Client computer112is communicably coupled, for example via the Internet or an Intranet (or via dedicated link), to server102. As mentioned hereinabove, client112includes at least one application110,210running thereon, which is compliant with the control protocol of control module106and206as discussed hereinabove. As also shown, client112includes local copies204, and206of DLL and OCX modules104and106, respectively.

Operation of various embodiments of the present invention is shown and described with respect toFIG. 1and the following Table 2.

TABLE 2209Site or application checks for updated local version of DLL/OCX211 Optionally check for document editing application 210213 If not found, optionally download application 210212If updated local DLL/OCX not found, then download214Local OCX retrieves copy of document info from site (.TLD andany data)215 Optionally generate prompt screen(s) for selecting or imputingdocument reference(s)217 Optionally drill down to desired document216Generate/display document in window 111 (by calling OCX 206)218Interact with document using local OCX 206220Enter Variable Information221 Optionally Generate prompt screen222Print document224 Optionally generate reports (e.g., activity, billing)

During operation, once application (e.g., browser or other compliant application)110logs for access onto server site100, it may check209for local copies of DLL and OCX modules104and106. If one or more of the components204and206are not found (or an older version of the component is found) locally, then application110,210downloads212the latest DLL/OCX modules104,106from the server102.

Application110may then instruct local OCX206to retrieve214a document (e.g., its corresponding .TLD file108) from site100. This may be accomplished by optionally selecting215documents of a desired type (e.g., ‘Compliance Labels’, ‘Library’, or documents posted by a particular publisher), shown in a graphical display132(FIG. 4). The user may then drill down217to a particular document, such as by selecting a folder shown at134inFIG. 5. Application110may then generate/display216the selected document, using it's .TLD file108in combination with DLL module204, such as shown inFIG. 2. As also shown inFIG. 2, exemplary label112includes various information provided by the publisher (e.g., by uploading to server102), such as a bar code120, part number122, and “Ship to” information124.

The application also enables the user to interact218with the document, e.g., using functions and commands provided by control module206. For example, as best shown inFIG. 2, control module206enables application110,210to generate a display110which includes scrollbars114, and toolbar(s)116with tool icons118to provide functions such zoom in/out, preview, and print, such as by using ActiveX controls.

The user may also interact218with the ActiveX window111to shrink or enlarge the document112, print the document, or modify the position of the printed document on label stock prior to printing. The user may also interact with the document112by entering220or otherwise changing any data dynamically and view the results in the window111without having to go back anywhere (i.e., without having to go back to server site100) to retrieve data. For example, variable information, such as shipper's address126, and assembly location128, may be entered220automatically, or semi-automatically (e.g., by selecting data from a database exchange) and/or by specific user input (e.g., keystroke, stylus, etc.). Optionally, application110,210may generate221a prompt screen136(FIG. 6) including a list of fields to prompt the user to enter desired variable information.

This merging of data, re-formatting, and re-imaging, are thus accomplished dynamically in real-time at the client112within the application110. As used herein, the term ‘real-time’ refers to actions taking place on the client, at speeds nominally limited only by the processing capacity of the local client machine.

Once complete, the user may print222the document. As best shown inFIG. 3, application110,210generates a print dialog screen130which enables the user to select various conventional print parameters to configure and print the currently loaded label, or cancel the print job.

Users at either the level of client112or server102may also optionally generate222reports, such as an activity report140(FIG. 7) and/or a billing report142(FIG. 8).

In an alternate embodiment of the present invention, client112may include a dedicated application210, which has the capability of generating .TLD files as discussed hereinabove.

Operation of this embodiment, including application210, is in many respects similar or identical to the operation of application110discussed hereinabove, except for the following differences. As mentioned hereinabove, application210may reside on client112, and optionally, the site100may check211with the client to ensure presence of an updated version of application210. If not found, a copy210′ of the application may be downloaded213from site102to client112.

After checking209and/or downloading212a copy of the DLL/OCX, the application210(e.g., written in VB or any other compatible language) may retrieve214document information (i.e., data) from database (e.g., Oracle®, SQL®, Access®, etc.)180of the site100. Such document information may be properly identified by generating215one or more prompt screens132(FIG. 4) configured to elicit reference(s) such as document/label name, part number, etc., from the user.

Program210may then call ActiveX control module206passing it the document/label name and the data retrieved from database180(e.g., in XML format). ActiveX module206may then take the combined data and generate a document112(e.g., generate a .TLD file) and display it216in a window111(FIG. 2). The document may then be manipulated and printed as discussed hereinabove.

The foregoing describes customized document generation in a networked computer environment. Although the exemplary environment discussed hereinabove is that of a thin client or client-server, the skilled artisan will recognize that peer-to-peer networked computers and any variation thereof may be used without departing from the spirit and scope of the present invention.