The disclosure is related to the field of document layout, and in particular, to automatically generating and rendering a template for a pre-defined layout and any constraints associated therewith.
A mixed-content document can be organized to display a combination of text, images, headers, sidebars, or any other elements that are typically dimensioned and arranged to display information to a reader in a coherent, informative, and visually aesthetic manner. Mixed-content documents can be in printed or electronic form, and examples of mixed-content documents include articles, flyers, business cards, newsletters, website displays, brochures, single or multi page advertisements, envelopes, and magazine covers just to name a few. In order to design a layout for a mixed-content document, a document designer selects for each page of the document a number of elements, element dimensions, spacing between elements called “white space,” font size and style for text, background, colors, and an arrangement of the elements.
In recent years, advances in computing devices have accelerated the growth and development of software-based document layout design tools and, as a result, increased the efficiency with which mixed-content documents can be produced. A first type of design tool uses a set of gridlines that can be seen in the document design process but are invisible to the document reader. The gridlines are used to align elements on a page, allow for flexibility by enabling a designer to position elements within a document, and even allow a designer to extend portions of elements outside of the guidelines, depending on how much variation the designer would like to incorporate into the document layout. A second type of document layout design tool is a template. Typical design tools present a document designer with a variety of different templates to choose from for each page of the document FIG. 1 shows an example of a template 100 for a single page of a mixed-content document. The template 100 includes two image fields 101 and 102, three text fields 104-106, and a header field 108. The text, image, and header fields are separated by white spaces. A white space is a blank region of a template separating two fields, such as white space 110 separating image field 101 from text field 105. A designer can select the template 100 from a set of other templates, input image data to fill the image fields 101 and text data to fill the text fields 104-106 and the header.
However, it is often the case that the dimensions of template fields are fixed making it difficult for document designers to resize images and arrange text to fill particular fields creating image and text overflows, cropping, or other unpleasant scaling issues. FIG. 2 shows the template 100 where two images, represented by dashed-line boxes 201 and 202, are selected for display in the image fields 101 and 102. As shown in the example of FIG. 2, the images 201 and 202 do not fit appropriately within the boundaries of the image fields 101 and 102. With regard to the image 201, a design tool may be configured to crop the image 201 to fit within the boundaries of the image field 101 by discarding peripheral, but visually import, portions of the image 201, or the design tool may attempt to fit the image 201 within the image field 101 by resealing the aspect ratio of the image 201, resulting in a visually displeasing distorted image 201. Because image 202 fits within the boundaries of image field 102 with room to spare, white spaces 204 and 206 separating the image 202 from the text fields 104 and 106 exceed the size of the white spaces separating other elements in the template 100 resulting in a visually distracting uneven distribution of the elements. The design tool may attempt to correct for this by resealing the aspect ratio of the image 202 to fit within the boundaries of the image field 102, also resulting in a visually displeasing distorted image 202.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an example of a template for a single page of a mixed-content document.
FIG. 2 shows the template shown in FIG. 1 with two images selected for display in the image fields.
FIG. 3A shows a representation of a first single page template with dimensions identified in accordance with one example.
FIG. 3B shows vector characterization of template parameters and dimensions of an image and white spaces associated with the template shown in FIG. 3A in accordance with one example.
FIG. 4A shows a representation of a second single page template with dimensions identified in accordance with one example.
FIG. 4B shows vector characterization of template parameters and dimensions of images and white spaces associated with the template shown in FIG. 4A in accordance with one example.
FIG. 5A shows a representation of a third single page template with dimensions identified in accordance with one example.
FIG. 5B shows vector characterization of template parameters and dimensions of images and white spaces associated with the template shown in FIG. 5A in accordance with one example.
FIG. 6 shows an example of generating an optimized document layout from raw input in accordance with one example.
FIG. 7 shows a Bayesian network characterizing conditional independencies of allocations, templates, and template parameters in accordance with one example.
FIG. 8 shows a plot of a normal distribution for three different variances in accordance with one example.
FIG. 9 shows a control-flow diagram of a method for generating a document layout in accordance with one example.
FIG. 10 shows a control-flow diagram of a method for executing a step in the control-flow diagram of FIG. 9 in accordance with one example.
FIG. 11 shows a control-flow diagram of a method executing a step in the control-flow diagram of FIG. 10 in accordance with one example.
FIG. 12 shows a schematic representation of a computing device configured in accordance with one example.
An example of a method for adjusting an automatic template layout by providing a constraint is disclosed, in one example, raw text, figures, references, and semantic information is received. A check is performed for a constraint. An allocation of text and figures is determined for each page of a document. In addition, for each page of the document, a template for displaying the allocation assigned to the page is determined. The template parameters are set to exhibit the text and figures assigned to the page. The document is then rendered with text and figures allocated to each page within appropriate template fields of the template selected for each page while abiding by the constraint.
Examples are described below with reference to numerous equations and graphical illustrations. In particular, examples are based on Bayes' Theorem from the probability theory branch of mathematics. Although mathematical expressions alone may be sufficient to fully describe and characterize examples disclosed herein, the more graphical, problem oriented examples, and control-flow-diagram approaches included in the following discussion are intended to illustrate examples so that the systems and methods may be accessible to readers with various backgrounds. In order to assist in understanding descriptions of various examples disclosed herein, an overview of Bayes' Theorem is provided in a first subsection, template parameters are introduced in a second subsection, and probabilistic template models based Bayes' Theorem for determining template parameters are provided in a third subsection.
An Overview of Bayes' Theorem and Related Concepts from Probability Theory
Readers already familiar with Bayes' Theorem and other related concepts from probability theory can skip this subsection and proceed to the next subsection titled Template Parameters. This subsection is intended to provide readers who are unfamiliar with Bayes' Theorem a basis for understanding relevant terminology, notation, and provide a basis for understanding how Bayes' Theorem is used to determine document template parameters as described below. For the sake of simplicity, Bayes' theorem and related topics are described below with reference to sample spaces with discrete events, but one skilled in the art will recognize that these concepts can be extended to sample spaces with continuous distributions of events.
A description of probability begins with a sample space S, which is the mathematical counterpart of an experiment and mathematically serves as a universal set for all possible outcomes of an experiment. For example, a discrete sample space can be composed of all the possible outcomes of tossing a fair coin two times and is represented by:
where H represents the outcome heads, and T represents the outcome tails. An event is a set of outcomes, or a subset of a sample space, to which a probability is assigned. A simple event is a single element of the sample space S, such as the event “both coins are tails” TT, or an event can be a larger subset of S, such as the event “at least one coin toss is tails” comprising the three simple events HT, HT, and TT.
The probability of an event E, denoted by P(E), satisfies the condition 0≦P(E)≦1 and is the sum of the probabilities associated with the simple events comprising the event E. For example, the probability of observing each of the simple events of the set S, representing the outcomes of tossing a fair coin two times, is ¼. The probability of the event “at least one coin is heads” is ¾(i.e., ¼+¼+¼), which are the probabilities of the simple events HH, HT, and TH, respectively).
Bayes' Theorem provides a formula for calculating conditional probabilities. A conditional probability is the probability of the occurrence of some event A, based on the occurrence of a different event B. Conditional probability can be defined by the following equation:
where P(A|B) is read as “the probability of the event A, given the occurrence of the event B,”
P(A∩B) is read as “the probability of the events A and B both occurring,” and
P(B) is simple the probability of the event B occurring regardless of whether or not the event A occurs.
For an example of conditional probabilities, consider a club with four male and five female charter members that elects two women and three men to membership. See also, Goldberg, S., 1986, “Probability: An Introduction” by Samuel Goldberg,” pages 74-75. From the total of 14 members, one person is selected at random, and suppose it is known that the person selected is a charter member. Now consider the question of what is the probability the person selected is male? In other words, given that we already know the person selected is a charter member, what is the probability the person selected at random is male? In terms of the conditional probability, B is the event “the person selected is a charter member,” and A is the event “the person selected is male.” According to the formula for conditional probability: