galera, estou tentando gerar um relatório em jasper porém está dando esse erro:/
“Your report has an error and couldn’t be processed! Try to output the command using the function output();
and run it manually in the console.”
segue meu código abaixo…
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use JasperPHP\JasperPHP;
use App\Customer;
class ReportController extends Controller
{
/**
* Reporna um array com os parametros de conexão
* @return Array
*/
public function getDatabaseConfig()
{
return [
'driver' => env('com.mysql.jdbc.Driver'),
'host' => env('127.0.0.1'),
'port' => env('8080'),
'username' => env('root'),
'password' => env('leone231'),
'database' => env('db_psicologia'),
'jdbc_dir' => base_path() . env('JDBC_DIR', '/vendor/lavela/phpjasper/src/JasperStarter/jdbc'),
];
}
public function index()
{
// coloca na variavel o caminho do novo relatório que será gerado
$output = public_path() . '/reports/' . time() . '_Sistema_Psicologia';
// instancia um novo objeto JasperPHP
$report = new JasperPHP;
// chama o método que irá gerar o relatório
// passamos por parametro:
// o arquivo do relatório com seu caminho completo
// o nome do arquivo que será gerado
// o tipo de saída
// parametros ( nesse caso não tem nenhum)
$report->process(
public_path() . '/reports/Cabecalho.jrxml',
$output,
['pdf'],
[],
$this->getDatabaseConfig()
)->execute();
$file = $output . '.pdf';
$path = $file;
// caso o arquivo não tenha sido gerado retorno um erro 404
if (!file_exists($file)) {
abort(404);
}
//caso tenha sido gerado pego o conteudo
$file = file_get_contents($file);
//deleto o arquivo gerado, pois iremos mandar o conteudo para o navegador
unlink($path);
// retornamos o conteudo para o navegador que íra abrir o PDF
return response($file, 200)
->header('Content-Type', 'application/pdf')
->header('Content-Disposition', 'inline; filename="cliente.pdf"');
}
}