Document Generation Software
Document Generation is the process of automatically creating documents based on rules.
Document Generation Software is useful when multiple documents need to be generated and each document contains a mixture of:
The difference between Document Generation Software and Word Processing Software is that Word Processing Software is designed to be used by a single user to create and edit a single document, whereas Document Generation Software allows a document to be created as an automated process based on a set of rules.
What Drives the Document Generation Process?
A key consideration in understanding the different types of Document Generation Software is understanding how the document generation process starts.
Software used by People.
This category of software is designed to be used by a person, where the person will actively select data sources, design/refine the layout of the document. They will initiate the document generation manually or create a schedule where the document is generated at a predetermined frequency (weekly/monthly).
Example: An employee is tasked with producting a regular report for management. The report is needed every month, follows a similar format each time and needs to be updated with the latest monthly sales figures that are available in the company’s database.
This type of software is sometimes referred to as Document Assembly or Reporting Software.
Software used by Other Software
In this case the document generation process is being automated and driven by another software application. The rules for the generation of the document (such as the addition/removal of content, the placment of dynamic content) are known in advance. The driving software application could be a CRM, ERP, webform or a custom built software application. The document generation software is then used via an API.
Example: An insurance company will build custom software to manage its business. Its employees use the software to enter customer details and generate: Policy Documents, Invoices, etc. The document generation process may be initiated by the user of the company software or as a result of a end of month batch job to generate statements/invoices.
Document Generation Scenarios
Document Generation can be used in two different situations, depending on the reason why a document is being produced.
A batch request is where tens, hundreds or thousands of similar documents are generated at one time.
This most commonly occurs where the software is used by other software.
Example: A finance company may send letters to all of their customers to advise them of an increase in interest rates. The static content, such as: the company’s name and address and the new rate, will be the same for each letter. However, the dynamic content such as the customer’s: name, address, account details and repayments, will be different for each letter.
A transactional request generates one document that is needed at a particular moment in time.
These type of requests occur in both software used by people and software used by other software.
Example: A finance company prepares a contract for a customer applying for a loan. The same basic contract will be used with many customers. However, only one specific and customized contract will be produced at any one time. Each contract will contain static content such as: the general terms and conditions for that type of loan, as well as dynamic content that is unique to the applicant, like: name, address, amount borrowed, and repayments.
Who Uses Document Generation Software?
Document Generation is used in industries such as: Legal, Finance, Medical, Health, Government, Transport, Defense, Education, HR, Insurance and Logistics.
These industries use Document Generation to control and standardise the format and content of the documents they produce. The reasons range from maintaining a professional image to legal compliance.
Document Generation may be used by businesses, companies or government departments. They may have their own internal software development team, or could be using an outsourced development team, to build or customize a software application that drives the Document Generation process.
The software application that drives the Document Generation may range from: a simple web-form that captures the dynamic content to be used in the document; to a distributed enterprise software application that allows multiple users to extract the dynamic content from a database.
Types of Generated Documents
A Document is a very broad term ranging from a single page letter to a 1,000 page report with nested tables, page numbering and table of contents.
Document Generation is suited to any document where part of the content is static and part is dynamic. Document Generation Software allows the user to create the “rules” used to generate a document. Documents could be: letters, contracts, statements, reports, proposals, quotes, orders or invoices.
Documents may be plain black and white documents, like invoices or receipts, with lots of compact information. They may contain tables of data or photos. Or, they may be “artistic”, such as an insurance company or telco including colorful graphics and pictures relevant to the demographics of their customer.
Reports are a subset of Documents. Reports usually include specific information and evidence that is presented, analysed and applied to a particular problem or issue. Reports often include tables of data or graphics.
Document Generation Techniques
Template based Document Generation
Template based Document Generation Software allows the user to specify the rules, layout, content and formatting of the desired document by building a template of the required document using a visual editor.
The template will typically contain some type of “placeholder”. These are markers within the template that will be replaced with the dynamic content.
This type of Document Generation Software may have its own custom editor for creating the templates and adding the placeholders.
Code based Document Generation
An alternative to Template based Document Generation is to write computer code or instructions that fully describe the layout of the document.
The challenge with this technique is that every piece of static or dynamic content in the final document must have a corresponding instruction to place the content on the page.
Making any changes to the layout or formatting of the document requires someone familiar with the code to find and modify the relevant instructions.
Templates vs Code
The best technique will be dependent upon a number of factors such as the complexity of the document and how often the document changes.
A code based approach may be suitable where the document is quite simple, or the layout of the document changes rarely once the document is designed. It means the ability to change the layout/content of documents is restricted to the developers that write the code. Changes to documents will need to fit in with the software developement lifecycle and testing / deployment of the application.
A template based approach means that non-developers can also contribute to the content/layout of documents. The templates can be updated and deployed without a need to update the main application. However the data structures of large corporate databases can be complicated and non-developers may need assistance of developers to understand the data models.
What is Docmosis?
The driving goal when designing Docmosis was the desire to create templates using tools that people already know, like: Microsoft Word or LibreOffice.
Being able to use these well known and richly featured word processors as the template editor means that simple tasks like:
can then be accomplished using software that people are already familiar with.
This significantly reduces the learning curve required to build templates and allows Technical and non-Technical staff to create and change the templates.
Next, the Docmosis placeholder syntax was designed to be easy to enter and understand.
It is as simple as typing “less-than/less-than … the name of the field … greater-than/greater-than” like this:
Other important considerations were:
The result is a suite of document generation software products that we hope you find are easy-to-integrate, easy-to-use and will save you time when creating or changing the content and formatting of generated documents.