IP Library Granted Patent US 10,496,741
Granted Patent B2
US 10,496,741 · App. 15/271,875 · Granted Dec 3, 2019

Dynamic intermediate templates for richly formatted output

Inventors: Stephen Paul Willcock (Harrogate, GB); Bradley West Slater (Leeds, GB)
Assignee: FinancialForce.com, Inc.
G06F17/248G06F17/212G06F17/245
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,496,741
App. No.
15/271,875
Granted
Dec 3, 2019
Kind
B2
Abstract

Disclosed embodiments include a method for generating a formatted output document using a dynamic templating process. The method can include retrieving a layout object including layout information via a user interface, extracting the layout information from the layout object, receiving a user request for the formatted output document, dynamically generating a template for the formatted output document based on the layout information extracted from the layout object, generating the formatted output document by inserting data into the template, and outputting the formatted output document in response to the user request.

Claims (60)

1. A computer-implemented method for generating a formatted output document using a dynamic templating process, comprising:

retrieving a layout object including layout information via a user interface;

extracting, by a processor, the layout information from the layout object;

receiving a user request for the formatted output document;

determining, by the processor, that the formatted output document includes multiple pages that have the same layout format;

dynamically generating, by the processor, a template for the formatted output document based on the layout information extracted from the layout object;

expanding a table of the template to include a plurality of table rows based on a tabular dataset to be inserted in the formatted output document, wherein the expanding comprises:

generating a first intermediate template page and a second intermediate template page, wherein the first intermediate template page includes a maximum number of table rows of the table that a page of the template accommodates;

determining that the first intermediate template page and the second intermediate template page do not accommodate all rows of the table;

replicating the first intermediate template page upon determining that the first intermediate template page and the second intermediate template page do not accommodate all rows of the table; and

replacing a page of the template that includes the table with the first intermediate template page and the second intermediate template page;

generating, by the processor, the formatted output document by creating the multiple pages of the formatted output document by using the intermediate template page and the second intermediate template page of the template to originate the multiple pages, and inserting the data including the tabular dataset into the template; and

outputting the formatted output document in response to the user request.

2. The method of claim 1 , wherein the dynamically generating the template comprises:

generating document components having data layouts that are defined by the layout information extracted from the layout object;

dynamically generating the template for the formatted output document by combining the document components into a single text object.

3. The method of claim 1 , wherein the layout information defines a layout shape of data to be presented in the formatted output document.

4. The method of claim 1 , further comprising:

inserting tokens to document components of the template, the tokens representing places where data are to be inserted into the template.

5. The method of claim 4 , wherein the tokens do not contain values of the data and include keys identifying the data in a database.

6. The method of claim 1 , wherein the generating the formatted output document further comprises:

determining that the formatted output document includes a start page or an end page; and

generating the start page or the end page by using a start template page or an end template page of the template.

7. The method of claim 1 , wherein the formatted output document is a webpage written in a markup language, or a file including document layout information.

8. The method of claim 1 , wherein the expanding comprises:

expanding the table from a single table row in the template to include the plurality of table rows.

9. The method of claim 8 , further comprising:

inserting tabular tokens into rows of the table in the template.

10. The method of claim 9 , further comprising:

inserting data items of the tabular dataset into places of the template represented by the tabular tokens.

11. The method of claim 1 , wherein the template for the formatted output document is generated based on the layout information extracted from the layout object using multiple asynchronous CPU contexts.

12. A computer system for using a cloud platform to generate formatted output document using intermediate templates, comprising:

a processor; and

a memory that includes instructions which, when executed by the processor, cause the computer system to:

retrieve a layout object including layout information via a user interface and extract the layout information from the layout object;

in response to a user request for a formatted output document, determine that the formatted output document includes multiple pages that have the same layout format;

dynamically generate a template for the formatted output document based on the layout information extracted from the layout object;

expand a table of the template to include a plurality of table rows based on a tabular dataset to be inserted in the formatted output document, wherein the instructions to expand the table cause the computer system to:

generate a first intermediate template page and a second intermediate template page, wherein the first intermediate template page includes a maximum number of table rows of the table that a page of the template accommodates;

determine that the first intermediate template page and the second intermediate template page do not accommodate all rows of the table;

replicate the first intermediate template page upon determining that the first intermediate template page and the second intermediate template page do not accommodate all rows of the table; and

replace a page of the template that includes the table with the first intermediate template page and the second intermediate template page;

generate the formatted output document by creating the multiple pages of the formatted output document by using the first intermediate template page and the second intermediate template page of the template to originate the multiple pages from the template, and inserting data including the tabular dataset into the template and

output the formatted output document.

13. The computer system of claim 12 , wherein a user defines the layout information by modifying the layout object via the user interface.

14. The computer system of claim 12 , wherein the table is expanded from including a single table row to including the plurality of table rows.

15. The computer system of claim 12 , wherein the template is dynamically generated based on the layout information extracted from the layout object using multiple asynchronous CPU contexts of the cloud platform.

16. A computer-implemented method performed by a cloud-based platform for generating a template for presenting tabular dataset, comprising:

retrieving a layout object including layout information via a user interface;

extracting, by a processor, the layout information from the layout object;

receiving a user request for a formatted output document;

determining, by the processor, that the formatted output document includes multiple pages that have the same layout format;

in response to a user request, generating, by the processor, document components having data layouts that are defined by the layout information extracted from the layout object;

dynamically generating, by the processor, a template for the formatted output document by combining the document components into a single text object, the template including a table that has a single table row;

expanding, by the processor, the table including the single table row into a table including a plurality of table rows based on a tabular dataset to be inserted, wherein the expanding comprises:

generating a first intermediate template page and a second intermediate template page, wherein the first intermediate template page includes a maximum number of table rows of the table that a page of the template accommodates;

upon determining that the first intermediate template page and the second intermediate template page do not accommodate all rows of the table, replicating the first intermediate template page; and

replacing a page of the template that includes the table including the single table row with the first intermediate template page and the second intermediate template page;

generating, by the processor, the formatted output document by: creating the multiple pages of the formatted output document by using the first intermediate template page and the second intermediate template page of the template to originate the multiple pages, and inserting data including the tabular dataset into the template; and

outputting the formatted output document in response to the user request.

Assignments (12)
CHANGE OF ADDRESS Recorded Sep 12, 2024
From: CERTINIA INC.
To: CERTINIA INC.
Reel/Frame 068948/0361 →
SECURITY INTEREST Recorded Aug 7, 2023
From: CERTINIA INC.
To: BLUE OWL CREDIT INCOME CORP., AS COLLATERAL AGENT
Reel/Frame 064510/0495 →
RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Aug 4, 2023
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: CERTINIA, INC.
Reel/Frame 064502/0117 →
CHANGE OF NAME Recorded Jun 20, 2023
From: FINANCIALFORCE.COM, INC.
To: CERTINIA INC.
Reel/Frame 064042/0206 →
RELEASE OF SECURITY INTEREST Recorded Mar 24, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 059389/0501 →
SECURITY INTEREST Recorded Feb 21, 2022
From: FINANCIALFORCE.COM, INC.
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 059204/0323 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUS APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 048416 FRAME: 0266. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 23, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 050836/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUS APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 049535 FRAME: 0815. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Oct 23, 2019
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 050835/0594 →
RELEASE OF SECURITY INTEREST Recorded Feb 22, 2019
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 049535/0815 →
SECURITY INTEREST Recorded Feb 22, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 048416/0266 →
SECURITY INTEREST Recorded Oct 26, 2016
From: FINANCIALFORCE.COM, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 040142/0224 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2016
From: WILLCOCK, STEPHEN PAUL; SLATER, BRADLEY WEST
To: FINANCIALFORCE.COM, INC.
Reel/Frame 039998/0667 →
Continuity (1)
Related Publication 20180081868A1 · Mar 22, 2018
Cited By (1)
US 12,399,877