The present disclosure relates generally to rendering presentations on a computing device and in particular to rendering interactive elements in collaborative document processing systems.
Electronic presentation documents have grown in complexity over the years. In addition to having text and images, users can now add rich media content and other interactive content such as Internet hyperlinks, audio, and video. Presentation software applications have advanced to allow the addition of a variety of content on presentation documents. However, the presentation software application must be installed on each computing device in order for a user to view or edit the presentation on that device.
Recently, online document processing applications have been developed which make it possible for people to create word processing, spreadsheets and presentation documents without having specific document processing software specially installed on their computing device. These online applications provide access to the document processing features through an Internet browser. The actual documents are stored on the application server, but may be downloaded locally to a client computing device. Because the documents are stored centrally and are accessed via an Internet browser, it is possible for multiple people to view, edit, and share the document regardless of the hardware and software capabilities of the computing device they are using.
Online document processing applications are usually compatible with a variety of Internet browsers available in the consumer market. However, each browser is programmed differently which can result in differences in appearance of the same content in different browsers. Furthermore, some browsers may not be able to support more advanced presentation features such as video. For example, more modern browsers use scalable vector graphics (SVG) to implement basic presentation features such as text, images, and animations. Modern browsers usually also have the capability of embedding HTML features into SVG. Older browsers may render presentation features differently, for example through the use of portable network graphics (PNG). Neither SVG nor PNG are capable of embedding videos into the presentation.
Given the wide variance in Internet browsers, it is preferable to develop systems and methods to edit and view interactive elements in online presentation documents that are browser-independent. Systems and methods are disclosed herein for rendering a presentation document on a client computing device by a server. In one aspect, a computerized method includes creating a base layer for a page in the presentation document, wherein the base layer includes a plurality of placeholder elements and wherein each placeholder element has an absolute position and size. The method further includes creating an interactive layer for the page, wherein the interactive layer includes a plurality of interactive element overlays representing a plurality of interactive elements, and wherein each interactive element overlay has an absolute position and size that corresponds to the absolute position and size of a placeholder element in the base layer. The method further includes sending the base layer and interactive layer to the client computing device for rendering, wherein each interactive element overlay is rendered on top of its corresponding placeholder element.
In another aspect, a computerized method for displaying a presentation document on a plurality of client computing devices is disclosed. The method includes creating a base layer for a page in the presentation document, wherein the base layer includes a plurality of placeholder elements and wherein each placeholder element has an absolute position and size. The method further includes creating an interactive layer for the page in the presentation document, wherein the interactive layer includes a plurality of interactive element overlays representing a plurality of interactive elements, and wherein each interactive element overlay has an absolute position and size that corresponds to the absolute position and size of a placeholder element in the base layer. The method further includes sending the base layer and interactive layer of the page in the presentation document to each client computing device for rendering, wherein each interactive element overlay is rendered on top of its corresponding placeholder element.
In another aspect, a system for displaying a presentation document on a plurality of client computing devices is disclosed. The system includes a server configured to create a base layer for each page in the presentation document, wherein each base layer includes a plurality of placeholder elements and wherein each placeholder element has an absolute position and size. The server is further configured to create an interactive layer for each page in the presentation document, wherein the interactive layer includes a plurality of interactive element overlays representing a plurality of interactive elements, and wherein each interactive element overlay has an absolute position and size that corresponds to the absolute position and size of a placeholder element in the base layer. The server is further configured to send the base layer and interactive layer of each page of the presentation document to each client computing device for rendering, wherein each interactive element overlay is rendered on top of its corresponding placeholder element.
In another aspect, a computerized method of editing a presentation document on a client computing device where the presentation document is stored on a server is disclosed. The method includes defining a plurality of interactive element overlays to be placed on the page, wherein the plurality of interactive element overlays represents a plurality of interactive elements, and placing a plurality of placeholder elements corresponding to the plurality of interactive element overlays on the page.
The methods and systems may be better understood from the following illustrative description with reference to the following drawings in which:
To provide an overall understanding of the invention, certain illustrative embodiments will now be described, including systems and methods for displaying a document on a plurality of client computing devices by a server. However, it will be understood by one of ordinary skill in the art that the systems and methods described herein may be adapted and modified as is appropriate for the application being addressed and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope thereof.
The server in client-server system 100 will now be discussed in greater detail.
Processor 201 may be configured to perform tasks such as sending electronic documents stored in database 211 to multiple client computing devices using communications interface 205, receiving edits to electronic documents stored in database 211 from client computing devices, and generating presentation rendering information to be displayed on client computing devices. Processor 201 may be configured to ensure that presentation documents stored in database 211 and distributed to different computing devices will all be enabled to view interactive elements within the presentation document.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from RAM or ROM or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Computer-readable media suitable for storing computer program instructions and data, such as database 211, include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Methods of editing and rendering presentation documents on an online document processing application will now be discussed. A presentation document usually has a number of pages, each page holding a variety of content. This content could be static, as in text, images and background, but may also be interactive. Interactive elements in a presentation may include but are not limited to audio, video, data displays, interactive charts, applets, games, editable forms and hyperlinks. In some embodiments, an interactive element may be any content that an user can view, listen, or dynamically interact with through a mouse click, keyboard input, cursor scroll, or any other input.
When rendering an online presentation document stored on an Internet browser, problems may occur displaying the interactive elements because of differences in how different browsers operate. For example, a browser may not be able to render an interactive element properly and thus it will not be displayed properly to a viewer of the presentation. This may be solved by separating each page in the presentation document into two layers at the time of rendering, the base layer and the interactive layer. The server uses placeholder elements to represent interactive elements on the base layer and uses interactive element overlays to represent interactive elements on the interactive layer. When rendered in such a fashion, the interactive elements should appear properly regardless of the browser used by the viewer of the presentation.
In order to render a presentation document in two layers, placeholder elements are generated during the editing process. When editing a presentation document, the static elements can be placed directly on the page. The interactive elements of the page can be represented by placeholder elements.
Placeholder element 303A has a specific placement on the page, as illustrated by the (x, y) coordinates of the top left corner of the placeholder element in
When rendering a presentation page for display within an Internet browser on a computing device, the server creates two layers for each page in the presentation. The first layer is the base layer, which contains the static elements and placeholder elements representing any interactive elements on the page. The second layer is the interactive layer, which represents the interactive elements.
Once the server has created both the base layer and the interactive layer, the server sends both layers to the computing device for rendering. First, the computing device renders the base layer, which may be a PNG, JPEG, GIF, TIFF or SVG image. The base layer contains the static and placeholder elements, as illustrated in
If a presentation page has overlapping stacked interactive elements, then the placeholder elements in the base layer and their corresponding interactive element overlays in the interactive layer are stacked in the same position and order. This is illustrated in
While viewing a presentation document on an Internet browser, a user can resize the browser window. If this occurs, the presentation page that is being viewed must also be resized to fit the new size of the browser. This involves resizing both the base layer and the interactive layer of the presentation page. Resizing the base layer is fairly simple. For example, if the base layer is a SVG or PNG image, then the image can simply be scaled proportionately to the resized browser window. Resizing the interactive layer is slightly more complicated because the interactive element overlays are positioned according to absolute coordinates to match with corresponding placeholder elements. In some embodiments, the server waits for a browser resizing event. When the server detects a resize event, it calculates the new overall size of the presentation page. By comparing the new size to the original size of the page, the server can calculate a new position and size for each interactive element overlay. Once that is completed, the resized base and interactive layers can be rendered on the computing device.
Methods of operation of the server in the client-server system are now discussed.
The first step in rendering a presentation page is for the server to create a base layer for a page in the presentation document, shown as step 501 in
After the base layer is created, the server creates an interactive layer for the presentation page, shown as step 503 in
After both the base layer and interactive layer have been created, the server sends the base layer and interactive layer to the client computing device, shown as step 505 in
Next, methods of rendering presentation documents on multiple computing devices using a server are discussed.
The first step in rendering the presentation document is for the server to create a base layer for a page in the presentation document, shown as step 601 in
After the base layer is created, the server creates an interactive layer for the page in the presentation document, shown as step 603 in
After both the base layer and interactive layer have been created for the presentation page, the server sends the base layer and interactive layer to a plurality of client computing devices, shown as step 605 in
It will be apparent to one of ordinary skill in the art that aspects of the invention, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the invention is not limiting of the invention. Thus, the operation and behavior of the aspects of the invention were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous.
Further, certain portions of the invention may be implemented as “logic” or a “component” that performs one or more functions. This logic may include hardware, such as an application specific integrated circuit or a field programmable gate array, software, or a combination of hardware and software.
Number | Name | Date | Kind |
---|---|---|---|
5758358 | Ebbo | May 1998 | A |
5761669 | Montague et al. | Jun 1998 | A |
5793966 | Amstein et al. | Aug 1998 | A |
6049664 | Dale et al. | Apr 2000 | A |
6243706 | Moreau et al. | Jun 2001 | B1 |
6327584 | Xian et al. | Dec 2001 | B1 |
6341305 | Wolfe | Jan 2002 | B2 |
6377957 | Jeyaraman | Apr 2002 | B1 |
6418441 | Call | Jul 2002 | B1 |
6501779 | McLaughlin et al. | Dec 2002 | B1 |
6766333 | Wu et al. | Jul 2004 | B1 |
7031954 | Kirsch | Apr 2006 | B1 |
7035910 | Dutta et al. | Apr 2006 | B1 |
7263497 | Wiser et al. | Aug 2007 | B1 |
7437421 | Bhogal et al. | Oct 2008 | B2 |
7478330 | Branson et al. | Jan 2009 | B1 |
7491399 | Vakharia | Feb 2009 | B2 |
7529778 | Dewey et al. | May 2009 | B1 |
7656543 | Atkins | Feb 2010 | B2 |
7667862 | Ziegler et al. | Feb 2010 | B2 |
7680932 | Defaix et al. | Mar 2010 | B2 |
7698379 | Dutta et al. | Apr 2010 | B2 |
7774703 | Junuzovic et al. | Aug 2010 | B2 |
7890928 | Patrudu | Feb 2011 | B2 |
8019780 | Pinkerton et al. | Sep 2011 | B1 |
8332815 | Balfe et al. | Dec 2012 | B2 |
20010037346 | Johnson | Nov 2001 | A1 |
20020032701 | Gao et al. | Mar 2002 | A1 |
20020035580 | Tanabe | Mar 2002 | A1 |
20020133492 | Goldstein et al. | Sep 2002 | A1 |
20020174085 | Nelson et al. | Nov 2002 | A1 |
20020194302 | Blumberg | Dec 2002 | A1 |
20030037076 | Bravery et al. | Feb 2003 | A1 |
20030037303 | Bodlaender et al. | Feb 2003 | A1 |
20030084078 | Torii et al. | May 2003 | A1 |
20030105719 | Berger et al. | Jun 2003 | A1 |
20040044965 | Toyama et al. | Mar 2004 | A1 |
20040085354 | Massand | May 2004 | A1 |
20040088653 | Bell et al. | May 2004 | A1 |
20040133444 | Defaix et al. | Jul 2004 | A1 |
20040215672 | Pfitzner | Oct 2004 | A1 |
20040215825 | Pfitzner | Oct 2004 | A1 |
20040215826 | Pfitzner | Oct 2004 | A1 |
20040216090 | Kaler et al. | Oct 2004 | A1 |
20050055337 | Bebo et al. | Mar 2005 | A1 |
20050091291 | Kaler et al. | Apr 2005 | A1 |
20050125461 | Filz | Jun 2005 | A1 |
20050131887 | Rohrabaugh et al. | Jun 2005 | A1 |
20050144256 | Blumberg | Jun 2005 | A1 |
20050185636 | Bucher | Aug 2005 | A1 |
20050200896 | Narusawa et al. | Sep 2005 | A1 |
20060031751 | Ehud | Feb 2006 | A1 |
20060075332 | Fairweather et al. | Apr 2006 | A1 |
20060101071 | Henderson | May 2006 | A1 |
20060149831 | Dutta et al. | Jul 2006 | A1 |
20060200755 | Melmon et al. | Sep 2006 | A1 |
20060230344 | Jennings et al. | Oct 2006 | A1 |
20070033654 | Wilson | Feb 2007 | A1 |
20070061714 | Stuple et al. | Mar 2007 | A1 |
20070070066 | Bakhash | Mar 2007 | A1 |
20070186157 | Walker et al. | Aug 2007 | A1 |
20070208992 | Koren | Sep 2007 | A1 |
20070220068 | Thompson et al. | Sep 2007 | A1 |
20070288637 | Layton et al. | Dec 2007 | A1 |
20080028302 | Meschkat | Jan 2008 | A1 |
20080040659 | Doyle | Feb 2008 | A1 |
20080059539 | Chin et al. | Mar 2008 | A1 |
20080082604 | Mansour et al. | Apr 2008 | A1 |
20080126943 | Parasnis et al. | May 2008 | A1 |
20090055755 | Hicks et al. | Feb 2009 | A1 |
20090112990 | Campbell et al. | Apr 2009 | A1 |
20090119572 | Koivunen | May 2009 | A1 |
20090132907 | Shao et al. | May 2009 | A1 |
20090164620 | Ziegler et al. | Jun 2009 | A1 |
20100005410 | Pang | Jan 2010 | A1 |
20100030578 | Siddique et al. | Feb 2010 | A1 |
20100059539 | Giraud et al. | Mar 2010 | A1 |
20100070852 | Li | Mar 2010 | A1 |
20100083096 | Dupuis-Latour et al. | Apr 2010 | A1 |
20100218099 | van Melle et al. | Aug 2010 | A1 |
20100229086 | Howell et al. | Sep 2010 | A1 |
20100235763 | Massand | Sep 2010 | A1 |
20100245256 | Estrada et al. | Sep 2010 | A1 |
20100251122 | Lee et al. | Sep 2010 | A1 |
20100309436 | Allen, Jr. et al. | Dec 2010 | A1 |
20110066957 | Prats et al. | Mar 2011 | A1 |
20110085211 | King et al. | Apr 2011 | A1 |
20110099093 | Mills | Apr 2011 | A1 |
20110164043 | Arora et al. | Jul 2011 | A1 |
20110179427 | Krishnamoorthy et al. | Jul 2011 | A1 |
20110219331 | DeLuca et al. | Sep 2011 | A1 |
20110282933 | Schmier | Nov 2011 | A1 |
20120131483 | Archer et al. | May 2012 | A1 |
Entry |
---|
Ellis et al., “Concurrency Control in Groupware Systems,” ACM 1989, pp. 399-406. |
Huang et al., “A General Purpose Virtual Collaboration Room,” Google 1999, pp. 1-9. |
Kindberg, Mushroom: A Framework for Collaboration and Interaction across the Internet, Google 1996, pp. 1-11. |
Pacull et al., Duplex: A Distributed Collaborative Editing Environment in Large Scale, ACM 1994, pp. 165-173. |
Tsompanopoulou et al., “A Platform for Delivering Multimedia Presentations on Cultural Heritage,” 2010 14th Panhellenic Conference on Informatics, pp. 175-179. |
Non-Final Office Action dated Jan. 6, 2012 for U.S. Appl. No. 13/275,093. |
Non-Final Office Action dated Jan. 11, 2012 for U.S. Appl. No. 13/274,797. |
Non-Final Office Action dated Jan. 17, 2012 for U.S. Appl. No. 13/274,717. |
Non-Final Office Action dated Feb. 17, 2012 for U.S. Appl. No. 13/275,123. |
Non-Final Office Action dated Feb. 29, 2012 for U.S. Appl. No. 13/274,723. |
Non-Final Office Action dated Dec. 30, 2011 for U.S. Appl. No. 13/274,720. |
Notice of Allowance dated May 14, 2012 for U.S. Appl. No. 13/275,044. |