Reports as a file, not a server.

Render PDF, DOCX, XLSX and CSV from a JSON template and your rows.

docker run --rm \ -e JSONPRESS_API_KEYS=local:dev \ -p 5000:5000 jsonpress:dev

The JSON Press report designer with a roster template open.
Design the templateArrange the report on the canvas.
The finished roster exported as a PDF.
Export the resultPrint-ready PDF

The page is the canvas.

Edit bands, choose fonts for individual text and columns, and preview the PDF.

Run the designer
The JSON Press designer with a landscape roster template open: report objects and fields on the left, the page canvas in the centre, properties on the right.
A landscape roster, edited in the studio.
The sample data panel in the designer, with JSON roster rows on the left and the parsed member rows on the right.
Paste rows, see them parsed.
The first page of a 50-row member roster rendered to PDF, with six columns and page numbering.
The finished roster, straight out of the renderer.

One template, four files.

Pick the output; the definition stays the same.

OutputFileContent type
PDFinvoice.pdfapplication/pdf
DOCXinvoice.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
XLSXinvoice.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
CSVinvoice.csvtext/csv; charset=utf-8

Bring the rows you already have.

No database, no dataset query, no credentials.

rows.json
[
  { "CUSTOMER": "Halden & Co.", "AMOUNT": "1250.00" },
  { "CUSTOMER": "Wren Supply", "AMOUNT": "89.50" }
]
JSON rows
One object per record.
Case-insensitive fields
customer and CUSTOMER are the same field.
Loud failures
An unknown field fails loudly.

Three ways in.

The same engine, three entry points.

WayEntryWhat you get
HTTP POST /v1/renders Bearer key in, file out.
Node jsonpress In-process, with custom JavaScript.
Rust jsonpress-core Linked into your service, no HTTP hop.

Run the designer.

Build the image, run it, open the studio.

Read the quickstart
  1. Build docker build -t jsonpress:dev .
  2. Run docker run --rm -e JSONPRESS_API_KEYS=local:dev -p 5000:5000 jsonpress:dev
  3. Open localhost:5000