JASPERPHP 是否仍适用于 Laravel 8?
Does JASPERPHP still works with Laravel 8?
我目前正在使用 cossou/JasperPHP,但我在生成 pdf 文件时遇到了问题。它一直给我这个错误 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.
我尝试将 ->execute()
更改为 ->output()
但它给了我找不到的错误一个 pdf 文件。
对于像 Crystal Report 或 Jaspersoft 这样的打印和制作报告的任何其他软件包建议?
public function dbConfig(){
//JasperPHP::compile(base_path('/vendor/cossou/jasperphp/examples/hello_world.jrxml'))->execute();
$jdbc_dir = 'D:\xampp\htdocs\TestTO\vendor\cossou\jasperphp\src\JasperStarter\jdbc';
return [
'driver' => 'sqlsrv',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'database' => env('DB_DATABASE'),
'jdbc_driver' => 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
'jdbc_url' => 'jdbc:sqlserver://localhost:1433;databaseName=Employee;DataSource=(local)',
'jdbc_dir' => $jdbc_dir
];
}
public function generateReport(){
$jasper = new JasperPHP;
$extension = 'pdf';
$name = 'Employee';
$filename = $name . time();
$output = base_path('/public/reports/' .$filename);
// JasperPHP::compile(storage_path('app/public'). '/reports/Employee.jrxml')->execute();
$jasper->process(
storage_path('app/public/reports/Employee.jasper'),
$output,
array($extension),
array('id' => 1014),
$this->dbConfig(),
"pt_BR"
)->execute();
$file = $output . '.' . $extension;
if(!file_exists($file)){
}
if($extension == 'xls'){
header('Content-Description: Arquivo Excel');
header('Content-Type: application/x-msexcel');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
flush(); // Flush system output buffer
readfile($file);
unlink($file) ;
die();
}
else if($extension == 'pdf')
{
return response()->file($file)->deleteFileAfterSend();
}
}
对我来说 laravel 8 它工作正常....
我做到了composer require cossou/jasperphp
然后在
文件config/app.php
<?php
//...
'providers' => [
//...
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
//insert jasper service provider here
JasperPHP\JasperPHPServiceProvider::class
],
里面web.php
我添加了
use JasperPHP\JasperPHP as JasperPHP;
Route::get('/java', function () {
$jasper = new JasperPHP;
// Compile a JRXML to Jasper
$t= $jasper->compile( '/home/midhun/hi/hello.jrxml')->execute();
var_dump($t);
// Process a Jasper file to PDF and RTF (you can use directly the .jrxml)
$jasper->process(
'/home/midhun/hi/hello.jrxml',
false,
array("pdf", "rtf"),
array("php_version" => "8.0.3")
)->execute();
// List the parameters from a Jasper file.
$array = $jasper->list_parameters(
'/home/midhun/hi/hello.jrxml'
)->execute();
var_dump($array);
return view('welcome');
});
运行后php手艺发球
并在浏览器中打开 localhost:8000/java
我得到了pdf文件
pdf 为
我目前正在使用 cossou/JasperPHP,但我在生成 pdf 文件时遇到了问题。它一直给我这个错误 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.
我尝试将 ->execute()
更改为 ->output()
但它给了我找不到的错误一个 pdf 文件。
对于像 Crystal Report 或 Jaspersoft 这样的打印和制作报告的任何其他软件包建议?
public function dbConfig(){
//JasperPHP::compile(base_path('/vendor/cossou/jasperphp/examples/hello_world.jrxml'))->execute();
$jdbc_dir = 'D:\xampp\htdocs\TestTO\vendor\cossou\jasperphp\src\JasperStarter\jdbc';
return [
'driver' => 'sqlsrv',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'database' => env('DB_DATABASE'),
'jdbc_driver' => 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
'jdbc_url' => 'jdbc:sqlserver://localhost:1433;databaseName=Employee;DataSource=(local)',
'jdbc_dir' => $jdbc_dir
];
}
public function generateReport(){
$jasper = new JasperPHP;
$extension = 'pdf';
$name = 'Employee';
$filename = $name . time();
$output = base_path('/public/reports/' .$filename);
// JasperPHP::compile(storage_path('app/public'). '/reports/Employee.jrxml')->execute();
$jasper->process(
storage_path('app/public/reports/Employee.jasper'),
$output,
array($extension),
array('id' => 1014),
$this->dbConfig(),
"pt_BR"
)->execute();
$file = $output . '.' . $extension;
if(!file_exists($file)){
}
if($extension == 'xls'){
header('Content-Description: Arquivo Excel');
header('Content-Type: application/x-msexcel');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
flush(); // Flush system output buffer
readfile($file);
unlink($file) ;
die();
}
else if($extension == 'pdf')
{
return response()->file($file)->deleteFileAfterSend();
}
}
对我来说 laravel 8 它工作正常....
我做到了composer require cossou/jasperphp
然后在
文件config/app.php
<?php
//...
'providers' => [
//...
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
//insert jasper service provider here
JasperPHP\JasperPHPServiceProvider::class
],
里面web.php 我添加了
use JasperPHP\JasperPHP as JasperPHP;
Route::get('/java', function () {
$jasper = new JasperPHP;
// Compile a JRXML to Jasper
$t= $jasper->compile( '/home/midhun/hi/hello.jrxml')->execute();
var_dump($t);
// Process a Jasper file to PDF and RTF (you can use directly the .jrxml)
$jasper->process(
'/home/midhun/hi/hello.jrxml',
false,
array("pdf", "rtf"),
array("php_version" => "8.0.3")
)->execute();
// List the parameters from a Jasper file.
$array = $jasper->list_parameters(
'/home/midhun/hi/hello.jrxml'
)->execute();
var_dump($array);
return view('welcome');
});
运行后php手艺发球
并在浏览器中打开 localhost:8000/java
我得到了pdf文件
pdf 为