WO2015152916A1 - Interactive document editing using data interchange format - Google Patents

Interactive document editing using data interchange format Download PDF

Info

Publication number
WO2015152916A1
WO2015152916A1 PCT/US2014/032679 US2014032679W WO2015152916A1 WO 2015152916 A1 WO2015152916 A1 WO 2015152916A1 US 2014032679 W US2014032679 W US 2014032679W WO 2015152916 A1 WO2015152916 A1 WO 2015152916A1
Authority
WO
WIPO (PCT)
Prior art keywords
document
client
user interface
data interchange
interchange format
Prior art date
Application number
PCT/US2014/032679
Other languages
French (fr)
Inventor
James Matthew Downs
Original Assignee
Longsand Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Longsand Limited filed Critical Longsand Limited
Priority to PCT/US2014/032679 priority Critical patent/WO2015152916A1/en
Publication of WO2015152916A1 publication Critical patent/WO2015152916A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Definitions

  • Web-based document editing tools allow users to create and modify documents, spreadsheets, presentations, etc. Such document editing tools to create and modify content, similar to their counterpart desktop tools.
  • the tools typically provide common operations such as formatting, page layout, document review, etc. that are accessible through menus and toolbars.
  • the workflow of how the tools operate is determined by the developers of the tools while the content of the documents created is determined by the users of the tools.
  • FIG. 1 is a block diagram of an example computing device for providing interactive document editing using a data interchange format
  • FIG. 2 is a block diagram of an example computing device in communication with a web server for providing interactive document editing using a data interchange format
  • FIG. 3 is a flowchart of an example method for execution by a computing device for providing interactive document editing using a data interchange format
  • FIG. 4 is a flowchart of an example method for execution by a web server for providing a multi-level interactive document using a data interchange format
  • FIG. 5 is a diagram of an example user interface for providing interactive document editing using a data interchange format
  • FIGS. 6A and 8B are diagrams of an example user interface of a multilevel interactive document using a data interchange format.
  • web-based document editing tools allow a user to create and modify documents in a web browser.
  • web-based document editing tools do not provide the ability to embed programming logic, user interface (Ui) elements, or complex data integration.
  • Example embodiments disclosed herein provide an interactive document that allows for all the basic functionality of a traditional document editing tool but also allows for additional advanced features such as: (1 ) embedded user interface (US) elements that allow forms to be constructed in the document; complex data integration; embedded programming logic; complex data-driven tables (e.g., tables used in a quote or statement document); and ability to specify certain parts of the document as being editable while other specified as being read-only (i.e., allowing document designers to "lock down" parts of the document).
  • US embedded user interface
  • Hypertext markup language does not support text layout features for implementing these advanced features. For example, HTML does not provide (1 ) the ability to paginate; (2) readers, footers, tab stops and rulers; and (3) consistent rendering of HTML across different web browsers.
  • Example embodiments disclosed herein improve providing interactive document editing using a data interchange format. Specifically, interactive documents are provided in a web browser by using a data interchange format for transmitting modifications to the document and by using user interface elements that are dynamically reflowed in the web browser
  • an interactive document is displayed based on an initial document layout, where the initial document layout is determined based on a template provided by a web server using a data interchange format.
  • the display of the interactive document is updated using client-side scripts.
  • the client-side input is converted to obtain converted input that is compatible with the data interchange format, and the converted input is sent to the web server, where the web server updates the template based on the converted input.
  • FIG. 1 is a block diagram of an example computing device 100 for providing interactive document editing using a data interchange format.
  • Computing device 100 may be any computing device (e.g., smartphone, tablet, laptop computer, desktop computer, etc.) capable of accessing a web server, such as web server 250 of FIG. 2.
  • server computing device 100 includes a processor 1 10, an interface 1 15, and a machine-readable storage medium 120.
  • Processor 1 10 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120.
  • Processor 1 10 may fetch, decode, and execute instructions 122, 124, 128, 128 to enable interactive document editing using a data interchange format, as described below.
  • processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126, 128.
  • Interface 1 15 may include a number of electronic components for communicating with web servers.
  • interface 1 15 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the user computing device.
  • interface 1 15 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface.
  • WLAN wireless local area network
  • NFC near-field communication
  • interface 1 15 may be used to send and receive data to and from a corresponding interface of a web server.
  • Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
  • machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like.
  • RAM Random Access Memory
  • EEPROM Electrically-Erasable Programmable Read-Only Memory
  • storage drive an optical disc, and the like.
  • machine-readable storage medium 120 may be encoded with executable instructions for providing interactive document editing using a data interchange format.
  • Interactive document displaying instructions 122 displays an interactive document in a web application executing within a web browser or other web- based desktop application (e.g., a thin desktop client where processing is performed on a web server).
  • the web application may be a computer application that is accessed over a network connection (e.g., interface 1 15) using hypertext transfer protocol (HTTP).
  • HTTP hypertext transfer protocol
  • the interactive document may be rendered based on a template from a web server that is received in a data interchange format (e.g., extensible markup language (XML), JAVASCRIPT rM Object Notation (JSON), etc.).
  • a data interchange format is typically an open standard format that uses human-readable text to transmit data objects that include attributes and corresponding values.
  • a data interchange format may also use a separate schema that can be used to validate data in the format (i.e., data in a data interchange format can be self-describing).
  • JAVASCRIPT 1 ⁇ 1 is a trademark of Oracle Corporation, which is headquartered in Redwood City, California.
  • Document display updating instructions 124 updates the display of the interactive document based on user input.
  • a user may provide information requested in text boxes, move elements (e.g., title, address, heading, margins, etc.) of the interactive document, select a value in a drop down list, etc.
  • the user input can be collected using a client-side scripting language such as JAVASCRIPT 1 M .
  • the c!ient-side scripting language can be triggered by events (e.g., key press, drag, focus, etc.) of user interface elements such as labels, text boxes, drop down lists, data bound objects, etc.
  • Client-side input converting instructions 126 converts the user input to be compatible with the data interchange format. For example, if an element of the interactive document is moved by the user, the movement of the element can be converted to relative position attributes that are compatible with the data interchange format and then sent to the web server with an element identifier attribute. Sn another example, if text is added to a textbox in the interactive document, the content can be converted to a content attribute that is compatible with the data interchange format and then sent to the web server with a textbox attribute. Sn some cases, user inputs are collected as they are processed by document display updating instructions 124 and then periodically converted to be compatible with the data interchange format (i.e., batch processing).
  • Converted input sending instructions 128 sends converted input to the web server.
  • the web server may then use the converted input to modify a server- side template for the user.
  • the converted input is compatible with the data interchange format and can be transmitted using various protocols such as simple object access protocol (SOAP), remote procedure call (RPC), web services description protocol (WSDL), representational state transfer (REST), etc.
  • SOAP simple object access protocol
  • RPC remote procedure call
  • WSDL web services description protocol
  • REST representational state transfer
  • FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with a web server 250. As illustrated in FIG. 2 and described below, computing device 200 may communicate with a web server to provide interactive document editing using a data interchange format.
  • computing device 200 may include a number of modules 202-230.
  • Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device 200.
  • each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
  • computing device 200 may be a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below.
  • computing device 200 may include a series of modules 202-230 for enabling interactive document editing using a data interchange format.
  • Interface module 202 may manage communications with web server 250. Specifically, interface module 202 may initiate connections with web server 250 and then send or receive document data to/from web server 250.
  • Document module 210 may manage documents obtained from web server 250. Although the components of document module 210 are described in detail below, additional details regarding an example implementation of moduie 210 are provided above in connection with instructions 122 and 128 of FIG. 1 .
  • Interchange module 212 processes interchange data received from or for sending to web server 250.
  • template data may be received in a data interchange format from the web server, where interchange module 212 interprets the template data to create a template (i.e., document object model) for the interactive document.
  • user inputs collected by user interface module 220 as described below may be converted to user data in the data exchange format for sending to web server 250.
  • interchange moduie 212 ensures that data received from and sent to web server 250 is compatible with the data interchange format.
  • the template created by interchange module 212 may include an array of paragraph and table objects, where each paragraph and table object contains an array of characters that are included in each object as well as styles that are applied to the characters.
  • the template may be stored and modified in storage device 230.
  • Document layout moduie 214 processes the template received from web server to generate code for rendering the interactive document.
  • the template can be processed to generate HTML for displaying in a web application executing within a web browser or other web-based desktop application.
  • the HTML may be used by the user interface module 220 to render the interactive document.
  • a "div" element may be inserted into the template, where characters are then inserted into the "div" element and the size of the div is stored for later use. The character metrics are then used to calculate how much text can fit into a given area on the screen.
  • pagination can be achieved by rendering the interactive document into lines of the correct width.
  • Document layout module 214 adds new pages as the page is filed until all text lines are rendered into the template. Headers and footers are achieved in a similar manner as pagination. When the pages are rendered, space is reserved at the top and bottom of each page, and the text lines for the headers and footers are inserted into these reserved spaces in the page "div" of the template. Further, certain portions of the interactive document may be designated as editable or uneditable.
  • User interface module 220 may provide a user interface for interactive documents. Although the components of user interface module 220 are described in detail below, additional details regarding an example implementation of module 220 are provided above in connection with instructions 124 and 128 of FIG. 1 .
  • User input module 222 processes user inputs received from the user. Specifically, client-side scripting can be used to execute code in response to user interface events triggered by the user in the user interface. For example, a keypress event by the user can trigger code to incorporate new content into the template. In another example, a selection even of a drop down list can trigger code to incorporate the selection into the template. User input module 222 provides notifications of changes to the template to document rendering module 224.
  • Document rendering module 224 renders the template for the user.
  • the template may be rendered as HTML in a web browser.
  • the rendered interactive document may include various user interface elements such as text boxes, drop down lists, radial buttons, etc. as specified by the template. Further, text in the interactive document is flowed independently of the web browser of the user.
  • Document rendering module 224 also receives notifications of changes from user input module 222 so that HTML can be generated and inserted into the template. In other words when the document changes based on data changing or user input, document rendering module rebuilds the document and flows ail of the text and user interface elements independent of the web browser. Because each web browser may render HTML in a different manner, document rendering module may detect the version of the web browser and adjust the HTML accordingly to allow for consistent visualization of the document across web browsers.
  • Storage device 230 may be any hardware storage device for maintaining data accessible to computing device 200.
  • storage device 230 may include one or more hard disk drives, solid state drives, tape drives, random access memory (RAM), and/or any other storage devices.
  • the storage devices may be Iocated in computing device 200 and/or in another device in communication with computing device 200.
  • Web server 250 may be any server accessible to computing device 200 over the network 245 that is suitable for providing and receiving data interchange data for documents. As illustrated, web server 250 includes device interface module 252 and data interchange manager 254.
  • Device interface module 252 may manage communications with computing device 200. Specifically, device interface module 252 may initiate connections computing device 200 and then send or receive document data to/from computing device 200.
  • Data interchange manager 254 converts document templates to be compatible with the data interchange format and stores interchange data from computing device 200 to document templates. In this manner, document templates can be provided to computing device 200 using a lightweight protocol thereby reducing bandwidth requirements. Further, data interchange manager 254 stores document template changes on web server 250 so that the user can access the document template from any device (i.e., the cloud).
  • FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for providing interactive document editing using a data interchange format.
  • execution of method 300 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 300 may be used, such as computing device 200 of FIG. 2.
  • Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
  • Method 300 may start in block 305 and continue to block 310, where computing device 100 displays an interactive document in a web application executing within a web browser or other web ⁇ based desktop application.
  • the interactive document may be rendered based on a template from a web server that is received in a data interchange format.
  • the display of the interactive document is updated based on user input. For example, user may initiate various events of user interface elements in the interactive document that trigger updates to the display.
  • computing device 100 converts the user input to be compatible with the data interchange format. For example, a change in position of a user interface element may be converted to coordinate attributes consistent with the data interchange format.
  • computing device 100 sends the converted input to the web server. The web server may then use the converted input to modify a server-side template for the user. Method 300 may then continue to block 335, where method 300 may stop.
  • FIG. 4 is a flowchart of an example method 400 for execution by a web server 250 for providing a multi-level interactive document using a data interchange format. Although execution of method 400 is described below with reference to web server 250 of FIG. 2, other suitable devices for execution of method 400 may be used. Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
  • Method 400 may start in block 405 and continue to block 410, where web server 250 provides an initial template with a document layout to a computing device using a data interchange format. Specifically, the initial template may be retrieved from storage and then converted to be compatible with the data interchange format before transmission to the computing device.
  • the initial template may be retrieved from storage and then converted to be compatible with the data interchange format before transmission to the computing device.
  • user inputs that are compatible with the data interchange format are obtained from computing device. The user inputs describe changes made to the template.
  • the user inputs are saved as modifications to the template.
  • web server 250 determines if the user has completed his editing of the document. For example, the user may dick a submit button to submit his changes to the document. If the users editing is not complete, method 400 returns to 415, where web server 250 obtains additional user inputs from computing device. If the user's editing is not complete, web server 250 determines if the initial template is a survey template in block 435. For example, a survey template is described below with respect to FIG. 6A.
  • method 400 may then continue to block 445, where method 400 may stop.
  • the initial template is a survey template
  • web server 250 provides a customized template to computing device in block 440.
  • the customized template describes an additional document that is dynamically created based on the user inputs received in response to the initial template such as the customized template described below with respect to FIG. 8B.
  • FIG. 5 is an example user interface 500 for providing interactive document editing using a data interchange format.
  • the user interface 500 includes a title bar 505 identifying the web content and a close icon 510 that may be used by the user to exit the web browser.
  • the user interface 500 also includes a back navigation button 515, a forward navigation button 520, a web address inputbox 525, an options button 530, and a document editing toolbar 535.
  • the document editing toolbar 535 allows the user to perform various editing functionalities such as insert a new user interface element, add text, print, open a new document, etc.
  • the user interface 800 displays an interactive document in the panel 537.
  • the interactive document includes user interface elements 540, 544, 546, 548.
  • Data bound objects 540, 548 are bound to, for example, data rows of a data table in a database.
  • data bound objects 540, 548 retrieve name and address information for a recipient and a sender from the database for inclusion in the interactive document.
  • Textbox 544 allows the user to enter freeform text into the document. As the user enters text that exceeds the bounds of textbox 544, textbox 544 can be resized and the interactive document can be reflowed accordingly.
  • Drop down list 548 allows the user to select from a list of predetermined values for including in the interactive document.
  • the user can reposition the user interface elements 540, 544, 548, 548, which causes the interactive document to be reflowed to account for the new positions of the user interface elements.
  • FIGS. 8A and 8B are diagrams of an example user interface 600 of a multi-level interactive document using a data interchange format.
  • the user interface 600 includes a title bar 802 identifying the web content and a close icon 604 that may be used by the user to exit the web browser.
  • the user interface 800 also includes a back navigation button 606, a forward navigation button 608, a web address inputbox 610, an options button 812, and a document editing toolbar 614.
  • the user interface 600 displays a survey template in panel 618.
  • the survey template includes user interface elements 618-632 for collecting survey information.
  • various user inputs for creating a contract to auction are being collected by the interactive document.
  • the survey templates allows for all the Inputs to be easily navigated and entered by the user so that the actual contract document can be generated based on the inputs as shown in FIG. 6B.
  • the user interface elements 618-832 have been designated as editable while ail other portions of the interactive document shown in panel 816 have been designated as uneditable.
  • the user interface 800 displays a customized template in panel 616.
  • the customized template includes user interface elements 618-822 with the selections made by the user in FSG. 6A.
  • the customized template also includes an additional interface element 636 to allow the user to enter a list of auction items.
  • the user interface also includes a scrollbar 634 that the user can use to access the remaining portion of the customized template, which includes the other user interface elements 624-834 from FIG. 6A.
  • the customized template shown in FIG. 6B can be dynamically rendered to, for example, include to remove particular sections of the customized template.

Abstract

Example embodiments relate to providing interactive document editing using a data interchange format. In example embodiments, an interactive document is displayed based on an initial document layout, where the initial document layout is determined based on a template provided by a web server using a data interchange format. In response to receiving client-side input for modifying the interactive document, the display of the interactive document is updated using client-side scripts. At this stage, the client-side input is converted to obtain converted input that is compatible with the data interchange format, and the converted input is sent to the web server, where the web server updates the template based on the converted input.

Description

INTERACTIVE DOCU MENT EDITING USING DATA INTERCHANGE
FORMAT
BACKGROUND
[0001 ] Web-based document editing tools allow users to create and modify documents, spreadsheets, presentations, etc. Such document editing tools to create and modify content, similar to their counterpart desktop tools. The tools typically provide common operations such as formatting, page layout, document review, etc. that are accessible through menus and toolbars. In other words, the workflow of how the tools operate is determined by the developers of the tools while the content of the documents created is determined by the users of the tools.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example computing device for providing interactive document editing using a data interchange format;
[0004] FIG. 2 is a block diagram of an example computing device in communication with a web server for providing interactive document editing using a data interchange format;
[0005] FIG. 3 is a flowchart of an example method for execution by a computing device for providing interactive document editing using a data interchange format;
[0006] FIG. 4 is a flowchart of an example method for execution by a web server for providing a multi-level interactive document using a data interchange format;
[0007] FIG. 5 is a diagram of an example user interface for providing interactive document editing using a data interchange format; and
[0008] FIGS. 6A and 8B are diagrams of an example user interface of a multilevel interactive document using a data interchange format. DETAILED DESCRIPTION
[0009] As detailed above, web-based document editing tools allow a user to create and modify documents in a web browser. However, web-based document editing tools do not provide the ability to embed programming logic, user interface (Ui) elements, or complex data integration.
[0010] Example embodiments disclosed herein provide an interactive document that allows for all the basic functionality of a traditional document editing tool but also allows for additional advanced features such as: (1 ) embedded user interface (US) elements that allow forms to be constructed in the document; complex data integration; embedded programming logic; complex data-driven tables (e.g., tables used in a quote or statement document); and ability to specify certain parts of the document as being editable while other specified as being read-only (i.e., allowing document designers to "lock down" parts of the document).
[001 1 ] Hypertext markup language (HTML) does not support text layout features for implementing these advanced features. For example, HTML does not provide (1 ) the ability to paginate; (2) readers, footers, tab stops and rulers; and (3) consistent rendering of HTML across different web browsers.
[0012] Example embodiments disclosed herein improve providing interactive document editing using a data interchange format. Specifically, interactive documents are provided in a web browser by using a data interchange format for transmitting modifications to the document and by using user interface elements that are dynamically reflowed in the web browser
[0013] In some embodiments, an interactive document is displayed based on an initial document layout, where the initial document layout is determined based on a template provided by a web server using a data interchange format. In response to receiving client-side input for modifying the interactive document the display of the interactive document is updated using client-side scripts. At this stage, the client-side input is converted to obtain converted input that is compatible with the data interchange format, and the converted input is sent to the web server, where the web server updates the template based on the converted input.
[0014] Referring now to the drawings, FIG. 1 is a block diagram of an example computing device 100 for providing interactive document editing using a data interchange format. Computing device 100 may be any computing device (e.g., smartphone, tablet, laptop computer, desktop computer, etc.) capable of accessing a web server, such as web server 250 of FIG. 2. In the embodiment of FIG. 1 , server computing device 100 includes a processor 1 10, an interface 1 15, and a machine-readable storage medium 120.
[0015] Processor 1 10 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Processor 1 10 may fetch, decode, and execute instructions 122, 124, 128, 128 to enable interactive document editing using a data interchange format, as described below. As an alternative or in addition to retrieving and executing instructions, processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126, 128.
[0018] Interface 1 15 may include a number of electronic components for communicating with web servers. For example, interface 1 15 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the user computing device. Alternatively, interface 1 15 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, as detailed below, interface 1 15 may be used to send and receive data to and from a corresponding interface of a web server.
[0017] Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like. As described in detail below, machine-readable storage medium 120 may be encoded with executable instructions for providing interactive document editing using a data interchange format.
[0018] Interactive document displaying instructions 122 displays an interactive document in a web application executing within a web browser or other web- based desktop application (e.g., a thin desktop client where processing is performed on a web server). The web application may be a computer application that is accessed over a network connection (e.g., interface 1 15) using hypertext transfer protocol (HTTP). The interactive document may be rendered based on a template from a web server that is received in a data interchange format (e.g., extensible markup language (XML), JAVASCRIPT rM Object Notation (JSON), etc.). A data interchange format is typically an open standard format that uses human-readable text to transmit data objects that include attributes and corresponding values. A data interchange format may also use a separate schema that can be used to validate data in the format (i.e., data in a data interchange format can be self-describing). JAVASCRIPT1^1 is a trademark of Oracle Corporation, which is headquartered in Redwood City, California.
[0019] Document display updating instructions 124 updates the display of the interactive document based on user input. Specifically, a user may provide information requested in text boxes, move elements (e.g., title, address, heading, margins, etc.) of the interactive document, select a value in a drop down list, etc. The user input can be collected using a client-side scripting language such as JAVASCRIPT1 M. In this case, the c!ient-side scripting language can be triggered by events (e.g., key press, drag, focus, etc.) of user interface elements such as labels, text boxes, drop down lists, data bound objects, etc.
[0020] Client-side input converting instructions 126 converts the user input to be compatible with the data interchange format. For example, if an element of the interactive document is moved by the user, the movement of the element can be converted to relative position attributes that are compatible with the data interchange format and then sent to the web server with an element identifier attribute. Sn another example, if text is added to a textbox in the interactive document, the content can be converted to a content attribute that is compatible with the data interchange format and then sent to the web server with a textbox attribute. Sn some cases, user inputs are collected as they are processed by document display updating instructions 124 and then periodically converted to be compatible with the data interchange format (i.e., batch processing).
[0021 ] Converted input sending instructions 128 sends converted input to the web server. The web server may then use the converted input to modify a server- side template for the user. The converted input is compatible with the data interchange format and can be transmitted using various protocols such as simple object access protocol (SOAP), remote procedure call (RPC), web services description protocol (WSDL), representational state transfer (REST), etc.
[0022] FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with a web server 250. As illustrated in FIG. 2 and described below, computing device 200 may communicate with a web server to provide interactive document editing using a data interchange format.
[0023] As illustrated, computing device 200 may include a number of modules 202-230. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device 200. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
[0024] As with computing device 100 of FIG. 1 , computing device 200 may be a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, computing device 200 may include a series of modules 202-230 for enabling interactive document editing using a data interchange format.
[0025] Interface module 202 may manage communications with web server 250. Specifically, interface module 202 may initiate connections with web server 250 and then send or receive document data to/from web server 250. [0026] Document module 210 may manage documents obtained from web server 250. Although the components of document module 210 are described in detail below, additional details regarding an example implementation of moduie 210 are provided above in connection with instructions 122 and 128 of FIG. 1 .
[0027] Interchange module 212 processes interchange data received from or for sending to web server 250. For example, when an interactive document is initially loaded, template data may be received in a data interchange format from the web server, where interchange module 212 interprets the template data to create a template (i.e., document object model) for the interactive document. In another example, user inputs collected by user interface module 220 as described below may be converted to user data in the data exchange format for sending to web server 250. In other words, interchange moduie 212 ensures that data received from and sent to web server 250 is compatible with the data interchange format. The template created by interchange module 212 may include an array of paragraph and table objects, where each paragraph and table object contains an array of characters that are included in each object as well as styles that are applied to the characters. The template may be stored and modified in storage device 230.
[0028] Document layout moduie 214 processes the template received from web server to generate code for rendering the interactive document. Specifically, the template can be processed to generate HTML for displaying in a web application executing within a web browser or other web-based desktop application. In this case, the HTML may be used by the user interface module 220 to render the interactive document. For example to calculate character metrics, a "div" element may be inserted into the template, where characters are then inserted into the "div" element and the size of the div is stored for later use. The character metrics are then used to calculate how much text can fit into a given area on the screen. In this example, pagination can be achieved by rendering the interactive document into lines of the correct width. Initially, the vertical space available on a given page is detected and then a "div" element is created that mimics the look of a page. As many lines as possible can then be inserted into the "div" element. Document layout module 214 adds new pages as the page is filed until all text lines are rendered into the template. Headers and footers are achieved in a similar manner as pagination. When the pages are rendered, space is reserved at the top and bottom of each page, and the text lines for the headers and footers are inserted into these reserved spaces in the page "div" of the template. Further, certain portions of the interactive document may be designated as editable or uneditable.
[0029] User interface module 220 may provide a user interface for interactive documents. Although the components of user interface module 220 are described in detail below, additional details regarding an example implementation of module 220 are provided above in connection with instructions 124 and 128 of FIG. 1 .
[0030] User input module 222 processes user inputs received from the user. Specifically, client-side scripting can be used to execute code in response to user interface events triggered by the user in the user interface. For example, a keypress event by the user can trigger code to incorporate new content into the template. In another example, a selection even of a drop down list can trigger code to incorporate the selection into the template. User input module 222 provides notifications of changes to the template to document rendering module 224.
[0031 ] Document rendering module 224 renders the template for the user. For example, the template may be rendered as HTML in a web browser. In this example, the rendered interactive document may include various user interface elements such as text boxes, drop down lists, radial buttons, etc. as specified by the template. Further, text in the interactive document is flowed independently of the web browser of the user. Document rendering module 224 also receives notifications of changes from user input module 222 so that HTML can be generated and inserted into the template. In other words when the document changes based on data changing or user input, document rendering module rebuilds the document and flows ail of the text and user interface elements independent of the web browser. Because each web browser may render HTML in a different manner, document rendering module may detect the version of the web browser and adjust the HTML accordingly to allow for consistent visualization of the document across web browsers.
[0032] Storage device 230 may be any hardware storage device for maintaining data accessible to computing device 200. For example, storage device 230 may include one or more hard disk drives, solid state drives, tape drives, random access memory (RAM), and/or any other storage devices. The storage devices may be Iocated in computing device 200 and/or in another device in communication with computing device 200.
[0033] Web server 250 may be any server accessible to computing device 200 over the network 245 that is suitable for providing and receiving data interchange data for documents. As illustrated, web server 250 includes device interface module 252 and data interchange manager 254.
[0034] Device interface module 252 may manage communications with computing device 200. Specifically, device interface module 252 may initiate connections computing device 200 and then send or receive document data to/from computing device 200.
[0035] Data interchange manager 254 converts document templates to be compatible with the data interchange format and stores interchange data from computing device 200 to document templates. In this manner, document templates can be provided to computing device 200 using a lightweight protocol thereby reducing bandwidth requirements. Further, data interchange manager 254 stores document template changes on web server 250 so that the user can access the document template from any device (i.e., the cloud).
[0036] FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for providing interactive document editing using a data interchange format. Although execution of method 300 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 300 may be used, such as computing device 200 of FIG. 2. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry. [0037] Method 300 may start in block 305 and continue to block 310, where computing device 100 displays an interactive document in a web application executing within a web browser or other web~based desktop application. The interactive document may be rendered based on a template from a web server that is received in a data interchange format. In block 315, the display of the interactive document is updated based on user input. For example, user may initiate various events of user interface elements in the interactive document that trigger updates to the display.
[0038] In block 320, computing device 100 converts the user input to be compatible with the data interchange format. For example, a change in position of a user interface element may be converted to coordinate attributes consistent with the data interchange format. In block 325, computing device 100 sends the converted input to the web server. The web server may then use the converted input to modify a server-side template for the user. Method 300 may then continue to block 335, where method 300 may stop.
[0039] FIG. 4 is a flowchart of an example method 400 for execution by a web server 250 for providing a multi-level interactive document using a data interchange format. Although execution of method 400 is described below with reference to web server 250 of FIG. 2, other suitable devices for execution of method 400 may be used. Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
[0040] Method 400 may start in block 405 and continue to block 410, where web server 250 provides an initial template with a document layout to a computing device using a data interchange format. Specifically, the initial template may be retrieved from storage and then converted to be compatible with the data interchange format before transmission to the computing device. In block 415, user inputs that are compatible with the data interchange format are obtained from computing device. The user inputs describe changes made to the template.
[0041 ] In block 425, the user inputs are saved as modifications to the template. In block 430, web server 250 determines if the user has completed his editing of the document. For example, the user may dick a submit button to submit his changes to the document. If the users editing is not complete, method 400 returns to 415, where web server 250 obtains additional user inputs from computing device. If the user's editing is not complete, web server 250 determines if the initial template is a survey template in block 435. For example, a survey template is described below with respect to FIG. 6A.
[0042] If the initial template is not a survey template, method 400 may then continue to block 445, where method 400 may stop. Sf the initial template is a survey template, web server 250 provides a customized template to computing device in block 440. The customized template describes an additional document that is dynamically created based on the user inputs received in response to the initial template such as the customized template described below with respect to FIG. 8B.
[0043] FIG. 5 is an example user interface 500 for providing interactive document editing using a data interchange format. As depicted, the user interface 500 includes a title bar 505 identifying the web content and a close icon 510 that may be used by the user to exit the web browser. The user interface 500 also includes a back navigation button 515, a forward navigation button 520, a web address inputbox 525, an options button 530, and a document editing toolbar 535. The document editing toolbar 535 allows the user to perform various editing functionalities such as insert a new user interface element, add text, print, open a new document, etc.
[0044] The user interface 800 displays an interactive document in the panel 537. The interactive document includes user interface elements 540, 544, 546, 548. Data bound objects 540, 548 are bound to, for example, data rows of a data table in a database. In this example, data bound objects 540, 548 retrieve name and address information for a recipient and a sender from the database for inclusion in the interactive document. Textbox 544 allows the user to enter freeform text into the document. As the user enters text that exceeds the bounds of textbox 544, textbox 544 can be resized and the interactive document can be reflowed accordingly. Drop down list 548 allows the user to select from a list of predetermined values for including in the interactive document.
[0045] In some cases, the user can reposition the user interface elements 540, 544, 548, 548, which causes the interactive document to be reflowed to account for the new positions of the user interface elements.
[0048] FIGS. 8A and 8B are diagrams of an example user interface 600 of a multi-level interactive document using a data interchange format. As depicted in FIGS. 6A and 8B, the user interface 600 includes a title bar 802 identifying the web content and a close icon 604 that may be used by the user to exit the web browser. The user interface 800 also includes a back navigation button 606, a forward navigation button 608, a web address inputbox 610, an options button 812, and a document editing toolbar 614.
[0047] In FIG. 6A, the user interface 600 displays a survey template in panel 618. The survey template includes user interface elements 618-632 for collecting survey information. In this example, various user inputs for creating a contract to auction are being collected by the interactive document. The survey templates allows for all the Inputs to be easily navigated and entered by the user so that the actual contract document can be generated based on the inputs as shown in FIG. 6B. In FIG. 6A, the user interface elements 618-832 have been designated as editable while ail other portions of the interactive document shown in panel 816 have been designated as uneditable.
[0048] In FIG. 8B, the user interface 800 displays a customized template in panel 616. The customized template includes user interface elements 618-822 with the selections made by the user in FSG. 6A. The customized template also includes an additional interface element 636 to allow the user to enter a list of auction items. The user interface also includes a scrollbar 634 that the user can use to access the remaining portion of the customized template, which includes the other user interface elements 624-834 from FIG. 6A. Further, based on the user inputs provided in FIG. 6A, the customized template shown in FIG. 6B can be dynamically rendered to, for example, include to remove particular sections of the customized template. [0049] The foregoing disclosure describes a number of example embodiments for providing interactive document editing using a data interchange format. In this manner, the embodiments disclosed herein enable interactive documents in a web browser by using a data interchange format for transmitting modifications to the document and by using user interface elements that are dynamically refiowed in the web browser.

Claims

CLA!MS We ciaim:
1 . A system for providing interactive document editing using a data interchange format, the system comprising:
a memory that is configured to store a template that comprises an initial document layout, wherein the template is provided by a web server using a data interchange format;
a processor operatively connected to the memory and configured to: display an interactive document based on the initial document layout in a web application;
in response to receiving client-side input for modifying the interactive document, update the display of the interactive document using client-side scripts;
convert the client-side input to obtain converted input that is compatible with the data interchange format; and
send the converted input to the web server, wherein the web server updates the template based on the converted input.
2. The system of ciaim 1 , wherein the initial document layout comprises a plurality of user interface elements, wherein each user interface element of the plurality of user interface elements is characterized by an editable tag that is used to determine if the section can be edited.
3. The system of claim 2, wherein the client-side input requests that a target element of the plurality of user interface elements be moved, and wherein the client-side scripts dynamically move the target element without refreshing the display of the interactive document.
4. The system of claim 2, wherein the client-side input adds content to a selected element of the plurality of user interface elements, and the display of the interactive document is dynamically refiowed based on the content.
5. The system of claim 1 , wherein the processor is further configured to: display a survey document comprising a plurality of document queries; and
in response to receiving a plurality of responses for the plurality of document queries, use the client-side scripts to dynamically modify the initial document layout when displaying the interactive document.
6. The system of claim 1 , wherein the data interchange format comprises human-readable text for transmitting data objects that include attributes and corresponding values,
7. A method for providing interactive document editing using a data interchange format, the method comprising:
displaying an interactive document based on an initial document layout in a web application, wherein the initial document layout is determined based on a template provided by a web server using a data interchange format, and wherein the initial document layout comprises a plurality of user interface elements;
in response to receiving client-side input for modifying the interactive document, updating the display of the interactive document using client-side scripts;
converting the client-side input to obtain converted input that is compatible with the data interchange format; and
sending the converted input to the web server, wherein the web server updates the template based on the converted input.
8. The method of claim 7, wherein each user interface element of the plurality of user interface elements is characterized by an editable tag that is used to determine if the section can be edited.
9. The method of claim 8, wherein the client-side input requests that a target element of the plurality of user interface elements be moved, and wherein the client-side scripts dynamically move the target element without refreshing the display of the interactive document,
10. The method of claim 8, wherein the client-side input adds content to a selected element of the plurality of user interface elements, and the display of the interactive document is dynamically refiowed based on the content.
1 1 . The method of claim 7, further comprising:
displaying a survey document comprising a plurality of document queries; and
in response to receiving a plurality of responses for the plurality of document queries, using the client-side scripts to dynamically modify the initial document layout when displaying the interactive document.
12. The method of claim 7, wherein the data interchange format comprises human-readable text for transmitting data objects that include attributes and corresponding values.
13. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for providing interactive document editing using a data interchange format, the machine-readable storage medium comprising instructions to:
display a survey document comprising a plurality of document queries in a web application; and
in response to receiving a plurality of responses for the plurality of document queries, use client-side scripts to dynamically display an interactive document based on an initial document layout and the plurality of responses, wherein the initial document layout is determined based on a template provided by a web server using a data interchange format; in response to receiving client-side input for modifying the interactive document, update the display of the interactive document using client-side scripts;
convert the client-side input to obtain converted input that is compatible with the data interchange format; and
send the converted input to the web server, wherein the web server updates the template based on the converted input.
14. The non-transitory machine-readable storage medium of claim 13, wherein the initial document layout comprises a plurality of user interface elements, wherein each user interface element of the plurality of user interface elements is characterized by an editable tag that is used to determine if the section can be edited.
15. The non-transitory machine-readable storage medium of claim 14, wherein the client-side input requests that a target element of the plurality of user interface elements be moved, and wherein the client-side scripts dynamically move the target element without refreshing the display of the interactive document.
PCT/US2014/032679 2014-04-02 2014-04-02 Interactive document editing using data interchange format WO2015152916A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2014/032679 WO2015152916A1 (en) 2014-04-02 2014-04-02 Interactive document editing using data interchange format

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/032679 WO2015152916A1 (en) 2014-04-02 2014-04-02 Interactive document editing using data interchange format

Publications (1)

Publication Number Publication Date
WO2015152916A1 true WO2015152916A1 (en) 2015-10-08

Family

ID=54241045

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/032679 WO2015152916A1 (en) 2014-04-02 2014-04-02 Interactive document editing using data interchange format

Country Status (1)

Country Link
WO (1) WO2015152916A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745296A (en) * 2020-12-23 2022-07-12 北京首信科技股份有限公司 Data reporting method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1178381A2 (en) * 2000-08-02 2002-02-06 General Electric Company Automated, interactive data collection, data transmittal and data assessment method
US6516353B1 (en) * 1999-04-02 2003-02-04 Frederick R. Richards System and method for interactive EDI transactions
US20070136353A1 (en) * 2005-12-09 2007-06-14 International Business Machines Corporation System and method for data model and content migration in content management application
US20080072160A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US20090193076A1 (en) * 2002-12-30 2009-07-30 International Business Machines Corporation Exchanging Data Using Programmatic Conversion to Emulated HTML Form Data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516353B1 (en) * 1999-04-02 2003-02-04 Frederick R. Richards System and method for interactive EDI transactions
EP1178381A2 (en) * 2000-08-02 2002-02-06 General Electric Company Automated, interactive data collection, data transmittal and data assessment method
US20090193076A1 (en) * 2002-12-30 2009-07-30 International Business Machines Corporation Exchanging Data Using Programmatic Conversion to Emulated HTML Form Data
US20070136353A1 (en) * 2005-12-09 2007-06-14 International Business Machines Corporation System and method for data model and content migration in content management application
US20080072160A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange transaction set definition based instance editing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745296A (en) * 2020-12-23 2022-07-12 北京首信科技股份有限公司 Data reporting method and device
CN114745296B (en) * 2020-12-23 2023-08-15 北京首信科技股份有限公司 Data reporting method and device

Similar Documents

Publication Publication Date Title
EP3485400B1 (en) Methods and systems for server-side rendering of native content for presentation
EP2987088B1 (en) Client side page processing
US10572581B2 (en) System and method for web content presentation management
US11790158B1 (en) System and method for using a dynamic webpage editor
US20130019189A1 (en) Augmented editing of an online document
US20130226994A1 (en) Combining server-side and client-side user interface elements
CN104142826A (en) Method, device and system for constructing page
US20150309993A1 (en) Agile Enterprise Globalization
CN104133828A (en) Drag-and-drop clipboard for HTML documents
US20180349149A1 (en) A method and system for providing and executing web applications
US20160072927A1 (en) Odata enabled mobile software applications
US11010536B2 (en) Systems and methods for dynamic web user interface generation
US20170031877A1 (en) Web Page Design System
US10742764B2 (en) Web page generation system
TW201610713A (en) Identifying and surfacing relevant report artifacts in documents
EP3080692B1 (en) User interface framework
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
US20230351097A1 (en) Systems and methods for integrating application components in a web application
US10324600B2 (en) Web page generation system
WO2015152916A1 (en) Interactive document editing using data interchange format
US8413062B1 (en) Method and system for accessing interface design elements via a wireframe mock-up
KR20170035900A (en) Entity recognition for enhanced document productivity
Marin Practical mobile web design
US11599398B2 (en) Method for combining unified matters in personal workspace and system using the same
JP2022091584A (en) Information providing method, information providing apparatus, information providing program, and recording medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14888347

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase
122 Ep: pct application non-entry in european phase

Ref document number: 14888347

Country of ref document: EP

Kind code of ref document: A1