Documents, contracts and PDF as a service alongside your system

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.

  • ColdFusion and Lucee in production systems since 2015
  • Our engineers' experience with systems that generate documents and contracts
  • Reply within one working day
A small box at the top joined by lines to three sheets below, each with grey lines and two pairs of brackets; the middle sheet is outlined in orange, the other two are dashed

Three starting points where a document service helps

Word templates that someone adapts

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.

A document service that does not know your rules

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.

Documents that look different after a platform change

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.

Three document pages side by side: one with a handwritten correction, one with dashed gaps, one with a slipped table marked orange

What the document service does

  • PDF from your data

    The service generates PDF from the data your application or database supplies.

  • Contracts and forms with rules

    Variables, text variants and rules determine which text appears in the document in which case.

  • Versioned templates

    The service versions templates, so it stays clear which version applied when.

  • Electronic document flow

    From generation to dispatch, the document stays within the service, without detours via Word files and folders.

  • Sending by email

    On request the service sends the finished document itself instead of returning it to your system.

How the service works alongside 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.

A box on the left with an arrow into an orange frame holding two boxes, the second with three grey lines; a dashed arrow returns from the frame to the left box through a small sheet marked PDF

One clause, three variants: when the document has to reflect business logic

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.

How the service comes about

  1. Sample document and rules

    You give us a sample document and explain which text applies when.

  2. Model

    We record which variables, text variants and conditions exist, and agree the model with you.

  3. Prototype

    A prototype generates your sample document from fictitious data. You see the result before any real data is involved.

  4. Integration

    We connect the service to your existing system through an interface (REST or SOAP).

  5. Test on the target platform

    We check the generated documents where the service runs: fonts, page sizes and margins.

  6. Handover

    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.

What ColdFusion and Lucee include for PDF (As of 2026-10)

PDF in CFML
Adobe ColdFusion and Lucee create PDF from HTML and CFML with cfdocument and merge, watermark or password-protect PDF with cfpdf.

Our engineers' experience with documents and PDF

System type
Work on systems that generate documents and contracts, including logic for variables, text variants and rules
ColdFusion and Lucee
Since 2015 in production systems: Adobe ColdFusion 9 to 2025, Lucee 5, 6 and 7
Platform change
Moves from Windows and IIS to Linux, with the documents tested for fonts and page sizes
Interfaces
Connections via REST and SOAP

How we start work on your document service

  • The prototype works with fictitious data, and we need no real client data for it.
  • You decide where templates, rules and code are kept and who runs the service. At the end we hand everything over in good order.
  • You decide the wording of your documents and requirements such as signature or retention. We clarify them with you before they become part of the scope.

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.

On the left a sheet with lines of text and a signature line with an orange tick; an arrow points to a server drawn with dashed lines on the right

The first step: a conversation about your sample document, then the document pilot

Document pilot

For companies that want to generate contracts, quotes or forms from their system's data, where the text depends on the individual case.

  • One document type, such as a contract or a quote, based on a sample document
  • Variables, text variants and rules for this document type
  • PDF generation through an API that your system calls
  • Tests with fictitious data
  • Assessment of what further document types would need

We agree the scope and price in the intro call and confirm them in writing before we start.

What the result contains

A working service for one document type, with a description of the API, tests and documentation.

Questions about the document service

Do we need a new system for this?

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.

Do you build and integrate APIs (REST, SOAP)?

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.

Who maintains the templates?

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.

What about our existing document service?

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.

How long does a first prototype take?

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.

Which technology will this be built in?

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.

Where does the data live?

You decide where the service runs and where the data lives. For the sample document and the prototype we need no real data.

What is your hourly rate?

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.

Which document should your system generate?

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.

Fields marked optional can stay empty.

Reply by email

For a call back we only need your phone number: emergencies around the clock, otherwise within one working day.

Which system, which technology, what do you want to achieve? Please do not send passwords or confidential documents.

Reply within one working day · without obligation

We use your details only to answer your enquiry. Prownex IT Services Sp. z o. o. is the controller. Retention and your rights are described in the privacy policy.