PHPackages                             copam/phpjasper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. copam/phpjasper

Abandoned → phpjasperLibrary[PDF &amp; Document Generation](/categories/documents)

copam/phpjasper
===============

Create Reports in PHP/Laravel with JasperReports

v1.5(6y ago)1911.1k9[6 issues](https://github.com/copam/phpjasper/issues)[1 PRs](https://github.com/copam/phpjasper/pulls)MITPHPPHP &gt;=5.4.0

Since Oct 13Pushed 6y ago3 watchersCompare

[ Source](https://github.com/copam/phpjasper)[ Packagist](https://packagist.org/packages/copam/phpjasper)[ Docs](https://github.com/copam/phpjasper)[ RSS](/packages/copam-phpjasper/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)DependenciesVersions (8)Used By (0)

PHPJasper
=========

[](#phpjasper)

##### Por favor confira a versão atualizada desta lib em:

[](#por-favor-confira-a-versão-atualizada-desta-lib-em-httpsgithubcomphpjasperphpjasper)

[![License](https://camo.githubusercontent.com/628b176250ea05058c9a09ae89ecb90e0ef16a0dd21dc07e4f7bf8b6e3b4780e/68747470733a2f2f706f7365722e707567782e6f72672f636f70616d2f7068706a61737065722f6c6963656e7365)](https://packagist.org/packages/copam/phpjasper) [![Total Downloads](https://camo.githubusercontent.com/f58a7b58ffca6be03cc0c1fa7a0efe7399d9779bc74f2b4d71cc50324b905439/68747470733a2f2f706f7365722e707567782e6f72672f636f70616d2f7068706a61737065722f646f776e6c6f616473)](https://packagist.org/packages/copam/phpjasper)

**Nota para servidores Linux**

Não esqueça de fornecer permissão 777 para o diretório **/vendor/copam/phpjasper/src/JasperStarter/bin** e o arquivo binário **jasperstarter**

Introdução
----------

[](#introdução)

Este pacote é a solução perfeita para compilar e processar relatórios Jasper (.jrxml &amp; .jasper) com PHP puro ou através do Laravel Framework.

### Por quê preciso do PHPJasper?

[](#por-quê-preciso-do-phpjasper)

Alguma vez você precisou de um relatório complexo em PHP para seu sistema web?

A maioria das soluções é complexa e você precisa escrever *HTML* + *CSS* para gerar um *PDF*, isso não faz sentido, além de ser muito trabalhoso :)

Apresento para vocês **JasperReports** a melhor solução open source que existe para relatórios.

### O que eu posso fazer com isso?

[](#o-que-eu-posso-fazer-com-isso)

**Texto tirado do site JasperSoft:**

> A biblioteca JasperReports é o mecanismo de geração de relatórios de código aberto mais popular do mundo. É inteiramente escrito em Java e é capaz de usar dados provenientes de qualquer tipo de fonte de dados e gerar documentos perfeitos que podem ser visualizado, impressom ou exportadom em uma variedade de formatos de documentos, incluindo HTML, PDF, Excel, OpenOffice e Word .

*Exemplos do que você pode fazer:*

- Faturas
- Relatórios
- Listas

Requisitos
----------

[](#requisitos)

- Java JDK 1.8
- PHP [exec()](http://php.net/manual/function.exec.php)
- \[opcional\] [Mysql Connector](http://dev.mysql.com/downloads/connector/j/) (se você pretende usar essa base dados)
- \[opcional\] [PostgreSQL Connector](https://jdbc.postgresql.org/download.html) (se você pretende usar essa base dados)
- \[opcional\] [Jaspersoft Studio](http://community.jaspersoft.com/project/jaspersoft-studio) (para criar e compilar seus relatórios)

### Notas sobre o Java

[](#notas-sobre-o-java)

Verifique se o Java está instalado executando o comando:

```
$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

```

Se você obter esse retorno:

```
command not found: java

```

Instale o java no: (Ubuntu/Debian)

```
$ sudo apt-get install default-jdk

```

Para instalar no: (centOS/Fedora)

```
# yum install java-1.8.0-openjdk.x86_64

```

Para o windows siga o link-&gt; [JDK](http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html) e procure a versão mais apropriada para seu Sistema Operacional.

Execute o novamente o comando `java -version` e verifique se a saída está ok.

Instalação
----------

[](#instalação)

1. Instale o [Composer](http://getcomposer.org) se você ainda não possui e então rode o comando:

```
composer require copam/phpjasper

```

Crie um arquivo 'composer.json' e escreva o seguinte código:

```
{
    "require": {
        "copam/phpjasper": "1.*"
    }
}
```

Rode o comando:

```
composer install

```

Você acaba de instalar PHPJasper

Exemplos
--------

[](#exemplos)

### O exemplo *Hello World*.

[](#o-exemplo-hello-world)

Vá para o diretório de exemplos na raiz do repositório (`vendor/copam/phpjasper/examples`). Abra o arquivo `hello_world.jrxml` com o JasperStudio ou seu editor favorito e dê uma olhada no código.

#### Compilando

[](#compilando)

Primeiro precisamos compilar o arquivo com a extensão `.JRXML` em um arquivo binário do tipo `.JASPER`

**Nota:** Caso você não queira usar *Jaspersoft Studio*. É possivel compilar o seu arquivo .jrxml da seguinte forma:

```
require __DIR__ . '/vendor/autoload.php';

use JasperPHP\JasperPHP;

$input = __DIR__ . '/vendor/copam/phpjasper/examples/hello_world.jrxml';

$jasper = new JasperPHP;
$jasper->compile($input)->execute();
```

Esta comando compila o arquivo fonte `hello_world.jrxml` em um arquivo `hello_world.jasper`

#### Processing

[](#processing)

Agora vamos processar o nosso relatório:

```
require __DIR__ . '/vendor/autoload.php';

use JasperPHP\JasperPHP;

$input = __DIR__ . '/vendor/copam/phpjasper/examples/hello_world.jasper';
$output = __DIR__ . '/vendor/copam/phpjasper/examples';

$jasper = new JasperPHP;

$jasper->process(
    $input,
    $output,
    array("pdf", "rtf")
)->execute();
```

Agora olhe a pasta examples! :) Ótimo trabalho? Você tem 2 arquivos, `hello_world.pdf` e `hello_world.rtf`.

Check the *API* of the `compile` and `process` functions in the file `src/JasperPHP/JasperPHP.php` file.

#### Listando parâmetros

[](#listando-parâmetros)

Consultando o arquivo jasper para examinar os parâmetros disponíveis no relatório:

```
require __DIR__ . '/vendor/autoload.php';

use JasperPHP\JasperPHP;

$input = __DIR__ . '/vendor/copam/phpjasper/examples/hello_world_params.jrxml';

$jasper = new JasperPHP;
$output = $jasper->list_parameters($input)->execute();

foreach($output as $parameter_description)
    print $parameter_description . '';
```

### Relatórios a partir de um banco de dados

[](#relatórios-a-partir-de-um-banco-de-dados)

Adicione os parâmetros específicos para seu banco de dados

```
require __DIR__ . '/vendor/autoload.php';

use JasperPHP\JasperPHP;

$input = __DIR__ . '/vendor/copam/phpjasper/examples/hello_world.jrxml';
$output = __DIR__ . '/vendor/copam/phpjasper/examples';

$jasper = new JasperPHP;
$jasper->process(
    $input,
    $output,
    array("pdf", "rtf"),
    array("php_version" => phpversion()),
    array(
        'driver' => 'postgres',
        'username' => 'vagrant',
        'host' => 'localhost',
        'database' => 'samples',
        'port' => '5432',
    ), 'pt_BR' //locale
)->execute();
```

### Usando JasperPHP com Laravel 5.\*

[](#usando-jasperphp-com-laravel-5)

1. Instale o [Composer](http://getcomposer.org)

```
composer require copam/phpjasper

```

Crie um arquivo 'composer.json':

```
{
    "require": {
        "copam/phpjasper": "1.*"
    }
}
```

2. Rode:

    **composer update**
3. Adicione o provider ao array providers em config/app.php:

    **JasperPHP\\JasperPHPServiceProvider::class,**
4. Crie a pasta **/report** em **/public directory**
5. Copie o arquivo **hello\_world.jrxml** em **/vendor/copam/phpjasper/examples** para a pasta: **/public/report**
6. Rode **php artisan serve**
7. Acesse **localhost:8000/reports**
8. Verifique a pasta **/public/report**. Você tem 3 arquivos, `hello_world.pdf`, `hello_world.rtf` e `hello_world.xml`.

**Copie o código abaixo para seu arquivo route.php**

```
use JasperPHP\JasperPHP;

Route::get('/reports', function () {

    $output = public_path() . '/report/'.time().'_hello_world';
    $report = new JasperPHP;
    $report->process(
        public_path() . '/report/hello_world.jrxml',
        $output,
        array('pdf', 'rtf', 'xml'),
        array(),
        array(),
        'pt_BR' //locale
        )->execute();
});
```

Neste exemplo nós geramos 3 arquivos: pdf, rtf and xml.

### Relatórios a partir de um xml em PHP/Laravel 5.\*

[](#relatórios-a-partir-de-um-xml-em-phplaravel-5)

Veja como é fácil gerar um relatório com uma origem de um arquivo XML

```
use JasperPHP\JasperPHP;

public function xmlToPdf()
    {
        $output = public_path() . '/report/'.time().'_CancelAck';
        $ext = "pdf";
        $data_file = public_path() . '/report/CancelAck.xml';
        $driver = 'xml';
        $xml_xpath = '/CancelResponse/CancelResult/ID';

        $php_jasper = new JasperPHP;

        $php_jasper->process(
            public_path() . '/report/CancelAck.jrxml',
            $output,
            array($ext),
            array(),
            array('data_file' => $data_file, 'driver' => $driver, 'xml_xpath' => $xml_xpath))->execute();

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.time().'_CancelAck.'.$ext);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Length: ' . filesize($output.'.'.$ext));
        flush();
        readfile($output.'.'.$ext);
        unlink($output.'.'.$ext);
    }
```

**Nota:**

Para usar os exemplos acima você precisa de uma cópia dos arquivos localizados em:

**\\vendor\\copam\\phpjasper\\examples\\CancelAck.jrxml**e **\\vendor\\copam\\phpjasper\\examples\\CancelAck.xml**para a pasta: **\\public\\report**

### Relatórios a partir de um arquivo JSON em PHP/Laravel 5.\*

[](#relatórios-a-partir-de-um-arquivo-json-em-phplaravel-5)

Veja como é fácil gerar um relatório com uma fonte de um arquivo JSON:

```
use JasperPHP\JasperPHP;

public function jsonToPdf()
    {
        $output = public_path() . '/report/'.time().'_Contacts';
        $ext = "pdf";
        $driver = 'json';
        $json_query= "contacts.person";
        $data_file = public_path() . '/report/contacts.json';

        $php_jasper = new JasperPHP;

        $php_jasper->process(
            public_path() . '/report/json.jrxml',
            $output,
            array($ext),
            array(),
            array('data_file' => $data_file, 'driver' => $driver, 'json_query' => $json_query))->execute();

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.time().'_Contacts.'.$ext);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Length: ' . filesize($output.'.'.$ext));
        flush();
        readfile($output.'.'.$ext);
        unlink($output.'.'.$ext);
    }
```

**Nota:**

Para usar os exemplos acima você precisa de uma cópia dos arquivos localizados em:

**\\vendor\\copam\\phpjasper\\examples\\json.jrxml**e **\\vendor\\copam\\phpjasper\\examples\\contacts.json**para a pasta: **\\public\\report**

### MySQL

[](#mysql)

Nós incluimos [MySQL connector](http://dev.mysql.com/downloads/connector/j/) (v5.1.39) na pasta `/src/JasperStarter/jdbc/`

### PostgreSQL

[](#postgresql)

Nós incluimos [PostgreSQL](https://jdbc.postgresql.org/) (v9.4-1203) na pasta`/src/JasperStarter/jdbc/`

### MSSQL

[](#mssql)

[Microsoft JDBC Drivers 6.0, 4.2, 4.1, and 4.0 for SQL Server ](https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774).

Performance
-----------

[](#performance)

Varia de acordo com o tamanho do seu relatório

Agradecimentos
--------------

[](#agradecimentos)

A [Cenote GmbH](http://www.cenote.de/) por [JasperStarter](http://jasperstarter.sourceforge.net/).

A [JetBrains](https://www.jetbrains.com/) pelo [PhpStorm](https://www.jetbrains.com/phpstorm/) e todas as ótimas soluções.

Dúvidas?
--------

[](#dúvidas)

Abra uma [Issue](https://github.com/copam/phpjasper/issues), ou pesquise por Issues antigas.

Licença
-------

[](#licença)

MIT

Contribuição
------------

[](#contribuição)

Contribua com a comunidade PHP e Laravel, fique a vontade para fazer um fork!!

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~189 days

Recently: every ~235 days

Total

7

Last Release

2369d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6c09ec071fc7c89679501f7e67372b96cb3421d682c26b0bf42162cf48e94b73?d=identicon)[geekcom](/maintainers/geekcom)

![](https://www.gravatar.com/avatar/d5404be6daeefc70a6d810835d3079027e0eefee6c54c684f65b820d3b81ba10?d=identicon)[Luzinaldo](/maintainers/Luzinaldo)

![](https://www.gravatar.com/avatar/a32daed98e8e82f7a7c955800fe8aa420c82b32b31fba12a8ffe941af68dbab8?d=identicon)[jadsonbr](/maintainers/jadsonbr)

![](https://www.gravatar.com/avatar/7540c1764729077ce9355f0b76cd0842fd6fa86df54b3acddfa45203df83e030?d=identicon)[jeffbarreto](/maintainers/jeffbarreto)

![](https://www.gravatar.com/avatar/59902505e940b2a5083b2d7ea5744ad1590b7ba28c6b675001f4fa3896a8a838?d=identicon)[jeffbarretocopam](/maintainers/jeffbarretocopam)

---

Top Contributors

[![jeffersonbarreto](https://avatars.githubusercontent.com/u/15710504?v=4)](https://github.com/jeffersonbarreto "jeffersonbarreto (3 commits)")[![geekcom](https://avatars.githubusercontent.com/u/3955933?v=4)](https://github.com/geekcom "geekcom (2 commits)")[![jadsonbr](https://avatars.githubusercontent.com/u/10354607?v=4)](https://github.com/jadsonbr "jadsonbr (1 commits)")[![jeffbarretocopam](https://avatars.githubusercontent.com/u/32643325?v=4)](https://github.com/jeffbarretocopam "jeffbarretocopam (1 commits)")

---

Tags

phpjsonpdfxmlreportsjasperreportsjavajasper

### Embed Badge

![Health badge](/badges/copam-phpjasper/health.svg)

```
[![Health](https://phpackages.com/badges/copam-phpjasper/health.svg)](https://phpackages.com/packages/copam-phpjasper)
```

###  Alternatives

[daandesmedt/phpheadlesschrome

A PHP wrapper for using Google Chrome Headless mode. Convert URL or HTML to a PDF / screenshot. Easy to use and OOP interfaced.

92233.1k](/packages/daandesmedt-phpheadlesschrome)[soluble/jasper

Jasper reports in PHP

101.1k](/packages/soluble-jasper)[ee/dataexporter-bundle

Easy export data to CSV, XML, HTML, JSON or XLS

4982.5k](/packages/ee-dataexporter-bundle)[kiwilan/php-ebook

PHP package to read metadata and extract covers from eBooks, comics and audiobooks.

3414.6k1](/packages/kiwilan-php-ebook)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
