Tools exist for building and editing documents. However, many existing tools for retrieving and manipulating content from other sources can be difficult for many users to implement. For instance, some tools employ complex interfaces that may require detailed knowledge of the tool to build documents. Additionally, many systems are too constrained for producing document types with rich layouts to produce magazine-like pages and spreads.
As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on,
The capture tool 14 can access content 24 from a content source, which content may exist in any of a variety of content types and file formats. The capture tool 14 can retrieve the content and store it as a design document 26. The layout control 16 of the capture tool can be utilized to modify the dynamic behavior of content and groups of content in the design document. For instance, a designer-user (e.g., a professional designer person) can consider how groups of content elements should be laid out if subjected to content changes. The designer-user can thus employ the layout control 16 to assign dynamic behavior to selected blocks of content in the design document. As an example, the dynamic behavior can be implemented as a layout engine, and the system 10 may implement any number and type of layout engines. The designer-user can assign a layout engine (e.g., selected from a list of available algorithms) to the selected blocks of content in design document 26. The designer-user can employ the capture tool to publish the resulting design document and its associated dynamic behavior as the source complex document 12.
The system 10 also includes a re-use tool 18 that can be utilized to access the source complex document 12 and store the document within an editable target complex document 20. For instance, the re-use tool 18 includes an editor 22 that can manipulate content in the target complex document, which manipulation can include adding content, removing content or changing properties of content. The re-use tool 18 is programmed to adapt the layout of the target complex document without changing the dynamic behavior that the designer had assigned via the capture tool 14.
In this way, a less sophisticated user can employ the re-use tool to produce rich pleasing professional looking layouts, based on the arrangement and behaviors of complex documents designed by more sophisticated designer-users (e.g., professional designers using the capture tool 14) who are more skilled in the aesthetics of complex document design and design interfaces.
As used herein, a complex document refers to a document that contains a group of content elements selected from the group comprising text elements, graphical elements, multimedia (e.g., audio, video, or audio-video) elements and image elements residing in containers with associated layout formats. An image element is a pixel array, such as, for example, a photo. A graphical element can be a pixel array but may often have a vector representation (including scalable vector graphics (SVG)) associated with the graphical. The vector representations are readily scaleable without the loss of quality. Graphical elements can be used for borders and decoration, color gradients, logos, diagrams and the like. A text element can be a block of text, page number, a figure index or a header. Text of a header can include an emphasis, such as large text, bolding, underling, etc. and a tag (e.g., specified by a designer a priori) to identify that it is to be put at a top of a layout or arranged first in a layout. The layout of these elements can be fully two dimensional, such that it is not restricted to folding a one dimensional thread of characters and images into a fixed column or page of the complex document.
Additionally, the modifier “source” in the term “source complex document” is intended to indicate that the document is to be used as a source of content. As such, the source complex document can be write-protected upon its creation, such that any part or the entire document can be copied into a target complex document without causing changes to the source complex document. The modifier “target” in the term “target complex document” is intended to indicate that the document is an editable document, the content of which a user can manipulate. As mentioned above, however, the dynamic behavior (e.g., a layout engine) that is assigned to a container in a corresponding source complex document remains unchangeable by the user in the target complex document.
Each complex document 12 and 20 can further be represented for computation by a hierarchical structure of containers and content elements. As used herein, a container refers to a structure having a layout format that can hold a group of one or more of the elements 16. Each container can further include a container-specific layout engine and layout parameters (e.g., layout rules) to be used to arrange elements therein, as specified via the capture tool 14. The container-specific layout engine arranges and modifies the elements in its container to fill the shape and size of the available surface (e.g., page) by applying rules to elements and their properties. Examples of types of layout engines include a Blocked Recursive image Composition (BRIC) layout engine, a columnar layout engine, as well as other types of dynamic layout techniques (and associated algorithms).
A container can include one or more other containers nested therein to support complex documents which define nested layouts. Examples of containers include pages, spreads including two facing pages, a group of images, a group of images with titles and others. The resulting document structure for each complex document 12 and 20 thus can be described as a multi-level hierarchical dynamic layout.
By way of example,
The content of the complex document 50 can be manipulated, such as via a re-use tool (e.g, re-use tool 18 of
The data structure 100 can be represented as a binary tree having a plurality of container nodes 102, 104, 106 and 108 and a plurality of content nodes 110, 112, 114, 116 and 118. In the example of
In the example structure 100, the root node (“SPREAD”) 102 has two child nodes (“PAGE 1” and “PAGE 2”) 104 and 106. Content nodes (“ELEMENT 1” and “ELEMENT 2”) 110 and 112 are leaf nodes of the container node 104. The container node 106 has as its children content node (“ELEMENT 3”) 114 and container node 108. The container node 108 is itself a layout structure (“LAYOUT 2”) that includes the layout engine 126 to determine the resulting layout of its child leaf node elements (“ELEMENT 4” and “ELEMENT 5”) that are contained therein. Thus, the container node 108 corresponds to a nested layout, which can be any type of layout (e.g., a columnar layout a BRIC layout, etc.).
Each of the content elements 110, 112, 114, 116 and 118 includes associated attribute data 128, 130. 132, 134 and 136. The attributes can be assigned by a designer-user (e.g., via the capture tool 14 of
The source complex document 202 is also stored in associated memory 214. In this example implementation, the source complex document 202 and its associated memory 214 can be accessible by the design system 204 via a network 216. The network 216 can be any set of interconnected computers, such as may form a local area network, wide area network or other type of computing architecture (e.g., a cloud computing environment). The design system can employ the processor 210 and an associated interface 218 to access the memory 214 and data stored therein. Additionally, the interface 218 can be utilized to access a source 220 that may contain content 222 that can be utilized for generating the source complex document 202, as described herein.
In the example of
The capture tool 206 can include a content import component 224 that can be programmed to access and retrieve content 222 from the source of content 220. For example, the content import component 224 can access and retrieve content in one or more different forms in a response to user input instructions received at the capture tool 206. For instance, the content import component 224 can utilize a graphical user interface (GUI), such as a browser, a file management system or other existing tools to access the content (e.g., a document file) 222 from the content source 220. It is to be understood that while the content source 220 is depicted as being coupled to the network 216, the content source 220 and its content 222 can alternatively for additionally) be implemented within the design system 204. The content import component 224 thus can retrieve the content 222 and stored in the memory 208 as the design document 212. Thus the design document 212 can be stored as a document in a predetermined format that can be modified by the capture tool 206 for producing the corresponding source complex document 202.
As a further example, the content import component 224 can include a converter 226 to convert the content 222 retrieved from the content source 220 into a predetermined editable format. For instance, the converter can identify a plurality of primitive objects in the retrieved content 222 and integrally join such primitive objects into logical groupings of content. The converter 226 can also implement an automated interpretation of the content being retrieved, including an identification of blocks of content and a hierarchical relationship that can be utilized to form the hierarchically structured complex document. The logical groupings of content can be stored as the design document 212 in the memory 208.
For example, the content 222 can correspond to a portable document format (PDF) file or other document format that encapsulates a description of content in a fixed-layout document. The converter 226 thus can be programmed to parse the content 222 and identify primitive objects in the document and group such primitive documents by integrally joining them to form object blocks within the design document. Examples of object blocks can include images, text blocks (e.g., words, phrases). The amount of conversion and extent of the groupings of the primitive objects can vary depending upon the type and complexity of converter 226.
The capture tool 206 also includes a design editor 228 to logically group content, including the primitive objects and other groupings identified by the converter 226, into a corresponding a user-specified logical group, corresponding to a container. The design editor 228 further can assign behavior to each container of the design document and in turn construct a hierarchical document structure, in which a dynamic behavior can be specified for each level of the hierarchy.
In the example of
The design editor 228 can also include a behavior assignment component 232 that can be utilized to assign a desired dynamic behavior to a selected container in response to a user input. The dynamic behavior can be utilized to control a layout of content to a selected group of object blocks that reside within the container. For example, the dynamic behavior can include a layout engine that is selected (e.g., from a list of available layout engines) in response to a user input. The list of available layout engines that is presented to the designer-user can vary as a function of attributes of the content within a given container. For example, a different set of available layout engines may be presented to the designer-user for content that includes images only, text blocks only, or a combination of text and images.
Additionally, the designer-user can employ the behavior assignment component 232 to specify different layout engines at each level of hierarchy in the hierarchical document structure that forms the design document 212. Thus the dynamic behavior assigned via the behavior assignment component 232 can be utilized to maintain specified dynamic behavior of grouped objects consistent with the intent of the designer-user.
The designer editor 228 can also include an attribute assignment component 234. The attribute assignment component can be utilized to assign attributes to each of the elements or objects in the design document 212. The attributes, for example, can be assigned via a graphical user interface that comprises a list of element attributes. The list of available attributes for a given element or object can vary as a function of the layout engine assigned (e.g., via the behavior assignment component 232) to a container in which the given element or object resides. For example if a columnar layout has been assigned to a container in which a group of one or more objects has been placed, the attribute assignment component may provide a set of attributes related to the columnar layout, such as constraints on the number of columns, on the width of a given element or placement of the element in a respective column or in multiple columns. In this way, attributes can be easily specified for each of the elements in a given design document consistent with the dynamic behavior that has been assigned to such elements.
Examples of other element attributes that can be assigned via the attribute assignment component 234 can include assigning a heading attribute to a text block (e.g., so that it operates as a heading in a resulting layout), or other logical groupings between pairs of elements that can control a sequence, relative order or alignment of such elements with respect to each other. The behavior and attributes specified via the design editor 228 can be stored with the design document 212, as part of the document's hierarchical structure, in the memory 208.
The capture tool 206 also includes a publisher 236 that can be utilized to store the source complex document 202, corresponding to the completed design document 212, in the memory 214. The publisher can publish the source complex document for subsequent user access (e.g., by a reuse tool 256) automatically upon creation of the design document 212 or in response to a user input request. Once a source complex document 202 has been published, it may be accessible by one or other users for generating a corresponding target complex document 240. The source complex document 202 thus includes an arrangement of content 242 and dynamic behavior 244 that controls the layout of the content. The behavior 244 further can vary based upon content attributes 246 that has been assigned to the elements Of groups of elements in the content 242. In this way, a user can access and utilize the content and layout of the source complex document so that reuse of the dynamic behavior of the source complex document is facilitated when the source complex document is copied into the target complex document 240.
In addition to the behavior 244, the target complex document 240 can include content 248 as well as attributes 250 for its content elements. The content 248 and content elements 250 can vary from that of the source complex document 202. However, the dynamic behavior 244 of the groups of elements copied to the target complex document 240 remains unchanged while the layout can automatically adapt to changes in the content 248, which can include changes in content elements 250 and/or containers. As one example, a user can employ a re-use tool 256 to arbitrarily insert container into other containers within the target complex document 240. While the way that a particular container lays out its children does not change, the apparent dynamic behavior of a page container (or a document container) can change because of changes to its children. For instance, the new children can have different intrinsic dynamic behavior from the previous children.
As an example, the system 200 can include a re-use system 252 that can access and retrieve the source complex document 202 and store it in memory 254 as the target complex document 240. The target complex document 240 can include content 248 and dynamic behavior information 244. While, as mentioned above, the dynamic behavior information 244 remains unchanged, the content 248 and element attributes 250 can vary from that of the source complex document.
In the example of
The re-use tool 256 includes a content selector 262 that can be utilized to select elements in the complex target document 240. A user can employ the content selector 262 to select content elements for manipulation of the target complex document 240, such as including further manipulation of content elements, containers and combinations thereof. For instance, the content selector 262 can be implemented as including a GUI that can select containers and elements within the target complex document 240 via a curser or other pointing element, such as to modify a position or properties of selected content as well as to change or add content from another content source (e.g., from a source complex document in the re-use system 252).
As demonstrated in the example of
In view of the foregoing structural and functional features described above, an example method will be better appreciated with reference to
What have been described above are examples. It is, of course, not possible to describe every conceivable example of the invention, but one of ordinary skill in the art will recognize that other example embodiments are possible. Accordingly, this disclosure is intended to embrace all embodiments, such as including alterations, modifications, and variations that fall within the scope of the appended claims. Additionally, where the disclosure or claims recite “a first,” or “another” element, or the equivalent thereof, it should be interpreted to include one or more than one such element, neither requiring nor excluding two or more such elements.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2011/022403 | 1/25/2011 | WO | 00 | 4/18/2013 |