IP Library Granted Patent US 10,409,895
Granted Patent B2
US 10,409,895 · App. 15/785,750 · Granted Sep 10, 2019

Optimizing a document based on dynamically updating content

Inventor: Owen Hancock (Seattle, WA)
Assignee: Qualtrics, LLC
G06F17/212G06F17/217G06F3/04845G06F17/245G06T11/206G06T2200/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,409,895
App. No.
15/785,750
Granted
Sep 10, 2019
Kind
B2
Abstract

Embodiments of the present disclosure relate to a document layout system that automatically optimizes dynamic documents (i.e., documents having dynamic content). In particular, the document layout system intelligently populates and arranges content items, including dynamic content items, into a dynamic document. Further, upon receiving dynamic content updates that change the dimensions (e.g., expand or shrink) of one or more dynamic content items within a dynamic document, the document layout system automatically modifies the arrangement of the content items to resolve any position conflicts detected between content items within the dynamic document. Further, the document layout system provides a number of features that assist users in organizing and arranging dynamic documents.

Claims (88)

1. A method comprising:

maintaining a content item list that stores an identifier, a position, and dimensions for each of a first content item and a second content item, wherein the dimensions of the first content item include a height and a width of the first content item;

generating a dynamic document that comprises an arrangement of the first content item and the second content item, the first content item comprising dynamic content, wherein the first content item is different from the second content item, and wherein the dynamic document is automatically generated;

receiving, from a database, updated dynamic content for the first content item;

generating updated dimensions for the first content item based on the updated dynamic content for the first content item;

modifying the content item list to create an updated content item list with the updated dimensions for the first content item;

detecting, based on the updated content item list, a position conflict between the first content item with the updated dimensions and the second content item based on detecting that the position and an updated height of the first content item interferes with the position and the dimensions of the second content item; and

generating, in response to detecting the position conflict, a modified position of the second content item within the content item list to resolve the position conflict by modifying the position of the second content item based on the updated height of the first content item, wherein content and the dimensions corresponding to the second content item are maintained after generating the modified position of the second content item; and

updating the dynamic document based on the updated dynamic content for the first content item, the updated dimensions for the first content item, and the modified position of the second content item in the content item list.

2. The method of claim 1 , further comprising generating the content item list by:

assigning the first content item to a first position; and

determining a second position for the second content item based on the first position of the first content item, the dimensions of the first content item, and one or more margins of the dynamic document.

3. The method of claim 1 , further comprising determining that updating the dimensions of the first content item expands the dimensions of the first content item; and

wherein generating the modified position of the second content item within the content item list to resolve the position conflict comprises moving the second content item away from the first content item having the updated dimensions until the second content item is at a position that is non-overlapping with the first content item having the updated dimensions.

4. The method of claim 1 , wherein:

detecting that the updated dimensions for the first content item interferes with the dimensions of the second content item comprises detecting that the position plus an updated width of the first content item touches the position of the second content item; and

generating the modified position of the second content item within the content item list to resolve the position conflict comprises modifying the position of the second content item to a third position determined by adding the position of the first content item with the updated width of the first content item.

5. The method of claim 1 , wherein the position plus the updated height of the first content item touches the position of the second content item when a bottom edge of the first content item having the updated height overlaps with the position of the second content item.

6. The method of claim 1 , further comprising paginating the dynamic document into a first page and a second page, and wherein modifying the arrangement comprises:

expanding the first content item having the updated dimensions within the first page of the dynamic document;

moving the second content item to below the first content item having the updated dimensions on the first page of the dynamic document based on expanding the first content item having the updated dimensions;

detecting that the second content item overlaps one or more margins of the first page of the dynamic document; and

moving, based on the detection, the second content item to the second page of the dynamic document.

7. The method of claim 6 , further comprising determining that a third content item below the second content item on the second page of the dynamic document is smaller than the second content item; and wherein:

modifying the arrangement further comprises moving the third content item to the first page of the dynamic document; and

the third content item fits alongside the first content item and within the one or more margins of the first page of the dynamic document.

8. The method of claim 1 , further comprising:

paginating the dynamic document into a first page and a second page;

detecting that the first content item having the updated dimensions is larger than the first page;

splitting the first content item into a first sub-content item and a second sub-content item;

positioning the first sub-content item on the first page of the dynamic document; and

positioning the second sub-content item on the second page of the dynamic document.

9. The method of claim 1 , further comprising:

detecting user input narrowing a width of the first content item within the dynamic document;

determining, based on the user input narrowing the width of the first content item, that the second content item fits alongside the first content item within the dynamic document; and

moving, based on the determination, the second content item alongside the first content item.

10. The method of claim 1 , wherein generating the modified position of the second content item within the content item list to resolve the position conflict comprises:

detecting that the modified the second content item causes an additional position conflict between the second content item at the modified position and a third content item, wherein the third content item has a fixed position within the dynamic document; and

updating, based on the third content item having a fixed position, the modified position of the second content item within the content item list to resolve the additional position conflict with third content item without modifying the position of the third content item in the content item list.

11. The method of claim 1 , further comprising:

creating, a page delineator between a first page of the dynamic document and a second page of the dynamic document, wherein the page delineator separates the first content item on the first page of the dynamic document and the second content item on the second page of the dynamic document;

expanding, based on receiving the updated dynamic content, the first content item having the updated dimensions to display on both the first page of the dynamic document and the second page of the dynamic document;

moving, in response to displaying the updated content item on both the first page of the dynamic document and the second page of the dynamic document, the page delineator between the second page of the dynamic document and a third page of the dynamic document; and

further updating, based on moving the page delineator between the second page of the dynamic document and a third page of the dynamic document, the dynamic document to comprise the second content item to the third page of the dynamic document after the page delineator.

12. The method of claim 1 , further comprising:

grouping the first content item and the second content item in a group;

receiving user input adjusting a width of the group; and

adjusting the width of the first content item and the width of the second content item proportional to the received user input.

13. The method of claim 1 , further comprising:

collecting responses from a plurality of respondents;

analyzing the collected responses to obtain a plurality of results; and

organizing the plurality of results into the content items.

14. The method of claim 1 , wherein:

the content items comprise a text-based content item having a user-adjustable width;

a height of the text-based content item is determined based on an amount of content within the text-based content item; and

the text-based content item overflows from a first page of the dynamic document to a second page of the dynamic document.

15. The method of claim 1 , wherein:

the content items comprise an image-based content item having a user-adjustable width and a user-adjustable height; and

dimensions of the image-based content item are restricted to dimensions of the dynamic document.

16. A system comprising:

at least one processor; and

at least one non-transitory computer-readable storage medium storing instructions that, when executed by the at least one processor, cause the system to:

maintain a content item list that stores an identifier, a position, and dimensions for each of a first content item and a second content item, wherein the dimensions of the first content item include a height and a width of the first content item;

generate a dynamic document that comprises an arrangement of the first content item having dynamic content and the second content item, wherein the first content item is non-overlapping with the second content item, wherein the first content item is different from the second content item, and wherein the dynamic document is automatically generated;

receive, from a database, updated dynamic content for the first content item comprising additional dynamic content;

generate updated dimensions for the first content item based on the updated dynamic content for the first content item;

modify the content item list to create an updated content item list with the updated dimensions for the first content item;

detect, based on the updated content item list, a position conflict between the first content item with the updated dimensions and the second content item based on detecting that the position and an updated height of for the first content item interferes with the position and the dimensions of the second content item; and

generate, in response to detecting the position conflict, a modified position of the second content item within the content item list to resolve the position conflict by modifying the position of the second content item based on the updated height of the first content item, wherein content and the dimensions corresponding to the second content item are maintained after generating the modified position of the second content item; and

update the dynamic document based on the updated dynamic content for the first content item, the updated dimensions for the first content item, and the modified position of the second content item in the content item list.

17. The system of claim 16 , further comprising instructions that cause the system to generate the content item list by:

assigning the first content item to a first position; and

determining a second position for the second content item based on the first position of the first content item, the dimensions of the first content item, and one or more margin positions of the dynamic document.

18. A method comprising:

generating a dynamic document that comprises an arrangement of a first content item having dynamic content, a second content item, and a third content item, wherein the second content item is arranged below the first content item, and wherein the third content item is arranged after the second content item, wherein the first content item, the second content item, and the third content item are different from each other, and wherein the dynamic document is automatically generated;

receiving, from a database, updated dynamic content for the first content item;

updating, within the dynamic document, the first content item by expanding the first content item;

moving the second content item to below the updated first content item on a first page of the dynamic document based on expanding the updated first content item;

detecting a margins conflict comprising the second content item overlapping one or more margins of the first page of the dynamic document; and

modifying, in response to detecting the margins conflict, the arrangement by:

determining that the third content item is smaller than the second content item;

moving the second content item to a second page of the dynamic document; and

moving the third content item to the first page of the dynamic document based on the third content item being smaller than the second content item, wherein the third content item fits alongside the updated first content item and within the one or more margins of the first page of the dynamic document.

19. The method of claim 18 , further comprising maintaining a content item list that stores an identifier, a position, and dimensions for each of the first content item, the second content item, and the third content item, wherein the dimensions of the first content item include a height and a width of the first content item.

20. The method of claim 18 , further comprising:

collecting responses from a plurality of respondents;

analyzing the collected responses to obtain a plurality of results; and

organizing the plurality of results into the content items.

Assignments (3)
SECURITY INTEREST Recorded May 18, 2026
From: QUALTRICS, LLC; PRESS GANEY ASSOCIATES LLC; CLARABRIDGE, INC.; DELIGHTED, LLC; RIOSOFT HOLDINGS, INC.; INMOMENT, INC.; LEXALYTICS, INC.; INMOMENT RESEARCH, LLC; ALLEGIANCE SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075583/0001 →
SECURITY INTEREST Recorded Jun 29, 2023
From: QUALTRICS, LLC; CLARABRIDGE, INC.; NEW DEBDEN MERGER SUB II LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064162/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2017
From: HANCOCK, OWEN
To: QUALTRICS, LLC
Reel/Frame 043881/0898 →
Continuity (1)
Related Publication 20190114308A1 · Apr 18, 2019