PDF from your data
The service generates PDF from the data your application or database supplies.
You want contracts, quotes and forms generated as PDF from your system's data, but their text depends on the individual case. We build a dedicated service with variables and text variants, which your system calls through an interface, without rebuilding the core of your software.
Contracts, quotes and letters come from Word templates that someone adapts for every case. That takes time. Text blocks get lost easily, or several files end up holding different versions.
In our engineers' experience, existing document services produce PDF but do not always handle variables and text variants that depend on the case. Then someone still decides by hand which text belongs in which document.
When a system moves to another platform, for example from Windows to Linux, fonts and page sizes sometimes change. Line breaks, tables and footers shift, and this often goes unnoticed until after the switch.
The service generates PDF from the data your application or database supplies.
Variables, text variants and rules determine which text appears in the document in which case.
The service versions templates, so it stays clear which version applied when.
From generation to dispatch, the document stays within the service, without detours via Word files and folders.
On request the service sends the finished document itself instead of returning it to your system.
The service is a separate component with an interface (REST or SOAP). Your system sends data and the document type it wants. The service picks the template and text variants according to the rules, fills in the variables and returns the finished PDF.
The core of your software is not rebuilt for this. It mainly needs a call at the point where the document is created today. Your system stores or sends the finished PDF, or the service does so on request.
Depending on your environment, we build the service in ColdFusion or Lucee or in PHP, and on request also in Python with FastAPI.
Your system can also pass nested business logic to the service through the interface. An example: a purchase contract covers three cars, two insured with insurer X and one with insurer Y. The document then repeats the same vehicle text block three times, but the third has a different insurance sub-block and different types of data. This example and the table below use fictitious data.
| Clause "Payment" | Case A | Case B | Case C |
|---|---|---|---|
| Customer type | Company | Private individual | Company |
| Product | Standard delivery | Rental device | Standard delivery |
| Country and language | Germany, German | Austria, German | Switzerland, German |
| Text in the document | The invoice amount is payable in EUR within 30 days of the invoice date. | The rent of {amount} EUR is payable monthly in advance, first on {date}. | The invoice amount is payable in CHF within 30 days of the invoice date. |
You give us a sample document and explain which text applies when.
We record which variables, text variants and conditions exist, and agree the model with you.
A prototype generates your sample document from fictitious data. You see the result before any real data is involved.
We connect the service to your existing system through an interface (REST or SOAP).
We check the generated documents where the service runs: fonts, page sizes and margins.
You receive the running service with documentation of the interface and tests with fictitious data. You decide where templates and code are kept and who runs the service.
And if someone on our side is unavailable? We write the documentation on request. The repository is normally with you. We arrange cover on request.
Our working methods are described under How we work, and the systems our engineers know under Experience.
For companies that want to generate contracts, quotes or forms from their system's data, where the text depends on the individual case.
We agree the scope and price in the intro call and confirm them in writing before we start.
A working service for one document type, with a description of the API, tests and documentation.
No. The document service sits alongside your existing software and connects to it through an interface. The core of your software is not rebuilt; it calls the service at the point where the document is produced today.
If an old system is itself to become the interface, the page Use the monolith as a web service describes how.
Yes. We build APIs and connect systems, with REST and JSON as well as SOAP and XML, including the synchronisation of data between applications. Typical use cases are described under Development and integration.
That is up to you. You decide where the templates are kept and who changes them.
On request we take over maintenance and further development, as described under Takeover and maintenance.
We complement it rather than replace it. It continues to produce the documents it is well suited to. The new service takes over the documents whose text depends on variables and rules. Together with you, we decide which document types belong where in future.
We can tell you once we have seen your sample document. The duration depends on how many variables, text variants and rules the document contains and on how many document types are involved. Giving a figure in advance would be guesswork.
You receive the estimated effort and duration in writing after our conversation and a short analysis.
That depends on your environment and on what your IT team can run later. If you already operate ColdFusion or Lucee, we build the service there, because CFML can generate PDF (As of 2026-10). With Lucee this includes the PDF extension. Otherwise we build it in PHP, and on request also in Python with FastAPI.
The language your existing system uses does not matter for the connection, because the service is called through an interface.
You decide where the service runs and where the data lives. For the sample document and the prototype we need no real data.
It depends on scope, engagement model and urgency. Describe your situation briefly and, after a conversation, we will send you an offer. You do not need a budget for that. We quote fixed prices for the entry products.
Tell us the type of document, your system and, if known, the technology. We discuss the sample document when we speak. Please do not send confidential documents through the form. We reply within one working day.