Skip to content

Instantly share code, notes, and snippets.

@lincolnbrito
Last active July 6, 2016 15:46
Show Gist options
  • Save lincolnbrito/13677137ad18b4e4a0c9dd0e06932f2b to your computer and use it in GitHub Desktop.
Save lincolnbrito/13677137ad18b4e4a0c9dd0e06932f2b to your computer and use it in GitHub Desktop.
Output/Render a JasperReport with PHP
<?php
/**
* Output a JasperReport in PDF format and show on browser
*/
include_once "vendor/autoload.php";
use JasperPHP\JasperPHP;
//report.jrxml
$reportFileName = "report";
$reportFileExt = ".jrxml";
//compiling report - generate report.jasper
$report = new JasperPHP();
$report->compile($reportFileName.$reportFileExt)->execute();
//generate a unique filename
$outputFileName = $reportFileName.hash('sha1',uniqid());
$output = $report->process(
$reportFileName.'.jasper',
$outputFileName,
array("pdf"),
array(), //report arguments
array(
'driver' => 'mysql',
'username' => 'root',
'password' => '',
'host' => '',
'database' => '',
'port' => '3306',
)
)->execute();
//set content-type of response
header("Content-type: application/pdf");
//show PDF on browser
header("Content-Disposition: inline;filename='$outputFileName.pdf'");
readfile("$outputFileName.pdf");
//force download
//header("Content-Disposition: attachment;filename='$outputFileName.pdf'");
//readfile("$outputFileName.pdf");
<?php
/**
* Retrieve the expected report parameters
*/
include_once "vendor/autoload.php";
use JasperPHP\JasperPHP;
//report name
$file = "parameters";
$report = new JasperPHP();
$report->compile("$file.jrxml")->execute();
//list parameters expected by report. Ex: Array ( [0] => P pOrderId java.lang.String )
$parameters = $report->list_parameters(
"$file.jasper"
)->execute();
var_dump($parameters);
{
"require": {
"cossou/jasperphp": "^2.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment