What is JasperWho?
JasperWho? is a web application that lets you manage and render JasperReports templates — via a clean frontend, a powerful REST API, or both. It turns the well-established but notoriously Java-heavy JasperReports engine into something any application can consume with a single HTTP call.
The Problem It Solves
JasperReports is a mature, battle-tested report engine. It produces high-quality PDFs, supports complex layouts, barcodes, images, and dynamic data — and it has been doing so reliably for decades. The catch: it is a Java library. Using it directly means running a JVM, managing a Java stack, and writing Java code to drive it. For teams working in PHP, Python, C#, or any other ecosystem, that is a significant barrier.
JasperWho? removes that barrier entirely. Its render engine is built in pure PHP — no JVM process, no Java runtime on the server, nothing. You design your report templates in Jaspersoft Studio as usual, upload them once, and from that point on — rendering is just a POST request.
POST /api/v1/report-config/A5_KanBan/render
Content-Type: application/json
Authorization: Bearer <token>
{
"outputType": "base64",
"parameters": { "P_ARTICLE_NUMBER": "4561287-154" },
"data": [...],
"createHistoryRecord": true
}
That is the entire integration. No Java, no JVM, no Jaspersoft Server license.
Where It Came From
JasperWho? was built by someone with a logistics and IT background who needed a simple, reliable way to generate article labels on demand — from whatever system was running at the time, without caring about the underlying report engine. The original idea was modest: a small API wrapper around JasperReports, nothing more.
It grew. A frontend to manage templates. Connection configs for live SQL data. History records for traceability. Print task dispatching. A permission system. What started as "just get me a label PDF" is now a full suite — and the name stuck, question mark and all.
What JasperWho? Does
At its core, JasperWho? does four things:
Manages report templates. You upload .jrxml files, and JasperWho? analyses them automatically — detecting parameters, data fields, and image resources. Everything is stored, versioned, and ready to render.
Connects to your data. JasperWho? can execute SQL queries against live databases at render time. MySQL, MariaDB, PostgreSQL, and SQL Server are all supported. No live connection needed either — you can deliver data directly in the render request as a JSON array, which makes it equally useful for applications that already have the data in memory.
Renders on demand. A single API call produces a PDF. You choose the output format — Base64-encoded inline, a file URL, or silent output for print-only flows. Rendering is synchronous and fast.
Dispatches print jobs. Rendered PDFs can be forwarded directly to a print service via WebSocket, creating a traceable ReportPrintTask with status tracking. Labels off the printer, not just on the screen.
Who It Is For
JasperWho? is for anyone who needs to generate documents — labels, reports, delivery notes, production sheets, certificates — reliably and programmatically. The typical home is in logistics, production, and warehousing, where printing article labels, kanban cards, or shipment documents is a daily operational need and downtime is not an option.
More broadly: if your application needs to produce a PDF from structured data, and you do not want to build and maintain a report engine yourself, JasperWho? is the answer.
Deployment
JasperWho? is a standard Laravel application. It runs wherever PHP runs — which is nearly everywhere.
| Scenario | Works? |
|---|---|
| Cloud VM or VPS | Yes |
| On-premise server | Yes |
| Docker container | Yes |
| Raspberry Pi on the shop floor | Yes |
| Jaspersoft Server | Not needed |
The setup is intentionally slim. PHP, a database for JasperWho? itself, and the JasperPHP render engine — that is the stack. No application server, no JVM process to manage, no separate Jaspersoft infrastructure. JasperWho? bundles everything it needs.
Login: demo@jasper.who · Password: demo

No comments to display
No comments to display